In short
Last month's model was better and nobody knows which data or settings made it. Versioning models, data and metrics together means you can always explain, compare and roll back.
Tracking which exact model artifact is deployed where, so you can roll back, compare and reproduce results — as important for ML as code versioning is for software.

Think of it like this
Project report drafts
Everyone has a folder with report_final, report_final2 and report_REALLY_final. Nobody knows which one the teacher saw. Proper versioning is a neat shelf of numbered folders, each with a note on what changed, so you can pull out any old draft in seconds.
Watch it happen
What a model registry keeps
1/4A registry stores every trained version of each model under one name.
The big ideas
What you need to know
Code in Git
Training code and configs live in Git. Every model should point to the commit that trained it.
Data versions too
Same code with different data gives a different model. Tools like DVC version large data files.
Track experiments
MLflow and similar tools log parameters, metrics and the model file for every run.
Rollback ready
Keep older production versions available so you can switch back quickly if something breaks.
See it in code
Walk through the code
1import mlflow2import mlflow.sklearn3from sklearn.datasets import load_iris4from sklearn.linear_model import LogisticRegression5 6X, y = load_iris(return_X_y=True)7mlflow.set_experiment("iris")8 9with mlflow.start_run():10 model = LogisticRegression(C=0.5, max_iter=500).fit(X, y)11 mlflow.log_param("C", 0.5)12 mlflow.log_metric("train_acc", model.score(X, y))13 mlflow.sklearn.log_model(model, "model")1/4Group runs under a named experiment.
Each run records its settings, score and model file. Run mlflow ui to browse and compare runs in your browser.
Save yourself the pain
Common mistakes
Oops
Naming files model_new.pkl and model_latest.pkl.
Do this instead
Use a tracking tool or a clear scheme with version, date and the Git commit.
Oops
Versioning the model but not the training data.
Do this instead
Record which data snapshot was used, so any version can be rebuilt and explained.
Your mission
Track five runs
Quick check
A new model version performs badly in production. What does good versioning let you do?
Go deeper
- 1Use a model registry (MLflow Model Registry or similar) to version a trained model.
- 2Practice tagging model versions with metadata: training data, metrics, date.
- 3Simulate a rollback: deploy a new version, detect a regression, revert to the previous one.
More topics at this stop
Stuck on this topic? Ask an Insider
Get 1:1 guidance from people who've walked this exact path — on the InsideEdge app.