ML-Produktionssysteme: Bereitstellungstests

Jetzt können Sie das Einhornmodell bereitstellen, das die Darstellung von Einhörnern vorhersagt. Bei der Bereitstellung sollte Ihre ML-Pipeline ausgeführt, aktualisiert und problemlos ausgeliefert werden. Wenn die Bereitstellung eines Modells so einfach wäre, eine große Schaltfläche Deploy (Bereitstellen). Leider ist ein komplettes ML-System Tests erforderlich für:

  • Eingabedaten werden überprüft.
  • Feature Engineering wird validiert.
  • Qualität neuer Modellversionen wird geprüft.
  • Bereitstellungsinfrastruktur wird validiert.
  • Testen der Integration der Pipelinekomponenten

Viele Softwareentwickler bevorzugen die testgesteuerte Entwicklung (testgesteuerte Entwicklung, TDD). Bei TDD wird Software Techniker*innen entwickeln Tests, bevor sie die „realen“ Quellcode verfügbar. TDD kann beim maschinellen Lernen jedoch schwierig sein. Beispielsweise können Sie vor dem Training Ihres Modells keinen Test schreiben, um den Verlust. Stattdessen müssen Sie zuerst den erreichbaren Verlust im Modell ermitteln. und dann neue Modellversionen gegen einen erreichbaren Verlust testen.

Informationen zum Einhornmodell

Dieser Abschnitt bezieht sich auf das Einhorn-Modell. Dazu sollten Sie Folgendes wissen:

Sie verwenden maschinelles Lernen, um ein Klassifizierungsmodell zu erstellen, das Aussehen von Einhorn. Ihr Dataset enthält 10.000 Darstellungen von Einhörnern und 10.000 nicht dabei gewesene Einhörner. Das Dataset enthält den Standort, Tageszeit, Höhe, Temperatur, Luftfeuchtigkeit, Baumbedeckung, Anwesenheit eines Regenbogen und einige andere Funktionen.

Modellaktualisierungen mit reproduzierbarem Training testen

Vielleicht möchten Sie Ihr Einhornmodell weiter verbessern. Nehmen wir beispielsweise an, führen Sie zusätzliches Feature Engineering für eine bestimmte Funktion durch und das Modell neu zu trainieren, um bessere (oder zumindest dieselben) Ergebnisse zu erzielen. Leider ist es manchmal schwierig, das Modelltraining zu reproduzieren. Folgen Sie diesen Empfehlungen, um die Reproduzierbarkeit zu verbessern:

  • Sie setzen den Zufallszahlengenerator deterministisch ein. Weitere Informationen finden Sie unter Randomisierung in Daten. Generation

  • Initialisieren Sie Modellkomponenten in einer festen Reihenfolge, um sicherzustellen, dass die Komponenten mit der gleichen Zufallszahl aus dem Zufallszahlengenerator. ML-Bibliotheken erfüllen diese Anforderung in der Regel automatisch.

  • Ermitteln Sie den Durchschnitt aus mehreren Durchläufen des Modells.

  • Nutzen Sie die Versionsverwaltung, auch für vorläufige Iterationen, Code und Parameter genau zu bestimmen.

Auch wenn Sie diese Richtlinien einhalten, können andere Quellen noch vorhanden sind.

Aufrufe der Machine Learning API testen

Wie testen Sie Updates für API-Aufrufe? Sie könnten Ihr Modell neu trainieren, ist das zeitintensiv. Schreiben Sie stattdessen einen Unittest, um zufällige Eingabedaten zu generieren. und führen einen einzigen Schritt des Gradientenverfahrens aus. Wenn dieser Schritt ohne -Fehler, haben Aktualisierungen der API Ihr Modell wahrscheinlich nicht ruiniert.

Integrationstests für Pipelinekomponenten schreiben

In einer ML-Pipeline können Änderungen an einer Komponente zu Fehlern in anderen Komponenten. Prüfen Sie, ob die Komponenten zusammenarbeiten, indem Sie eine Integrationstest, bei dem die gesamte Pipeline von Anfang bis Ende ausgeführt wird.

Neben der kontinuierlichen Durchführung von Integrationstests sollten Sie Integrationstests durchführen. wenn neue Modelle und Softwareversionen veröffentlicht werden. Die langsame Ausführung des ganze Pipeline erschwert das Testen kontinuierlicher Integration. So führen Sie die Integration aus: schneller testen, mit einer Teilmenge der Daten oder mit einem einfacheren Modell trainieren. Details von Ihrem Modell und Ihren Daten abhängig. Um eine lückenlose Abdeckung zu erreichen, müssen Sie die schnellere Tests, sodass sie mit jeder neuen Modell- oder Softwareversion ausgeführt werden. In der Zwischenzeit würden Ihre langsamen Tests kontinuierlich im Hintergrund ausgeführt.

Modellqualität vor der Bereitstellung validieren

Bevor Sie eine neue Modellversion an die Produktion übergeben, testen Sie zwei Arten von Qualitätsmängeln:

  • Plötzliche Beeinträchtigung. Ein Fehler in der neuen Version könnte in geringerer Qualität. Neue Versionen durch Qualitätsüberprüfung validieren gegenüber der Vorgängerversion.

  • Langsame Verschlechterung. Ihr Test auf plötzliche Verschlechterung erkennt möglicherweise kein langsames Verschlechterung der Modellqualität über mehrere Versionen hinweg. Achten Sie stattdessen darauf, die Vorhersagen des Modells für ein Validierungs-Dataset einen festen Schwellenwert erreichen. Wenn Ihr Validierungs-Dataset weicht von Live-Daten ab. Aktualisieren Sie dann Ihre Validierung. Dataset und stellen Sie sicher, dass Ihr Modell den gleichen Qualitätsschwellenwert erreicht.

Kompatibilität der Modellinfrastruktur vor der Bereitstellung prüfen

Wenn Ihr Modell schneller aktualisiert wird als Ihr Server, hat Ihr Modell möglicherweise unterschiedliche Softwareabhängigkeiten von Ihrem Server, wodurch möglicherweise Inkompatibilitäten. Achten Sie darauf, dass die vom Modell verwendeten Vorgänge in indem Sie das Modell in einer Sandbox-Version des Servers bereitstellen.