CI/CD für KI-Projekte unterscheidet sich von CI/CD für traditionelle Software. Ich habe das schmerzlich erfahren, als mein perfekt konfiguriertes GitHub Actions-Pipeline ein KI-Modell-Update bereitstellte, das im Test einwandfrei funktionierte, aber in der Produktion mittelmäßige Ergebnisse lieferte.
Das Problem: Mein Test-Suite validierte die Logik des Codes, aber nicht das Verhalten des Modells. Der Code war korrekt. Die Ausgaben des Modells hatten sich aufgrund einer Änderung des Prompts verändert, die alle Code-Tests bestand, aber das Verhalten des Agenten grundlegend änderte, sodass meine Tests dies nicht erkennen konnten.
Traditionelles CI/CD geht von deterministischen Ausgaben aus: Bei der Eingabe X wird die Ausgabe Y erwartet. KI-Systeme haben probabilistische Ausgaben: Bei der Eingabe X wird eine Ausgabe erwartet, die meistens ungefähr Y entspricht, abhängig von der aktuellen Laune des Modells.
Wie sieht eine CI/CD-Pipeline für KI aus
Meine Pipeline hat fünf Schritte, im Vergleich zu den üblichen drei (Bau, Test, Bereitstellung):
Schritt 1: Bau. Standard. Abhängigkeiten installieren, wenn nötig kompilieren, die Anwendung packen. Nichts spezifisch für KI hier.
Schritt 2: Code-Tests. Standardisierte Unit- und Integrationstests. Macht der Code, was er tun soll? Sind die Funktionen korrekt? Antworten die APIs? Das erkennt Bugs in der Logik der Anwendung, testet jedoch nicht das Verhalten der KI.
Schritt 3: Verhaltenstests. Dies ist der Schritt, der spezifisch für KI ist. Test-Prompts an den Agenten senden und die Antworten bewerten. Nicht auf exakte Übereinstimmungen testen — sondern auf Verhaltenskriterien: „Erwähnt die Antwort die Schlüsselfakten? Ist der Ton angemessen? Hält sie sich an ihre Grenzen? Halluziniert sie?“
Ich habe 15 Verhaltenstestfälle, die die kritischsten Verhaltensweisen des Agenten abdecken. Jeder Test sendet einen Prompt und bewertet die Antwort anhand einer Checkliste. Ein Mensch hat die erwarteten Verhaltensweisen definiert; die CI-Pipeline überprüft, ob der Agent diesen Erwartungen weiterhin entspricht.
Schritt 4: Canary-Bereitstellung. Bereitstellung in einer Staging-Umgebung und eine kleine Prozentzahl des realen Traffics dorthin leiten. 30 Minuten überwachen. Wenn die Fehlerraten normal sind und die Qualität des Verhaltens aufrechterhalten wird, fortfahren. Andernfalls automatisch zurückrollen.
Schritt 5: Vollständige Bereitstellung. In Produktion bereitstellen. 2 Stunden lang mit verstärkten Alarmierungen überwachen.
Die Herausforderung von Verhaltenstests
Verhaltenstests sind der schwierigste Teil des CI/CD für KI, da die Antworten der KI variieren. Der gleiche Prompt kann jedes Mal unterschiedliche Antworten erzeugen. Wie formulieren Sie einen Test für etwas Nicht-Deterministisches?
Mein Ansatz: die Einschränkungen testen anstelle von spezifischen Ausgaben.
Anstelle von: „Die Antwort muss genau ‚Das Wetter in London beträgt 18 °C.‘ sein.“
Testen für: „Die Antwort muss London erwähnen. Die Antwort muss eine Temperatur enthalten. Die Antwort darf nicht behaupten, das Wetter in Echtzeit zu kennen (der Agent hat in diesem Test keinen Zugang zum Wetter).“
Dieser testbasierte Ansatz auf Einschränkungen ist robuster als der exakte Übereinstimmungstest. Er erkennt Verhaltenregressionen (der Agent hört auf, London zu erwähnen), ohne bei harmlosen Variationen zu scheitern (die Formulierung wechselt von einem Test zum anderen).
Prompt-Änderungen sind Bereitstellungen
Dies ist der größte Mentalitätswechsel für CI/CD in der KI: Eine Änderung des Prompts ist eine Bereitstellung, keine bloße Textänderung.
Die Änderung Ihres System-Prompts kann jede vom Agenten erzeugte Antwort verändern. Es ist das Äquivalent, jede Funktion Ihres Codes gleichzeitig umzustrukturieren. Dennoch ändern die meisten Menschen die Prompts sorglos, ohne Tests, Versionierung oder Rollback-Pläne.
Meine Regel: Prompt-Änderungen durchlaufen die gleiche CI/CD-Pipeline wie Code-Änderungen. Den Prompt in einem Branch ändern, Verhaltenstests ausführen, die Unterschiede überprüfen, in den Hauptbranch zusammenführen, über die Pipeline bereitstellen. Wenn die Verhaltenstests fehlschlagen, wird die Prompt-Änderung zurückgewiesen.
Überwachung nach der Bereitstellung
KI-Bereitstellungen erfordern eine andere Überwachung als traditionelle Bereitstellungen:
Qualitätsbewertung der Antworten. Ein leichter Bewerter, der jeder Antwort auf einer Skala von 1 bis 5 für Relevanz, Genauigkeit und Nützlichkeit Punkte gibt. Der Punktestand ist ungefähren (er wird auch von der KI bewertet, was an sich schon bedeutend ist), aber er erkennt dramatische Qualitätsverluste.
Halluzinationsrate. Verfolgen, wie oft der Agent Behauptungen aufstellt, die nicht auf seinen verfügbaren Daten basieren. Ein Anstieg der Halluzinationsrate nach einer Bereitstellung bedeutet, dass die Änderung des Prompts oder des Modells Fiktion eingeführt hat.
Benutzerfeedback. Daumen hoch/runter für die Antworten des Agenten. Das zuverlässigste Qualitätssignal, aber mit dem niedrigsten Volumen. Nützlich zur Trendanalyse über mehrere Tage, jedoch nicht zur Erkennung von Problemen innerhalb weniger Minuten.
Kosten pro Interaktion. Eine Bereitstellung, die den Agenten gesprächiger macht (längere Antworten, mehr Tool-Aufrufe), wird die Kosten erhöhen. Dies verfolgen, um unerwünschte Kostensteigerungen zu erkennen.
Der ROI von CI/CD für KI
Die Einrichtung dieser Pipeline hat mich etwa eine Woche gekostet. Sie aufrechtzuerhalten benötigt etwa 2 Stunden pro Monat (Aktualisierung der Verhaltenstests, Überprüfung der Canary-Bereitstellungen).
Seit ihrer Implementierung habe ich festgestellt: 3 Prompt-Änderungen, die die Qualität verschlechtert hätten, 2 Abhängigkeiten-Updates, die Tool-Integrationen kaputt gemacht haben, und 1 Lieferantenwechsel des Modells, der das Verhalten der Antworten geändert hat. Jede dieser Situationen wäre ein Produktionszwischenfall ohne die Pipeline gewesen.
Die Pipeline verlangsamt die Bereitstellungen nicht — die automatisierten Schritte dauern etwa 5 Minuten. Sie macht die Bereitstellungen sicherer. Und sichere Bereitstellungen sind die, die Sie tatsächlich regelmäßig durchführen, was bedeutet, dass Ihr Agent auf dem neuesten Stand bleibt, anstatt monatelang auf einer alten Version zu arbeiten, weil Sie Angst haben, ein Update durchzuführen.
🕒 Published: