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.

Die kontinuierliche Integration (Continuous Integration, CI) ist eine grundlegende Praxis der Softwareentwicklung, bei der die Entwickler ihre Codeänderungen in ein gemeinsames zentrales Repository einbringen. Anstatt in regelmäßigen Abständen umfangreiche Aktualisierungen zu integrieren, fördert CI kleine, regelmäßige Übertragungen, die automatisierte Build- und Testsequenzen auslösen. In dem dynamischen Bereich der Künstliche Intelligenz (KI) und Machine Learning (ML) ist diese Praxis ein Eckpfeiler von Machine Learning Operations (MLOps). Sie stellt sicher, dass Änderungen an Code, Daten oder Hyperparametern das bestehende System nicht oder die Leistung des Modells beeinträchtigen.

Kernprinzipien der KI im maschinellen Lernen

Das Hauptziel von CI ist es, Fehler so früh wie möglich detect , ein Konzept, das oft als "Failing schnell" bezeichnet wird. Dieser Prozess stützt sich stark auf Versionskontrollsysteme wie Git zur die Codebasis zu verwalten. Wenn ein Entwickler eine Änderung vornimmt, wird ein CI-Server - wie z. B. GitHub-Aktionen, GitLab CI oder Jenkins - automatisch eine neue Umgebung auf.

Für ML-Projekte werden in dieser Umgebung häufig Containerisierungswerkzeuge wie Docker, um die Konsistenz zwischen Entwicklung, Tests und Produktion zu gewährleisten. Die CI Pipeline führt dann eine Reihe von Prüfungen durch:

  • Code-Qualität: Durchführung von Linters und statischer Analyse zur Aufrechterhaltung von Codierungsstandards.
  • Unit-Tests: Überprüfen, ob sich einzelne Funktionen und Klassen wie erwartet verhalten.
  • Datenvalidierung: Sicherstellen, dass dass die Trainingsdaten dem erwarteten Schema und den Qualitätsstandards.
  • Modellbewertung: Ausführen eines trainierten Modells gegen einen Validierungsdatensatz, um sicherzustellen dass die Genauigkeit nicht unter einen bestimmten Schwellenwert fällt.

Implementierung von Leistungskontrollen

Ein entscheidender Aspekt der KI für ML ist die Vermeidung von "stillen Fehlern", bei denen der Code ohne Fehler läuft, aber die Intelligenz des Modells Intelligenz des Modells verschlechtert. Dies geschieht durch die Integration von Modellprüfung direkt in den CI-Workflow integriert.

Das folgende Python zeigt, wie ein CI-Skript eine YOLO11 Modell lädt und sicherstellt, dass seine Leistungsmetriken einem einem bestimmten Standard entsprechen, bevor der Code zusammengeführt werden kann.

from ultralytics import YOLO

# Load the model to be tested (e.g., a newly trained artifact)
model = YOLO("yolo11n.pt")

# Run validation on a standard dataset (e.g., coco8.yaml for quick CI checks)
results = model.val(data="coco8.yaml")

# Extract the mAP50-95 metric
map_score = results.box.map

# Assert performance meets the minimum requirement for the pipeline to pass
print(f"Current mAP: {map_score}")
if map_score < 0.30:
    raise ValueError("Model performance regression detected! mAP is too low.")

Anwendungsfälle in der Praxis

Die Anwendung der kontinuierlichen Integration ist in Branchen, in denen Zuverlässigkeit nicht verhandelbar ist, unerlässlich.

  • Autonomes Fahren: Bei der Entwicklung von autonomen Fahrzeugen steht die Sicherheit an erster Stelle. Ingenieure nutzen CI-Pipelines zum automatischen Testen von Objekterkennungsmodelle in Tausenden von Szenarien zu testen, z. B. die Erkennung von Fußgängern bei Nacht oder im Regen. Wenn eine Codeänderung dazu führt, dass die durchschnittliche Genauigkeit (mAP) sinkt, blockiert das System die Aktualisierung und verhindert so, dass potenziell gefährliche Software das Fahrzeug erreicht.
  • Medizinische Diagnostik: Für KI im Gesundheitswesen, insbesondere Aufgaben wie Tumorerkennung, ist Konsistenz der Schlüssel. Eine KI-Pipeline stellt sicher, dass Aktualisierungen von Bildvorverarbeitungsalgorithmen nicht versehentlich die die Eingabedaten nicht versehentlich in einer Weise das Diagnosemodell verwirrt. Durch die Durchführung von Regressionstests mit einem "goldenen Satz" medizinischer Bilder stellt das Team gewährleistet das Team, dass die klinische Genauigkeit beibehalten wird.

Kontinuierliche Integration vs. Kontinuierliche Bereitstellung (CD)

Obwohl oft zusammen als CI/CD bezeichnet, ist es wichtig, Continuous Integration von Continuous Deployment zu unterscheiden. Kontinuierlicher Bereitstellung.

  • Continuous Integration (CI) konzentriert sich auf den Entwicklungszyklus. Sie prüft, ob neuer Code korrekt in die bestehende Codebasis integriert wird und alle automatisierten Tests besteht. Sie erzeugt ein validiertes Artefakt (wie ein Docker-Image oder eine Modelldatei).
  • Continuous Deployment (CD) konzentriert sich auf den Release-Zyklus. Es nimmt das Artefakt, das von CI erzeugte Artefakt und stellt es automatisch in einer Produktionsumgebung bereit, beispielsweise auf einem Cloud-Server oder einem Edge-Gerät.

Zusammen bilden sie eine optimierte Pipeline, die den Lebenszyklus von Lebenszyklus von KI-Produkten beschleunigt und Teams eine schnellere Iteration und gleichzeitig hohe Qualitäts- und Sicherheitsstandards einzuhalten.

Werden Sie Mitglied der Ultralytics

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

Jetzt beitreten