MLflow modelinizi yönetilen çevrimiçi uç noktaya dağıtma

Tamamlandı

Modeli çevrimiçi uç noktaya dağıtmanın en kolay yolu, MLflow modeli kullanmak ve bunu yönetilen bir çevrimiçi uç noktaya dağıtmaktı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.

Bir uç noktaya MLflow modeli dağıtma

Yönetilen çevrimiçi uç noktaya bir MLflow modeli dağıttığınızda puanlama betiğine ve ortamına sahip olmanız gerekmez.

MLflow modelini dağıtmak için, yerel yolda veya kayıtlı bir modelde depolanan model dosyalarınız olmalıdır. MLflow izlemesini kullanarak model eğitirken model dosyalarını günlüğe kaydedebilirsiniz.

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

İpucu

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

Modelin yanında, dağıtım için işlem yapılandırmasını da belirtmeniz gerekir:

  • instance_type: Kullanılacak sanal makine (VM) boyutu. Desteklenen boyutların listesini gözden geçirin.
  • instance_count: Kullanılacak örnek sayısı.

Modeli dağıtmak (ve otomatik olarak kaydetmek) için aşağıdaki komutu çalıştırın:

from azure.ai.ml.entities import Model, ManagedOnlineDeployment
from azure.ai.ml.constants import AssetTypes

# create a blue deployment
model = Model(
    path="./model",
    type=AssetTypes.MLFLOW_MODEL,
    description="my sample mlflow model",
)

blue_deployment = ManagedOnlineDeployment(
    name="blue",
    endpoint_name="endpoint-example",
    model=model,
    instance_type="Standard_F4s_v2",
    instance_count=1,
)

ml_client.online_deployments.begin_create_or_update(blue_deployment).result()

İpucu

Python SDK v2 ile yönetilen çevrimiçi dağıtım oluşturmak için başvuru belgelerini inceleyin.

Uç noktaya yalnızca bir model dağıtıldığından, bu modelin trafiğin %100'ünün almasını istiyorsunuz. Aynı uç noktaya birden çok model dağıttığınızda, trafiği dağıtılan modeller arasında dağıtabilirsiniz.

Trafiği belirli bir dağıtıma yönlendirmek için aşağıdaki kodu kullanın:

# blue deployment takes 100 traffic
endpoint.traffic = {"blue": 100}
ml_client.begin_create_or_update(endpoint).result()

Uç noktayı ve ilişkili tüm dağıtımları silmek için komutunu çalıştırın:

ml_client.online_endpoints.begin_delete(name="endpoint-example")

İpucu

MLflow modellerini dağıtma hakkında daha fazla bilgi edinin