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?