Toplu puanlama için toplu iş uç noktalarını (önizleme) kullanma

Toplu puanlama yapmak için toplu iş uç noktalarını (önizleme) kullanmayı öğrenin. Batch uç noktaları, modellerinizi toplu puanlama için barındırma sürecini basitleştirir, böylece altyapıya değil makine öğrenimine odaklanabilirsiniz. Daha fazla bilgi için bkz. Uç Azure Machine Learning (önizleme)?.

Bu makalede aşağıdaki görevleri gerçekleştirmeyi öğrenirsiniz:

  • Toplu iş uç noktası ve varsayılan toplu iş dağıtımı oluşturma
  • Azure CLI kullanarak toplu puanlama işi başlatma
  • Toplu puanlama işi yürütme ilerleme durumunu izleme ve puanlama sonuçlarını denetleme
  • Otomatik olarak oluşturulan kod ve ortamla yeni bir MLflow modelini mevcut akışı etkilemeden mevcut bir uç noktasına dağıtma
  • Yeni dağıtımı test etmek ve varsayılan dağıtım olarak ayarlamak
  • Kullanımda olmayan uç noktayı ve dağıtımı silme

Önemli

Bu özellik şu anda genel önizlemededir. Bu önizleme sürümü hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için önerilmez. Bazı özellikler desteklenmiyor olabileceği gibi özellikleri sınırlandırılmış da olabilir. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları.

Önkoşullar

  • Bu hizmeti kullanmak için bir Azure aboneliğinizin Azure Machine Learning. Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun. Bu sürümün ücretsiz veya ücretli sürümünü Azure Machine Learning deneyin.

  • Azure CLI'sini ve uzantıyı ml yükleyin. CLI (v2) (önizleme) yükleme,ayarlama ve kullanma 'daki yükleme adımlarını izleyin.

  • Bir Azure kaynak grubunuz yoksa ve (veya kullanmakta olan hizmet sorumlusu) izinlere sahip olmak zorundasanız bir Azure kaynak grubu Contributor oluşturun. Kaynak grubu oluşturma için bkz. CLI'yi yükleme, ayarlama ve kullanma (v2) (önizleme).

  • Yoksa Azure Machine Learning çalışma alanı oluşturun. Çalışma alanı oluşturmak için bkz. CLI'yi yükleme, ayarlama ve kullanma (v2) (önizleme).

  • Azure CLI için varsayılan çalışma alanınızı ve kaynak grubularınızı yapılandırma. Machine Learning CLI komutları ve --workspace/-w --resource-group/-g parametrelerini gerektirir. Varsayılan değerleri yapılandırmak, değerleri birden çok kez geçirmeyi önleyebilirsiniz. Bunları komut satırı üzerinde geçersiz kılabilirsiniz. Varsayılanlarınızı ayarlamak için aşağıdaki kodu çalıştırın. Daha fazla bilgi için bkz. CLI 'yi yükleme, ayarlama ve kullanma (v2) (önizleme).

az account set -s "<subscription ID>"
az configure --defaults group="<resource group>" workspace="<workspace name>" location="<location>"

Örnek depoyu kopyalama

AzureML Örnek deposunu klonlamak ve dizinine gitmek için aşağıdaki komutları cli çalıştırın. Bu makalede , 'daki varlıklar /cli/endpoints/batch end to end working örneği olarak lanmıştır. /cli/batch-score.sh

git clone https://github.com/Azure/azureml-examples 
cd azureml-examples/cli

Uç nokta adını ayarlayın. yerine YOUR_ENDPOINT_NAME bir Azure bölgesi içinde benzersiz bir ad yazın.

Unix için şu komutu çalıştırın:

export ENDPOINT_NAME="<YOUR_ENDPOINT_NAME>"

Daha Windows için şu komutu çalıştırın:

set ENDPOINT_NAME="<YOUR_ENDPOINT_NAME>"

Not

Batch uç noktası adlarının bir Azure bölgesinde benzersiz olması gerekir. Örneğin, westus2'de mybatchendpoint adına sahip tek bir toplu iş uç noktası olabilir.

İşlem oluşturma

Batch uç noktası yerel olarak değil yalnızca bulut bilişim kaynaklarda çalışır. Bulut bilişim kaynağı yeniden kullanılabilir bir sanal bilgisayar kümesidir. İşlem kümesi oluşturmak için aşağıdaki Azure Machine Learning çalıştırın. Bu makaledeki aşağıdaki örneklerde burada oluşturulan adlı işlem batch-cluster lanmıştır. Gerektiğinde ayarlayın ve kullanarak işlem başvurusunda azureml:<your-compute-name> bulundurarak.

az ml compute create -n batch-cluster --type amlcompute --min-instances 0 --max-instances 5

Not

Bu noktada işlem için ücret ödemezsiniz çünkü küme bir toplu iş uç noktası çağrılana ve toplu puanlama işi gönderilene kadar 0 düğümde kalır. AmlCompute için maliyeti yönetme ve iyileştirme hakkında daha fazla bilgi öğrenin.

Toplu iş uç noktalarını ve toplu dağıtımları anlama

Toplu iş uç noktası, istemcilerin toplu puanlama işini tetiklemek için çağıran bir HTTPS uç noktasıdır. Toplu puanlama işi, birden çok girişi puan alan bir iştir (daha fazla bilgi için bkz. Toplu iş uç noktaları nedir?). Toplu dağıtım, gerçek toplu iş puanlama işlemini yapan modeli barındıran bir işlem kaynakları kümesidir. Bir toplu iş uç noktasının birden çok toplu dağıtım olabilir.

İpucu

Toplu dağıtımlardan biri, uç nokta için varsayılan dağıtım olarak görev yapacaktır. Uç nokta çağrıldığında gerçek toplu puanlama yapmak için varsayılan dağıtım kullanılır. Toplu iş uç noktaları ve toplu iş dağıtımı hakkında daha fazla bilgi.

Aşağıdaki YAML dosyası, batch uç noktası oluşturmak için CLI komutuna dahil etmek için bir toplu iş uç noktası tanımlar. Bu dosya, deposunda /cli/endpoints/batch/batch-endpoint.yml bulunur.

$schema: https://azuremlschemas.azureedge.net/latest/batchEndpoint.schema.json
name: mybatchedp
description: my sample batch endpoint
auth_mode: aad_token

Aşağıdaki tabloda, uç nokta YAML'lerinin temel özellikleri açık almaktadır. Tam toplu iş uç noktası YAML şeması için bkz. CLI (v2) toplu iş uç noktası YAML şeması.

Anahtar Description
$schema [İsteğe bağlı] YAML şeması. Toplu iş uç noktası YAML dosyası için kullanılabilir tüm seçenekleri görmek üzere yukarıdaki örnekteki şemayı bir tarayıcıda görüntüleyebilirsiniz.
name Toplu iş uç noktasının adı. Azure bölgesi düzeyinde benzersiz olması gerekir.
auth_mode Toplu iş uç noktası için kimlik doğrulama yöntemi. Şu anda Azure Active Directory tabanlı kimlik doğrulaması ( aad_token ) de destekleni.
defaults.deployment_name Uç nokta için varsayılan dağıtım olarak görev yapacak dağıtımın adı.

Toplu dağıtım oluşturmak için aşağıdaki öğelerin hepsi gerekir:

  • Model dosyaları veya kullanarak başvurulan çalışma alanınıza kayıtlı bir azureml:<model-name>:<model-version> model.
  • Modeli puanlatıran kod.
  • Modelin çalıştır olduğu ortam. Conda bağımlılıkları olan bir Docker görüntüsü veya kullanılarak başvurulan çalışma alanınıza kaydedilmiş bir ortam azureml:<environment-name>:<environment-version> olabilir.
  • ve kaynak ayarları kullanılarak başvurulan önceden azureml:<compute-name> oluşturulmuş işlem.

Azure ML varlığa başvuru hakkında daha fazla bilgi için bkz. Azure ML varlığa başvuru.

Örnek depo tüm gerekli dosyaları içerir. Aşağıdaki YAML dosyası, tüm gerekli girişlere ve isteğe bağlı ayarlara sahip bir toplu dağıtım tanımlar. Batch dağıtımınızı oluşturmak için bu dosyayı CLI komutuna dahilebilirsiniz. Bu dosya, deposunda /cli/endpoints/batch/nonmlflow-deployment.yml bulunur.

$schema: https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json
name: nonmlflowdp
endpoint_name: mybatchedp
model: 
  local_path: ./mnist/model/
code_configuration:
  code:
    local_path: ./mnist/code/
  scoring_script: digit_identification.py
environment:
  conda_file: ./mnist/environment/conda.yml
  image: mcr.microsoft.com/azureml/openmpi3.1.2-ubuntu18.04:latest
compute: azureml:batch-cluster
resources:
  instance_count: 1
max_concurrency_per_instance: 2
mini_batch_size: 10
output_action: append_row
output_file_name: predictions.csv
retry_settings:
  max_retries: 3
  timeout: 30
error_threshold: -1
logging_level: info

Aşağıdaki tabloda, dağıtım YAML'lerinin temel özellikleri açık almaktadır. Tam toplu dağıtım YAML şeması için bkz. CLI (v2) toplu dağıtım YAML şeması.

Anahtar Description
$schema [İsteğe bağlı] YAML şeması. Toplu dağıtım YAML dosyası için tüm kullanılabilir seçenekleri görmek üzere yukarıdaki örnekteki şemayı bir tarayıcıda görüntüleyebilirsiniz.
name Dağıtımın adı.
endpoint_name Dağıtımı oluşturmak için uç noktanın adı.
model Toplu puanlama için kullanılacak model. Örnek, kullanarak bir modeli satır içi olarak local_path tanımlar. Model dosyaları otomatik olarak karşıya yüklenir ve otomatik olarak yeni bir ad ve sürümle kaydedilir. Daha fazla seçenek için Model şemasını izleyin. Üretim senaryoları için en iyi yöntem olarak modeli ayrı ayrı oluşturmanız ve burada başvurulmalıdır. Mevcut bir modele başvuru yapmak için söz dizimlerini azureml:<model-name>:<model-version> kullanın.
code_configuration.code.local_path Modeli puanlatıran tüm Python kaynak kodunu içeren dizin.
code_configuration.scoring_script Yukarıdaki dizinde yer alan Python dosyası. Bu dosyanın bir işlevi init() ve işlevi run() olması gerekir. Yüksek init() maliyetli veya yaygın hazırlıklar için işlevini kullanın (örneğin, modeli belleğe yükleme). init() işlem başında yalnızca bir kez çağrılır. Her run(mini_batch) girişi puan almak için kullanın; değeri bir dosya yolları mini_batch listesidir. İşlev run() bir pandas DataFrame veya bir dizi döndürür. Döndürülen her öğe içinde giriş öğesinin başarılı bir çalıştırması olduğunu mini_batch gösterir. Girişin çıkışıyla ilişkilendirilmesi için yanıtınıza yeterli miktarda veri eklendiğinden emin olun run() .
environment Modeli skor ortamı. Örnek, ve kullanarak bir ortamı satır içinde tanımlar conda_file image . conda_fileBağımlılıkları, üzerine yüklenir image . Ortam otomatik olarak oluşturulan bir ad ve sürümle kaydedilir. Daha fazla seçenek için ortam şemasını izleyin. Üretim senaryoları için en iyi uygulama olarak, ortamı ayrı olarak oluşturmanız ve buraya başvurmanız gerekir. Var olan bir ortama başvurmak için azureml:<environment-name>:<environment-version> söz dizimini kullanın.
compute Toplu Puanlama çalıştırmak için işlem. Örnek, batch-cluster başlangıcında oluşturulan öğesini kullanır ve sözdizimi kullanarak ona başvurur azureml:<compute-name> .
resources.instance_count Her Batch Puanlama işi için kullanılacak örneklerin sayısı.
max_concurrency_per_instance Seçim Örnek başına en fazla paralel scoring_script çalıştırma sayısı.
mini_batch_size Seçim scoring_script Tek bir çağrıda işleyecan dosya sayısı run() .
output_action Seçim Çıktının çıkış dosyasında nasıl düzenlenme şekli. append_row``run()döndürülen tüm çıktı sonuçlarını adlı tek bir dosya olarak birleştirir output_file_name . summary_only , çıkış sonuçlarını birleştirmez ve yalnızca hesaplamaz error_threshold .
output_file_name Seçim İçin toplu işlem Puanlama çıkış dosyasının adı append_row output_action .
retry_settings.max_retries Seçim Başarısız için en fazla deney sayısı scoring_script run() .
retry_settings.timeout Seçim Bir scoring_script for Puanlama için bir mini toplu iş için saniye cinsinden zaman aşımı run() .
error_threshold Seçim Yok sayılacak olan giriş dosyası Puanlama hatalarının sayısı. Tüm girdinin hata sayısı bu değerin üzerine gittiğinde, toplu Puanlama işi sonlandırılır. Örnek -1 , Batch Puanlama işini sonlandırmadan herhangi bir sayıda hatalara izin verildiğini belirten kullanır.
logging_level Seçim Günlük ayrıntı düzeyi. Artan ayrıntı değerleri: uyarı, BILGI ve hata ayıklama.

Puanlama betiğini anlayın

Daha önce belirtildiği gibi, code_configuration.scoring_script iki işlevi de içermelidir:

  • init(): Herhangi bir maliyetli veya genel hazırlık için bu işlevi kullanın. Örneğin, modeli genel bir nesneye yüklemek için kullanın. Bu işlev işlemin başlangıcında bir kez çağrılacaktır.
  • run(mini_batch): Bu işlev her biri için çağrılacaktır mini_batch ve gerçek Puanlama yapılır.
    • mini_batch: mini_batch Değer, dosya yollarının bir listesidir.
    • response: run() Yöntem bir Pandas DataFrame veya Array döndürmelidir. Döndürülen her çıkış öğesi, girişte bir giriş öğesinin başarılı bir şekilde çalıştırılmasını gösterir mini_batch . Bir run() girişin çıkış sonucuyla ilişkilendirilmesi için yanıta yeterli verinin (örneğin, her giriş öğesinin bir tanımlayıcısı) eklendiğinden emin olun.

Örnek, kullanılır /cli/endpoints/batch/mnist/code/digit_identification.py . Model init() AZUREML_MODEL_DIR , dağıtım sırasında oluşturulan model klasörünün yolu olan öğesinden öğesine yüklenir. run(mini_batch) içindeki her dosyayı yineler mini_batch , gerçek model Puanlama yapar ve ardından çıktı sonuçları döndürür.

Batch uç noktalarıyla dağıtın ve toplu iş Puanlama çalıştırın

Şimdi, modeli Batch uç noktalarıyla dağıtalım ve toplu Puanlama çalıştıralım.

Toplu iş uç noktası oluşturma

Bir Batch uç noktası oluşturmanın en kolay yolu, yalnızca bir sağlamak için aşağıdaki kodu çalıştırmalıdır --name .

az ml batch-endpoint create --name $ENDPOINT_NAME

Ayrıca, bir YAML dosyası kullanarak bir Batch uç noktası oluşturabilirsiniz. --fileYukarıdaki komutuna parametre ekleyin ve YAML dosya yolunu belirtin.

Batch dağıtımı oluşturma

Batch uç noktası altında adlı bir Batch dağıtımı oluşturmak nonmlflowdp ve bunu varsayılan dağıtım olarak ayarlamak için aşağıdaki kodu çalıştırın.

az ml batch-deployment create --name nonmlflowdp --endpoint-name $ENDPOINT_NAME --file endpoints/batch/nonmlflow-deployment.yml --set-default

İpucu

--set-defaultParametresi yeni oluşturulan dağıtımı bitiş noktasının varsayılan dağıtımı olarak ayarlar. Özellikle ilk dağıtım oluşturma için uç noktanın yeni bir varsayılan dağıtımını oluşturmanın kullanışlı bir yoludur. Üretim senaryoları için en iyi uygulama olarak, varsayılan olarak ayarlamadan yeni bir dağıtım oluşturmak, bunu doğrulamak ve varsayılan dağıtımı daha sonra güncelleştirmek isteyebilirsiniz. Daha fazla bilgi için yeni model dağıtma bölümüne bakın.

Batch uç noktası ve dağıtım ayrıntılarını denetle

showUç nokta ve dağıtım ayrıntılarını denetlemek için kullanın.

Toplu dağıtımı denetlemek için aşağıdaki kodu çalıştırın:

az ml batch-deployment show --name nonmlflowdp --endpoint-name $ENDPOINT_NAME

Bir Batch uç noktasını denetlemek için aşağıdaki kodu çalıştırın. Yeni oluşturulan dağıtım varsayılan dağıtım olarak ayarlandığı için, yanıtta içinde ' i görmeniz gerekir nonmlflowdp defaults.deployment_name .

az ml batch-endpoint show --name $ENDPOINT_NAME

Batch Puanlama işi başlatmak için Batch uç noktasını çağırma

Batch uç noktası çağırma bir Batch Puanlama işi tetikler. nameÇağırma yanıtından bir iş döndürülür ve toplu Puanlama ilerlemesini izlemek için kullanılabilir. Toplu iş Puanlama işi bir süre boyunca çalışır. Tüm girişleri, mini_batch işlem kümesinde paralel olarak birden çok ve işleme böler. Bunlardan biri scoring_scrip run() bir mini_batch örnek üzerinde bir işlem tarafından işlenir ve işlenir. Batch Puanlama iş çıkışları, çalışma alanının varsayılan BLOB depolama alanında ya da belirttiğiniz depolama alanı için bulut depolama alanında depolanır.

Batch uç noktasını farklı giriş seçenekleriyle çağırma

CLı 'yi ya da uç noktaya geri kalanını kullanabilirsiniz invoke . REST deneyimi için bkz. rest ile Batch uç noktalarını kullanma (Önizleme)

CLı 'daki veri girişlerini belirtmek için üç seçenek vardır invoke .

  • Seçenek 1: buluttaki veriler

    --input-pathAzure Machine Learning kayıtlı bir veri deposunda bir klasör (ön ek kullanın folder: ) veya bir dosya (ön ek kullanın) belirtmek için kullanın file: . Veri URI 'SI için sözdizimi folder:azureml://datastores/<datastore-name>/paths/<data-path>/ klasör ve file:azureml://datastores/<datastore-name>/paths/<data-path>/<file-name> belirli bir dosya içindir. veri urı 'si hakkında daha fazla bilgi için bkz. Azure Machine Learning veri başvurusu urı 'si.

    Örnek https://pipelinedata.blob.core.windows.net/sampledata/mnist , ' deki, çok sayıda el ile yazılmış basamak içeren bir klasörde herkese açık olarak kullanılabilir verileri kullanır. Toplu iş Puanlama işinin adı, çağırma yanıtından döndürülür. Bu verileri kullanarak Batch uç noktasını çağırmak için aşağıdaki kodu çalıştırın. --query name yalnızca Invoke yanıtından iş adını döndürmek için eklenir ve daha sonra Batch Puanlama işi yürütme Ilerlemesini izlemek ve Batch Puanlama sonuçlarını denetlemekiçin kullanılır. --query name -o tsvTam çağırma yanıtını görmek istiyorsanız kaldırın. Parametresi hakkında daha fazla bilgi için --query bkz. Azure CLI komut çıkışını sorgulama.

    JOB_NAME=$(az ml batch-endpoint invoke --name $ENDPOINT_NAME --input-path folder:https://pipelinedata.blob.core.windows.net/sampledata/mnist --query name -o tsv)
    
  • Seçenek 2: kayıtlı veri kümesi

    --input-datasetAzure Machine Learning kayıtlı bir veri kümesini geçirmek için kullanın. Bir veri kümesi oluşturmak için, az ml dataset create -h yönergeyi denetleyin ve veri kümesi şemasınıizleyin.

    Not

    CLı ve Python SDK 'nın önceki sürümü kullanılarak oluşturulan dosya veri kümesi de kullanılabilir. TabularDataset desteklenmiyor.

    az ml batch-endpoint invoke --name $ENDPOINT_NAME --input-dataset azureml:<dataset-name>:<dataset-version>
    
  • Seçenek 3: yerel olarak depolanan veriler

    --input-local-pathYerel olarak depolanan veri dosyalarını geçirmek için kullanın. Veri dosyaları otomatik olarak yüklenir ve otomatik olarak oluşturulan bir ada ve sürüme kaydedilir.

    az ml batch-endpoint invoke --name $ENDPOINT_NAME --input-local-path <local-path>
    

Çıkış konumunu ve üzerine yazma ayarlarını yapılandırma

Toplu Puanlama sonuçları, varsayılan olarak çalışma alanının varsayılan Blob deposunda iş adı (sistem tarafından oluşturulan bir GUID) tarafından adlandırılan bir klasör içinde depolanır. Toplu iş noktasını çağırdığınızda Puanlama çıkışlarının depolanacağı yeri yapılandırabilirsiniz. --output-path folder: Azure Machine Learning kayıtlı bir veri deposunda birini yapılandırmak için kullanın. İçin sözdizimi, --output-path folder: ile aynıdır --input-path folder: . --set output_file_name=<your-file-name>Tüm Puanlama sonuçlarını (dağıtımda YAML) içeren bir çıkış dosyası olmasını tercih ediyorsanız yeni bir çıkış dosyası adı yapılandırmak için kullanın output_action=append_row .

Önemli

Benzersiz bir çıkış konumu kullanmanız gerekir. Çıkış dosyası varsa, Batch Puanlama işi başarısız olur.

İşlem kaynaklarını en iyi şekilde kullanmak ve performansı artırmak için, çağırma yapılırken bazı ayarların üzerine yazılabilir:

  • --instance-countÜzerine yazmak için kullanın instance_count . Örneğin, daha büyük miktarda veri girişi için, uçtan uca toplu Puanlama hızını hızlandırmak için daha fazla örnek kullanmak isteyebilirsiniz.
  • --mini-batch-sizeÜzerine yazmak için kullanın mini_batch_size . Mini toplu iş sayısı toplam giriş dosyası sayısına ve mini_batch_size göre belirlenir. Daha küçük mini_batch_size daha fazla mini toplu işlem oluşturur. Mini toplu işler paralel olarak çalıştırılabilir, ancak ek zamanlama ve çağrı yükü olabilir.
  • --set, Ve dahil diğer ayarların üzerine yazmak için kullanın max_retries timeout error_threshold . Bu ayarlar, farklı iş yükleri için uçtan uca toplu Puanlama süresini etkileyebilir.

Çağırma sırasında çıkış konumunu ve üzerine yazma ayarlarını belirtmek için aşağıdaki kodu çalıştırın. Örnek, çıkışları çalışma alanının varsayılan BLOB depolama alanındaki uç noktayla aynı ada sahip bir klasörde depolar ve ayrıca çıkış konumu benzersizliği sağlamak için rastgele bir dosya adı kullanır. Kod, UNIX 'te çalışmalıdır. Kendi benzersiz klasör ve dosya adınızla değiştirin.

export OUTPUT_FILE_NAME=predictions_`echo $RANDOM`.csv
JOB_NAME=$(az ml batch-endpoint invoke --name $ENDPOINT_NAME --input-path folder:https://pipelinedata.blob.core.windows.net/sampledata/mnist --output-path folder:azureml://datastores/workspaceblobstore/paths/$ENDPOINT_NAME --set output_file_name=$OUTPUT_FILE_NAME --mini-batch-size 20 --instance-count 5 --query name -o tsv)

Toplu Puanlama işi yürütme ilerlemesini izleme

Toplu Puanlama işleri, genellikle tüm giriş kümesini işlemek için biraz zaman alır.

job showİşi görüntülemek IÇIN CLI kullanabilirsiniz. Önceki uç nokta çağırağından iş durumunu denetlemek için aşağıdaki kodu çalıştırın. İş komutları hakkında daha fazla bilgi edinmek için komutunu çalıştırın az ml job -h .

STATUS=$(az ml job show -n $JOB_NAME --query status -o tsv)
echo $STATUS
if [[ $STATUS == "Completed" ]]
then
  echo "Job completed"
elif [[ $STATUS ==  "Failed" ]]
then
  echo "Job failed"
  exit 1
else 
  echo "Job status not failed or completed"
  exit 2
fi

Toplu Puanlama sonuçlarını denetle

iş tamamlandığında Azure Depolama Gezgini puanlama sonuçlarını görüntülemek için aşağıdaki adımları izleyin:

  1. Azure Machine Learning studio 'da batch puanlama işini açmak için aşağıdaki kodu çalıştırın. İş Studio bağlantısı invoke , değeri olarak ' nin yanıtında de bulunur interactionEndpoints.Studio.endpoint .

    az ml job show -n $JOB_NAME --web
    
  2. Çalıştırma grafiğinde batchscoring adımı seçin.

  3. Çıktılar + Günlükler sekmesini seçin ve ardından veri çıkışlarını göster' i seçin.

  4. veri çıktılarından Depolama Gezgini açmak için simgeyi seçin.

Görünüm veri çıkışları konumunu gösteren Studio ekran görüntüsü

Depolama Gezgini puanlama sonuçları aşağıdaki örnek sayfaya benzer:

Puanlama çıktısının ekran görüntüsü

Yeni model dağıtma

Bir toplu iş uç noktasına sahip olduktan sonra modelinizi iyileştirmeye devam edebilir ve Yeni dağıtımlar ekleyebilirsiniz.

MLflow modeli barındıran yeni bir Batch dağıtımı oluşturma

Mevcut toplu iş uç noktası altında yeni bir Batch dağıtımı oluşturmak ancak varsayılan dağıtım olarak ayarlamak için aşağıdaki kodu çalıştırın:

az ml batch-deployment create --name mlflowdp --endpoint-name $ENDPOINT_NAME --file endpoints/batch/mlflow-deployment.yml

--set-defaultKullanıldığına dikkat edin. showBatch uç noktasını yeniden kullanırsanız, hiçbir değişikliği göremezsiniz defaults.deployment_name .

Örnek, /cli/endpoints/batch/autolog_nyc_taxi MLflow ile eğitilen ve izlenen bir model () kullanır. scoring_script ve environment , modelin meta verileri kullanılarak otomatik olarak oluşturulabilir ve YAML dosyasında belirtilmesi gerekmez. mlflow hakkında daha fazla bilgi için bkz. ML modellerini mlflow ve Azure Machine Learning (önizleme) ile eğitme ve izleme.

Aşağıda, örneğin yalnızca gerekli en düşük özellikleri içeren bir MLflow modeli dağıtmak için kullanılan YAML dosyası verilmiştir. Depodaki kaynak dosya /cli/endpoints/batch/mlflow-deployment.yml .

$schema: https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json
name: mlflowdp
endpoint_name: mybatchedp
model: 
  local_path: ./autolog_nyc_taxi
compute: azureml:batch-cluster

Not

scoring_script ve environment otomatik oluşturma yalnızca Python işlev modeli türü ve sütun tabanlı model imzasını destekler.

Varsayılan olmayan toplu dağıtımı test etme

Yeni varsayılan olmayan dağıtımı test etmek için aşağıdaki kodu çalıştırın. Örnek, öğesinden genel kullanıma açık bir CSV dosyasını kabul eden farklı bir model kullanır https://pipelinedata.blob.core.windows.net/sampledata/nytaxi/taxi-tip-data.csv .

JOB_NAME=$(az ml batch-endpoint invoke --name $ENDPOINT_NAME --deployment-name mlflowdp --input-path file:https://pipelinedata.blob.core.windows.net/sampledata/nytaxi/taxi-tip-data.csv --query name -o tsv)

az ml job show -n $JOB_NAME --web

az ml job stream -n $JOB_NAME

STATUS=$(az ml job show -n $JOB_NAME --query status -o tsv)
echo $STATUS
if [[ $STATUS == "Completed" ]]
then
  echo "Job completed"
elif [[ $STATUS ==  "Failed" ]]
then
  echo "Job failed"
  exit 1
else 
  echo "Job status not failed or completed"
  exit 2
fi

--deployment-nameYeni dağıtım adını belirtmek için bildirim kullanılır. Bu parametre invoke , varsayılan olmayan bir dağıtıma izin verir ve toplu iş uç noktasının varsayılan dağıtımını güncelleştirmeyecektir.

Varsayılan toplu dağıtımı güncelleştirme

Uç noktanın varsayılan toplu dağıtımını güncelleştirmek için aşağıdaki kodu çalıştırın:

az ml batch-endpoint update --name $ENDPOINT_NAME --defaults deployment_name=mlflowdp

Artık, show Batch uç noktasını yeniden belirlerseniz, ' defaults.deployment_name ın olarak ayarlandığını görmeniz gerekir mlflowdp . invokeBatch uç noktasını doğrudan parametre olmadan yapabilirsiniz --deployment-name .

Seçim Dağıtımı güncelleştirme

Dağıtımı güncelleştirmek istiyorsanız (örneğin, kodu, modeli, ortamı veya ayarları güncelleştirin), YAML dosyasını güncelleştirin ve ardından öğesini çalıştırın az ml batch-deployment update . Ayrıca, kullanarak YAML dosyası olmadan da güncelleştirebilirsiniz --set . az ml batch-deployment update -hDaha fazla bilgi için denetleyin.

Toplu iş noktasını ve dağıtımı silme

Eski toplu dağıtımı kullanmak istemiyorsanız, aşağıdaki kodu çalıştırarak silmeniz gerekir. --yes , silme işlemini onaylamak için kullanılır.

az ml batch-deployment delete --name nonmlflowdp --endpoint-name $ENDPOINT_NAME --yes

Toplu iş noktasını ve tüm temel dağıtımları silmek için aşağıdaki kodu çalıştırın. Toplu Puanlama işleri silinmez.

az ml batch-endpoint delete --name $ENDPOINT_NAME --yes

Sonraki adımlar