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
Logging Artifacts and Models
📖 Scenario: You are working on a machine learning project where you want to save your trained model and some related files (called artifacts) so you can review them later or share with your team.Using a simple logging tool, you will learn how to save these important files properly.
🎯 Goal: Build a small program that logs a model file and an artifact file using a logging tool.This will help you keep track of your machine learning work in a neat and organized way.
📋 What You'll Learn
Create a dictionary to represent the model metadata
Create a variable for the artifact file path
Write a function to log the model and artifact
Print a confirmation message after logging
💡 Why This Matters
🌍 Real World
In real machine learning projects, logging models and artifacts helps teams keep track of experiments and share results easily.
💼 Career
Knowing how to log models and artifacts is a key skill for MLOps engineers and data scientists to maintain reproducibility and collaboration.
Progress0 / 4 steps
1
Create model metadata dictionary
Create a dictionary called model_info with these exact entries: 'name': 'house_price_predictor', 'version': '1.0', and 'accuracy': 0.85.
MLOps
Hint
Use curly braces {} to create a dictionary and separate keys and values with colons.
2
Set artifact file path
Create a variable called artifact_path and set it to the string './artifacts/feature_importance.csv'.
MLOps
Hint
Use quotes to create a string and assign it to the variable.
3
Write function to log model and artifact
Define a function called log_model_and_artifact that takes two parameters: model and artifact. Inside the function, print these two lines exactly: Logging model: {model['name']} version {model['version']} Logging artifact file: {artifact}.
MLOps
Hint
Use an f-string to include dictionary values inside the print statements.
4
Call function and print confirmation
Call the function log_model_and_artifact with model_info and artifact_path as arguments. Then, print exactly 'Logging complete!' on a new line.
MLOps
Hint
Call the function with the correct variables and then print the confirmation message exactly.
Practice
(1/5)
1. What is the main purpose of logging artifacts and models in MLOps?
easy
A. To speed up model training
B. To delete old models automatically
C. To create new datasets from artifacts
D. To save files and models for tracking and reuse
Solution
Step 1: Understand the role of logging in MLOps
Logging artifacts and models helps keep track of work and reuse it later.
Step 2: Identify the correct purpose
Saving files and models for tracking and reuse matches the main goal of logging.
Final Answer:
To save files and models for tracking and reuse -> Option D
Quick Check:
Logging = Save and track work [OK]
Hint: Logging means saving work for later use [OK]
Common Mistakes:
Thinking logging deletes models
Confusing logging with speeding training
Assuming logging creates new data
2. Which of the following is the correct syntax to log a file artifact using MLflow?
easy
A. mlflow.log_model('path/to/file.txt')
B. mlflow.log_artifact('path/to/file.txt')
C. mlflow.log_artifacts('path/to/file.txt')
D. mlflow.log('path/to/file.txt')
Solution
Step 1: Recall MLflow function for logging files
The correct function is mlflow.log_artifact() for single files.
Step 2: Check syntax correctness
mlflow.log_artifact('path/to/file.txt') matches the correct syntax.
Final Answer:
mlflow.log_artifact('path/to/file.txt') -> Option B
Quick Check:
Single file logging = log_artifact() [OK]
Hint: Use log_artifact() for single files [OK]
Common Mistakes:
Using log_model() for files
Using plural log_artifacts() incorrectly
Using generic log() function
3. What will be the output of this code snippet?
import mlflow
with mlflow.start_run():
mlflow.log_artifact('data.csv')
mlflow.log_model(model, 'model')
print('Run finished')
medium
A. Error because model is not defined
B. Run finished printed; artifacts and model logged in current run
C. No output; code hangs
D. Run finished printed; but nothing logged
Solution
Step 1: Analyze the code snippet
The code tries to log a file and a model inside a run.
Step 2: Check for errors
The variable 'model' is not defined, so mlflow.log_model(model, 'model') causes a NameError.
Final Answer:
Error because model is not defined -> Option A
Quick Check:
Undefined variable causes error [OK]
Hint: Check if variables are defined before logging [OK]
Common Mistakes:
Assuming code runs without defining model
Thinking print means success
Ignoring variable definitions
4. You run this code but no artifacts appear in MLflow UI:
mlflow.log_artifact('output.txt')
What is the most likely reason?
medium
A. log_artifact() only works inside a run
B. The file output.txt does not exist
C. No active MLflow run was started
D. MLflow server is down
Solution
Step 1: Understand MLflow run context
Logging artifacts requires an active run to group logs.
Step 2: Identify missing run
Without mlflow.start_run(), logs are not saved properly.
Final Answer:
No active MLflow run was started -> Option C
Quick Check:
Logging needs active run [OK]
Hint: Always start a run before logging [OK]
Common Mistakes:
Assuming logging works without a run
Ignoring file existence
Blaming server without checking run
5. You want to log multiple files and a trained model in one MLflow run. Which code snippet correctly does this?
hard
A. with mlflow.start_run():
mlflow.log_artifact('file1.txt')
mlflow.log_artifact('file2.txt')
mlflow.log_model(model, 'model')
B. mlflow.log_artifact(['file1.txt', 'file2.txt'])
mlflow.log_model(model, 'model')
C. with mlflow.start_run():
mlflow.log_artifacts(['file1.txt', 'file2.txt'])
mlflow.log_model(model, 'model')
D. mlflow.start_run()
mlflow.log_artifact('file1.txt')
mlflow.log_artifacts('file2.txt')
mlflow.log_model(model, 'model')
mlflow.end_run()
Solution
Step 1: Identify correct way to log multiple files
For multiple individual files, call mlflow.log_artifact() for each file.
Step 2: Confirm run context and model logging
Using with mlflow.start_run(): ensures proper context; logs each file and the model correctly.
Final Answer:
with mlflow.start_run():
mlflow.log_artifact('file1.txt')
mlflow.log_artifact('file2.txt')
mlflow.log_model(model, 'model') -> Option A
Quick Check:
Multiple files = log_artifact() for each inside run [OK]
Hint: Call log_artifact() for each file inside a run [OK]