Menyebarkan pekerjaan alur yang ada ke titik akhir batch

BERLAKU UNTUK:Ekstensi ml Azure CLI v2 (saat ini)Python SDK azure-ai-ml v2 (saat ini)

Titik akhir batch memungkinkan Anda menyebarkan komponen alur, menyediakan cara mudah untuk mengoprasikan alur di Azure Pembelajaran Mesin. Titik akhir batch menerima komponen alur untuk penyebaran. Namun, jika Anda sudah memiliki pekerjaan alur yang berhasil dijalankan, Azure Pembelajaran Mesin dapat menerima pekerjaan tersebut sebagai input ke titik akhir batch Anda dan membuat komponen alur secara otomatis untuk Anda. Dalam artikel ini, Anda akan mempelajari cara menggunakan pekerjaan alur yang ada sebagai input untuk penyebaran batch.

Anda akan belajar untuk:

  • Jalankan dan buat pekerjaan alur yang ingin Anda sebarkan
  • Membuat penyebaran batch dari pekerjaan yang ada
  • Menguji penyebarannya

Tentang contoh ini

Dalam contoh ini, kita akan menyebarkan alur yang terdiri dari pekerjaan perintah sederhana yang mencetak "halo dunia!". Alih-alih mendaftarkan komponen alur sebelum penyebaran, kami menunjukkan pekerjaan alur yang ada untuk digunakan untuk penyebaran. Azure Pembelajaran Mesin kemudian akan membuat komponen alur secara otomatis dan menyebarkannya sebagai penyebaran komponen alur titik akhir batch.

Contoh dalam artikel ini didasarkan pada sampel kode yang terkandung dalam repositori azureml-examples . Untuk menjalankan perintah secara lokal tanpa harus menyalin/menempelkan YAML dan file lainnya, pertama-tama kloning repositori lalu ubah direktori ke folder:

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

File untuk contoh ini ada di:

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

Prasyarat

Sebelum mengikuti langkah-langkah dalam artikel ini, pastikan Anda memiliki prasyarat berikut:

  • Langganan Azure. Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai. Coba versi gratis atau berbayar Azure Machine Learning.

  • Ruang kerja Azure Machine Learning. Jika Anda tidak memilikinya, gunakan langkah-langkah dalam artikel Mengelola ruang kerja Azure Pembelajaran Mesin untuk membuatnya.

  • Pastikan Anda memiliki izin berikut di ruang kerja:

    • Membuat atau mengelola titik akhir dan penyebaran batch: Gunakan peran Pemilik, Kontributor, atau Kustom yang memungkinkan Microsoft.MachineLearningServices/workspaces/batchEndpoints/*.

    • Membuat penyebaran ARM di grup sumber daya ruang kerja: Gunakan peran Pemilik, Kontributor, atau Kustom yang memungkinkan Microsoft.Resources/deployments/write dalam grup sumber daya tempat ruang kerja disebarkan.

  • Anda perlu menginstal perangkat lunak berikut untuk bekerja dengan Azure Pembelajaran Mesin:

    Azure CLI dan mlekstensi untuk Azure Pembelajaran Mesin.

    az extension add -n ml
    

    Catatan

    Penyebaran komponen alur untuk Titik Akhir Batch diperkenalkan dalam ekstensi versi 2.7 ml untuk Azure CLI. Gunakan az extension update --name ml untuk mendapatkan versi terakhirnya.

Menyambungkan ke ruang kerja Anda

Ruang kerja adalah sumber daya tingkat teratas untuk Azure Machine Learning, menyediakan tempat terpusat untuk bekerja dengan semua artefak yang Anda buat saat Anda menggunakan Azure Machine Learning. Di bagian ini, kita akan menyambungkan ke ruang kerja tempat Anda akan melakukan tugas penyebaran.

Teruskan nilai untuk ID langganan, ruang kerja, lokasi, dan grup sumber daya Anda dalam kode berikut:

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

Jalankan pekerjaan alur yang ingin Anda sebarkan

Di bagian ini, kita mulai dengan menjalankan pekerjaan alur:

File berikut pipeline-job.yml berisi konfigurasi untuk pekerjaan alur:

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

Buat pekerjaan alur:

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

Membuat titik akhir batch

Sebelum kita menyebarkan pekerjaan alur, kita perlu menyebarkan titik akhir batch untuk menghosting penyebaran.

  1. Berikan nama untuk titik akhir. Nama titik akhir batch harus unik di setiap wilayah karena namanya digunakan untuk membangun URI pemanggilan. Untuk memastikan keunikan, tambahkan karakter berikutnya ke nama yang ditentukan dalam kode berikut.

    ENDPOINT_NAME="hello-batch"
    
  2. Konfigurasikan titik akhir:

    File endpoint.yml berisi konfigurasi titik akhir.

    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. Buat titik akhir:

    az ml batch-endpoint create --name $ENDPOINT_NAME  -f endpoint.yml
    
  4. Kueri URI titik akhir:

    az ml batch-endpoint show --name $ENDPOINT_NAME
    

Menyebarkan pekerjaan alur

Untuk menyebarkan komponen alur, kita harus membuat penyebaran batch dari pekerjaan yang ada.

  1. Kita perlu memberi tahu Azure Pembelajaran Mesin nama pekerjaan yang ingin kita sebarkan. Dalam kasus kami, pekerjaan tersebut ditunjukkan dalam variabel berikut:

    echo $JOB_NAME
    
  2. Konfigurasikan penyebaran.

    File deployment-from-job.yml berisi konfigurasi penyebaran. Perhatikan bagaimana kami menggunakan kunci job_definition alih-alih component menunjukkan bahwa penyebaran ini dibuat dari pekerjaan alur:

    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
    

    Tip

    Konfigurasi ini mengasumsikan Anda memiliki kluster komputasi bernama batch-cluster. Anda dapat mengganti nilai ini dengan nama kluster Anda.

  3. Buat penyebaran:

    Jalankan kode berikut untuk membuat penyebaran batch di bawah titik akhir batch dan atur sebagai penyebaran default.

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

    Tip

    Perhatikan penggunaan --set job_definition=azureml:$JOB_NAME. Karena nama pekerjaan unik, perintah --set digunakan di sini untuk mengubah nama pekerjaan saat Anda menjalankannya di ruang kerja Anda.

  4. Penyebaran Anda siap digunakan.

Menguji penyebarannya

Setelah penyebaran dibuat, penyebaran siap untuk menerima pekerjaan. Anda dapat memanggil penyebaran default sebagai berikut:

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

Anda dapat memantau kemajuan acara dan mengalirkan log menggunakan:

az ml job stream -n $JOB_NAME

Membersihkan sumber daya

Setelah selesai, hapus sumber daya terkait dari ruang kerja:

Jalankan kode berikut untuk menghapus titik akhir batch dan penyebaran yang mendasarinya. --yes digunakan untuk mengonfirmasi penghapusan.

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

Langkah berikutnya