MLflow modelinizi toplu işlem uç noktasına dağıtın
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, Modelmodel türünü belirtirken MLFLOW_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.
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_onlyveyaappend_row. -
output_file_name:append_rowiçinoutput_actionseçerseniz tahminlerin eklendiği dosya.
Bahşiş
Python SDK v2 ile toplu dağıtım oluşturmak için başvuru belgelerini inceleyin.
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)