model versioning
Model versioning systematically tracks different versions of trained machine learning models along with their associated metadata — training data, hyperparameters, evaluation metrics, code, and deployment history — enabling reproducibility, comparison, rollback, and governance throughout the model lifecycle. Model versioning is a core practice in MLOps that addresses the challenge of managing the complex, interrelated artifacts produced during iterative model development. A comprehensive model versioning system tracks: model artifacts (serialized model weights and architecture — the trained model files), training code (the exact source code used for training — git commit hash), training data version (the specific dataset snapshot used — linked to data versioning), hyperparameters (all configuration used for training — learning rate, epochs, architecture choices), environment specification (Python version, library versions, GPU drivers — for reproducibility), evaluation metrics (performance on validation and test sets — accuracy, loss, domain-specific metrics), training metadata (training time, hardware used, cost, convergence plots), and deployment information (which version is currently serving, deployment history, A/B test results). Model registry platforms include: MLflow Model Registry (open-source — model staging with lifecycle stages: None, Staging, Production, Archived), Weights & Biases (experiment tracking with model versioning and comparison), DVC (Data Version Control — git-based versioning for models and data), Neptune.ai (experiment tracking and model management), Vertex AI Model Registry (Google Cloud), SageMaker Model Registry (AWS), and Azure ML Model Registry (Microsoft). Best practices include: immutable model artifacts (never overwrite a model version — always create new versions), lineage tracking (recording the complete chain from data to training code to model to deployment), approval workflows (requiring review before promoting models to production), A/B testing integration (comparing new model versions against baselines in production), and automated retraining pipelines (triggering new model versions when performance degrades or data drifts).