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ı
mlyü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
Contributoroluş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/-gparametrelerini 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ırmini_batchve gerçek Puanlama yapılır.mini_batch:mini_batchDeğ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österirmini_batch. Birrun()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ınfolder:) veya bir dosya (ön ek kullanın) belirtmek için kullanınfile:. Veri URI 'SI için sözdizimifolder:azureml://datastores/<datastore-name>/paths/<data-path>/klasör vefile: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 nameyalnı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--querybkz. 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 -hyö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ıninstance_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ınmini_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ınmax_retriestimeouterror_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:
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 bulunurinteractionEndpoints.Studio.endpoint.az ml job show -n $JOB_NAME --webÇalıştırma grafiğinde
batchscoringadımı seçin.Çıktılar + Günlükler sekmesini seçin ve ardından veri çıkışlarını göster' i seçin.
veri çıktılarından Depolama Gezgini açmak için simgeyi seçin.
Depolama Gezgini puanlama sonuçları aşağıdaki örnek sayfaya benzer:
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