Databricks TL;DR: MLflow Lifecycle
Back to Databricks main page

MLflow Lifecycle Management

/tldr: Managing experiments, reproducibility, packaging, and deployment of ML models.

MLOps Tracking Deployment Open Source

MLflow Overview

MLflow is an open-source platform designed to manage the end-to-end machine learning lifecycle. It addresses four key challenges: **Tracking** experiments, **Reproducing** runs, **Packaging** code, and **Deploying** models.

1. MLflow Tracking (The Experiment Log)

Tracking is the core component, recording and querying all aspects of your ML experiments.

Parameters

Hyperparameters used (e.g., learning_rate, n_estimators).

Metrics

Evaluation scores (e.g., AUC, accuracy, MSE).

Artifacts

Output files, plots, serialized models, and images.

Tracking Code Example

import mlflow import mlflow.sklearn with mlflow.start_run(): # Log a parameter mlflow.log_param("n_estimators", 100) # Train model (e.g., Random Forest) model = RandomForestClassifier(n_estimators=100) model.fit(X_train, y_train) # Log a metric mlflow.log_metric("roc_auc", roc_auc_score(y_test, predictions)) # Log the entire model itself mlflow.sklearn.log_model(model, "random_forest_model")

2. MLflow Projects (The Packaging Standard)

Projects provide a standard format for packaging ML code, making it reusable and reproducible. This allows other data scientists to run your code without needing to know your specific environment setup.

  • **Artifacts:** A Project is typically a directory containing code, a Conda or requirements.txt file for dependencies, and an MLproject file.
  • **Reproducibility:** You can run an MLflow Project from a local path or a Git URI.

The `MLproject` file

name: MyDataScienceProject # Define the environment needed for the project conda_env: conda.yaml entry_points: main: parameters: alpha: {type: float, default: 0.5} l1_ratio: {type: float, default: 0.1} command: "python train.py --alpha {alpha} --l1-ratio {l1_ratio}"

3. MLflow Models and Model Registry

MLflow Models (The Deployment Format)

An MLflow Model is a standard, versioned format for packaging an ML model for deployment. It includes the model file, environment information, and a signature defining the inputs and outputs.

# Example: Deploying a model as a REST endpoint locally (for testing) mlflow models serve -m "runs:/<run_id>/model_artifact_path" -p 5001

MLflow Model Registry (Centralized Governance)

The Registry is a centralized repository for managing the full lifecycle of a model, providing **versioning**, **stage transitions**, and **lineage**.

  • **Stages:** Models move through predefined stages: NoneStagingProductionArchived.
  • **Workflow:** Data Scientists register a promising model (from Tracking). MLOps Engineers review it in the Registry and promote it to Production.
  • **Deployment:** Production deployment systems (like Databricks Model Serving) consume models directly from the Production stage of the Registry.

MLflow standardizes the chaos of the ML lifecycle, making it scalable and governable.

Databricks Fundamentals Series: MLflow Lifecycle Management