Wie unterscheiden sich CI/CD-Prozesse bei maschinellen Lernprojekten (ML) im Vergleich zur regulären Softwareentwicklung?
Der wichtigste Unterschied, den ML für den CI/CD-Prozess mit sich bringt, ist die Anerkennung der ML-Schulungspipeline als erstklassiger Bürger im Softwarebereich.
- Die CI/CD-Pipeline wird getrennt von der ML-Trainingspipeline behandelt. Es gibt Frameworks und Instruments, die auf die spezifischen Anforderungen des ML-Pipelinings zugeschnitten sind, wie z. B. KubeFlow Pipelines und Sagemaker Pipelines.
- Die ML-Trainingspipeline ist ein vom ML-Projekt generiertes Artefakt und sollte als solches innerhalb der CI/CD-Pipeline behandelt werden.
Aber was bedeutet das? Lassen Sie uns tiefer eintauchen …
Normalerweise besteht eine reguläre CI/CD-Pipeline aus mindestens drei Hauptschritten:
Schritt 1: Unit-Assessments – Code wird getestet, um sicherzustellen, dass Funktionen und Methoden die gewünschten Ergebnisse für vordefinierte Eingaben liefern.
Schritt 2: Integrationstests – Bestimmte Codekomponenten werden auf ihre Fähigkeit zur Integration in externe Systeme (z. B. Datenbanken) und in andere Teile des Codes selbst getestet.
Schritt 3: Lieferung – Das produzierte Artefakt wird je nach GitFlow-Stadium an eine Vorproduktions- oder Produktionsumgebung geliefert.
Wie ändert sich das, wenn es um ML-Trainingspipelines geht?
Schritt 1: Unit-Assessments – In einem ausgereiften MLOps-Setup sollten die Schritte innerhalb der ML-Trainingspipeline in ihren eigenen Umgebungen gekapselt und unabhängig testbar sein. Bei diesen Schritten handelt es sich im Wesentlichen um Codeteile, die aus Methoden und Funktionen bestehen.
Schritt 2: Integrationstests – Die ML-Trainingspipeline wird auf erfolgreiche Integration mit externen Systemen getestet, einschließlich der Verbindung zu einem Characteristic Retailer, der Extraktion von Daten daraus, der Übertragung des ML-Modellartefakts in die Mannequin Registry und der Protokollierung von Metadaten im ML Metadata Retailer. Dieser CI/CD-Schritt umfasst auch das Testen der Integration zwischen den einzelnen Schritten der ML-Trainingspipeline, beispielsweise die Übergabe von Validierungsdaten vom Trainingsschritt an den Bewertungsschritt.
Schritt 3: Lieferung – Die Pipeline wird je nach GitFlow-Stadium an eine Vorproduktions- oder Produktionsumgebung geliefert. Wenn es sich um eine Produktionsumgebung handelt, ist die Pipeline für kontinuierliches Coaching bereit. ML-Modelle können auf Advert-hoc-Foundation, in regelmäßigen Abständen oder wenn das bereitgestellte Modell Anzeichen einer Funktions-/Konzeptverschiebung aufweist, ausgelöst oder neu trainiert werden.
Insgesamt erfordert die Integration von ML-Trainingspipelines in den CI/CD-Prozess eine Anpassung der vorhandenen Schritte, um den besonderen Anforderungen und Integrationsherausforderungen von maschinellen Lernprojekten Rechnung zu tragen.