Freigeben über


Konzepte: Machine Learning Operations (MLOps) für KI- und Machine Learning-Workflows

In diesem Artikel erfahren Sie mehr über Machine Learning Operations (MLOps), einschließlich der Verfahren und Tools, und wie Ihre KI- und Machine Learning-Workflows in Azure Kubernetes Service (AKS) dadurch vereinfacht und beschleunigt werden können.

Was ist MLOps?

Machine Learning Operations (MLOps) umfasst Verfahren, die die Zusammenarbeit zwischen wissenschaftlichen Fachkräften für Daten, IT-Betriebsteams und Beteiligten im Unternehmen erleichtern, um sicherzustellen, dass Machine Learning-Modelle effizient entwickelt, bereitgestellt und verwaltet werden. MLOps wendet DevOps-Prinzipien auf Machine Learning-Projekte an, um den gesamten Machine Learning-Lebenszyklus zu automatisieren und zu optimieren. Dieser Lebenszyklus umfasst das Trainieren, Packen, Validieren, Bereitstellen, Überwachen und erneute Trainieren von Modellen.

Für MLOps müssen mehrere Rollen und Tools effektiv zusammenarbeiten. Wissenschaftliche Fachkräfte für Daten konzentrieren sich auf Aufgaben im Zusammenhang mit dem Training des Modells, was als inneren Schleife bezeichnet wird. Machine Learning-Engineers und IT-Betriebsteams sind für die äußere Schleife zuständig, wobei sie DevOps-Verfahren auf das Packen, Überprüfen, Bereitstellen und Überwachen von Modellen anwenden. Wenn das Modell optimiert oder erneut trainiert werden muss, wird der Prozess wieder in die innere Schleife verlagert.

MLOps-Pipeline

Ihre MLOps-Pipeline kann verschiedene Tools und Microservices nutzen, die sequenziell oder parallel bereitgestellt werden. Nachfolgend finden Sie Beispiele für wichtige Komponenten in Ihrer Pipeline, die von der Implementierung der folgenden Best Practices profitieren, um den Aufwand zu reduzieren und eine schnellere Iteration zu ermöglichen:

  • Unstrukturierter Datenspeicher für neue Daten, die in Ihrer Anwendung eingehen
  • Vektordatenbank zum Speichern und Abfragen strukturierter, vorverarbeiteter Daten
  • Datenerfassungs- und -indizierungsframework
  • Workflows für Vektorerfassung oder erneutes Modelltraining
  • Metriksammlungs- und -warnungstools (Nachverfolgung der Modellleistung, Menge erfasster Daten usw.)
  • Lebenszyklusverwaltungstools

DevOps und MLOps

DevOps ist eine Kombination aus Tools und Methoden, mit denen Sie zuverlässige und reproduzierbare Anwendungen erstellen können. Das Ziel der Verwendung von DevOps besteht darin, Ihren Endbenutzern schnell einen Mehrwert zu bieten. Das Erstellen, Bereitstellen und Überwachen zuverlässiger und reproduzierbarer Modelle, um Endbenutzern einen Mehrwert zu bieten, ist das Hauptziel von MLOps.

Es gibt drei Prozesse, die für MLOps unerlässlich sind:

  • Machine Learning-Workloads, für die eine wissenschaftliche Fachkraft für Daten verantwortlich ist, einschließlich explorativer Datenanalyse (EDA), Feature Engineering sowie Modelltraining und -optimierung.
  • Verfahren für die Softwareentwicklung einschließlich Planung, Entwicklung, Test und Packen des Modells für die Bereitstellung
  • Betriebliche Aspekte der Bereitstellung und Pflege des Modells in der Produktion, einschließlich das Freigeben und Konfigurieren von Ressourcen sowie das Überwachen des Modells.

DevOps-Prinzipien, die für MLOps gelten

MLOps nutzt mehrere Prinzipien von DevOps, um den Lebenszyklus des maschinellen Lernens zu verbessern, z. B. Automatisierung, Continuous Integration und Continuous Delivery (CI/CD), Quellcodeverwaltung, agile Planungund Infrastructure-as-Code (IaC).

Automation

Durch die Automatisierung von Aufgaben können Sie manuelle Fehler reduzieren, die Effizienz steigern und die Konsistenz im gesamten ML-Lebenszyklus sicherstellen. Automatisierung kann auf verschiedene Phasen angewendet werden, einschließlich Datensammlung, Modelltraining, Bereitstellung und Überwachung. Mithilfe der Automatisierung können Sie auch proaktive Maßnahmen in der KI-Pipeline anwenden, um die Datenkonformität mit den Richtlinien Ihrer Organisation sicherzustellen.

Ihre Pipeline kann beispielsweise Folgendes automatisieren:

  • Modelloptimierung/erneutes Modelltraining in regelmäßigen Zeitintervallen oder wenn eine bestimmte Menge neuer Daten in Ihrer Anwendung gesammelt wird
  • Erkennung von Leistungsbeeinträchtigungen zum Einleiten der Optimierung oder des erneuten Trainings mit einer anderen Teilmenge von Daten
  • CVE-Scans (Common Vulnerabilities and Exposures) für Basiscontainerimages, die aus externen Containerregistrierungen abgerufen wurden, um für sichere Vorgehensweisen zu sorgen

Continuous Integration (CI)

Continuous Integration umfasst die Erstellung und Überprüfung der Aspekte des Modellentwicklungsprozesses. Das Ziel von CI besteht darin, den Code zu erstellen und die Qualität des Codes und des Modells vor der Bereitstellung zu überprüfen. Dies umfasst Tests basierend auf einer Reihe von Beispieldatensätzen, um sicherzustellen, dass das Modell erwartungsgemäß funktioniert und Qualitätsstandards erfüllt.

In MLOps kann CI Folgendes umfassen:

  • Refactoring von explorativem Code in Jupyter Notebooks in Python- oder R-Skripts.
  • Überprüfen neuer Eingabedaten auf fehlende oder fehlerhafte Werte
  • Komponententests und Integrationstests in der gesamten Pipeline

Zum Ausführen von Linting- und Komponententests können Sie Automatisierungstools wie Azure Pipelines in Azure DevOps oder GitHub Actions verwenden.

Continuous Delivery (CD)

Continuous Delivery umfasst die Schritte, die zur sicheren Bereitstellung eines Modells in der Produktion erforderlich sind. Der erste Schritt besteht darin, das Modell in Präproduktionsumgebungen zu packen und bereitzustellen, z. B. Entwicklungs- und Testumgebungen. Die Portabilität von Parametern, Hyperparametern und anderen Modellartefakten ist ein wichtiger Aspekt, der erhalten bleiben sollte, wenn Sie den Code durch diese Umgebungen befördern. Diese Portabilität ist besonders wichtig, wenn es um große Sprachmodelle (LLMs) und stabile Diffusionsmodelle geht. Sobald das Modell die Komponententests und QA-Tests (Quality Assurance) bestanden hat, können Sie es für die Bereitstellung in der Produktionsumgebung genehmigen.

Quellcodeverwaltung

Die Quellcodeverwaltung oder Versionskontrolle ist für die Verwaltung von Änderungen an Code und Modellen unerlässlich. In einem ML-System bezieht sich dies auf Datenversionsverwaltung, Codeversionsverwaltung und Modellversionsverwaltung, wodurch funktionsübergreifende Teams effektiv zusammenarbeiten und Änderungen im Laufe der Zeit nachverfolgen können. Mithilfe eines Git-basierten Quellcodeverwaltungssystems wie Azure Repos in Azure DevOps oder einem GitHub-Repository können Sie programmgesteuert einen Verlauf der Änderungen verwalten, zu früheren Versionen zurückkehren und Branches für verschiedene Experimente verwalten.

Agile Planung

Agile Planung umfasst das Isolieren von Arbeit in Sprints, die kurze Zeitrahmen für das Ausführen bestimmter Aufgaben sind. Dieser Ansatz ermöglicht es Teams, sich schnell an Änderungen anzupassen und inkrementelle Verbesserungen am Modell bereitzustellen. Das Modelltraining kann ein fortlaufender Prozess sein, und agile Planung kann dazu beitragen, den Projektumfang zu bestimmen und die Teams besser aufeinander einzustimmen.

Sie können Tools wie Azure Boards in Azure DevOps oder GitHub-Issues verwenden, um Ihre agile Planung zu verwalten.

Infrastructure-as-Code (IaC)

Sie verwenden Infrastructure-as-Code, um die Infrastruktur zu wiederholen und zu automatisieren, die erforderlich ist, um Ihre Modelle zu trainieren, bereitzustellen und zu verwalten. In einem ML-System hilft IaC dabei, die für den spezifischen Auftragstyp im Code erforderlichen Azure-Ressourcen zu vereinfachen und zu definieren, und der Code wird in einem Repository verwaltet. Auf diese Weise können Sie die Versionskontrolle für Ihre Infrastruktur verwalten und Änderungen an der Ressourcenoptimierung, Kosteneffizienz usw. nach Bedarf vornehmen.

Nächste Schritte

In den folgenden Artikeln erfahren Sie mehr über Best Practices für MLOps in Ihren intelligenten Anwendungen in AKS: