<EbeneX/>
DevOps Architektur · Updated 11. März 2026

Model Versioning

Definition

Die systematische Verwaltung verschiedener Versionen von ML-Modellen – inklusive Gewichte, Hyperparameter, Trainingsdaten und Metriken für Reproduzierbarkeit.

Fortgeschritten 2 Min. Lesezeit EN: Model Versioning

Einfach erklärt

Model Versioning speichert jede Version deines ML-Modells mit allen Informationen, die nötig sind, um es zu reproduzieren. So kannst du jederzeit zurückgehen oder Versionen vergleichen.

Was wird versioniert?

model_v1.0/
├── model.pkl              # Modell-Gewichte
├── config.yaml            # Hyperparameter
├── requirements.txt       # Dependencies
├── training_data_hash.txt # Daten-Referenz
├── metrics.json           # Performance-Metriken
└── metadata.json          # Wer, wann, warum

Lifecycle einer Modellversion:

Development → Staging → Production → Archived
     │           │           │           │
   v0.1       v0.9        v1.0        v0.8
   (Experiment) (Testing)  (Live)     (Retired)

Technischer Deep Dive

MLflow Model Registry

import mlflow

# Training und Logging
with mlflow.start_run():
    model = train_model(X, y)
    
    # Metriken loggen
    mlflow.log_metric("accuracy", 0.95)
    mlflow.log_metric("f1_score", 0.93)
    
    # Modell registrieren
    mlflow.sklearn.log_model(
        model, 
        "model",
        registered_model_name="fraud_detector"
    )

# Version zu Production promoten
client = mlflow.tracking.MlflowClient()
client.transition_model_version_stage(
    name="fraud_detector",
    version=3,
    stage="Production"
)

DVC für große Dateien

# Modell tracken (nicht in Git, sondern in DVC)
dvc add models/model.pkl

# Erzeugt models/model.pkl.dvc (klein, geht in Git)
git add models/model.pkl.dvc
git commit -m "Add model v1.0"

# Modell in Remote Storage pushen
dvc push

# Alte Version auschecken
git checkout v0.9
dvc checkout

Hugging Face Hub

from huggingface_hub import HfApi

api = HfApi()

# Modell hochladen mit Version
api.upload_folder(
    folder_path="./my_model",
    repo_id="username/my-model",
    commit_message="v1.0: Improved accuracy"
)

# Bestimmte Version laden
from transformers import AutoModel
model = AutoModel.from_pretrained(
    "username/my-model",
    revision="v1.0"  # Oder commit hash
)

Metadata Schema

{
  "version": "1.0.0",
  "created_at": "2026-03-11T14:30:00Z",
  "created_by": "ml-pipeline",
  "training": {
    "dataset": "s3://data/train_v3.parquet",
    "dataset_hash": "abc123...",
    "epochs": 10,
    "learning_rate": 0.001
  },
  "metrics": {
    "accuracy": 0.95,
    "f1_score": 0.93,
    "latency_p99_ms": 45
  },
  "dependencies": {
    "python": "3.11",
    "torch": "2.2.0",
    "transformers": "4.38.0"
  },
  "stage": "production",
  "parent_version": "0.9.0"
}

Best Practices

AspektEmpfehlung
NamingSemantic Versioning + Stage
StorageS3, GCS, Azure Blob für Modelle
MetadataImmer mit Modell speichern
AutomationCI/CD für Promotion
RetentionPolicy für alte Versionen

Model Versioning ist wie Git für ML-Modelle: Du kannst jederzeit zu einer früheren Version zurückkehren, Änderungen nachvollziehen und verschiedene Experimente parallel verwalten.

Versioniert Modell-Gewichte, Code, Daten und Konfiguration

Ermöglicht Reproduzierbarkeit und Rollback

Zentral für MLOps und Compliance

Reproduzierbarkeit

Exakt dasselbe Modell später wieder erstellen

Rollback

Bei Problemen zur vorherigen Version zurückkehren

Sicherheit

Audit-Trail für regulierte Branchen

A/B Testing

Verschiedene Modellversionen vergleichen

Was sollte ich alles versionieren?

Modell-Gewichte, Training-Code, Hyperparameter, Trainingsdaten (oder Hash), Dependencies, Metriken. Alles was nötig ist, um das Modell zu reproduzieren.

Reicht Git für Model Versioning?

Für Code ja, für Modelle nein. Modell-Dateien sind zu groß für Git. Nutze Git LFS, DVC oder spezialisierte Tools wie MLflow.

Wie benenne ich Modellversionen?

Semantic Versioning (1.0.0) oder Timestamps (2026-03-11). Plus: Stage-Labels wie 'staging', 'production', 'archived'.

Dein persönliches Share-Bild für Instagram – 1080×1080px, bereit zum Posten.