Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
5. Kontinuierliche Integration
Das ML-System führt Tests durch, um zu überprüfen, ob das System von Anfang bis Ende funktioniert, und sucht nach möglichen Fehlerquellen. Tests werden beim Festschreiben automatisch ausgeführt, und längere Tests werden nach einem festen Zeitplan ausgeführt. Tests überprüfen traditionelle Bereiche der Softwareentwicklung, z. B. auf Einheiten- und Systemebene. Darüber hinaus erfassen Tests die Besonderheiten von ML, indem sie Daten, Funktionen und das Modell überprüfen.
5.1 Prüfungen des lokalen Codes |
Bevor der Code in ein zentrales Code-Repository übertragen wird, führen Entwickler lokal Prüfungen wie grundlegende Komponententests und statische Analysen durch. Durch das Ausführen dieser Prüfungen vor dem Commit wird die allgemeine Codequalität verbessert und Probleme werden erkannt, bevor sie in die Versionskontrolle gelangen. |
5.2 Statische Codeanalyse |
Das zentrale Code-Repository verfügt über Tools zur statischen Codeanalyse, die bei einem Commit schnell ausgeführt werden können. Diese Tools sollten den Codestil und die Formatierung verbessern. Es sollte auch nach häufigen Sicherheitslücken im Quell- und Infrastrukturcode, häufigen Fehlern und anderen Schwachstellen im Code suchen. |
5.3 Datenqualitätstests |
Bei Datenqualitätstests sollte zumindest überprüft werden, ob die Daten nicht gegen ein festes Schema verstoßen. Ein umfassenderer Ansatz besteht darin, Datenstatistiken bei der Datenaufnahme zu berechnen, Beschränkungen für die Daten festzulegen und Tests anhand dieser Daten durchzuführen. Es ist möglich, Datenqualitätstests unabhängig oder als Teil der Pipeline einzurichten. Die Statistiken und Einschränkungen werden für die Überwachung wiederverwendet. |
5.4 Funktionstests |
Im Rahmen einer vollständigen Pipeline wird die Bedeutung von Funktionen generiert. Feature-Tests bestätigen, dass sich die Bedeutung von Merkmalen oder die Art und Weise, wie das Modell Merkmalswerte zuweist, nicht ändert. Feature-Tests können in die Überwachung einfließen, da sie Verstöße in den Eingaben eines Modells melden und nachverfolgen können. |
5.5 Komponententests |
Unit-Tests für den gesamten Code — Modell, Anwendung und Infrastruktur — werden vor dem Commit und beim Commit ausgeführt. Jeder Komponententest überprüft einen wichtigen Teil des Codes, um zu bestätigen, dass er erwartungsgemäß funktioniert. Im Fall von ML-Code können Tests auf algorithmische Korrektheit ausgeführt werden. |
5.6 Integrationstests |
Ein Integrationstest verifiziert, dass die Pipeline erfolgreich durchgängig läuft, einschließlich der Einrichtung der zugehörigen Infrastruktur für die Pipeline. Dieser Test bestätigt, dass das System funktioniert und wie erwartet protokolliert wird. Wenn die Bereitstellung separat erfolgt, sollte auch hierfür ein end-to-end Test durchgeführt werden, um sicherzustellen, dass die Bereitstellung funktioniert. |
5.7 Rauchtests |
Das System verfügt über Rauchtests, die im Mini-Modus ausgeführt werden, und über eine schnelle Regression der einzelnen Funktionen. Rauchtests sind Teil der kontinuierlichen Integration und können in einer containerisierten Umgebung ausgeführt werden, um die Cloud-Funktionalität nachzuahmen. |
5.8 Belastungstests |
Lasttests auf Abruf sind verfügbar. Lasttests erfassen nicht nur, wie sich das ML-System bei hoher und niedriger Last verhält, sondern liefern auch Statistiken zum systemweiten Durchsatz oder zur Latenz. Durch Auslastungstests gesammelte Daten liefern Informationen über Ressourcengrößen und Skalierungsrichtlinien. |
5.9 Modellieren Sie Funktionstests |
Modellausgaben und -eingaben werden automatisierten Funktionstests unterzogen. Um ein Verhalten innerhalb einer Fähigkeit zu überprüfen, werden sowohl die Ausgaben als auch die Eingaben für das Modell anhand von echten oder falschen Daten anhand grundlegender Beispiele getestet. |
5.10 Modellinferenztests mit Extremfällen |
Im Rahmen der Tests zur Minimalfunktionalität sollte bei Modelltests geprüft werden, ob bei bestimmten Eingaben extreme Verhaltensweisen vorliegen, bevor das Modell beworben wird. Dadurch wird eine zusätzliche Leitplanke geschaffen, um unerwartetes Verhalten zu verhindern. |