将 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_onlyappend_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)