Best Practice

MLOps: Machine Learning Operations

Die Anwendung von DevOps-Prinzipien in ML-Systemen ermöglicht die zuverlässige und effiziente Implementierung und Verwaltung umfangreicher Lösungen.

Kontext

Trotz der zunehmenden Verbreitung von Modellen, die auf Algorithmen des Mashine Learnung basieren, waren Unternehmen in den letzten Jahren nur bedingt in der der Lage, derartige Lösungen in der Produktion einzusetzen und eine gute Investitionsrendite zu erzielen.
Machine Learning Operations (MLOps) sollen die Lücke bezogen auf die Integration und Wartung dieser Systeme innerhalb der Software-Architekturen von Unternehmen schließen. Sie basierend auf den DevOps-Prinzipien, um die Entwicklung, Verwaltung und Wartung dieser Tools zu erleichtern.

MLOps vs. DevOps

DevOps ist eine Softwareentwicklungsmethodik, die auf den Grundsätzen von Continuous Integration and Continuous Delivery beruht. Ihr Ziel ist es, die Entwicklung durch häufige Test-, Integrations- und Freigabezyklen zu beschleunigen und effizienter zu gestalten.

Diese Praktiken sind für die Entwicklung von Software, die auf ML Algorithmen basiert, aus folgenden Gründen notwendig:

  • Bei der kontinuierlichen Integration geht es nicht nur um Softwarekomponenten, sondern auch um die zugrunde liegenden Daten und Modelle.

  • Continuous Delivery betrifft nicht mehr nur ein einzelnes Softwarepaket oder einen Dienst, sondern auch die gesamte Modell-Trainingspipeline.

  • Ein Modell muss im Laufe der Zeit neu trainiert werden.

Daher muss der Begriff des Continuous Training eingeführt werden, was bedeutet, dass wir das erneute Training des Modells und die Bereitstellung des neuen Deployments automatisieren müssen.

Unser MLOps-Ansatz

Dank der in den letzten Jahren gesammelten Projekterfahrungen und der Forschung und Entwicklung zu diesem Thema, haben wir unseren MLOps-Ansatz weiter verfeinert. Er lässt sich in folgenden Schlüsselpunkten zusammenfassen:

Datenversionierung

Sicherstellung der Reproduzierbarkeit der Trainingsphase

Jede Phase der Entwicklung und Industrialisierung eines Modells muss reproduzierbar sein. In der Entwicklungsphase werden mehrere Experimente durchgeführt, die sich sowohl in der verwendeten Modellarchitektur als auch in der Datenquelle und deren Verarbeitung unterscheiden können. Um die in diesem iterativen Prozess erzielten Ergebnisse zu reproduzieren, reicht es nicht aus, einfach der Modellkonfiguration zu folgen. Die Versionierung der Daten muss ebenfalls möglich sein.

Realer Anwendungsfall

Um die Abwanderungsrate angebotener Services bei einem unserer Kunden zu verringern, haben wir ein Modell entwickelt, das in der Lage ist, diejenigen vorherzusagen, die ihren Vertrag innerhalb eines Monats kündigen würden. Nachdem wir das Modell erneut trainiert hatten, stellten wir einen starken Leistungsabfall fest. Um die Ursache des Problems zu verstehen, beschlossen wir, die Versionen der Datensätze zu vergleichen, die für das Training der letzten beiden Versionen des Modells verwendet wurden. Bei dieser Analyse stellten wir fest, dass einige numerische Merkmale Textwerte enthielten und dass das Problem durch eine Änderung in der Datenaufbereitungsphase verursacht wurde.

Versionierung von Modellen

Verbesserung der Widerstandsfähigkeit und Wartbarkeit des Modells in der Produktion

Im Anschluss an die Industrialisierung kann es sowohl aufgrund von Konflikten, die bei der Freigabe einer Komponente auftreten, als auch aus Leistungsgründen notwendig sein, eine frühere Version des Modells zu reaktivieren. Dazu ist es wichtig, Informationen über die Versionen der Pipeline-Komponenten zu haben, die mit der früheren Version des Modells verwendet wurden, sowie über die Metriken, die zur Bewertung der Leistung verwendet wurden. Eine Versionierung sowohl des Modells als auch seiner Metadaten ist daher erforderlich, um die Wartbarkeit und Belastbarkeit der Software zu gewährleisten.

Realer Anwendungsfall

Im Rahmen eines unserer Projekte haben wir eine neue Version eines Modells in der Produktion eingesetzt, mit dem die Kunden einer Website auf der Grundlage ihres Surfverhaltens klassifiziert werden können. Eines Tages begann dieses neue Modell, alle Kunden als "Anfänger" zu klassifizieren, d. h. als Kunden, die mit der Nutzung der Website wenig vertraut sind. Während einer Analysephase beschlossen wir, die vorherige Version des Modells wieder in der Produktion einzusetzen, da sie weniger anomale Daten lieferte als die neue Version. Nach der Analyse der Ergebnisse stellten wir fest, dass die Leistung der Vorgängerversion ebenfalls abnormal war. Durch den Vergleich der beiden Versionen des Modells konnte festgestellt werden, dass die Ursache des Problems tatsächlich in einer fehlerhaften Datenquelle lag. Die Quelle enthielt das Nutzerverhalten in Bezug auf eine erweiterte Funktion der Website. Da diese erweiterte Funktion nicht von allen Kunden genutzt wurde, konnte das Modell die Kunden nicht richtig klassifizieren.

Überwachung der Leistung

Sicherstellung der Zuverlässigkeit der Ergebnisse im Laufe der Zeit

Die Beziehungen zwischen den verschiedenen Einheiten und Phänomenen in der Natur verändern sich ständig. Die Eigenschaften der von dem industrialisierten Modell verwendeten Daten ändern sich im Laufe der Zeit, was zu einer Verschlechterung seiner Leistung führt. Es ist wichtig, sich daran zu erinnern, dass ein Modell nur dann die während der Entwicklung erzielten Leistungen garantiert, wenn die ihm zur Verfügung stehenden Daten zu der gleichen Datenverteilung gehören, die während seines Trainings ermittelt wurde. Durch die Überwachung des Modells ist es möglich, eine Veränderung der Leistung zu beobachten und gegebenenfalls einen neuen Trainingszyklus auszulösen. Dieser Faktor ist entscheidend, um die Zuverlässigkeit der Ergebnisse im Laufe der Zeit zu gewährleisten.

Realer Anwendungsfall

Einer unserer Kunden hatte einen Algorithmus entwickelt, der die Käufe seiner Kunden auf der Grundlage ihres Verhaltens auf seiner E-Commerce-Plattform vorhersagen konnte. Als das Modell in Produktion ging, stellte er eine geringe Leistung fest als ursprünglich geplant. Bei der Analyse der Leistung in Abhängigkeit von der Tageszeit stellten wir fest, dass das Modell nur zu bestimmten Zeiten des Tages eine hohe Genauigkeit aufwies. Nach einer Analyse des für das Training verwendeten Datensatzes stellten wir fest, dass das Modell mit Daten trainiert worden war, die das Nutzerverhalten nur zu den Zeiten repräsentierten, zu denen das Modell zufriedenstellende Ergebnisse lieferte. Durch ein erneutes Training mit einem repräsentativeren Datensatz, der den ganzen Tag abdeckt, konnte die Leistung des Modells erheblich verbessert werden. Dieses Beispiel zeigt deutlich, wie wichtig es ist, eine gründliche Überwachung der Leistung des Modells einzurichten.

MLOps mit Google Cloud

Google Cloud bietet eine Reihe von Diensten, um die verschiedenen Anforderungen zu erfüllen, die während des Entwicklungs- und Bereitstellungszyklus eines Cloud-Produkts auftreten können. Als zertifizierter Google Cloud Partner empfiehlt unser Team die folgenden Dienste für die Umsetzung der oben beschriebenen Schlüsselprinzipien.

BigQuery für die Datenversionierung

BigQuery für die Datenversionierung. BigQuery ist ein Data Warehouse, das für die Speicherung und Analyse (über SQL) großer Datenmengen optimiert ist. Interne Tabellen können auf der Grundlage des Einfügedatums in der Datenbank partitioniert werden. Die Partitionen werden wie einzelne Tabellen gespeichert und behandelt, wodurch die Kosten und die Geschwindigkeit von Abfragen, die auf einzelnen Partitionen durchgeführt werden, optimiert werden. Dieser Dienst ist ein ideales Werkzeug für die Versionierung der Daten, die für das Training eines Modells verwendet werden, das in der Regel aus einem großen Datensatz besteht, auf dem gegebenenfalls Analysen durchgeführt werden müssen.

Cloud Storage als Register der Modellversionen

Der Dienst bietet ein Objektspeichersystem mit verschiedenen Anpassungsmöglichkeiten. Insbesondere ist es möglich, je nach gewünschter Zugriffshäufigkeit aus verschiedenen Speicherklassen zu wählen und so die Verwaltungskosten zu optimieren.

Cloud SQL als Registry für Modell-Metadaten

Cloud SQL als Registry für Modell-Metadaten. Cloud SQL ist ein vollständig verwalteter Dienst für relationale Datenbanken, der Skalierbarkeit und hohe Verfügbarkeit garantiert. Er lässt sich gut mit anderen Diensten wie Google Kubernetes Engine, Compute Engine und App Engine integrieren. Er bietet ein hervorragendes, hochleistungsfähiges Backend zum Speichern von Modell-Metadaten, wie z. B. die Metriken, die zur Bewertung der Leistung und der in der Produktion verwendeten Komponentenversionen verwendet werden.

TensorFlow Model Analysis zur Überwachung der Modellleistung

TensorFlow Model Analysis zur Überwachung der Modellleistung. TFMA ist eine der Komponenten von TensorFlow Extended, der Google-Plattform, die für den Einsatz von Maschine Learning Modellen im Produktionsmaßstab empfohlen wird. TFMA ermöglicht es insbesondere, die Bewertungsmetriken für Ihre Modelle zu berechnen und anzuzeigen. Dies hilft bei der Bewertung der Leistung des Modells, um sicherzustellen, dass es bestimmte Qualitätsschwellenwerte erfüllt und für die relevanten Daten die erwartete Leistung erbringt.

Kubeflow Pipelines als Orchestrator der Modellentwicklungs- und Verteilungskette

Kubeflow Pipelines als Orchestrator der Modellentwicklungs- und Verteilungskette. Kubeflow Pipelines ist eine Komponente von Kubeflow, dem Open-Source-Projekt von Google, das die Paketierung und Wiederverwendung von ML-Pipelines vereinfachen soll. Sie ermöglicht die Verwaltung von Komponenten, die mit den TensorFlow Extended Bibliotheken entwickelt wurden. Darüber hinaus bietet es eine Benutzeroberfläche, um sowohl die während der Entwicklungsphase durchgeführten Experimente als auch die verschiedenen Ausführungen des Vorhersagedienstes in der Produktion zu verfolgen.

Picture

Machine Learning Reply ist das Unternehmen der Reply-Gruppe, das sich auf Lösungen für Machine Learning, Cognitive Computing und künstliche Intelligenz basierend auf dem Google-Technologie-Stack spezialisiert hat. Auf der Grundlage neuester Entwicklungen in der künstlichen Intelligenz wendet Machine Learning Reply innovative Deep Learning-, Natural Language Processing- und Bild-/Videoerkennungstechniken auf verschiedene Anwendungsbereiche an, wie z. B. intelligente Automatisierung, prädiktive Engines, Empfehlungssysteme und Chat-Bots.