Mevcut iş hattı görevlerini toplu uç noktalara 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:

  • İstediğiniz işlem hattı işini oluşturun ve çalıştırın
  • Mevcut işten bir toplu dağıtım oluşturun
  • Dağıtımı test et

Bu örnek hakkında

Bu örnekte, "hello world!" yazdıran basit bir komut işi içeren bir işlem hattını 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 veya yapıştırmak zorunda kalmadan komutları yerel olarak çalıştırmak için aşağıdaki komutları kullanarak depoyu kopyalayın ve kodlama dilinizin klasörüne gidin:

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

  • Azure aboneliği. Azure aboneliğiniz yoksa ücretsiz hesap oluşturun.

  • Azure Machine Learning çalışma alanı. Çalışma alanı oluşturmak için bkz . Azure Machine Learning çalışma alanlarını yönetme.

  • Azure Machine Learning çalışma alanında aşağıdaki izinler:

    • Toplu iş uç noktalarını ve dağıtımlarını oluşturmak veya yönetmek için: Sahip, Katkıda Bulunan veya Microsoft.MachineLearningServices/workspaces/batchEndpoints/* izinlerine sahip özelleştirilmiş bir rol kullanın.
    • Azure Resource Manager dağıtımlarını, çalışma alanı kaynak grubunda oluşturmak için: Çalışma alanının dağıtıldığı kaynak grubunda Microsoft.Resources/deployments/write izinlerine sahip bir Sahip, Katkıda Bulunan veya özel rol kullanın.
  • Azure Machine Learning CLI veya Python için Azure Machine Learning SDK'sı:

    Azure CLI'yi ve Azure Machine Learning uzantısını ml yüklemek için aşağıdaki komutu çalıştırın:

    az extension add -n ml
    

    Toplu iş uç noktaları için işlem hattı bileşeni dağıtımları, Azure CLI için uzantının ml 2.7 veya sonraki bir sürümünü gerektirir (geçerli sürüm: 2.37.0). az extension update --name ml En son sürümü almak için komutunu kullanın.


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

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

Aşağıdaki komutta abonelik kimliğinizi, çalışma alanı adınızı, kaynak grubu adınızı ve konumunuzu girin:

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

Dağıtmak istediğiniz işlem hattı görevini çalıştırın

Bu bölümde, bir pipeline işini ç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

Boru hattı görevini oluşturun.

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

Toplu Uç Nokta Oluştur

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

  1. Uç nokta için bir ad belirtin. Bir toplu iş uç noktasının adı, çağrı URI'sini oluşturmak için kullanıldığından, her bölgede benzersiz olmalıdır. Benzersizliği sağlamak için, aşağıdaki kodda belirtilen ada ardıl 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ğıtın

İşlem hattı bileşenini dağıtmak için mevcut görevden 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 belirtmek için job_definition yerine component anahtarını 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

    --set job_definition=azureml:$JOB_NAME kullanımına dikkat 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 et

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 uç noktayı ve onun altında yatan dağıtımı 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