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, MLFLOW_MODEL
model 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ü model
adlı 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_only
veyaappend_row
. -
output_file_name
:output_action
içinappend_row
seçerseniz tahminlerin eklendiği dosya.
Bahşiş
Python SDK v2 ile toplu dağıtım oluşturmak için referans belgeleriniinceleyin.
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)