Uw MLflow-model implementeren op een beheerd online-eindpunt
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:
-
instance_type
: Grootte van de virtuele machine (VM) die moet worden gebruikt. Bekijk de lijst met ondersteunde grootten. -
instance_count
: het aantal exemplaren dat moet worden gebruikt.
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")