Distribuera MLflow-modellen till en batchslutpunkt
Ett enkelt sätt att distribuera en modell till en batchslutpunkt är att använda en MLflow-modell . Azure Machine Learning genererar automatiskt bedömningsskriptet och miljön för MLflow-modeller.
Om du vill distribuera en MLflow-modell måste du ha skapat en slutpunkt. Sedan kan du distribuera modellen till slutpunkten.
Registrera en MLflow-modell
För att undvika att det behövs ett bedömningsskript och en miljö måste en MLflow-modell registreras på Azure Machine Learning-arbetsytan innan du kan distribuera den till en batchslutpunkt.
Om du vill registrera en MLflow-modell använder Model
du klassen medan du anger modelltypen som MLFLOW_MODEL
. Om du vill registrera modellen med Python SDK kan du använda följande kod:
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)
)
I det här exemplet tar vi modellfilerna från en lokal sökväg. Filerna lagras alla i en lokal mapp med namnet model
. Mappen måste innehålla MLmodel
filen, som beskriver hur modellen kan läsas in och användas.
Dricks
Läs mer om MLmodel-formatet.
Distribuera en MLflow-modell till en slutpunkt
Om du vill distribuera en MLflow-modell till en batchslutpunkt använder BatchDeployment
du klassen .
När du distribuerar en modell måste du ange hur du vill att batchbedömningsjobbet ska bete sig. Fördelen med att använda ett beräkningskluster för att köra bedömningsskriptet (som genereras automatiskt av Azure Machine Learning) är att du kan köra bedömningsskriptet på separata instanser parallellt.
När du konfigurerar modelldistributionen kan du ange:
instance_count
: Antal beräkningsnoder som ska användas för att generera förutsägelser.max_concurrency_per_instance
: Maximalt antal parallella bedömningsskriptkörningar per beräkningsnod.mini_batch_size
: Antal filer som skickas per bedömningsskriptkörning.output_action
: Vad du ska göra med förutsägelserna:summary_only
ellerappend_row
.output_file_name
: Fil som förutsägelser ska läggas till i, om du väljerappend_row
föroutput_action
.
Dricks
Utforska referensdokumentationen för att skapa en batchdistribution med Python SDK v2.
Om du vill distribuera en MLflow-modell till en batchslutpunkt kan du använda följande kod:
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)