将 MLflow 模型部署到批处理终结点
将模型部署到批处理终结点的一种简单方法是使用 MLflow 模型。 Azure 机器学习将为 MLflow 模型自动生成评分脚本和环境。
若要部署 MLflow 模型,需要创建终结点。 然后可以将模型部署到终结点。
注册 MLflow 模型
为了避免需要评分脚本和环境,需要在 Azure 机器学习工作区中注册 MLflow 模型,然后才能将其部署到批处理终结点。
若要注册 MLflow 模型,将使用 Model
类,同时将模型类型指定为 MLFLOW_MODEL
。 若要向 Python SDK 注册模型,可以使用以下代码:
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)
)
在此示例中,我们将从本地路径中获取模型文件。 所有文件都存储在名为 model
的本地文件夹中。 文件夹必须包含 MLmodel
文件,该文件描述如何加载和使用模型。
提示
详细了解 MLmodel 格式。
将 MLflow 模型部署到终结点
若要将 MLflow 模型部署到批处理终结点,请使用 BatchDeployment
类。
部署模型时,需要指定批处理评分作业的行为方式。 使用计算群集运行评分脚本(由 Azure 机器学习自动生成的)的优点是可以在单独的实例上并行运行评分脚本。
配置模型部署时,可以指定:
instance_count
:用于生成预测的计算节点计数。max_concurrency_per_instance
:每个计算节点运行的最大并行评分脚本数。mini_batch_size
:每个评分脚本运行传递的文件数。output_action
:如何处理预测:summary_only
或append_row
。output_file_name
:如果为output_action
选择append_row
,预测将追加到的文件。
提示
浏览参考文档以使用 Python SDK v2 创建批量部署。
若要将 MLflow 模型部署到批处理终结点,可以使用以下代码:
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)