MLflow modelinizi toplu işlem uç noktasına dağıtın

Tamamlandı

Bir modeli toplu iş uç noktasına dağıtmanın kolay bir yolu, MLflow modeli kullanmaktır. Azure Machine Learning, MLflow modelleri için puanlama betiğini ve ortamını otomatik olarak oluşturur.

MLflow modelini dağıtmak için bir uç nokta oluşturmuş olmanız gerekir. Ardından modeli uç noktaya dağıtabilirsiniz.

MLflow modelini kaydetme

Puanlama betiği ve ortamına ihtiyaç duyulmaması için, toplu iş uç noktasına dağıtabilmeniz için önce MLflow modelinin Azure Machine Learning çalışma alanına kaydedilmesi gerekir.

MLflow modelini kaydetmek için, MLFLOW_MODELmodel türünü belirtirken Model sınıfını kullanacaksınız. Modeli Python SDK'sına kaydetmek için aşağıdaki kodu kullanabilirsiniz:

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

Bu örnekte, model dosyalarını yerel bir yoldan alıyoruz. Dosyaların tümü modeladlı yerel bir klasörde depolanır. Klasör, modelin nasıl yüklenip kullanılabileceğini açıklayan MLmodel dosyasını içermelidir.

Bahşiş

MLmodel biçimini hakkında daha fazla bilgi edinin.

Bir uç noktaya MLflow modeli dağıtma

MLflow modelini toplu iş uç noktasına dağıtmak için BatchDeployment sınıfını kullanacaksınız.

Bir modeli dağıtırken toplu puanlama işinin nasıl davranmasını istediğinizi belirtmeniz gerekir. Puanlama betiğini (Azure Machine Learning tarafından otomatik olarak oluşturulur) çalıştırmak için işlem kümesi kullanmanın avantajı, puanlama betiğini ayrı örneklerde paralel olarak çalıştırabilmenizdir.

Model dağıtımını yapılandırırken şunları belirtebilirsiniz:

  • instance_count: Tahmin oluşturmak için kullanılacak işlem düğümlerinin sayısı.
  • max_concurrency_per_instance: İşlem düğümü başına en fazla paralel puanlama betiği çalıştırma sayısı.
  • mini_batch_size: Puanlama betiği çalıştırması başına geçirilen dosya sayısı.
  • output_action: Tahminlerle ne yapmalı: summary_only veya append_row.
  • output_file_name: output_actioniçin append_row seçerseniz tahminlerin eklendiği dosya.

MLflow modelini toplu iş uç noktasına dağıtmak için aşağıdaki kodu kullanabilirsiniz:

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)