Bu makalede, AutoML tarafından eğitilen makine öğrenmesi modelini çevrimiçi (gerçek zamanlı çıkarım) uç noktasına dağıtmayı öğreneceksiniz. Otomatik ml veya AutoML olarak da adlandırılan otomatik makine öğrenmesi, makine öğrenmesi modeli geliştirmenin zaman alan ve yinelemeli görevlerini otomatikleştirme işlemidir. Daha fazla bilgi için bkz . Otomatik makine öğrenmesi (AutoML) nedir?.
Bu makalede, AutoML tarafından eğitilen makine öğrenmesi modelini kullanarak çevrimiçi uç noktalara nasıl dağıtabileceğinizi öğreneceksiniz:
Azure Machine Learning stüdyosu dağıtın ve kod yok
Otomatik ML sayfasından AutoML tarafından eğitilen bir modelin dağıtılması kod içermeyen bir deneyimdir. Yani, puanlama betiği ve ortamı hazırlamanız gerekmez, her ikisi de otomatik olarak oluşturulur.
Stüdyoda Otomatik ML sayfasına gidin
Denemenizi seçin ve çalıştırın
Modeller sekmesini seçin
Dağıtmak istediğiniz modeli seçin
Bir model seçtiğinizde Dağıt düğmesi açılır menüyle açılır
Gerçek zamanlı uç noktaya dağıt seçeneğini belirleyin
Sistem, dağıtım için gereken Modeli ve Ortamı oluşturur.
Modeli çevrimiçi uç noktaya dağıtmak için sihirbazı tamamlayın
Stüdyodan veya komut satırından el ile dağıtma
Dağıtım üzerinde daha fazla denetim sahibi olmak istiyorsanız eğitim yapıtlarını indirebilir ve dağıtabilirsiniz.
Dağıtım için ihtiyacınız olan bileşenleri indirmek için:
Otomatik ML denemenize gidin ve makine öğrenmesi çalışma alanınızda çalıştırın
Modeller sekmesini seçin
Kullanmak istediğiniz modeli seçin. Bir model seçtiğinizde İndir düğmesi etkinleştirilir
İndir'i seçin
Aşağıdakiler içeren bir zip dosyası alırsınız:
adlı bir conda ortam belirtimi dosyası conda_env_<VERSION>.yml
Adlı bir Python puanlama dosyası scoring_file_<VERSION>.py
Modelin kendisi, adlı bir Python .pkl dosyasında model.pkl
Bu dosyaları kullanarak dağıtmak için stüdyoyu veya Azure CLI'yı kullanabilirsiniz.
Otomatik ML çalıştırmasından indirdiğiniz modeli kaydetme
Ortamlar sayfasına gidin, Özel ortam'ı seçin ve + Oluştur seçeneğini belirleyerek dağıtımınız için bir ortam oluşturun. İndirilen conda yaml'yi kullanarak özel bir ortam oluşturun
Modeli seçin ve Dağıt açılan seçeneğinden Gerçek zamanlı uç noktaya dağıt'ı seçin
Çevrimiçi uç nokta ve dağıtım oluşturmak için sihirbazdaki tüm adımları tamamlayın
CLI'dan dağıtım oluşturmak için ML v2 uzantısına sahip Azure CLI gerekir. her ikisine de sahip olduğunuzu onaylamak için aşağıdaki komutu çalıştırın:
az version
Bir hata iletisi alırsanız veya yanıtta görmüyorsanız Extensions: ml CLI'yı yükleme ve ayarlama (v2) makalesindeki adımları izleyin.
Oturum Aç:
az login
Birden çok Azure aboneliğine erişiminiz varsa etkin aboneliğinizi ayarlayabilirsiniz:
az account set -s "<YOUR_SUBSCRIPTION_NAME_OR_ID>"
Varsayılan kaynak grubunu ve çalışma alanını dağıtımı oluşturmak istediğiniz yere ayarlayın:
az configure --defaults group=$GROUP workspace=$WORKSPACE location=$LOCATION
Puanlama dosyasını kendi dizinine yerleştirin
adlı src/ bir dizin oluşturun ve indirdiğiniz puanlama dosyasını bu dizine yerleştirin. Bu dizin Azure'a yüklenir ve çıkarım yapmak için gereken tüm kaynak kodunu içerir. AutoML modeli için yalnızca tek puanlama dosyası vardır.
Uç nokta ve dağıtım yaml dosyasını oluşturma
Komut satırından çevrimiçi uç nokta oluşturmak için endpoint.yml ve deployment.yml dosyası oluşturmanız gerekir. Azure Machine Learning Örnekleri deposundan alınan aşağıdaki kod, gerekli tüm girişleri yakalayan uç noktaları/çevrimiçi/yönetilen/örnek/ gösterir:
AutoML Modelleri sayfasından indirdiğiniz dosyaları kullanmak için bu dosyayı değiştirmeniz gerekir.
Bir dosya automl_endpoint.yml oluşturun ve automl_deployment.yml yukarıdaki örneğin içeriğini yapıştırın.
Uç noktanın name değerini değiştirin. Uç nokta adının Azure bölgesinde benzersiz olması gerekir. Uç noktanın adı büyük veya küçük harfle başlamalı ve yalnızca '-' ve alfasayısal karakterlerden oluşmalıdır.
automl_deployment dosyasında, aşağıdaki yollarda anahtarların değerini değiştirin:
Path
Şununla değiştirin:
model:path
İndirdiğiniz dosyanın yolu model.pkl .
code_configuration:code:path
Puanlama dosyasını yerleştirdiğiniz dizin.
code_configuration:scoring_script
Python puanlama dosyasının adı (scoring_file_<VERSION>.py).
environment:conda_file
İndirilen conda ortam dosyası () için bir dosyaconda_env_<VERSION>.yml URL'si.
Python SDK v2'yi henüz yüklemediyseniz lütfen şu komutla yükleyin:
pip install azure-ai-ml azure-identity
Daha fazla bilgi için bkz . Python için Azure Machine Learning SDK v2'yi yükleme.
Puanlama dosyasını kendi dizinine yerleştirin
adlı src/ bir dizin oluşturun ve indirdiğiniz puanlama dosyasını bu dizine yerleştirin. Bu dizin Azure'a yüklenir ve çıkarım yapmak için gereken tüm kaynak kodunu içerir. AutoML modeli için yalnızca tek puanlama dosyası vardır.
Azure Machine Learning çalışma alanına Bağlan
Gerekli kitaplıkları içeri aktarın:
# import required libraries
from azure.ai.ml import MLClient
from azure.ai.ml.entities import (
ManagedOnlineEndpoint,
ManagedOnlineDeployment,
Model,
Environment,
CodeConfiguration,
)
from azure.identity import DefaultAzureCredential
Çalışma alanı ayrıntılarını yapılandırın ve çalışma alanına bir tanıtıcı alın:
# enter details of your Azure Machine Learning workspace
subscription_id = "<SUBSCRIPTION_ID>"
resource_group = "<RESOURCE_GROUP>"
workspace = "<AZUREML_WORKSPACE_NAME>"
# get a handle to the workspace
ml_client = MLClient(
DefaultAzureCredential(), subscription_id, resource_group, workspace
)
Uç noktayı ve dağıtımı oluşturma
Ardından yönetilen çevrimiçi uç noktaları ve dağıtımları oluşturacağız.
Çevrimiçi uç noktayı yapılandırma:
Bahşiş
name: Uç noktanın adı. Azure bölgesinde benzersiz olmalıdır. Uç noktanın adı büyük veya küçük harfle başlamalı ve yalnızca '-' ve alfasayısal karakterlerden oluşmalıdır. Adlandırma kuralları hakkında daha fazla bilgi için bkz . uç nokta sınırları.
auth_mode : Anahtar tabanlı kimlik doğrulaması için kullanın key . Azure Machine Learning belirteç tabanlı kimlik doğrulaması için kullanın aml_token . A'nın key süresi dolmaz, ancak aml_token süresi dolar. Kimlik doğrulaması hakkında daha fazla bilgi için bkz . Çevrimiçi uç noktada kimlik doğrulaması yapma.
# Creating a unique endpoint name with current datetime to avoid conflicts
import datetime
online_endpoint_name = "endpoint-" + datetime.datetime.now().strftime("%m%d%H%M%f")
# create an online endpoint
endpoint = ManagedOnlineEndpoint(
name=online_endpoint_name,
description="this is a sample online endpoint",
auth_mode="key",
)
Uç noktayı oluşturun:
Daha önce oluşturulan öğesini MLClient kullanarak şimdi çalışma alanında Uç Nokta oluşturacağız. Bu komut uç nokta oluşturmayı başlatır ve uç nokta oluşturma işlemi devam ederken bir onay yanıtı döndürür.
ml_client.begin_create_or_update(endpoint)
Çevrimiçi dağıtımı yapılandırma:
Dağıtım, gerçek çıkarım yapan modeli barındırmak için gereken bir kaynak kümesidir. sınıfını ManagedOnlineDeployment kullanarak uç noktamız için bir dağıtım oluşturacağız.
Yukarıdaki örnekte, AutoML Modelleri sayfasından indirdiğiniz dosyaların dizinde src olduğunu varsayıyoruz. Koddaki parametreleri durumunuzla eşleşecek şekilde değiştirebilirsiniz.
Parametre
Şununla değiştirin:
model:path
İndirdiğiniz dosyanın yolu model.pkl .
code_configuration:code:path
Puanlama dosyasını yerleştirdiğiniz dizin.
code_configuration:scoring_script
Python puanlama dosyasının adı (scoring_file_<VERSION>.py).
environment:conda_file
İndirilen conda ortam dosyası () için bir dosyaconda_env_<VERSION>.yml URL'si.
Dağıtımı oluşturun:
Daha önce oluşturulan öğesini MLClient kullanarak şimdi dağıtımı çalışma alanında oluşturacağız. Bu komut dağıtım oluşturma işlemini başlatır ve dağıtım oluşturma işlemi devam ederken bir onay yanıtı döndürür.
ml_client.begin_create_or_update(blue_deployment)
Bir dağıtım oluşturduktan sonra, uç noktayı örnek verilerle test etme bölümünde açıklandığı gibi puanlayabilirsiniz.