Bereitstellen eines MLflow-Modells auf einem verwalteten Onlineendpunkt

Abgeschlossen

Die einfachste Möglichkeit zum Bereitstellen eines Modells für einen Onlineendpunkt besteht darin, ein MLflow-Modell zu verwenden und es auf einem verwalteten Onlineendpunkt bereitzustellen. 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.

Bereitstellen eines MLflow-Modells auf einem Endpunkt

Wenn Sie ein MLflow-Modell auf einem verwalteten Onlineendpunkt bereitstellen, benötigen Sie weder das Bewertungsskript noch die Umgebung.

Zum Bereitstellen eines MLflow-Modells müssen Modelldateien in einem lokalen Pfad oder mit einem registrierten Modell gespeichert sein. Sie können Modelldateien protokollieren, wenn Sie ein Modell mithilfe der MLflow-Nachverfolgung trainieren.

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.

Neben dem Modell müssen Sie auch die Computekonfiguration für die Bereitstellung angeben:

Führen Sie den folgenden Befehl aus, um das Modell bereitzustellen (und automatisch zu registrieren):

from azure.ai.ml.entities import Model, ManagedOnlineDeployment
from azure.ai.ml.constants import AssetTypes

# create a blue deployment
model = Model(
    path="./model",
    type=AssetTypes.MLFLOW_MODEL,
    description="my sample mlflow model",
)

blue_deployment = ManagedOnlineDeployment(
    name="blue",
    endpoint_name="endpoint-example",
    model=model,
    instance_type="Standard_F4s_v2",
    instance_count=1,
)

ml_client.online_deployments.begin_create_or_update(blue_deployment).result()

Tipp

Lesen Sie die Referenzdokumentation zum Erstellen einer verwalteten Onlinebereitstellung mit Python-SDK V2.

Da nur ein Modell auf dem Endpunkt bereitgestellt wird, soll dieses Modell 100 % des Datenverkehrs übernehmen. Wenn Sie mehrere Modelle auf demselben Endpunkt bereitstellen, können Sie den Datenverkehr auf die bereitgestellten Modelle verteilen.

Verwenden Sie den folgenden Code, um Datenverkehr an eine bestimmte Bereitstellung weiterzuleiten:

# blue deployment takes 100 traffic
endpoint.traffic = {"blue": 100}
ml_client.begin_create_or_update(endpoint).result()

Führen Sie den folgenden Befehl aus, um den Endpunkt und alle zugeordneten Bereitstellungen zu löschen:

ml_client.online_endpoints.begin_delete(name="endpoint-example")

Tipp

Hier finden Sie weitere Informationen zum Bereitstellen von MLflow-Modellen.