The ML Lifecycle
Version Everything, or It Never Happened
9 min+90 XPStep 1/10
Git is not enough
In classical software, versioning the code buys reproducibility: same commit, same binary, same behavior. In ML the model is a function of code × data × config × luck. Same commit on a different data snapshot produces a different model, every time.
So the on-call question 'what exactly trained the model in prod right now?' needs four answers, not one. If you can't produce all four, you're one incident away from archaeology — digging through Slack to reconstruct what somebody thinks they ran.
warning
'I think it was trained on the January dump' is not versioning. It's a rumor with a timestamp.