Model Versioning Infrastructuur: ML-Artefacten Beheren op Schaal

MLflow 3.0 breidt registry uit voor generatieve AI en AI-agents—het verbinden van modellen met codeversies, prompts, evaluatieruns en deployment-metadata. Model versioning volgt nu niet alleen gewichten maar...

Model Versioning Infrastructuur: ML-Artefacten Beheren op Schaal

Model Versioning Infrastructuur: ML-Artefacten Beheren op Schaal

Bijgewerkt op 11 december 2025

December 2025 Update: MLflow 3.0 breidt registry uit voor generatieve AI en AI-agents—het verbinden van modellen met codeversies, promptconfiguraties, evaluatieruns en deployment-metadata. Model versioning volgt nu niet alleen gewichten maar ook fine-tuned adapters, prompttemplates en retrieval-configuraties. LLM's met honderden GB aan gewichten vereisen gespecialiseerde infrastructuur voorbij Git.

MLflow 3.0 heeft zijn model registry uitgebreid om generatieve AI-applicaties en AI-agents te ondersteunen, waarbij modellen worden verbonden met exacte codeversies, promptconfiguraties, evaluatieruns en deployment-metadata.¹ Deze evolutie weerspiegelt een fundamentele verschuiving in wat "model versioning" betekent—van het volgen van simpele pickle-bestanden naar het beheren van complexe systemen met meerdere fine-tuned adapters, prompttemplates en retrieval-configuraties. Organisaties die productie-AI draaien hebben infrastructuur nodig die niet alleen gewichten versioned, maar de volledige context die nodig is om modellen betrouwbaar te reproduceren en te deployen.

In tegenstelling tot traditionele softwareversioning omvat ML-model versioning het volgen van massieve binaire bestanden, complexe trainingsconfiguraties, datasetversies en evaluatiemetrieken—terwijl tegelijkertijd aan reproduceerbaarheid en compliance-eisen wordt voldaan.² De uitdaging wordt groter voor LLM's waar fine-tuned modellen snel prolifereren en prompt engineering een extra laag van artefacten toevoegt die versiebeheer vereisen.

Waarom model versioning ertoe doet

Productie-ML-systemen falen stilletjes. Modellen degraderen in de loop van de tijd, fine-tuned versies presteren onverwacht slecht, en zonder goede versioning kunnen teams niet identificeren wat er is veranderd of terugdraaien naar bekende werkende states.

De versioning-uitdaging

Binaire artefacten: Modelgewichten variëren van megabytes voor klassieke ML tot honderden gigabytes voor large language models. Git kan deze bestanden niet efficiënt verwerken; gespecialiseerde infrastructuur wordt essentieel.

Configuratie-explosie: Een enkel model omvat trainingscode, hyperparameters, datapreprocessing, feature engineering en deploymentconfiguratie. Elke wijziging beïnvloedt potentieel het modelgedrag.

Dataset-afhankelijkheid: Modelkwaliteit hangt af van trainingsdata. Zonder dataset versioning wordt het reproduceren van een model onmogelijk, zelfs met identieke code.

Evaluatiekoppeling: Prestatiemetrieken op specifieke testsets bepalen deploymentbeslissingen. Die metrieken moeten permanent gekoppeld zijn aan modelversies.

Bedrijfsvereisten

Reproduceerbaarheid: Regelgevingsvereisten in financiën en gezondheidszorg eisen de mogelijkheid om exacte modelversies te recreëren die op elk moment zijn gedeployed.³

Controleerbaarheid: Compliance vereist het traceren van gedeployde modellen terug naar trainingsdata, code en besluitvormers die deployment hebben goedgekeurd.

Rollback-mogelijkheid: Productie-incidenten vereisen het terugdraaien naar eerdere modelversies binnen minuten, niet uren.

Samenwerking: Meerdere data scientists die aan hetzelfde model werken hebben duidelijk eigenaarschap nodig en conflictoplossing voor modelartefacten.

Model registry-architectuur

Een model registry dient als de centrale repository die de lifecycle van ML-modellen beheert van ontwikkeling tot productie:⁴

Kerncomponenten

Versiebeheer: Elke modelversie krijgt een unieke identifier, typisch een combinatie van modelnaam met semantische versie (v1.2.3) of hash-gebaseerde identifiers.

Metadata-opslag: Trainingsparameters, evaluatiemetrieken, data lineage en deploymentgeschiedenis worden naast modelartefacten opgeslagen.

Artefactopslag: Modelgewichten, configuratiebestanden en gerelateerde assets worden opgeslagen in schaalbare object storage (S3, GCS, Azure Blob).

Lifecycle management: Modellen doorlopen fases—development, staging, productie, gearchiveerd—met governance-controles bij elke transitie.

Registry-workflow

Training Job → Register Model → Staging Review → Production Deployment
     ↓              ↓               ↓                    ↓
  Metrics      Version ID      Approvals          Traffic Routing
  Logged       Generated       Recorded            Monitored

Registratie: Trainingspipelines registreren automatisch succesvolle modellen met bijbehorende metadata: - Training run ID en experiment-context - Hyperparameters en configuratie - Evaluatiemetrieken op held-out data - Dataversiereferenties - Code commit hash

Staging: Kandidaatmodellen ondergaan validatie vóór productie: - Geautomatiseerde tests tegen benchmarks - Menselijke review voor gevoelige applicaties - A/B-testing tegen huidig productiemodel - Performance profiling voor inference-latency

Promotie: Goedgekeurde modellen worden naar productie gedeployed: - Verkeer verschuift geleidelijk naar nieuwe versie - Monitoring detecteert degradatie - Rollback wordt getriggerd als metrieken verslechteren

Platformvergelijking

MLflow

MLflow biedt de meest uitgebreide open-source model registry:⁵

Model Registry-features: - Gecentraliseerde modelopslag met versioning en aliasing - Lineage tracking (experiment → run → model) - Fase-transities (Staging, Production, Archived) - Annotaties en metadata-tagging - REST API voor programmatische toegang

MLflow 3.0-verbeteringen: - LoggedModel-entiteit verbindt modellen met code, prompts en evaluaties - Verbeterde tracing voor generatieve AI-applicaties - Agent-ondersteuning voor complexe AI-systemen - Databricks biedt managed enterprise-versie

Voorbeeldworkflow:

import mlflow

# Log model during training
with mlflow.start_run():
    mlflow.log_params({"learning_rate": 0.001, "epochs": 10})
    mlflow.log_metrics({"accuracy": 0.95, "f1": 0.92})
    mlflow.pyfunc.log_model("model", python_model=trained_model)

# Register to model registry
model_uri = f"runs:/{run_id}/model"
mlflow.register_model(model_uri, "fraud-detection-model")

# Promote to production
client = mlflow.tracking.MlflowClient()
client.transition_model_version_stage(
    name="fraud-detection-model",
    version=3,
    stage="Production"
)

Beste voor: Organisaties die uitgebreide MLOps-mogelijkheden willen met open-source flexibiliteit.

Weights & Biases

W&B legt nadruk op experiment tracking met sterke artefact versioning:⁶

Belangrijkste mogelijkheden: - Experiment tracking met rijke visualisatie - Artefact versioning met lineage-grafen - Model registry met aliassen (@champion, @production) - Samenwerkingsfeatures voor teamworkflows - Integratie met belangrijke ML-frameworks

Artefact versioning:

import wandb

run = wandb.init(project="nlp-models")

# Log model as artifact
artifact = wandb.Artifact("bert-classifier", type="model")
artifact.add_file("model.pt")
run.log_artifact(artifact)

# Link to registry with alias
run.link_artifact(artifact, "model-registry/bert-classifier",
                  aliases=["latest", "production"])

Overwegingen: Cloud-first architectuur vereist het verzenden van data naar externe servers, wat kan conflicteren met strikte dataprivacy-eisen.

Beste voor: Teams die prioriteit geven aan experiment tracking en samenwerking met minimale setup-overhead.

DVC (Data Version Control)

DVC breidt Git uit voor grote bestanden en datasets:⁷

Architectuur: - Git-achtige commando's (dvc add, dvc push, dvc pull) - Metadatabestanden worden in Git gevolgd, grote bestanden in remote storage - Pipeline-definities voor reproduceerbare experimenten - Meerdere storage backends (S3, GCS, Azure, SSH)

Recente ontwikkeling: DVC is toegetreden tot de lakeFS-familie, waarbij lakeFS dient als enterprise-standaard voor petabyte-schaal data versioning.

Voorbeeldworkflow:

# Add large model file to DVC
dvc add models/bert-finetuned.pt

# Commit metadata to Git
git add models/bert-finetuned.pt.dvc .gitignore
git commit -m "Add fine-tuned BERT model v1.0"

# Push to remote storage
dvc push

# Reproduce from any commit
git checkout v1.0
dvc checkout

Beste voor: Teams met bestaande Git-workflows die lichtgewicht data- en model versioning willen.

Cloud-native registries

Vertex AI Model Registry (Google Cloud):⁸ - Native GCP-integratie - Directe deployment naar endpoints - Automatische lineage tracking - Integratie met Vertex AI Pipelines

Amazon SageMaker Model Registry: - AWS-ecosysteemintegratie - Goedkeuringsworkflows - Cross-account model sharing - Integratie met SageMaker Pipelines

Azure ML Model Registry: - Azure-integratie - MLflow-compatibiliteit - Managed endpoints deployment

Beste voor: Organisaties die toegewijd zijn aan specifieke cloudproviders en native integratie willen.

LLM-specifieke overwegingen

Large language models presenteren unieke versioning-uitdagingen voorbij traditionele ML:⁹

Wat te versionen

Basismodellen: Volg welk foundation model (Llama 3.1-8B, GPT-4, Claude) als startpunt dient.

Fine-tuned gewichten: Volledige fine-tuning produceert volledig nieuwe gewichtsbestanden; LoRA-adapters produceren kleine delta-bestanden die verwijzen naar basismodellen.

Prompttemplates: Systeemprompts, few-shot voorbeelden en instructieformaten beïnvloeden het modelgedrag significant.

Retrieval-configuraties: RAG-systemen vereisen versioning van embedding-modellen, chunking-strategieën en retrieval-parameters.

Semantische versioning voor LLM's

Adopteer semantische versioning om de significantie van wijzigingen te communiceren:¹⁰

Major versie (v2.0.0): - Ander basismodel - Architectuurwijzigingen - Breaking API-wijzigingen

Minor versie (v1.3.0): - Fine-tuning op nieuwe data - Significante prestatieverbeteringen - Nieuwe mogelijkheden toegevoegd

Patch versie (v1.2.1): - Bugfixes - Kleine optimalisaties - Configuratie-updates

Adapter management

LoRA en QLoRA creëren prolifererende adapterbestanden die systematische organisatie vereisen:

base-model/
├── llama-3.1-8b/
│   └── v1.0.0/
│       ├── weights/
│       └── config.json
└── adapters/
    ├── customer-support-v1/
    │   ├── adapter_model.bin
    │   └── adapter_config.json
    ├── code-generation-v2/
    └── summarization-v1/

Adapter versioning-strategie: - Version adapters onafhankelijk van basismodellen - Documenteer compatibele basismodelversies - Volg trainingsdata en hyperparameters per adapter - Maak snel wisselen tussen adapters mogelijk in serving

Deploymentstrategieën

Canary deployments

Route een klein verkeerspercentage naar een nieuwe modelversie vóór volledige uitrol:¹¹

# Kubernetes canary configuration
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
spec:
  http:
  - route:
    - destination:
        host: model-service
        subset: v1
      weight: 90
    - destination:
        host: model-service
        subset: v2
      weight: 10

Proces: 1. Deploy nieuwe versie naast productie 2. Route 5-10% van verkeer naar nieuwe versie 3. Monitor metrieken (latency, foutpercentage, business metrics) 4. Verhoog verkeer geleidelijk als metrieken standhouden 5. Voltooi uitrol of rollback op basis van resultaten

Tooling: Istio, Argo Rollouts en Flagger automatiseren progressive delivery met automatische rollback bij metriekdegradatie.

A/B-testing

Vergelijk modelversies om business impact te meten:¹²

Belangrijkste verschillen met canary: - Canary detecteert problemen (minuten tot uren) - A/B-testing meet impact (dagen tot weken) - Statistische significantie vereist voor A/B-conclusies

Implementatie: - Hash user ID's voor consistente routing - Volg conversiemetrieken per variant - Run totdat statistische significantie is bereikt - Documenteer resultaten voor toekomstige referentie

Shadow deployment

Route productieverkeer naar nieuw model zonder responses te serveren:

Voordelen: - Test met echte verkeerspatronen - Vergelijk outputs zonder gebruikersimpact - Identificeer edge cases vóór deployment

Implementatie: - Productiemodel serveert responses - Shadow-model verwerkt dezelfde requests - Outputs worden vergeleken maar niet aan gebruikers geretourneerd - Discrepanties triggeren onderzoek

Rollback-procedures

Elke deployment heeft rollback-mogelijkheid nodig:

Onmiddellijke rollback:

# Traffic routing rollback
kubectl set image deployment/model-service model=model:v1.2.0

# Feature flag rollback
feature_flags.disable("new_model_v2")

Registry-gebaseerde rollback: ```py

[Content truncated for translation]

Offerte aanvragen_

Vertel ons over uw project en wij reageren binnen 72 uur.

> TRANSMISSIE_VOLTOOID

Aanvraag Ontvangen_

Bedankt voor uw aanvraag. Ons team zal uw verzoek beoordelen en binnen 72 uur reageren.

IN WACHTRIJ VOOR VERWERKING