Aracılığıyla paylaş


Mevcut işlem hattı işlerini toplu iş uç noktalarına dağıtma

ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)Python SDK azure-ai-ml v2 (geçerli)

Batch uç noktaları işlem hattı bileşenlerini dağıtmanıza olanak tanıyarak Azure Machine Learning'de işlem hatlarını kullanıma hazır hale getirmek için kullanışlı bir yol sağlar. Batch uç noktaları dağıtım için işlem hattı bileşenlerini kabul eder. Ancak, zaten başarıyla çalışan bir işlem hattı işiniz varsa, Azure Machine Learning bu işi toplu iş uç noktanıza giriş olarak kabul edebilir ve işlem hattı bileşenini sizin için otomatik olarak oluşturabilir. Bu makalede, toplu dağıtım için giriş olarak mevcut işlem hattı işinizi kullanmayı öğreneceksiniz.

Öğrenecekleriniz:

  • Dağıtmak istediğiniz işlem hattı işini çalıştırma ve oluşturma
  • Mevcut işten toplu dağıtım oluşturma
  • Dağıtımı test etme

Bu örnek hakkında

Bu örnekte, "hello world!" yazdıran basit bir komut işinden oluşan bir işlem hattı dağıtacağız. İşlem hattı bileşenini dağıtımdan önce kaydetmek yerine, dağıtım için kullanılacak mevcut bir işlem hattı işini belirtiriz. Azure Machine Learning daha sonra işlem hattı bileşenini otomatik olarak oluşturur ve toplu uç nokta işlem hattı bileşeni dağıtımı olarak dağıtır.

Bu makaledeki örnek, azureml-examples deposunda yer alan kod örneklerini temel alır. YAML ve diğer dosyaları kopyalamak/yapıştırmak zorunda kalmadan komutları yerel olarak çalıştırmak için önce depoyu kopyalayın ve ardından dizinleri klasöre değiştirin:

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

Bu örnekteki dosyalar şunlardır:

cd endpoints/batch/deploy-pipelines/hello-batch

Önkoşullar

Bu makaledeki adımları takip etmeden önce aşağıdaki önkoşullara sahip olduğunuzdan emin olun:

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

  • Azure Machine Learning çalışma alanı. Yoksa, azure machine learning çalışma alanlarını yönetme makalesindeki adımları kullanarak bir tane oluşturun.

  • Çalışma alanında aşağıdaki izinlere sahip olduğunuzdan emin olun:

    • Toplu iş uç noktalarını ve dağıtımlarını oluşturma veya yönetme: İzin veren Microsoft.MachineLearningServices/workspaces/batchEndpoints/*bir Sahip, Katkıda Bulunan veya Özel rol kullanın.

    • Çalışma alanı kaynak grubunda ARM dağıtımları oluşturma: Çalışma alanının dağıtıldığı kaynak grubunda izin veren Microsoft.Resources/deployments/write bir Sahip, Katkıda Bulunan veya Özel rol kullanın.

  • Azure Machine Learning ile çalışmak için aşağıdaki yazılımı yüklemeniz gerekir:

    Azure CLI ve ml Azure Machine Learning uzantısı.

    az extension add -n ml
    

    Not

    Batch Uç Noktaları için işlem hattı bileşeni dağıtımları, Azure CLI uzantısının ml 2.7 sürümünde kullanıma sunulmuştur. Son sürümünü almak için kullanın az extension update --name ml .

Çalışma alanınıza bağlanma

Çalışma alanı Azure Machine Learning'in en üst düzey kaynağıdır. Azure Machine Learning'i kullanırken oluşturduğunuz tüm yapıtlarla çalışmak için merkezi bir konum sağlar. Bu bölümde, dağıtım görevlerini gerçekleştirdiğiniz çalışma alanına bağlanacağız.

Abonelik kimliğiniz, çalışma alanınız, konumunuz ve kaynak grubunuzun değerlerini aşağıdaki kodda geçirin:

az account set --subscription <subscription>
az configure --defaults workspace=<workspace> group=<resource-group> location=<location>

Dağıtmak istediğiniz işlem hattı işini çalıştırma

Bu bölümde, bir işlem hattı işi çalıştırarak başlayacağız:

Aşağıdaki pipeline-job.yml dosya işlem hattı işinin yapılandırmasını içerir:

pipeline-job.yml

$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline

experiment_name: hello-pipeline-batch
display_name: hello-pipeline-batch-job
description: This job demonstrates how to run the a pipeline component in a pipeline job. You can use this example to test a component in an standalone job before deploying it in an endpoint.

compute: batch-cluster
component: hello-component/hello.yml

İşlem hattı işini oluşturun:

JOB_NAME=$(az ml job create -f pipeline-job.yml --query name -o tsv)

Toplu iş uç noktası oluşturma

İşlem hattı işini dağıtmadan önce dağıtımı barındırmak için bir toplu iş uç noktası dağıtmamız gerekir.

  1. Uç nokta için bir ad belirtin. Çağrı URI'sini oluşturmak için ad kullanıldığından, bir toplu iş uç noktasının adının her bölgede benzersiz olması gerekir. Benzersizliği sağlamak için, aşağıdaki kodda belirtilen ada sondaki karakterleri ekleyin.

    ENDPOINT_NAME="hello-batch"
    
  2. Uç noktayı yapılandırın:

    Dosya uç endpoint.yml noktanın yapılandırmasını içerir.

    endpoint.yml

    $schema: https://azuremlschemas.azureedge.net/latest/batchEndpoint.schema.json
    name: hello-batch
    description: A hello world endpoint for component deployments.
    auth_mode: aad_token
    
  3. Uç noktayı oluşturun:

    az ml batch-endpoint create --name $ENDPOINT_NAME  -f endpoint.yml
    
  4. Uç nokta URI'sini sorgula:

    az ml batch-endpoint show --name $ENDPOINT_NAME
    

İşlem hattı işini dağıtma

İşlem hattı bileşenini dağıtmak için mevcut işten bir toplu dağıtım oluşturmamız gerekir.

  1. Azure Machine Learning'e dağıtmak istediğimiz işin adını söylememiz gerekir. Bizim örneğimizde bu iş aşağıdaki değişkende belirtilmiştir:

    echo $JOB_NAME
    
  2. Dağıtımı yapılandırın.

    Dosya, deployment-from-job.yml dağıtımın yapılandırmasını içerir. Bu dağıtımın bir işlem hattı işinden oluşturulduğunu component belirtmek yerine anahtarını job_definition nasıl kullandığımıza dikkat edin:

    deployment-from-job.yml

    $schema: https://azuremlschemas.azureedge.net/latest/pipelineComponentBatchDeployment.schema.json
    name: hello-batch-from-job
    endpoint_name: hello-pipeline-batch
    type: pipeline
    job_definition: azureml:job_name_placeholder
    settings:
        continue_on_step_failure: false
        default_compute: batch-cluster
    

    İpucu

    Bu yapılandırmada adlı batch-clusterbir işlem kümeniz olduğu varsayılır. Bu değeri kümenizin adıyla değiştirebilirsiniz.

  3. Dağıtımı oluşturun:

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

    az ml batch-deployment create --endpoint $ENDPOINT_NAME --set job_definition=azureml:$JOB_NAME -f deployment-from-job.yml
    

    İpucu

    kullanımına --set job_definition=azureml:$JOB_NAMEdikkat edin. İş adları benzersiz olduğundan, çalışma alanınızda çalıştırdığınızda işin adını değiştirmek için burada komutu --set kullanılır.

  4. Dağıtımınız kullanıma hazır.

Dağıtımı test etme

Dağıtım oluşturulduktan sonra iş almaya hazır olur. Varsayılan dağıtımı aşağıdaki gibi çağırabilirsiniz:

JOB_NAME=$(az ml batch-endpoint invoke -n $ENDPOINT_NAME --query name -o tsv)

Gösterinin ilerleme durumunu izleyebilir ve günlüklerin akışını şu şekilde yapabilirsiniz:

az ml job stream -n $JOB_NAME

Kaynakları temizleme

İşiniz bittiğinde, ilişkili kaynakları çalışma alanından silin:

Toplu iş uç noktasını ve temel dağıtımını silmek için aşağıdaki kodu çalıştırın. --yes silme işlemini onaylamak için kullanılır.

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

Sonraki adımlar