Bereitstellung Ihres MLflow-Modells an einem Batch-Endpunkt

Abgeschlossen

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_MODELwerden 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 modelgespeichert. 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 oder append_row.
  • output_file_name: Datei, an die Vorhersagen angefügt werden, wenn Sie append_row für output_actionauswä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)