Uw MLflow-model implementeren in een batch-eindpunt
Een eenvoudige manier om een model in een batch-eindpunt te implementeren, is door een MLflow-model te gebruiken. 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 registreren
Om te voorkomen dat er een scorescript en omgeving nodig zijn, moet een MLflow-model worden geregistreerd in de Azure Machine Learning-werkruimte voordat u het kunt implementeren in een batch-eindpunt.
Als u een MLflow-model wilt registreren, gebruikt u de Model
klasse en geeft u het modeltype op MLFLOW_MODEL
. Als u het model wilt registreren bij de Python SDK, kunt u de volgende code gebruiken:
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 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.
Een MLflow-model implementeren op een eindpunt
Als u een MLflow-model wilt implementeren in een batch-eindpunt, gebruikt u de BatchDeployment
klasse.
Wanneer u een model implementeert, moet u opgeven hoe de batchscoretaak zich moet gedragen. Het voordeel van het gebruik van een rekencluster om het scorescript uit te voeren (dat automatisch wordt gegenereerd door Azure Machine Learning), is dat u het scorescript parallel kunt uitvoeren op afzonderlijke exemplaren.
Wanneer u de modelimplementatie configureert, kunt u het volgende opgeven:
instance_count
: Het aantal rekenknooppunten dat moet worden gebruikt voor het genereren van voorspellingen.max_concurrency_per_instance
: Maximum aantal parallelle scorescriptuitvoeringen per rekenknooppunt.mini_batch_size
: Het aantal bestanden dat is doorgegeven per scorescriptuitvoering.output_action
: Wat te doen met de voorspellingen:summary_only
ofappend_row
.output_file_name
: Bestand waaraan voorspellingen worden toegevoegd, als u kiestappend_row
vooroutput_action
.
Tip
Bekijk de referentiedocumentatie voor het maken van een batchimplementatie met de Python SDK v2.
Als u een MLflow-model wilt implementeren in een batch-eindpunt, kunt u de volgende code gebruiken:
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)