Cara menyebarkan alur dengan titik akhir batch

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

Anda dapat menyebarkan komponen alur di bawah titik akhir batch, menyediakan cara mudah untuk mengoprasikannya di Azure Pembelajaran Mesin. Dalam artikel ini, Anda akan mempelajari cara membuat penyebaran batch yang berisi alur sederhana. Anda akan belajar untuk:

  • Membuat dan mendaftarkan komponen alur
  • Membuat titik akhir batch dan menyebarkan komponen alur
  • Menguji penyebarannya

Tentang contoh ini

Dalam contoh ini, kita akan menyebarkan komponen alur yang terdiri dari pekerjaan perintah sederhana yang mencetak "halo dunia!". Komponen ini tidak memerlukan input atau output dan merupakan skenario penyebaran alur paling sederhana.

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

Ikuti di buku catatan Jupyter

Anda dapat mengikuti versi Python SDK dari contoh ini dengan membuka notebook sdk-deploy-and-test.ipynb di repositori kloning.

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>

Membuat komponen alur

Titik akhir batch dapat menyebarkan model atau komponen alur. Komponen alur dapat digunakan kembali, dan Anda dapat menyederhanakan praktik MLOps Anda dengan menggunakan registri bersama untuk memindahkan komponen ini dari satu ruang kerja ke ruang kerja lainnya.

Komponen alur dalam contoh ini berisi satu langkah tunggal yang hanya mencetak pesan "halo dunia" dalam log. Ini tidak memerlukan input atau output apa pun.

File hello-component/hello.yml berisi konfigurasi untuk komponen alur:

hello-component/hello.yml

$schema: https://azuremlschemas.azureedge.net/latest/pipelineComponent.schema.json
name: hello_batch
display_name: Hello Batch component
version: 1
type: pipeline
jobs:
  main_job:
    type: command
    component:
      code: src
      environment: azureml://registries/azureml/environments/sklearn-1.0/labels/latest
      command: >-
        python hello.py

Daftarkan komponen:

az ml component create -f hello-component/hello.yml

Membuat titik akhir batch

  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 komponen alur

Untuk menyebarkan komponen alur, kita harus membuat penyebaran batch. Penyebaran adalah sekumpulan sumber daya yang diperlukan untuk menghosting aset yang melakukan pekerjaan aktual.

  1. Buat kluster komputasi. Titik akhir dan penyebaran batch berjalan pada kluster komputasi. Mereka dapat berjalan pada kluster komputasi Azure Pembelajaran Mesin apa pun yang sudah ada di ruang kerja. Oleh karena itu, beberapa penyebaran batch dapat berbagi infrastruktur komputasi yang sama. Dalam contoh ini, kita akan mengerjakan kluster komputasi Azure Pembelajaran Mesin yang disebut batch-cluster. Mari kita verifikasi bahwa komputasi ada di ruang kerja atau membuatnya sebaliknya.

    az ml compute create -n batch-cluster --type amlcompute --min-instances 0 --max-instances 5
    
  2. Konfigurasikan penyebaran:

    File deployment.yml berisi konfigurasi penyebaran. Anda dapat memeriksa skema YAML titik akhir batch lengkap untuk properti tambahan.

    deployment.yml

    $schema: https://azuremlschemas.azureedge.net/latest/pipelineComponentBatchDeployment.schema.json
    name: hello-batch-dpl
    endpoint_name: hello-pipeline-batch
    type: pipeline
    component: azureml:hello_batch@latest
    settings:
        default_compute: batch-cluster
    
  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 -f deployment.yml --set-default
    

    Tip

    Perhatikan penggunaan --set-default bendera untuk menunjukkan bahwa penyebaran baru ini sekarang menjadi default.

  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)

Tip

Dalam contoh ini, alur tidak memiliki input atau output. Namun, jika komponen alur memerlukan beberapa, komponen tersebut dapat ditunjukkan pada waktu pemanggilan. Untuk mempelajari tentang cara menunjukkan input dan output, lihat Membuat pekerjaan dan memasukkan data untuk titik akhir batch atau lihat tutorial Cara menyebarkan alur untuk melakukan penilaian batch dengan praproscessing (pratinjau).

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

(Opsional) Hapus komputasi, kecuali Anda berencana untuk menggunakan kembali kluster komputasi Anda dengan penyebaran nanti.

az ml compute delete -n batch-cluster

Langkah berikutnya