Bereitstellen eines MLflow-Modells an einem Batchendpunkt
Eine einfache Möglichkeit zum Bereitstellen eines Modells für einen Batchendpunkt stellt die Verwendung eines MLflow-Modells dar. Azure Machine Learning generiert automatisch das Bewertungsskript und die Umgebung für MLflow-Modelle.
Um ein MLflow-Modell bereitzustellen, müssen Sie einen Endpunkt erstellt haben. Anschließend können Sie das Modell auf dem Endpunkt bereitstellen.
Registrieren eines MLflow-Modells
Damit Sie weder ein Bewertungsskript noch eine Bewertungsumgebung benötigen, muss das MLflow-Modell im Azure Machine Learning-Arbeitsbereich registriert werden, bevor Sie es an einem Batchendpunkt bereitstellen können.
Um ein MLflow-Modell zu registrieren, verwenden Sie die Model
-Klasse und geben dabei als Modelltyp MLFLOW_MODEL
an. Um das Modell beim Python SDK zu registrieren, können Sie den folgenden Code verwenden:
from azure.ai.ml.entities import Model
from azure.ai.ml.constants import AssetTypes
model_name = 'mlflow-model'
model = ml_client.models.create_or_update(
Model(name=model_name, path='./model', type=AssetTypes.MLFLOW_MODEL)
)
In diesem Beispiel verwenden wir die Modelldateien aus einem lokalen Pfad. Die Dateien werden alle in einem lokalen Ordner namens model
gespeichert. Der Ordner muss die MLmodel
-Datei enthalten, die beschreibt, wie das Modell geladen und verwendet werden kann.
Tipp
Hier erfahren Sie mehr über das MLmodel-Format.
Bereitstellen eines MLflow-Modells auf einem Endpunkt
Um ein MLflow-Modell an einem Batchendpunkt bereitzustellen, verwenden Sie die BatchDeployment
-Klasse.
Wenn Sie ein Modell bereitstellen, müssen Sie angeben, wie sich der Batchbewertungsauftrag verhalten soll. Der Vorteil der Verwendung eines Computeclusters zum Ausführen des Bewertungsskripts (das automatisch von Azure Machine Learning generiert wird) besteht darin, dass Sie das Bewertungsskript parallel auf separaten Instanzen ausführen können.
Beim Konfigurieren der Modellimplementierung können Sie Folgendes angeben:
instance_count
: Anzahl der Serverknoten, die zum Generieren von Vorhersagen verwendet werden sollenmax_concurrency_per_instance
: maximale Anzahl paralleler Bewertungsskriptausführungen pro Serverknotenmini_batch_size
: Anzahl der pro Bewertungsskriptausführung übergebenen Dateienoutput_action
: Weiterverarbeitung der Vorhersagen:summary_only
oderappend_row
output_file_name
: Datei, an die Vorhersagen angefügt werden, wenn Sie füroutput_action
die Optionappend_row
auswählen
Tipp
Lesen Sie die Referenzdokumentation zum Erstellen einer Batchbereitstellung mit dem Python-SDK v2.
Um ein MLflow-Modell an einem Batchendpunkt bereitzustellen, können Sie den folgenden Code verwenden:
from azure.ai.ml.entities import BatchDeployment, BatchRetrySettings
from azure.ai.ml.constants import BatchDeploymentOutputAction
deployment = BatchDeployment(
name="forecast-mlflow",
description="A sales forecaster",
endpoint_name=endpoint.name,
model=model,
compute="aml-cluster",
instance_count=2,
max_concurrency_per_instance=2,
mini_batch_size=2,
output_action=BatchDeploymentOutputAction.APPEND_ROW,
output_file_name="predictions.csv",
retry_settings=BatchRetrySettings(max_retries=3, timeout=300),
logging_level="info",
)
ml_client.batch_deployments.begin_create_or_update(deployment)