STREAM is a powerful, modular MLOps template designed to facilitate collaborative code development, automate processes, and ensure data traceability in machine learning workflows. Each workflow step is handled by a dedicated module, making the codebase easy to extend and maintain for future projects.
- Python 3.11+
- MLflow server running (default: http://localhost:5000)
- All dependencies from
requirements.txtinstalled
pip install -r requirements.txtEdit ML_Project/config/config.py.jinja to set your MLflow tracking URI and experiment name:
MLFLOW_TRACKING_URI = "http://localhost:5000"
EXPERIMENT_NAME = "demo_experiment" # Use your existing experiment nameEach CLI command in main.py delegates to a dedicated module for modularity and extensibility.
python ML_Project/main.py preprocess --test-run Falsepython ML_Project/main.py train-cmd --test-run Falsepython ML_Project/main.py process --test-run Falsepython ML_Project/main.py evaluate --test-run False- The
evaluatecommand usesplotter.pyto plot regression results and save them aseval_plot.png.
- Open MLflow UI to view experiments and runs:
mlflow ui --backend-store-uri sqlite:///mlflow.db- Visit http://localhost:5000 in your browser.
ML_Project/main.py: CLI entry point for all workflow steps.ML_Project/data.py: Data preprocessing functions.ML_Project/train.py: Model training functions.ML_Project/plotter.py: Plotting functions for regression and metrics.ML_Project/predict.py: Prediction utilities (for extensibility).ML_Project/config/: Configuration files and MLflow settings.ML_Project/tests/: Unit tests for workflow steps.
We welcome contributions! Please see our Contributing Guidelines for more details.
This project is licensed under the terms of the GPL license. See the LICENSE file for the full license text.
If you have any questions or feedback, please feel free to contact us.