Bird
Raised Fist0
MLOpsdevops~5 mins

MLflow setup and basics in MLOps - Commands & Configuration

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction
MLflow helps you keep track of your machine learning experiments. It solves the problem of losing track of which model settings gave the best results by saving all details in one place.
When you want to compare different versions of a machine learning model easily.
When you need to save model parameters and results automatically during training.
When you want to share your model experiments with teammates.
When you want to deploy a model and keep track of its versions.
When you want to organize your machine learning workflow with clear records.
Commands
This command installs MLflow on your system so you can use it to track experiments.
Terminal
pip install mlflow
Expected OutputExpected
Collecting mlflow Downloading mlflow-2.7.0-py3-none-any.whl (17.0 MB) Installing collected packages: mlflow Successfully installed mlflow-2.7.0
This command starts the MLflow web interface locally so you can see your experiments in a browser.
Terminal
mlflow ui
Expected OutputExpected
2024/06/01 12:00:00 INFO mlflow.server: Starting MLflow server... 2024/06/01 12:00:00 INFO mlflow.server: Listening at http://127.0.0.1:5000
This runs your training script which uses MLflow to log parameters and results automatically.
Terminal
python train_model.py
Expected OutputExpected
Training started... Logged parameters and metrics to MLflow. Training completed successfully.
This command lists all MLflow experiments you have created or logged runs to.
Terminal
mlflow experiments list
Expected OutputExpected
Experiment ID Name 0 Default 1 My First Experiment
Key Concept

If you remember nothing else from this pattern, remember: MLflow tracks your machine learning experiments automatically so you never lose important details.

Code Example
MLOps
import mlflow
import mlflow.sklearn
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# Load data
iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=42)

# Start MLflow run
with mlflow.start_run():
    # Set parameters
    n_estimators = 100
    max_depth = 3
    mlflow.log_param("n_estimators", n_estimators)
    mlflow.log_param("max_depth", max_depth)

    # Train model
    clf = RandomForestClassifier(n_estimators=n_estimators, max_depth=max_depth, random_state=42)
    clf.fit(X_train, y_train)

    # Predict and evaluate
    preds = clf.predict(X_test)
    acc = accuracy_score(y_test, preds)
    mlflow.log_metric("accuracy", acc)

    # Log model
    mlflow.sklearn.log_model(clf, "model")

    print(f"Logged model with accuracy: {acc:.4f}")
OutputSuccess
Common Mistakes
Not installing MLflow before running commands.
The commands will fail because MLflow is not available on the system.
Always run 'pip install mlflow' first to install the tool.
Running 'mlflow ui' without keeping the terminal open.
The MLflow UI server stops when the terminal session ends.
Keep the terminal running or run 'mlflow ui' in a screen or background process.
Not adding MLflow logging code in the training script.
No experiment data will be saved or visible in the MLflow UI.
Add MLflow logging calls like mlflow.log_param() and mlflow.log_metric() in your training code.
Summary
Install MLflow using pip to start tracking experiments.
Run 'mlflow ui' to open the web interface and view experiment results.
Add MLflow logging calls in your training script to save parameters, metrics, and models.
Use MLflow commands to list and manage your experiments.

Practice

(1/5)
1. What is the primary purpose of MLflow in machine learning projects?
easy
A. To deploy machine learning models to mobile devices
B. To write machine learning algorithms from scratch
C. To create datasets for training models
D. To track and organize machine learning experiments

Solution

  1. Step 1: Understand MLflow's role

    MLflow is designed to help manage and track experiments, not to build models or datasets.
  2. Step 2: Identify the correct purpose

    Tracking and organizing experiments is the core feature of MLflow.
  3. Final Answer:

    To track and organize machine learning experiments -> Option D
  4. Quick Check:

    MLflow = experiment tracking [OK]
Hint: Remember MLflow tracks experiments, not builds models [OK]
Common Mistakes:
  • Confusing MLflow with model building libraries
  • Thinking MLflow creates datasets
  • Assuming MLflow deploys models directly
2. Which command correctly installs MLflow using pip?
easy
A. pip install mlflow
B. pip get mlflow
C. install mlflow pip
D. pip mlflow install

Solution

  1. Step 1: Recall pip install syntax

    The correct syntax to install a package is 'pip install package_name'.
  2. Step 2: Match the command

    Only 'pip install mlflow' matches the correct syntax.
  3. Final Answer:

    pip install mlflow -> Option A
  4. Quick Check:

    pip install + package = correct [OK]
Hint: Use 'pip install' followed by package name [OK]
Common Mistakes:
  • Using incorrect order of words
  • Using 'pip get' instead of 'pip install'
  • Omitting 'install' keyword
3. What happens when you run the command mlflow ui in your terminal?
medium
A. It starts a web interface to view and compare ML experiments
B. It installs MLflow on your system
C. It runs your machine learning model training
D. It deletes all previous MLflow experiments

Solution

  1. Step 1: Understand the 'mlflow ui' command

    This command launches the MLflow tracking server's web interface.
  2. Step 2: Identify the effect

    The UI lets users view and compare experiments visually in a browser.
  3. Final Answer:

    It starts a web interface to view and compare ML experiments -> Option A
  4. Quick Check:

    mlflow ui = launch web UI [OK]
Hint: Think 'ui' means user interface for experiments [OK]
Common Mistakes:
  • Confusing UI launch with installation
  • Assuming it runs training automatically
  • Thinking it deletes experiments
4. You try to start MLflow UI with mlflow ui but get an error saying 'command not found'. What is the most likely cause?
medium
A. You need to run 'mlflow start' instead
B. Your Python version is too new for MLflow
C. MLflow is not installed or not in your system PATH
D. You must run the command inside a Jupyter notebook

Solution

  1. Step 1: Analyze the error message

    'command not found' means the system cannot locate the 'mlflow' command.
  2. Step 2: Identify common causes

    This usually happens if MLflow is not installed or its executable is not in the system PATH.
  3. Final Answer:

    MLflow is not installed or not in your system PATH -> Option C
  4. Quick Check:

    Command not found = missing install or PATH [OK]
Hint: Check if MLflow is installed and in PATH [OK]
Common Mistakes:
  • Trying wrong commands like 'mlflow start'
  • Blaming Python version without checking install
  • Assuming it must run inside Jupyter
5. You want to create a new MLflow experiment named 'MyExperiment' and log a parameter 'alpha' with value 0.5 in a Python script. Which code snippet correctly does this?
hard
A. import mlflow mlflow.create_experiment('MyExperiment') mlflow.log_param('alpha', 0.5)
B. import mlflow mlflow.set_experiment('MyExperiment') with mlflow.start_run(): mlflow.log_param('alpha', 0.5)
C. import mlflow mlflow.start_experiment('MyExperiment') mlflow.log_param('alpha', 0.5)
D. import mlflow mlflow.set_experiment('MyExperiment') mlflow.log_param('alpha', 0.5)

Solution

  1. Step 1: Set the experiment name

    Use mlflow.set_experiment('MyExperiment') to select or create the experiment.
  2. Step 2: Start a run and log parameters

    Use 'with mlflow.start_run():' block to start a run, then log parameters inside it.
  3. Step 3: Identify correct snippet

    import mlflow mlflow.set_experiment('MyExperiment') with mlflow.start_run(): mlflow.log_param('alpha', 0.5) correctly uses set_experiment, start_run context, and logs parameter.
  4. Final Answer:

    import mlflow mlflow.set_experiment('MyExperiment') with mlflow.start_run(): mlflow.log_param('alpha', 0.5) -> Option B
  5. Quick Check:

    Set experiment + start run + log param = correct [OK]
Hint: Always start a run before logging parameters [OK]
Common Mistakes:
  • Logging parameters outside a run
  • Using non-existent functions like create_experiment
  • Not using 'with' block for start_run