Развертывание модели MLflow в пакетной конечной точке

Завершено

Простой способ развертывания модели в пакетной конечной точке — использовать модель MLflow . Машинное обучение Azure автоматически создает скрипт оценки и среду для моделей MLflow.

Чтобы развернуть модель MLflow, необходимо создать конечную точку. Затем можно развернуть модель в конечной точке.

Регистрация модели MLflow

Чтобы избежать необходимости в скрипте оценки и среде, модель MLflow должна быть зарегистрирована в рабочей области Машинное обучение Azure, прежде чем развернуть ее в пакетной конечной точке.

Чтобы зарегистрировать модель MLflow, используйте Model класс, указав тип MLFLOW_MODELмодели. Чтобы зарегистрировать модель в пакете SDK для Python, можно использовать следующий код:

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: файл, к которому будут добавлены прогнозы, если выбран append_row вариант output_action.

Совет

Ознакомьтесь со справочной документацией по созданию пакетного развертывания с помощью пакета SDK для Python версии 2.

Чтобы развернуть модель 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)