Bird
Raised Fist0
MLOpsdevops~10 mins

Weights and Biases overview in MLOps - Step-by-Step Execution

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
Process Flow - Weights and Biases overview
Start ML Project
Initialize W&B
Log Configurations
Train Model
Log Metrics & Artifacts
Visualize Results on W&B Dashboard
Iterate or Share Results
End
This flow shows how a machine learning project uses Weights and Biases to track experiments step-by-step.
Execution Sample
MLOps
import wandb
wandb.init(project="my-ml-project")
config = wandb.config
config.learning_rate = 0.01
for epoch in range(3):
    loss = 0.1 / (epoch + 1)
    wandb.log({"epoch": epoch, "loss": loss})
This code initializes W&B, sets a learning rate, and logs loss values for 3 epochs.
Process Table
StepActionVariable StateW&B Log EntryOutput/Result
1Import wandb and initialize projectwandb initialized, project='my-ml-project'NoneW&B run started
2Set config.learning_rateconfig.learning_rate=0.01NoneConfig saved
3Epoch 0: calculate lossepoch=0, loss=0.1Log {'epoch': 0, 'loss': 0.1}Loss logged
4Epoch 1: calculate lossepoch=1, loss=0.05Log {'epoch': 1, 'loss': 0.05}Loss logged
5Epoch 2: calculate lossepoch=2, loss=0.0333Log {'epoch': 2, 'loss': 0.0333}Loss logged
6End of loopepoch=3 (loop ends)NoneTraining complete, data on W&B
💡 Loop ends after 3 epochs, all losses logged to W&B
Status Tracker
VariableStartAfter Step 2After Step 3After Step 4After Step 5Final
epochundefinedundefined0123 (loop ends)
lossundefinedundefined0.10.050.0333undefined
config.learning_rateundefined0.010.010.010.010.01
Key Moments - 3 Insights
Why do we call wandb.log inside the loop?
Because each epoch produces new metrics (loss) to track, calling wandb.log inside the loop sends updated data to W&B after every epoch, as shown in steps 3-5.
What happens if we don't call wandb.init before logging?
Without wandb.init (step 1), W&B doesn't know which project or run to associate logs with, so logging metrics (steps 3-5) will fail or be ignored.
Is config.learning_rate updated during training?
No, config.learning_rate is set once before training (step 2) and remains constant during the loop, as seen in variable_tracker.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the loss value logged at step 4?
A0.1
B0.0333
C0.05
D0.0
💡 Hint
Check the 'W&B Log Entry' column at step 4 in the execution_table.
At which step does the training loop end according to the execution table?
AStep 6
BStep 3
CStep 5
DStep 2
💡 Hint
Look for the row mentioning 'End of loop' in the execution_table.
If we change config.learning_rate to 0.02 at step 2, what changes in variable_tracker?
Aconfig.learning_rate remains 0.01
Bconfig.learning_rate changes to 0.02 from step 2 onward
Cepoch values change
Dloss values become zero
💡 Hint
Refer to the 'config.learning_rate' row in variable_tracker and how it updates after step 2.
Concept Snapshot
Weights and Biases (W&B) helps track ML experiments.
Initialize with wandb.init(project).
Set config parameters before training.
Log metrics each epoch with wandb.log({metric:value}).
View results on W&B dashboard to compare runs.
Full Transcript
Weights and Biases is a tool to track machine learning experiments. First, you start a project with wandb.init. Then you set configuration parameters like learning rate. During training, you log metrics such as loss after each epoch using wandb.log. This data is sent to the W&B dashboard where you can see graphs and compare runs. The example code shows initializing W&B, setting learning rate, and logging loss for 3 epochs. The execution table traces each step, showing how variables change and when logs happen. Key points include calling wandb.log inside the loop to track progress, initializing W&B before logging, and that config values stay constant unless changed explicitly.

Practice

(1/5)
1. What is the main purpose of Weights and Biases (W&B) in machine learning?
easy
A. To deploy machine learning models to production automatically
B. To write machine learning algorithms from scratch
C. To replace the need for training data
D. To track experiments, log metrics, and visualize results

Solution

  1. Step 1: Understand W&B's role

    W&B is designed to help track experiments and log metrics during ML development.
  2. Step 2: Identify main features

    It provides visualization and comparison of results in a dashboard, not algorithm creation or deployment.
  3. Final Answer:

    To track experiments, log metrics, and visualize results -> Option D
  4. Quick Check:

    W&B tracks and visualizes experiments [OK]
Hint: Remember W&B is for tracking and visualizing experiments [OK]
Common Mistakes:
  • Confusing W&B with model deployment tools
  • Thinking W&B writes ML algorithms
  • Assuming W&B replaces training data
2. Which of the following is the correct command to initialize a W&B run in Python?
easy
A. wandb.init(project="my-project")
B. wandb.start(project="my-project")
C. wandb.run(project="my-project")
D. wandb.create(project="my-project")

Solution

  1. Step 1: Recall W&B initialization syntax

    The correct function to start a run is wandb.init() with project name as argument.
  2. Step 2: Check other options

    Functions like start(), run(), or create() do not exist in W&B API for initialization.
  3. Final Answer:

    wandb.init(project="my-project") -> Option A
  4. Quick Check:

    Use wandb.init() to start runs [OK]
Hint: Use wandb.init() to start tracking runs [OK]
Common Mistakes:
  • Using wandb.start() instead of wandb.init()
  • Confusing run() or create() as initialization methods
  • Missing the project argument
3. Given this Python snippet using W&B:
import wandb
wandb.init(project="test")
for epoch in range(2):
    wandb.log({"accuracy": 0.8 + 0.1 * epoch})

What will be the logged accuracy values after the loop?
medium
A. [0.9, 1.0]
B. [0.8, 0.9]
C. [0.8, 0.85]
D. [0.7, 0.8]

Solution

  1. Step 1: Analyze the loop iterations

    The loop runs for epoch = 0 and epoch = 1 (2 iterations).
  2. Step 2: Calculate logged accuracy values

    For epoch 0: 0.8 + 0.1*0 = 0.8; for epoch 1: 0.8 + 0.1*1 = 0.9.
  3. Final Answer:

    [0.8, 0.9] -> Option B
  4. Quick Check:

    Accuracy logged = [0.8, 0.9] [OK]
Hint: Calculate values for each epoch carefully [OK]
Common Mistakes:
  • Miscomputing the accuracy formula
  • Confusing loop range endpoints
  • Assuming only one iteration
4. You wrote this code snippet to log loss values with W&B but no data appears in the dashboard:
import wandb
wandb.init(project="demo")
for i in range(3):
    loss = 0.5 / (i+1)
    wandb.log(loss)

What is the error?
medium
A. wandb.log() requires a dictionary, not a single value
B. wandb.init() is missing the entity parameter
C. The loop range should start from 1, not 0
D. loss variable is not defined before wandb.log()

Solution

  1. Step 1: Check wandb.log() usage

    wandb.log() expects a dictionary with metric names as keys, not a single float value.
  2. Step 2: Identify correct logging format

    It should be wandb.log({"loss": loss}) to log the loss metric properly.
  3. Final Answer:

    wandb.log() requires a dictionary, not a single value -> Option A
  4. Quick Check:

    Always log metrics as dict in wandb.log() [OK]
Hint: Log metrics as dictionaries: wandb.log({"metric": value}) [OK]
Common Mistakes:
  • Passing a float directly to wandb.log()
  • Forgetting to name the metric in a dict
  • Assuming wandb.init() needs entity always
5. You want to compare two models' training runs side-by-side using W&B. Which approach best helps you achieve this?
hard
A. Use separate projects for each model and avoid comparing runs
B. Train models without logging and manually compare saved files
C. Log both models in the same project and use the W&B dashboard to compare runs
D. Log only the best model to reduce clutter

Solution

  1. Step 1: Understand W&B project and run organization

    Logging both models in the same project allows easy side-by-side comparison in the dashboard.
  2. Step 2: Evaluate other options

    Not logging or using separate projects makes comparison harder; logging only one model loses data.
  3. Final Answer:

    Log both models in the same project and use the W&B dashboard to compare runs -> Option C
  4. Quick Check:

    Same project logging enables run comparison [OK]
Hint: Use one project for related runs to compare easily [OK]
Common Mistakes:
  • Not logging runs for comparison
  • Using separate projects unnecessarily
  • Logging only one model run