Yolo Vision Shenzhen
Shenzhen
Jetzt beitreten
Glossar

Kontinuierliche Integration (CI)

Verbessern Sie KI/ML-Workflows mit Continuous Integration. Automatisieren Sie Tests, verbessern Sie die Codequalität und optimieren Sie die Modellentwicklung mühelos.

Continuous Integration (CI) ist eine Softwareentwicklungspraxis, bei der Entwickler ihre Codeänderungen häufig in ein zentrales Repository zusammenführen, woraufhin automatisierte Builds und Tests durchgeführt werden. Das Hauptziel von CI ist es, Integrationsprobleme frühzeitig zu erkennen, die Codequalität zu verbessern und den Entwicklungsablauf zu rationalisieren. Im Kontext von Künstlicher Intelligenz (KI) und Maschinellem Lernen (ML) geht CI über traditionelle Code-Checks hinaus und umfasst die Validierung von Daten, Modellen und der Gesamtleistung der Pipeline, was eine kritische Komponente von Machine Learning Operations (MLOps) darstellt.

Wichtige Prinzipien der kontinuierlichen Integration

Der CI-Prozess basiert auf einer Grundlage von Automatisierung und häufigen Iterationen. Entwickler übertragen kleine, häufige Änderungen an ein gemeinsames Repository unter Verwendung eines Versionskontrollsystems wie Git. Jeder Push löst einen automatisierten Workflow oder eine Pipeline aus, die mehrere wichtige Schritte ausführt:

  • Automatisierter Build: Das System kompiliert den Code automatisch, um sicherzustellen, dass er korrekt integriert wird. Für ML-Projekte kann dies das Einrichten der Umgebung mithilfe von Containerisierungs-Tools wie Docker beinhalten.
  • Automatisierte Tests: Eine Reihe von Tests wird durchgeführt, um die neuen Änderungen zu validieren. Dazu gehören Unit-Tests für die Codelogik, Integrationstests für Komponenteninteraktionen und spezielle Tests für ML, wie z. B. Datenvalidierung und Modellbewertung.
  • Schneller Feedback-Loop: Wenn ein Schritt in der Pipeline fehlschlägt, wird das Entwicklungsteam sofort benachrichtigt. Dies ermöglicht es ihnen, Probleme schnell zu beheben, bevor sie komplexer werden und in die Hauptcodebasis integriert werden.

CI für maschinelles Lernen (CI4ML)

Die Anwendung von CI auf Machine-Learning-Projekte bringt besondere Herausforderungen mit sich. ML-Systeme umfassen nicht nur Code, sondern auch Daten und trainierte Modelle, die ebenfalls versioniert und validiert werden müssen. Eine effektive CI-Pipeline für ein ML-Projekt, wie z. B. eines mit einem Ultralytics YOLO-Modell, umfasst zusätzliche Schritte:

Anwendungsfälle in der Praxis

  1. Entwicklung des autonomen Fahrens: Ein Team, das an einem Objekterkennungs-Modell für autonome Fahrzeuge arbeitet, verwendet eine CI-Pipeline. Wenn ein Entwickler Code einreicht, um die Fähigkeit des Modells zur Erkennung von Fußgängern bei Nacht zu verbessern, wird die Pipeline automatisch ausgelöst. Sie führt Unit-Tests durch, trainiert eine schlanke Version des YOLO11-Modells auf einem Testdatensatz neu und bewertet dessen mAP. Wenn die Genauigkeit nicht sinkt und alle Tests bestanden sind, wird die Änderung zur Zusammenführung freigegeben. Beliebte CI-Tools wie GitHub Actions oder Jenkins werden häufig verwendet, um diese Workflows zu automatisieren.
  2. Medizinische Bildanalyse: In einem System, das für die Tumorerfassung in medizinischen Bildern entwickelt wurde, könnte ein Data Scientist neue Augmented Data hinzufügen, um die Robustheit zu verbessern. Die CI-Pipeline validiert das neue Datenformat und die Verteilung. Anschließend wird ein Validierungslauf mit einem vortrainierten Modell ausgelöst, um sicherzustellen, dass die Vorhersagen des Modells auf einem „Golden Dataset“ konsistent bleiben, wodurch unerwartetes Verhalten in der Produktion verhindert wird. Dieser Prozess trägt dazu bei, hohe Zuverlässigkeitsstandards aufrechtzuerhalten, die für die KI im Gesundheitswesen entscheidend sind.

Continuous Integration vs. Continuous Delivery/Deployment (CD)

Obwohl eng verwandt, unterscheidet sich CI von Continuous Delivery und Continuous Deployment (CD).

  • Continuous Integration (CI): Konzentriert sich auf die häufige Integration und das automatisierte Testen von Codeänderungen. Das Ergebnis ist ein validierter Build, der für die nächste Phase bereit ist. Ultralytics verwendet CI, um alle Pull-Requests zu testen, bevor sie zusammengeführt werden.
  • Continuous Delivery (CD): Erweitert CI, indem jede validierte Änderung automatisch für die Freigabe in einer Staging- oder Produktionsumgebung vorbereitet wird. Die endgültige Modelldistribution in die Produktion erfordert jedoch eine manuelle Genehmigung. Dieser Ansatz wird in Anleitungen von Quellen wie Atlassian detailliert beschrieben.
  • Continuous Deployment (CD): Geht noch einen Schritt weiter, indem jede validierte Änderung automatisch und ohne menschliches Zutun direkt in der Produktion bereitgestellt wird. Dies stellt den höchsten Automatisierungsgrad im Software-Release-Lebenszyklus dar.

Zusammen sind CI- und CD-Praktiken grundlegend für eine robuste MLOps-Strategie, die darauf abzielt, die Entwicklung und den Betrieb von Machine-Learning-Systemen von der anfänglichen Experimentierphase bis zur Bereitstellung und kontinuierlichen Modellüberwachung zu vereinheitlichen.

Treten Sie der Ultralytics-Community bei

Gestalten Sie die Zukunft der KI mit. Vernetzen Sie sich, arbeiten Sie zusammen und wachsen Sie mit globalen Innovatoren

Jetzt beitreten
Link in die Zwischenablage kopiert