Bird
Raised Fist0
MLOpsdevops~5 mins

Performance metric tracking 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
When you train machine learning models, you need to know how well they perform. Performance metric tracking helps you save and compare these results easily over time.
When you want to record the accuracy of a model after each training run.
When you need to compare different models to pick the best one.
When you want to monitor if your model's performance improves after tuning.
When you want to keep a history of metrics for auditing or reporting.
When you want to share model results with your team in a clear way.
Commands
This command installs MLflow, a tool that helps track machine learning experiments and metrics.
Terminal
pip install mlflow
Expected OutputExpected
Collecting mlflow Downloading mlflow-2.4.1-py3-none-any.whl (16.7 MB) Installing collected packages: mlflow Successfully installed mlflow-2.4.1
Starts the MLflow tracking server UI locally so you can see your saved metrics in a web browser.
Terminal
mlflow ui
Expected OutputExpected
2024/06/01 12:00:00 Starting MLflow UI server... Listening at: http://127.0.0.1:5000
Key Concept

If you remember nothing else from this pattern, remember: saving metrics during training lets you track and improve your models over time.

Code Example
MLOps
import mlflow
import random

with mlflow.start_run():
    accuracy = random.uniform(0.7, 0.9)
    mlflow.log_metric("accuracy", accuracy)
    print(f"Logged accuracy: {accuracy:.3f}")
OutputSuccess
Common Mistakes
Not calling mlflow.start_run() before logging metrics.
Without starting a run, MLflow does not know where to save the metrics, so they are lost.
Always wrap metric logging inside mlflow.start_run() and mlflow.end_run() or use a with block.
Logging metrics with inconsistent names or types.
This makes it hard to compare runs because the metrics do not align properly.
Use consistent metric names and numeric types for easy comparison.
Summary
Install MLflow to enable metric tracking.
Start the MLflow UI to view saved metrics in a browser.
Use mlflow.start_run() to begin a tracking session.
Log metrics with mlflow.log_metric() during training.
Review metrics in the MLflow UI to compare model performance.

Practice

(1/5)
1.

What is the main purpose of performance metric tracking in MLOps?

easy
A. To manage user access to the model
B. To store raw training data
C. To measure how well a machine learning model performs
D. To create new machine learning models automatically

Solution

  1. Step 1: Understand the role of performance metrics

    Performance metrics are used to evaluate the quality and effectiveness of a machine learning model.
  2. Step 2: Identify the main goal of tracking these metrics

    Tracking helps to see how well the model works over time and in different conditions.
  3. Final Answer:

    To measure how well a machine learning model performs -> Option C
  4. Quick Check:

    Performance metric tracking = measure model quality [OK]
Hint: Metrics track model quality, not data or access [OK]
Common Mistakes:
  • Confusing metrics with data storage
  • Thinking metrics create models
  • Mixing metrics with user management
2.

Which of the following is the correct way to log a metric named accuracy with value 0.95 using a typical MLOps tracking tool?

easy
A. log_metric(name="accuracy", value=0.95)
B. log_metric(accuracy=0.95)
C. log_metric("accuracy", "0.95")
D. log_metric(value=0.95)

Solution

  1. Step 1: Identify required parameters for logging

    Logging a metric usually requires a name and a numeric value.
  2. Step 2: Check syntax correctness

    log_metric(name="accuracy", value=0.95) uses named parameters with correct types: name as string and value as number.
  3. Final Answer:

    log_metric(name="accuracy", value=0.95) -> Option A
  4. Quick Check:

    Correct syntax needs name and numeric value [OK]
Hint: Always provide metric name and numeric value explicitly [OK]
Common Mistakes:
  • Passing metric name as a keyword argument
  • Using string instead of numeric value
  • Omitting the metric name
3.

Given the following code snippet for metric logging, what will be the output or effect?

metrics = {}

# Log accuracy at step 1
metrics[1] = 0.85

# Log accuracy at step 2
metrics[2] = 0.90

print(metrics[2])
medium
A. 0.85
B. 0.90
C. KeyError
D. None

Solution

  1. Step 1: Understand the dictionary assignments

    metrics[1] is set to 0.85, metrics[2] is set to 0.90.
  2. Step 2: Identify the printed value

    print(metrics[2]) outputs the value stored at key 2, which is 0.90.
  3. Final Answer:

    0.90 -> Option B
  4. Quick Check:

    metrics[2] = 0.90 so print outputs 0.90 [OK]
Hint: Print the value at the requested key in the dictionary [OK]
Common Mistakes:
  • Confusing keys 1 and 2
  • Expecting error due to missing key
  • Assuming default None output
4.

Identify the error in this metric logging code snippet:

def log_metric(name, value):
    print(f"Metric {name}: {value}")

log_metric("loss")
medium
A. Metric name should be numeric
B. Incorrect function definition syntax
C. Using print instead of return
D. Missing value argument when calling log_metric

Solution

  1. Step 1: Check function parameters and call

    The function requires two arguments: name and value.
  2. Step 2: Identify the call mistake

    The call provides only one argument ("loss"), missing the value argument.
  3. Final Answer:

    Missing value argument when calling log_metric -> Option D
  4. Quick Check:

    Function call missing required argument [OK]
Hint: Match function call arguments to definition exactly [OK]
Common Mistakes:
  • Ignoring missing arguments
  • Thinking print must be replaced
  • Assuming metric name can be number
5.

You want to track multiple metrics (accuracy, loss) over training steps and compare models. Which approach best supports this in an MLOps system?

  1. Log each metric with its name, value, and step number.
  2. Store metrics in a structured format like a table or database.
  3. Use the stored metrics to generate comparison reports.

Which option describes the best practice?

hard
A. Log metrics with name, value, and step; store structured; generate reports
B. Log metrics without step info and store as plain text files
C. Only log final metric values after training completes
D. Store metrics randomly without names or steps

Solution

  1. Step 1: Understand metric logging needs

    Logging with name, value, and step allows tracking progress over time.
  2. Step 2: Importance of structured storage and reporting

    Structured storage enables easy querying and comparison; reports help analyze results.
  3. Final Answer:

    Log metrics with name, value, and step; store structured; generate reports -> Option A
  4. Quick Check:

    Complete tracking needs structured logging and reporting [OK]
Hint: Include step info and use structured storage for comparisons [OK]
Common Mistakes:
  • Ignoring step numbers in logs
  • Storing metrics unstructured
  • Logging only final values