MLPotion: Brew Your ML Magic! 🧪✨
Modular Components for Machine Learning Pipelines
Provided and maintained by 🦄 UnicoLab
Welcome, fellow alchemist! 🧙♂️ Ready to brew some machine learning magic without getting locked in a cauldron?
MLPotion is your chest of modular, mix-and-match ML building blocks that work across Keras, TensorFlow, and PyTorch. Think of it as LEGO® for ML pipelines, but with fewer foot injuries and more flexibility!
Why MLPotion? 🤔
Ever felt trapped by a framework that forces you to do things "their way"? We've been there. That's why we created MLPotion:
- 🎯 Framework Agnostic: Write once, run anywhere (well, on Keras, TensorFlow, or PyTorch).
- 🧱 Modular by Design: Pick the pieces you need, leave the rest in the box.
- 🔬 Type-Safe: Python 3.10+ typing that actually helps you (mypy approved!).
- 🚀 Production Ready: Built for the real world, not just notebooks.
- 🎨 Orchestration Flexible: Works standalone OR with ZenML, Prefect, Airflow - your choice!
- 📦 Install What You Need: Core package works without any ML frameworks (you only install what you need)!
- 🤝 Community-Driven: Missing something? Contribute it back - we love community additions!
What's in the Potion? 🧪
⚗️ Core Ingredients
- Type-safe protocols for all components
- Framework-agnostic result types
- Consistent error handling
- Zero-dependency core package
🔧 Framework Support
- Keras 3.0+ - The friendly one
- TensorFlow 2.15+ - The production workhorse
- PyTorch 2.0+ - The researcher's favorite
📊 Data Processing
- CSV loaders for all frameworks
- Dataset optimization utilities
- Data transformers
- Preprocessing pipelines
🎓 Training & Evaluation
- Unified training interface
- Comprehensive evaluation tools
- Rich result objects
- Training history tracking
💾 Model Management
- Save/load model checkpoints
- Export to production formats
- Model inspection utilities
- Multiple export formats
🔄 Orchestration Integration
- ZenML integration built-in
- Extensible to Prefect, Airflow, etc.
- Works standalone (no orchestration needed!)
The MLPotion Philosophy 🎭
"A good potion doesn't force you to drink it a certain way. It just... works."
— Ancient ML Alchemist Proverb (we just made that up)
We believe in:
- Flexibility > Convention: Your project, your rules
- Simplicity > Complexity: If it's hard to use, we failed
- Type Safety > Runtime Surprises: Catch errors before they bite
- Modularity > Monoliths: Use what you need, ignore the rest
- Consistency > Chaos: Same patterns across all frameworks
- Community > Corporate: Built by the community, for the community
📦 Installation
Install only what you need to keep your environment clean.
Core (Base Protocols)
Perfect for defining custom implementations or lightweight usage.
poetry add mlpotion
For Framework Users
# TensorFlow / Keras
poetry add mlpotion -E tensorflow
# PyTorch
poetry add mlpotion -E pytorch
For MLOps (ZenML)
Combine your framework with ZenML capabilities.
poetry add mlpotion -E tensorflow -E zenml
# OR
poetry add mlpotion -E pytorch -E zenml
The Full Lab
poetry add mlpotion -E all
⚡ Quickstart
Here is a simple example of defining a training configuration and running a trainer using Keras components.
from mlpotion.frameworks.keras.training import ModelTrainer
from mlpotion.frameworks.keras.config import ModelTrainingConfig
# 1. Define your configuration 📝
# Strongly typed configs ensure you never miss a parameter
config = ModelTrainingConfig(
epochs=10,
batch_size=32,
optimizer="adam",
loss="sparse_categorical_crossentropy"
)
# 2. Initialize the Trainer 🧪
trainer = ModelTrainer(config=config)
# 3. Run the pipeline 🚀
# (Assuming 'my_model' and datasets are ready)
history = trainer.train(
model=my_model,
train_data=train_ds,
val_data=val_ds
)
print(f"✅ Training complete! Final accuracy: {history.history['accuracy'][-1]:.4f}")
ZenML User? Drop this logic directly into a pipeline step:
from mlpotion.integrations.zenml.tensorflow.steps import train_model
Feature Comparison 📊
| Feature | MLPotion | Framework-Only | All-in-One Solutions |
|---|---|---|---|
| Multi-framework | ✅ Yes | ❌ No | ⚠️ Limited |
| Type Safety | ✅ Full | ⚠️ Partial | ⚠️ Partial |
| Modular Install | ✅ Yes | ❌ No | ❌ No |
| ZenML Native | ✅ Yes | ❌ Manual | ⚠️ Adapters |
| Learning Curve | 📈 Gentle | 📈 Framework-specific | 📈 Steep |
| Production Ready | ✅ Yes | ⚠️ DIY | ✅ Yes |
| Flexibility | 🌟🌟🌟🌟🌟 | 🌟🌟🌟🌟🌟 | 🌟🌟 |
Who's This For? 🎯
You'll love MLPotion if you:
- Switch between frameworks and hate rewriting everything
- Value heavily tested code that you can reuse
- Value type safety and IDE autocomplete (who doesn't?)
- Want production-ready code without enterprise bloat
- Believe ML pipelines should be composable and testable
You might want something else if you:
- Do not like modularity
- Do not like reusability
- Are too lazy to contribute something that you can't already find here
Community & Support 🤝
- GitHub: Star, fork, contribute!
- Issues: Report bugs, request features.
- UnicoLab: Enterprise AI solutions.
Ready to brew some ML magic? Let's get started! 🧪✨
Built with ❤️ for the ML community by 🦄 UnicoLab
Metadata
Release files for mlpotion 1.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mlpotion-1.2.0.tar.gz | 97.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mlpotion-1.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 238.3 kB
Release files / mlpotion-1.2.0.tar.gz
| Download URL | mlpotion-1.2.0.tar.gz |
|---|---|
| Size | 97.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6ac2e435eb101a8b8c6ffc3031077fb664c52e489fc5146fcad2822c1e6c825d
|
|
BLAKE2b-256 checksum How to use checksums |
93f0857658d9f4f48de9c2103d706bf605abc3e3d5ad4a458745c48fda6067f2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.3.2 CPython/3.11.15 Linux/6.14.0-1017-azure
|
Release files / mlpotion-1.2.0-py3-none-any.whl
| Download URL | mlpotion-1.2.0-py3-none-any.whl |
|---|---|
| Size | 141.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b6f4c78625f0916142b7c030e471baa60d187d9ab9d7f6f2dad3c520b854ea38
|
|
BLAKE2b-256 checksum How to use checksums |
d50bbb61df01b41ef653bac7616dd4286e7ed12410d9c9aeafa7630d1e286c0f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.3.2 CPython/3.11.15 Linux/6.14.0-1017-azure
|