Updated: Sep 21, 2021
MLflow is an open source platform to manage the ML lifecycle, including experimentation, reproducibility, deployment, and a central model registry. MLflow is organised into four components:
You can use each of these components on their own—for example, maybe you want to export models in MLflow’s model format without using Tracking or Projects—but they are also designed to work well together.
MLflow Tracking: - ( how to easily track experiments/hyper-parameter tuning you do)-
The MLflow Tracking component is an API and UI for logging parameters, code versions, metrics, and output files when running your machine learning code and for later visualizing the results.
with mlflow.start_run(): for epoch in range(1, 4): mlflow.log_metric(key="quality", value=2*epoch, step=epoch)
Above command stores metrics for experiments. where epochs are 1,2,3. many more things can be tracked- time of experiment, version, datafiles, model parameters etc.
MLflow Projects: - ( how others can immediately use your model)
An MLflow Project is a format for packaging data science code in a reusable and reproducible way, based primarily on conventions. In addition, the Projects component includes an API and command-line tools for running projects, making it possible to chain together projects into workflows.
https://www.mlflow.org/docs/latest/projects.html ( more info)
MLflow Models: - ( deployable format and support in deployment)
An MLflow Model is a standard format for packaging machine learning models that can be used in a variety of downstream tools—for example, real-time serving through a REST API or batch inference on Apache Spark.
MLflow can package models as self-contained Docker images with the REST API endpoint. The image can be used to safely deploy the model to various environments such as Kubernetes.
https://www.mlflow.org/docs/latest/models.html# ( more info)
MLflow Model registry: - ( sth. like Database of ml models)
The MLflow Model Registry component is a centralized model store, set of APIs, and UI, to collaboratively manage the full lifecycle of an MLflow Model. It provides model lineage (which MLflow experiment and run produced the model), model versioning, stage transitions (for example from staging to production), and annotations.