Sie können Pipelinekomponenten unter einem Batchendpunkt bereitstellen, was eine bequeme Möglichkeit darstellt, sie in Azure Machine Learning zu operationalisieren. In diesem Artikel erfahren Sie, wie Sie eine Batchbereitstellung erstellen, die eine einfache Pipeline enthält. Sie lernen Folgendes:
Erstellen und Registrieren einer Pipelinekomponente
Erstellen eines Batchendpunkts und Bereitstellen einer Pipelinekomponente
Testen der Bereitstellung
Über dieses Beispiel
In diesem Beispiel werden wir eine Pipelinekomponente bereitstellen, die aus einem einfachen Befehlsauftrag besteht, der „Hallo Welt“ ausgibt. Diese Komponente erfordert keine Eingaben oder Ausgaben und ist das einfachste Szenario einer Pipelinebereitstellung.
Das Beispiel in diesem Artikel basiert auf Codebeispielen, die im Repository azureml-examples enthalten sind. Wenn Sie die Befehle lokal ausführen möchten, ohne YAML und andere Dateien kopieren oder einfügen zu müssen, verwenden Sie die folgenden Befehle, um das Repository zu klonen und zum Ordner für Ihre Programmiersprache zu wechseln:
Die folgenden Berechtigungen im Azure Machine Learning-Arbeitsbereich:
Zum Erstellen oder Verwalten von Batchendpunkten und Bereitstellungen: Verwenden Sie die Rolle „Besitzer“ oder „Mitwirkender“ oder eine benutzerdefinierte Rolle, der die Microsoft.MachineLearningServices/workspaces/batchEndpoints/*-Berechtigungen zugewiesen wurden.
Zum Erstellen von Azure Resource Manager-Bereitstellungen in der Arbeitsbereichsressourcengruppe: Verwenden Sie die Rolle „Besitzer“ oder „Mitwirkender“ oder eine benutzerdefinierte Rolle, der die Microsoft.Resources/deployments/write-Berechtigung in der Ressourcengruppe zugewiesen wurde, in der der Arbeitsbereich bereitgestellt wird.
Azure Machine Learning-CLI oder Azure Machine Learning-SDK für Python:
Bereitstellungen der Pipelinekomponenten für Batchendpunkte werden in Version 2.7 der ml-Erweiterung für die Azure CLI eingeführt. Verwenden Sie den az extension update --name ml-Befehl, um die aktuelle Version abzurufen.
Die ModelBatchDeployment- und PipelineComponentBatchDeployment-Klassen werden in Version 1.7.0 des SDK eingeführt. Verwenden Sie den pip install -U azure-ai-ml-Befehl, um die aktuelle Version abzurufen.
Herstellen einer Verbindung mit Ihrem Arbeitsbereich
Der Arbeitsbereich ist die Ressource der obersten Ebene für Azure Machine Learning. Er bietet einen zentralen Ort für die Arbeit mit allen Artefakten, die Sie bei der Verwendung von Azure Machine Learning erstellen. In diesem Abschnitt stellen Sie eine Verbindung mit dem Arbeitsbereich her, in dem Sie Ihre Bereitstellungsaufgaben durchführen.
Batchendpunkte können entweder Modelle oder Pipelinekomponenten bereitstellen. Pipelinekomponenten sind wiederverwendbar, und Sie können Ihre MLOps-Praxis optimieren, indem Sie freigegebene Registrierungen verwenden, um diese Komponenten von einem Arbeitsbereich in einen anderen zu verschieben.
Die Pipelinekomponente in diesem Beispiel enthält einen einzigen Schritt, der nur eine „Hallo Welt“-Nachricht in die Protokolle ausgibt. Sie erfordert keine Eingaben oder Ausgaben.
Die folgende hello-component/hello.yml-Datei enthält die Konfiguration für den Pipelinekomponente:
Geben Sie einen Namen für den Endpunkt an. Der Name eines Batchendpunkts muss in jeder Region eindeutig sein, da er zum Konstruieren des Aufruf-URI verwendet wird. Um die Eindeutigkeit sicherzustellen, fügen Sie alle nachstehenden Zeichen an den im folgenden Code angegebenen Namen an.
Die endpoint.yml-Datei enthält die Konfiguration des Endpunkts.
endpoint.yml
$schema: https://azuremlschemas.azureedge.net/latest/batchEndpoint.schema.json
name: hello-batch
description: A hello world endpoint for component deployments.
auth_mode: aad_token
endpoint = BatchEndpoint(
name=endpoint_name,
description="A hello world endpoint for component deployments",
)
Zum Bereitstellen der Pipelinekomponente müssen wir eine Batchbereitstellung erstellen. Eine Bereitstellung ist ein Satz erforderlicher Ressourcen für das Hosting der Ressource, welche die eigentliche Arbeit leistet.
Erstellen Sie einen Computecluster. Batchendpunkte und Batchbereitstellungen werden auf Computeclustern ausgeführt. Sie können auf jedem Azure Machine Learning-Computecluster ausgeführt werden, der im Arbeitsbereich bereits vorhanden ist. Daher können mehrere Batchbereitstellungen dieselbe Computeinfrastruktur gemeinsam nutzen. In diesem Beispiel arbeiten wir auf einem Azure Machine Learning-Computecluster namens batch-cluster. Lassen Sie uns überprüfen, ob die Computeinfrastruktur im Arbeitsbereich vorhanden ist. Wenn nicht, werden wir sie erstellen.
deployment = PipelineComponentBatchDeployment(
name="hello-batch-dpl",
description="A hello world deployment with a single step.",
endpoint_name=endpoint.name,
component=hello_batch,
settings={"continue_on_step_failure": False, "default_compute": compute_name},
)
Führen Sie den folgenden Code aus, um den Batchendpunkt und die zugrundeliegende Bereitstellung zu löschen.
--yes wird verwendet, um den Löschvorgang zu bestätigen.
az ml batch-endpoint delete -n $ENDPOINT_NAME --yes
Verwalten Sie Datenerfassung und -vorbereitung, Modelltraining und -bereitstellung sowie die Überwachung von Machine Learning-Lösungen mit Python, Azure Machine Learning und MLflow.
Erfahren Sie, wie Sie auf Eingabedaten aus verschiedenen Quellen in Azure Machine Learning-Batchendpunktaufträgen zugreifen. Siehe Code für die Azure CLI, das Python-SDK und REST-API-Aufrufe.
Erfahren Sie, wie Sie Fehler mit Batchendpunktaufträgen beheben und diagnostizieren, einschließlich der Überprüfung von Protokollen zum Bewerten von Aufträgen und Lösungsschritten für häufige Probleme.