Explore Library
Code QuizAdvanced

Tracking Model Lineage

Spot the bug in a function that records model metadata and lineage.

Codepython
def register_model(model_id, dataset_version, metrics, lineage=[]):
    lineage.append(dataset_version)
    metadata = {
        "model_id": model_id,
        "dataset_version": dataset_version,
        "metrics": metrics,
        "lineage": lineage,
    }
    return metadata

m1 = register_model("m1", "ds-v1", {"acc": 0.9})
m2 = register_model("m2", "ds-v2", {"acc": 0.92})
print(m2["lineage"])  # expected: ['ds-v2']

Why does m2's lineage incorrectly contain ds-v1 as well as ds-v2?

Watch the code walkthrough

Watch on YouTube →