Overview

MLflow, an open-source platform initiated by Databricks, addresses key challenges in the machine learning lifecycle, from experimentation to deployment. It provides a set of tools designed to standardize and simplify the development, deployment, and management of machine learning models. The platform is structured around four primary components: MLflow Tracking, MLflow Projects, MLflow Models, and MLflow Model Registry, each addressing a specific stage of the ML workflow.

MLflow Tracking enables developers to log and compare parameters, code versions, metrics, and output files when running machine learning code, facilitating the reproducibility of experiments. This component is crucial for understanding the impact of different hyperparameter choices or data preprocessing steps on model performance. MLflow Projects provide a standard format for packaging ML code, making it reusable and reproducible across different environments. This allows data scientists to share code with colleagues or deploy it to production with consistent results.

MLflow Models offer a convention for packaging machine learning models in various formats, enabling deployment to diverse serving platforms such as Docker, Apache Spark, or cloud-based services. This abstraction helps decouple model development from deployment specifics. The MLflow Model Registry provides a centralized hub for managing the full lifecycle of MLflow Models, including versioning, stage transitions (e.g., staging to production), and annotations. This registry supports governance and auditing requirements for models in production environments.

MLflow is suitable for individual data scientists, small teams, and large enterprises that require robust MLOps capabilities. Its open-source nature allows for integration into existing infrastructure and customization. For organizations seeking a managed solution, Databricks offers a fully managed version of MLflow as part of its Lakehouse Platform, providing additional features like enhanced security, scalability, and collaboration tools. The platform is designed to be framework-agnostic, supporting popular ML libraries such as TensorFlow, PyTorch, scikit-learn, and XGBoost, making it a flexible choice for diverse ML projects.

Key features

  • MLflow Tracking: Records and queries experiments, including parameters, metrics, code versions, and artifacts, to compare runs and reproduce results (MLflow Tracking documentation).
  • MLflow Projects: Packages ML code in a reproducible format, including an entry point, environment specification, and dependencies, for sharing and deployment (MLflow Projects guide).
  • MLflow Models: Provides a standard format for packaging ML models that can be deployed to various serving tools and environments (MLflow Models overview).
  • MLflow Model Registry: Offers a centralized repository for managing the lifecycle of MLflow Models, including versioning, stage transitions, and annotations (MLflow Model Registry documentation).
  • Framework Agnostic: Supports integration with a wide range of machine learning libraries and frameworks, including scikit-learn, TensorFlow, PyTorch, and Apache Spark MLlib.
  • Open-Source: Available under an Apache 2.0 license, allowing for community contributions and flexible deployment options (MLflow documentation).
  • API and UI: Provides both a programmatic API for automation and a web-based UI for visualizing experiments and managing models.

Pricing

MLflow is an open-source project and can be used without direct cost. For organizations requiring a managed service, Databricks offers MLflow as part of its Lakehouse Platform. Pricing for the managed service is based on Databricks Units (DBUs), which measure compute consumption.

Databricks Lakehouse Platform Pricing (as of 2026-05-28)
Service Tier Description Starting Price (per DBU) Notes
Databricks Lakehouse Platform - Serverless Managed MLflow with serverless compute for notebooks and jobs. $0.07 Pricing varies by cloud provider and region (Databricks Pricing Page).
Databricks Lakehouse Platform - Classic Managed MLflow with customer-managed compute. Custom On-demand or committed use options available.
Open-Source MLflow Self-hosted MLflow deployment. Free Requires user-managed infrastructure and maintenance.

Common integrations

Alternatives

  • Weights & Biases: A proprietary MLOps platform for experiment tracking, visualization, and collaboration.
  • Comet ML: An MLOps platform offering experiment tracking, model production monitoring, and data versioning.
  • DVC (Data Version Control): An open-source system for data and model versioning, often used in conjunction with Git for code.

Getting started

To begin using MLflow for experiment tracking, install the library and log a simple scikit-learn model training run. This example demonstrates logging parameters, metrics, and the model itself.

import mlflow
import mlflow.sklearn
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_diabetes

# Load the diabetes dataset
diabetes_X, diabetes_y = load_diabetes(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(
    diabetes_X, diabetes_y, test_size=0.2, random_state=42
)

# Start an MLflow run
with mlflow.start_run():
    # Define model parameters
    n_estimators = 100
    max_depth = 6
    random_state = 42

    # Log parameters
    mlflow.log_param("n_estimators", n_estimators)
    mlflow.log_param("max_depth", max_depth)

    # Train a RandomForestRegressor model
    rf = RandomForestRegressor(
        n_estimators=n_estimators, max_depth=max_depth, random_state=random_state
    )
    rf.fit(X_train, y_train)

    # Make predictions and calculate metrics
    predictions = rf.predict(X_test)
    rmse = mean_squared_error(y_test, predictions, squared=False)

    # Log metrics
    mlflow.log_metric("rmse", rmse)

    # Log the model
    mlflow.sklearn.log_model(rf, "random_forest_model")

    print(f"RMSE: {rmse}")
    print(f"MLflow Run ID: {mlflow.active_run().info.run_id}")

# To view the MLflow UI, run 'mlflow ui' in your terminal in the directory where you ran this script.

This script will create a new MLflow run, log the specified parameters and metrics, and save the trained RandomForestRegressor model. You can then launch the MLflow UI from your terminal by navigating to the directory where the script was executed and running mlflow ui to visualize the experiment results.