Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Model, Data & Code Tracking

When you train a model, it is worth pausing to ask whether — six months from now — you could answer:

Without tracking, those answers live in memory, filenames, or convention, and diverge quickly across experiments and collaborators. The pages in this section describe a progressive stack: start with Git, and layer on additional tools as your experiments grow in scope.

What to track

LayerToolWhen
CodeGit / GitHubAlways
DataData Version Control (DVC)Files over 100 MB, or data that changes across runs
Models & experimentsMLflow or Weights & BiasesWhen you need to compare runs by parameters and metrics
ServingDocker on GHCR, HuggingFaceWhen you want to hand a working model to collaborators or users

Pages in this section

Decision tree

The fastest way to pick a stack is to walk through the questions below.

Recommendations by use case

Use caseRecommended stack
Solo researcher, local developmentGit (commit small models directly) + MLflow
Team collaboration, remote membersW&B (+ DVC if data over 100 MB)
Strict data lineage across runsDVC with MLflow or Weights & Biases (W&B)
On-premise / no outbound networkMLflow + DVC with a local or shared-storage remote
Sharing a model with collaboratorsDocker image on GHCR
Publishing a model publiclyHuggingFace

Reference codebase

Every example on these pages comes from chicago-aiscience/workshop-sst — a working SST-to-ENSO prediction model with DVC, MLflow, W&B, and a Docker-served prediction API integrated end-to-end.