Uw MLflow-model implementeren op een beheerd online-eindpunt

Voltooid

De eenvoudigste manier om een model te implementeren op een online-eindpunt is door een MLflow--model te gebruiken en dit te implementeren in een beheerd online-eindpunt. Azure Machine Learning genereert automatisch het scorescript en de omgeving voor MLflow-modellen.

Als u een MLflow-model wilt implementeren, moet u een eindpunt hebben gemaakt. Vervolgens kunt u het model implementeren op het eindpunt.

Een MLflow-model implementeren op een eindpunt

Wanneer u een MLflow-model implementeert in een beheerd online-eindpunt, hoeft u het scorescript en de omgeving niet te hebben.

Als u een MLflow-model wilt implementeren, moet u modelbestanden hebben opgeslagen op een lokaal pad of met een geregistreerd model. U kunt modelbestanden registreren bij het trainen van een model met behulp van MLflow-tracering.

In dit voorbeeld nemen we de modelbestanden van een lokaal pad. De bestanden worden allemaal opgeslagen in een lokale map met de naam model. De map moet het MLmodel-bestand bevatten, waarin wordt beschreven hoe het model kan worden geladen en gebruikt.

Tip

Meer informatie over de MLmodel-indeling.

Naast het model moet u ook de rekenconfiguratie voor de implementatie opgeven:

Voer de volgende opdracht uit om het model te implementeren (en automatisch te registreren):

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()

Advies

Bekijk de referentiedocumentatie om een beheerde online uitrol te maken met de Python SDK v2.

Omdat er slechts één model wordt geïmplementeerd op het eindpunt, wilt u dat dit model 100% van het verkeer neemt. Wanneer u meerdere modellen op hetzelfde eindpunt implementeert, kunt u het verkeer verdelen over de geïmplementeerde modellen.

Gebruik de volgende code om verkeer naar een specifieke implementatie te routeren:

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

Als u het eindpunt en alle bijbehorende implementaties wilt verwijderen, voert u de opdracht uit:

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

Tip

Meer informatie over het implementeren van MLflow-modellen