Bereitstellung Ihres MLflow-Modells an einem Batch-Endpunkt
Eine einfache Möglichkeit zum Bereitstellen eines Modells auf einem Batchendpunkt besteht darin, ein MLflow--Modell zu verwenden. 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
Um die Notwendigkeit eines Bewertungsskripts und einer Umgebung zu vermeiden, muss ein MLflow-Modell im Azure Machine Learning-Arbeitsbereich registriert werden, bevor Sie es auf einem Batch-Endpunkt bereitstellen können.
Um ein MLflow-Modell zu registrieren, verwenden Sie die Model
Klasse, während Sie den Modelltyp angeben, der MLFLOW_MODEL
werden soll. 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 mit dem Namen model
gespeichert. Der Ordner muss die datei MLmodel
enthalten, die beschreibt, wie das Modell geladen und verwendet werden kann.
Tipp
Erfahren Sie mehr über das MLmodel-Format.
Bereitstellen eines MLflow-Modells auf einem Endpunkt
Um ein MLflow-Modell auf einem Batchendpunkt bereitzustellen, verwenden Sie die BatchDeployment
Klasse.
Wenn Sie ein Modell bereitstellen, müssen Sie angeben, wie sich der Batch-Scoring-Job 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.
Wenn Sie die Modellbereitstellung konfigurieren, können Sie Folgendes angeben:
-
instance_count
: Anzahl der Computeknoten, die zum Generieren von Vorhersagen verwendet werden sollen. -
max_concurrency_per_instance
: Maximale Anzahl paralleler Skripte zur Bewertung pro Computeknoten. -
mini_batch_size
: Anzahl der pro Bewertungsskript übergebenen Dateien. -
output_action
: Was mit den Vorhersagen zu tun ist:summary_only
oderappend_row
. -
output_file_name
: Datei, an die Vorhersagen angefügt werden, wenn Sieappend_row
füroutput_action
auswählen.
Tipp
In der Referenzdokumentation erfahren Sie, eine Batchbereitstellung mit dem Python SDK v2erstellen.
Um ein MLflow-Modell auf 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)