Continuous Integration
Continuous Integration (CI) ist eine Softwareentwicklungspraxis, bei der Code-Änderungen automatisch getestet und in ein gemeinsames Repository integriert werden. Im ML-Kontext wird daraus ML CI/CD — mit spezifischen Herausforderungen.
Klassische CI (Jenkins, GitHub Actions, GitLab CI) prüft bei jedem Code-Commit automatisch: Kompiliert der Code? Bestehen die Unit Tests? Ist die Code-Qualität akzeptabel? Das Ergebnis: schnelles Feedback, weniger Integrationsprobleme, stabilere Software.
ML-Projekte erweitern das Konzept um datenspezifische Dimensionen. Neben Code müssen auch Daten, Modelle und Konfigurationen versioniert und getestet werden. Hat sich die Datenverteilung geändert (Data Drift)? Ist die Modellperformance auf dem Testset stabil? Sind die Feature-Pipelines konsistent?
MLOps-Tools wie MLflow, DVC (Data Version Control), Weights & Biases und Kubeflow bringen CI/CD-Prinzipien in die ML-Welt. CML (Continuous Machine Learning) automatisiert Model Training und Evaluation als Teil der CI-Pipeline.
Die Herausforderung: ML-Tests sind nicht binär. Ein Code-Test ist bestanden oder nicht. Ein Modell-Test ist graduell — 0.1% weniger Accuracy kann akzeptabel sein oder katastrophal, je nach Kontext. Automatisierte Schwellenwerte, A/B-Tests und Shadow Deployments (neues Modell läuft parallel zum alten, ohne Nutzer zu beeinflussen) sind Strategien, um diese Unsicherheit zu managen.