Implantar seu modelo MLflow em um ponto de extremidade em lote
Uma maneira fácil de implantar um modelo em um ponto de extremidade em lote é usar um modelo MLflow . O Azure Machine Learning gerará automaticamente o script de pontuação e o ambiente para modelos MLflow.
Para implantar um modelo MLflow, você precisa ter criado um ponto de extremidade. Em seguida, você pode implantar o modelo no ponto de extremidade.
Registrar um modelo MLflow
Para evitar a necessidade de um script e ambiente de pontuação, um modelo MLflow precisa ser registrado no espaço de trabalho do Aprendizado de Máquina do Azure antes que você possa implantá-lo em um ponto de extremidade em lote.
Para registrar um modelo MLflow, você usará a Model
classe enquanto especifica o tipo de modelo a ser MLFLOW_MODEL
. Para registrar o modelo com o Python SDK, você pode usar o seguinte código:
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)
)
Neste exemplo, estamos pegando os arquivos de modelo de um caminho local. Os arquivos são todos armazenados em uma pasta local chamada model
. A pasta deve incluir o MLmodel
arquivo, que descreve como o modelo pode ser carregado e usado.
Gorjeta
Saiba mais sobre o formato MLmodel.
Implantar um modelo MLflow em um ponto de extremidade
Para implantar um modelo MLflow em um ponto de extremidade em lote, você usará a BatchDeployment
classe.
Ao implantar um modelo, você precisará especificar como deseja que o trabalho de pontuação em lote se comporte. A vantagem de usar um cluster de computação para executar o script de pontuação (que é gerado automaticamente pelo Azure Machine Learning) é que você pode executar o script de pontuação em instâncias separadas em paralelo.
Ao configurar a implantação do modelo, você pode especificar:
instance_count
: Contagem de nós de computação a serem usados para gerar previsões.max_concurrency_per_instance
: Número máximo de scripts de pontuação paralela executados por nó de computação.mini_batch_size
: Número de arquivos passados por script de pontuação executado.output_action
: O que fazer com as previsões:summary_only
ouappend_row
.output_file_name
: Arquivo ao qual as previsões serão anexadas, se você optarappend_row
poroutput_action
.
Gorjeta
Explore a documentação de referência para criar uma implantação em lote com o Python SDK v2.
Para implantar um modelo MLflow em um ponto de extremidade em lote, você pode usar o seguinte código:
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)