Funktionsweise von Azure Machine Learning: Architektur und Konzepte (V1)

GILT FÜR:Azure CLI-ML-Erweiterung V1Python-SDK azureml V1

Dieser Artikel bezieht sich auf die erste Version (V1) der Azure Machine Learning-CLI und des SDK. Informationen zur zweiten Version (V2) finden Sie unter Funktionsweise von Azure Machine Learning (V2).

Enthält Informationen zu Architektur und Konzepten von Azure Machine Learning. In diesem Artikel erhalten Sie ein allgemeines Verständnis der Komponenten und deren Zusammenarbeit, um das Entwickeln, Bereitstellen und Warten von Machine Learning-Modellen zu unterstützen.

Arbeitsbereich

Ein Arbeitsbereich für maschinelles Lernen ist die Ressource der obersten Ebene für Azure Machine Learning.

Diagramm: Azure Machine Learning-Architektur eines Arbeitsbereichs und seiner Komponenten

Der Arbeitsbereich ist der zentrale Ort für:

Ein Arbeitsbereich enthält andere Azure-Ressourcen, die er verwendet:

  • Azure Container Registry (ACR): Registriert die Docker-Container, die Sie während des Trainings und bei der Modellbereitstellung verwenden. Um Kosten zu minimieren, wird ACR nur erstellt, wenn Bereitstellungsimages erstellt werden.
  • Azure Storage-Konto: Wird als Standarddatenspeicher für den Arbeitsbereich verwendet. Jupyter-Notebooks, die mit Ihren Azure Machine Learning-Compute-Instanzen verwendet werden, werden ebenfalls hier gespeichert.
  • Azure Application Insights: Speichert Überwachungsinformationen zu Ihren Modellen.
  • Azure Key Vault: Speichert Geheimnisse, die von Computezielen verwendet werden, sowie andere vertrauliche Informationen, die vom Arbeitsbereich benötigt werden.

Sie können einen Arbeitsbereich mit anderen Benutzern teilen.

Berechnungen

Ein Computeziel ist ein Computer oder eine Computergruppe, wo Ihr Trainingsskript ausgeführt oder Ihre Dienstbereitstellung gehostet wird. Sie können Ihren lokalen Computer oder eine Remotecomputeressource als Computeziel verwenden. Mit Computezielen können Sie das Training auf dem lokalen Computer starten und dann horizontal auf die Cloud hochskalieren, ohne Ihr Trainingsskript zu ändern.

Azure Machine Learning führt zwei vollständig verwaltete, cloudbasierte virtuelle Computer (VM) ein, die für Machine Learning-Aufgaben konfiguriert sind:

  • Compute-Instanz: Eine VM, auf der verschiedene Tools und Umgebungen für das maschinelle Lernen installiert sind. Eine Compute-Instanz wird primär für Ihre Entwicklungsarbeitsstation verwendet. Sie können ohne Setup mit der Ausführung von Beispiel-Notebooks beginnen. Eine Compute-Instanz kann auch als Computeziel für Trainings- und Rückschlussaufträge verwendet werden.

  • Computecluster: Computecluster sind Cluster von VMs, in denen mehrere Knoten skaliert werden können. Computecluster eignen sich besser für Computeziele für große Aufträge und Produktion. Beim Übermitteln eines Auftrags wird der Cluster automatisch hochskaliert. Verwenden Sie ihn als Trainingscomputeziel oder zur Dev/Test-Bereitstellung.

Weitere Informationen zum Trainieren von Computezielen finden Sie unter Trainieren von Computezielen. Weitere Informationen zur Bereitstellung von Computezielen finden Sie unter Bereitstellungsziele.

Datasets und Datenspeicher

Azure Machine Learning-Datasets erleichtern Ihnen den Zugriff auf Ihre Daten und die Arbeit damit. Durch Erstellen eines Datasets erstellen Sie einen Verweis auf den Speicherort der Datenquelle sowie eine Kopie der zugehörigen Metadaten. Da die Daten an ihrem bisherigen Speicherort verbleiben, entstehen Ihnen keine zusätzlichen Speicherkosten und Sie riskieren nicht die Integrität Ihrer Datenquellen.

Weitere Informationen finden Sie unter Erstellen und Registrieren von Azure Machine Learning Datasets. Weitere Beispiele für die Verwendung von Datasets finden Sie in den Beispielnotebooks.

Datasets verwenden Datenspeicher, um eine sichere Verbindung mit ihren Azure-Speicherdiensten herzustellen. Datenspeicher speichern Verbindungsinformationen ohne Ihre Anmeldeinformationen für die Authentifizierung und die Integrität Ihrer ursprünglichen Datenquelle zu gefährden. Darin werden Verbindungsinformationen wie Ihre Abonnement-ID und die Tokenautorisierung in Ihrer mit dem Arbeitsbereich verknüpften Key Vault-Instanz gespeichert, damit Sie sicher auf Ihren Speicher zuzugreifen können, ohne diese Informationen in Ihren Skripts hartcodieren zu müssen.

Umgebungen

Arbeitsbereich>Umgebungen

Eine Umgebung ist die Kapselung der Umgebung, in der das Training oder die Bewertung Ihres Machine Learning-Modells stattfindet. Die Umgebung gibt die Python-Pakete, Umgebungsvariablen und Softwareeinstellungen bezüglich Ihrer Trainings- und Bewertungsskripts an.

Codebeispiele finden Sie im Abschnitt „Verwalten von Umgebungen“ unter Verwenden von Umgebungen.

Experimente

Arbeitsbereich>Experimente

Ein Experiment ist eine Gruppierung vieler Ausführungen aus einem bestimmten Skript. Es gehört immer zu einem Arbeitsbereich. Beim Übermitteln einer Ausführung geben Sie einen Experimentnamen an. Die Informationen für die Ausführung werden unter diesem Experiment gespeichert. Wenn der Name nicht vorhanden ist, wenn Sie ein Experiment übermitteln, wird automatisch ein neues Experiment erstellt.

Ein Beispiel zum Verwenden eines Experiments finden Sie im Tutorial: Trainieren Ihres ersten Modells.

Ausführungen

Arbeitsbereich>Experimente>Ausführen

Eine Ausführung ist eine einzelne Ausführung eines Trainingsskripts. Ein Experiment enthält in der Regel mehrere Durchläufe.

Azure Machine Learning zeichnet alle Ausführungen auf und speichert die folgenden Informationen im Experiment:

  • Metadaten zur Ausführung (Zeitstempel, Dauer usw.)
  • Metriken, die von Ihrem Skript protokolliert werden
  • Ausgabedateien, die automatisch vom Experiment gesammelt oder explizit von Ihnen hochgeladen werden
  • Eine Momentaufnahme des Verzeichnisses, in dem Ihre Skripts enthalten sind, vor der Ausführung

Eine Ausführung wird ausgelöst, wenn Sie ein Skript zum Trainieren eines Modells übermitteln. Eine Ausführung kann über null oder mehr untergeordnete Elemente verfügen. Die Ausführung der obersten Ebene weist also unter Umständen zwei untergeordnete Ausführungen auf, die beide jeweils selbst eine untergeordnete Ausführung aufweisen können.

Laufzeitkonfigurationen

Arbeitsbereich>Experimente>Ausführen>Ausführen der Konfiguration

Eine Ausführungskonfiguration definiert, wie ein Skript in einem bestimmten Computeziel ausgeführt werden sollte. Verwenden Sie die Konfiguration, um das Skript, das Computeziel und die Azure Machine Learning-Umgebung für die Ausführung sowie Konfigurationen speziell für verteilte Aufträge und einige zusätzliche Eigenschaften anzugeben. Weitere Informationen zum vollständigen Satz konfigurierbarer Optionen für Ausführungen finden Sie unter ScriptRunConfig.

Eine Laufzeitkonfiguration kann in einer Datei in dem Verzeichnis, in dem Ihr Trainingsskript enthalten ist, beständig gespeichert werden. Alternativ kann sie als Objekt im Arbeitsspeicher erstellt und zum Übermitteln einer Ausführung verwendet werden.

Beispiele für Ausführungskonfigurationen finden Sie unter Konfigurieren einer Trainingsausführung.

Momentaufnahmen

Arbeitsbereich>Experimente>Ausführen>Momentaufnahme

Beim Übermitteln einer Ausführung komprimiert Azure Machine Learning das Verzeichnis, in dem das Skript als ZIP-Datei enthalten ist, und sendet es an das Computeziel. Die ZIP-Datei wird dann extrahiert, und das Skript wird ausgeführt. Azure Machine Learning speichert die ZIP-Datei im Rahmen der Ausführungsaufzeichnung zudem als Momentaufnahme. Alle Benutzer mit Zugriff auf den Arbeitsbereich können eine Ausführungsaufzeichnung durchsuchen und die Momentaufnahme herunterladen.

Protokollierung

Standardmäßige Ausführungsmetriken werden von Azure Machine Learning automatisch protokolliert. Sie können jedoch auch das Python SDK verwenden, um beliebige Metriken zu protokollieren.

Es gibt mehrere Möglichkeiten zum Anzeigen ihrer Protokolle: Überwachen des Ausführungsstatus in Echtzeit oder Anzeigen der Ergebnisse nach Abschluss. Weitere Informationen finden Sie unter Überwachen und Anzeigen von ML-Ausführungsprotokollen.

Hinweis

Um zu verhindern, dass nicht benötigte Dateien in die Momentaufnahme eingeschlossen werden, erstellen Sie im Verzeichnis eine Ignore-Datei (.gitignore oder .amlignore). Fügen Sie dieser Datei die Dateien und Verzeichnisse hinzu, die ignoriert werden sollen. Weitere Informationen zur Syntax, die in dieser Datei zu verwenden ist, finden Sie unter Syntax und Muster für .gitignore. Die .amlignore-Datei verwendet die gleiche Syntax. Wenn beide Dateien vorhanden sind, wird die Datei .amlignore verwendet, und die Datei .gitignore wird nicht verwendet.

Git-Nachverfolgung und -Integration

Wenn Sie eine Trainingsausführung starten, bei der das Quellverzeichnis ein lokales Git-Repository ist, werden Informationen über das Repository im Ausführungsverlauf gespeichert. Dies funktioniert für Ausführungen, die über eine Skriptausführungskonfiguration oder eine ML-Pipeline übermittelt werden. Dies funktioniert auch für Ausführungen, die aus dem SDK oder der Machine Learning-CLI übermittelt wurden.

Weitere Informationen finden Sie unter Git-Integration für Azure Machine Learning.

Trainingsworkflow

Wenn Sie ein Experiment ausführen, um ein Modell zu trainieren, werden die folgenden Schritte ausgeführt. Diese werden im folgenden Diagramm zum Trainingsworkflow veranschaulicht:

  • Azure Machine Learning wird mit der Momentaufnahmen-ID für die im vorherigen Abschnitt gespeicherte Codemomentaufnahme aufgerufen.

  • Azure Machine Learning erstellt eine Ausführungs-ID (optional) und ein Azure Machine Learning-Token, das später von Computezielen wie Machine Learning Compute/VMs für die Kommunikation mit Machine Learning verwendet wird.

  • Sie können entweder ein verwaltetes Computeziel (wie Machine Learning Compute) oder ein nicht verwaltetes Computeziel (wie VMs) auswählen, um Trainingsaufträge auszuführen. Im Folgenden finden Sie die Datenflüsse für beide Szenarien:

    • VMs/HDInsight, Zugriff erfolgt über SSH-Anmeldeinformationen in einem Schlüsseltresor im Microsoft-Abonnement. Azure Machine Learning führt verwalteten Code auf dem Computeziel aus, der die folgenden Aktionen ausführt:
    1. Vorbereiten der Umgebung (Docker ist eine Option für VMs und lokale Computer. In den folgenden Schritten für Machine Learning Compute erfahren Sie, wie die Ausführung von Experimenten in Docker-Containern funktioniert.)
    2. Herunterladen des Codes
    3. Einrichten von Umgebungsvariablen und Konfigurationen
    4. Ausführen von Benutzerskripts (die im vorherigen Abschnitt genannte Codemomentaufnahme)
    • Machine Learning Compute, Zugriff erfolgt über eine vom Arbeitsbereich verwaltete Identität. Da Machine Learning Compute ein verwaltetes Computeziel ist (d. h. es wird von Microsoft verwaltet), wird es unter Ihrem Microsoft-Abonnement ausgeführt.
    1. Starten der Docker-Remotekonstruktion (sofern erforderlich)
    2. Schreiben des Verwaltungscodes in die Azure Files-Freigabe des Benutzers
    3. Starten des Containers mit einem ersten Befehl. Dies ist der Verwaltungscode, der im vorherigen Schritt beschrieben wurde.
  • Nachdem die Ausführung abgeschlossen ist, können Sie Ausführungen und Metriken abfragen. Im folgenden Flussdiagramm wird dieser Schritt ausgeführt, wenn das Trainingscomputeziel die Ausführungsmetriken aus dem Speicher in der Azure Cosmos DB-Datenbank an Azure Machine Learning zurückschreibt. Clients können Azure Machine Learning aufrufen. Machine Learning pullt wiederum die Metriken aus der Azure Cosmos DB-Datenbank und gibt sie an den Client zurück.

Trainingsworkflow

Modelle

Im einfachsten Fall ist ein Modell ein Codeabschnitt, für den eine Eingabe verwendet wird, um eine Ausgabe zu erzeugen. Die Erstellung eines Machine Learning-Modells umfasst die Auswahl eines Algorithmus, die Bereitstellung der zugehörigen Daten und die Optimierung von Hyperparametern. Das Training ist ein iterativer Prozess, bei dem ein trainiertes Modell mit den während des Trainingsprozesses erlernten Informationen erzeugt wird.

Sie können ein Modell verwenden, das außerhalb von Azure Machine Learning trainiert wurde. Oder Sie können ein Modell trainieren, indem Sie eine Ausführung eines Experiments an ein Computeziel in Azure Machine Learning übermitteln. Sobald Sie ein fertiges Modell haben, registrieren Sie es im Arbeitsbereich.

Azure Machine Learning ist „framework-agnostisch“. Wenn Sie ein Modell erstellen, können Sie alle gängigen Frameworks für maschinelles Lernen verwenden, wie Scikit-learn, XGBoost, PyTorch, TensorFlow und Chainer.

Ein Beispiel zum Trainieren eines Modells mittels Scikit-learn finden Sie im Tutorial: Trainieren eines Bildklassifizierungsmodells mit Azure Machine Learning.

Modellregistrierung

Arbeitsbereich>Modelle

Mit der Modellregistrierung können Sie alle Modelle in Ihrem Azure Machine Learning-Arbeitsbereich verfolgen.

Die Modelle werden anhand des Namens und der Version identifiziert. Jedes Mal, wenn Sie ein Modell mit dem gleichen Namen wie ein bereits vorhandenes Modell registrieren, geht die Registrierung davon aus, dass es sich um eine neue Version handelt. Die Version wird inkrementiert, und das neue Modell wird unter demselben Namen registriert.

Bei der Registrierung des Modells können Sie zusätzliche Metadatentags bereitstellen und diese Tags dann beim Suchen nach Modellen verwenden.

Tipp

Ein registriertes Modell ist ein logischer Container für eine oder mehrere Dateien, aus denen Ihr Modell besteht. Wenn Sie beispielsweise ein Modell verwenden, das in mehreren Dateien gespeichert ist, können Sie diese als einzelnes Modell in Ihrem Azure Machine Learning-Arbeitsbereich registrieren. Nach der Registrierung können Sie das registrierte Modell dann herunterladen oder bereitstellen und alle Dateien empfangen, die registriert wurden.

Sie können kein registriertes Modell löschen, das von einer aktiven Bereitstellung verwendet wird.

Ein Beispiel für das Registrieren eines Modells finden Sie unter Trainieren eines Bildklassifizierungsmodells mit Azure Machine Learning Service.

Bereitstellung

Sie stellen ein registriertes Modell als Dienstendpunkt bereit. Sie benötigen folgende Komponenten:

  • Umgebung. Diese Umgebung kapselt die Abhängigkeiten, die zur Ausführung Ihres Modells für Rückschlüsse erforderlich sind.
  • Bewertungscode. Dieses Skript akzeptiert Anforderungen, bewertet die Anforderungen über Verwenden des Modells und gibt die Ergebnisse zurück.
  • Rückschlusskonfiguration. Die Rückschlusskonfiguration gibt die Umgebung, das Eingabeskript und andere Komponenten an, die zur Ausführung des Modells als Dienst benötigt werden.

Weitere Informationen zu diesen Komponenten finden Sie unter Bereitstellen von Modellen mit Azure Machine Learning.

Endpunkte

Arbeitsbereich>Endpunkte

Ein Endpunkt ist eine Instanziierung Ihres Modells in einem Webdienst, der in der Cloud gehostet werden kann.

Webdienst-Endpunkt

Wenn Sie ein Modell als Webdienst bereitstellen, kann der Endpunkt auf Azure Container Instances, Azure Kubernetes Service oder FPGAs bereitgestellt werden. Sie erstellen den Dienst aus Ihrem Modell, dem Skript und zugeordneten Dateien. Diese werden in ein Basiscontainerimage eingefügt, das die Ausführungsumgebung für das Modell enthält. Das Image verfügt über einen HTTP-Endpunkt mit Lastenausgleich, der die an den Webdienst gesendeten Bewertungsanforderungen empfängt.

Sie können Application Insights-Telemetrie oder Modelltelemetrie aktivieren, um den Webdienst zu überwachen. Die Telemetriedaten sind nur für Sie zugänglich. Sie werden in Ihren Application Insights- und Speicherkontoinstanzen gespeichert. Wenn Sie die automatische Skalierung aktiviert haben, führt Azure für Ihre Bereitstellung automatisch eine Skalierung durch.

Das folgende Diagramm zeigt den Workflow zum Ziehen von Rückschlüssen für ein Modell, das als Webdienstendpunkt bereitgestellt wird:

Es folgen die Details:

  • Der Benutzer registriert ein Modell, indem er einen Client wie das Azure Machine Learning-SDK verwendet.
  • Der Benutzer erstellt das Image mit einem Modell, einer Bewertungsdatei und anderen Modellabhängigkeiten.
  • Das Docker-Image wird erstellt und in Azure Container Registry gespeichert.
  • Der Webdienst wird auf dem Computeziel (Container Instances/AKS) mithilfe des Images bereitgestellt, das im vorherigen Schritt erstellt wurde.
  • Details der Bewertung werden in Application Insights gespeichert (im Abonnement des Benutzers enthalten).
  • Telemetriedaten werden ebenfalls mithilfe von Push an das Microsoft Azure-Abonnement übertragen.

Rückschlussworkflow

Ein Beispiel für die Bereitstellung eines Modells als Webdienst finden Sie unter Tutorial: Trainieren und Bereitstellen eines Modells.

Echtzeitendpunkte

Wenn Sie ein trainiertes Modell im Designer bereitstellen, können Sie das Modell als Echtzeitendpunkt bereitstellen. Ein Echtzeitendpunkt empfängt in der Regel eine einzelne Anforderung über den REST-Endpunkt und gibt eine Vorhersage in Echtzeit zurück. Dies steht im Gegensatz zur Batchverarbeitung, bei der mehrere Werte gleichzeitig verarbeitet werden und die Ergebnisse nach Abschluss in einem Datenspeicher gespeichert werden.

Pipelineendpunkte

Mithilfe von Pipelineendpunkten können Sie Ihre ML-Pipelines programmgesteuert über einen REST-Endpunkt abrufen. Mit Pipelineendpunkten lassen sich Pipelineworkflows automatisieren.

Ein Pipelineendpunkt ist eine Sammlung veröffentlichter Pipelines. Diese logische Anordnung ermöglicht Ihnen die Verwaltung und den Aufruf mehrerer Pipelines mithilfe desselben Endpunkts. Jede veröffentlichte Pipeline in einem Pipelineendpunkt verfügt über eine Versionsangabe. Sie können eine Standardpipeline für den Endpunkt auswählen oder im REST-Befehl eine Version angeben.

Automation

Azure Machine Learning-CLI

Die Azure Machine Learning-CLI v1 ist eine Erweiterung der Azure CLI, eine plattformübergreifende Befehlszeilenschnittstelle für die Azure-Plattform. Diese Erweiterung bietet Befehle zum Automatisieren Ihrer Machine Learning-Aktivitäten.

ML-Pipelines

Machine Learning-Pipelines werden zum Erstellen und Verwalten von Workflows verwendet, die Machine Learning-Phasen zusammenfügen. Eine Pipeline kann beispielsweise eine Datenaufbereitungs-, eine Modelltrainings-, eine Modellimplementierungs- und eine Rückschluss-/Bewertungsphase enthalten. Jede Phase kann mehrere Schritte umfassen, von denen wiederum jeder Schritt auf verschiedenen Computezielen unbeaufsichtigt ausgeführt werden kann.

Pipelineschritte sind wiederverwendbar und können ohne erneute Ausführung der vorherigen Schritte ausgeführt werden, wenn sich die Ausgabe dieser Schritte nicht geändert hat. Beispielsweise können Sie ein Modell erneut trainieren, ohne teure Schritte zur Datenvorbereitung erneut auszuführen, wenn sich die Daten nicht geändert haben. Pipelines ermöglichen Data Scientists auch, bei der Arbeit an separaten Bereichen eines Machine Learning-Workflows zusammenzuarbeiten.

Überwachung und Protokollierung

Azure Machine Learning verfügt über die folgenden Funktionen für die Überwachung und Protokollierung:

Interaktion mit Ihrem Arbeitsbereich

Studio

Azure Machine Learning Studio stellt eine Webansicht aller Artefakte in Ihrem Arbeitsbereich bereit. Sie können Ergebnisse und Details zu ihren Datasets, Experimenten, Pipelines, Modellen und Endpunkten anzeigen. Sie können auch Computeressourcen und Datenspeicher in Studio verwalten.

In Studio greifen Sie auch auf die interaktiven Tools zu, die Teil von Azure Machine Learning sind:

Programmiertools

Wichtig

Die unten markierten Tools (Vorschau) sind aktuell als öffentliche Vorschau verfügbar. Die Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und ist nicht für Produktionsworkloads vorgesehen. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.

Nächste Schritte

Informationen zu den ersten Schritten mit Azure Machine Learning finden Sie unter: