Bagikan melalui


Mengelola sesi komputasi alur perintah di studio Azure Pembelajaran Mesin

Sesi komputasi alur perintah menyediakan sumber daya komputasi yang diperlukan agar aplikasi berjalan, termasuk gambar Docker yang berisi semua paket dependensi yang diperlukan. Lingkungan yang dapat diandalkan dan dapat diskalakan ini memungkinkan alur prompt untuk menjalankan tugas dan fungsinya secara efisien untuk pengalaman pengguna yang mulus.

Izin dan peran untuk manajemen sesi komputasi

Untuk menetapkan peran, Anda harus memiliki owner atau Microsoft.Authorization/roleAssignments/write izin pada sumber daya.

Untuk pengguna sesi komputasi, tetapkan AzureML Data Scientist peran di ruang kerja. Untuk mempelajari selengkapnya, lihat Mengelola akses ke ruang kerja Azure Pembelajaran Mesin.

Penetapan peran mungkin memerlukan waktu beberapa menit untuk diterapkan.

Memulai sesi komputasi di studio

Sebelum Anda menggunakan studio Azure Pembelajaran Mesin untuk memulai sesi komputasi, pastikan bahwa:

  • Anda memiliki AzureML Data Scientist peran di ruang kerja.
  • Penyimpanan data default (biasanya workspaceblobstore) di ruang kerja Anda adalah jenis blob.
  • Direktori kerja (workspaceworkingdirectory) ada di ruang kerja.
  • Jika Anda menggunakan jaringan virtual untuk alur permintaan, Anda memahami pertimbangan dalam Isolasi jaringan dalam alur perintah.

Memulai sesi komputasi pada halaman alur

Satu alur mengikat ke satu sesi komputasi. Anda dapat memulai sesi komputasi pada halaman alur.

  • Pilih Mulai. Mulai sesi komputasi dengan menggunakan lingkungan yang ditentukan dalam flow.dag.yaml folder alur, sesi tersebut berjalan pada ukuran komputer virtual (VM) komputasi tanpa server yang memiliki kuota yang cukup di ruang kerja.

    Cuplikan layar alur perintah dengan pengaturan default untuk memulai sesi komputasi di halaman alur.

  • Pilih Mulai dengan pengaturan tingkat lanjut. Di pengaturan tingkat lanjut, Anda dapat:

    • Pilih jenis komputasi. Anda dapat memilih antara komputasi tanpa server dan instans komputasi.
      • Jika Anda memilih komputasi tanpa server, Anda bisa mengatur pengaturan berikut:

        • Sesuaikan ukuran VM yang digunakan sesi komputasi. Pilih VM seri D ke atas. Untuk informasi selengkapnya, lihat bagian tentang Seri dan ukuran VM yang didukung
        • Sesuaikan waktu diam, yang menghapus sesi komputasi secara otomatis jika tidak digunakan untuk sementara waktu.
        • Atur identitas terkelola yang ditetapkan pengguna. Sesi komputasi menggunakan identitas ini untuk menarik gambar dasar, autentikasi dengan paket koneksi dan penginstalan. Pastikan identitas terkelola yang ditetapkan pengguna memiliki izin yang cukup. Jika Anda tidak mengatur identitas ini, kami menggunakan identitas pengguna secara default.

        Cuplikan layar alur perintah dengan pengaturan tingkat lanjut menggunakan komputasi tanpa server untuk memulai sesi komputasi pada halaman alur.

        az ml workspace update -f workspace_update_with_multiple_UAIs.yml --subscription <subscription ID> --resource-group <resource group name> --name <workspace name>
        

        Di mana konten workspace_update_with_multiple_UAIs.yml adalah sebagai berikut:

        identity:
           type: system_assigned, user_assigned
           user_assigned_identities:
            '/subscriptions/<subscription_id>/resourcegroups/<resource_group_name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<uai_name>': {}
            '<UAI resource ID 2>': {}
        

        Tip

        Penetapan peran Azure RBAC berikut diperlukan pada identitas terkelola yang ditetapkan pengguna untuk ruang kerja Azure Pembelajaran Mesin Anda untuk mengakses data pada sumber daya terkait ruang kerja.

        Sumber daya Izin
        Ruang kerja Azure Machine Learning Kontributor
        Azure Storage Kontributor (sarana kontrol) + Kontributor Data Blob Penyimpanan + Kontributor Istimewa Data File Penyimpanan (bidang data, mengonsumsi draf aliran dalam fileshare dan data dalam blob)
        Azure Key Vault (saat menggunakan model izin kebijakan akses) Kontributor + izin kebijakan akses apa pun selain operasi penghapusan menyeluruh, ini adalah mode default untuk Azure Key Vault yang ditautkan.
        Azure Key Vault (saat menggunakan model izin RBAC) Kontributor (sarana kontrol) + Administrator Key Vault (bidang data)
        Azure Container Registry Kontributor
        Azure Application Insights Kontributor

        Catatan

        Pengirim pekerjaan perlu memiliki assign izin pada identitas terkelola yang ditetapkan pengguna, Anda dapat menetapkan Managed Identity Operator peran, karena setiap kali membuat sesi komputasi tanpa server, itu akan menetapkan identitas terkelola yang ditetapkan pengguna untuk menghitung.

      • Jika Anda memilih instans komputasi sebagai jenis komputasi, Anda hanya dapat mengatur waktu matikan diam.

        • Karena berjalan pada instans komputasi yang ada, ukuran VM diperbaiki dan tidak dapat berubah di sisi sesi.

        • Identitas yang digunakan untuk sesi ini juga didefinisikan dalam instans komputasi, secara default menggunakan identitas pengguna. Pelajari selengkapnya tentang cara menetapkan identitas ke instans komputasi

        • Untuk waktu matikan diam yang digunakan untuk menentukan siklus hidup sesi komputasi, jika sesi diam selama waktu yang Anda tetapkan, sesi akan dihapus secara otomatis. Dan dari Anda mengaktifkan matikan diam pada instans komputasi, maka itu berlaku dari tingkat komputasi.

          Cuplikan layar alur perintah dengan pengaturan tingkat lanjut menggunakan instans komputasi untuk memulai sesi komputasi di halaman alur.

        • Pelajari selengkapnya tentang cara membuat dan mengelola instans komputasi

Menggunakan sesi komputasi untuk mengirimkan eksekusi alur di CLI/SDK

Selain studio, Anda juga dapat menentukan sesi komputasi di CLI/SDK saat mengirimkan eksekusi alur.

Anda juga dapat menentukan jenis instans atau nama instans komputasi di bagian sumber daya. Jika Anda tidak menentukan jenis instans atau nama instans komputasi, Azure Pembelajaran Mesin memilih jenis instans (ukuran VM) berdasarkan faktor-faktor seperti kuota, biaya, performa, dan ukuran disk. Pelajari selengkapnya tentang komputasi tanpa server.

$schema: https://azuremlschemas.azureedge.net/promptflow/latest/Run.schema.json
flow: <path_to_flow>
data: <path_to_flow>/data.jsonl

# specify identity used by serverless compute.
# default value
# identity:
#   type: user_identity 

# use workspace first UAI
# identity:
#   type: managed
  
# use specified client_id's UAI
# identity:
#   type: managed
#   client_id: xxx

column_mapping:
  url: ${data.url}

# define cloud resource

resources:
  instance_type: <instance_type> # serverless compute type
  # compute: <compute_instance_name> # use compute instance as compute type

Kirim eksekusi ini melalui CLI:

pfazure run create --file run.yml

Catatan

Matikan diam adalah satu jam jika Anda menggunakan CLI/SDK untuk mengirimkan eksekusi alur. Anda dapat membuka halaman komputasi untuk merilis komputasi.

File referensi di luar folder alur

Terkadang, Anda mungkin ingin mereferensikan requirements.txt file yang berada di luar folder alur. Misalnya, Anda mungkin memiliki proyek kompleks yang menyertakan beberapa alur, dan mereka berbagi file yang sama requirements.txt . Untuk melakukan ini, Anda dapat menambahkan bidang additional_includes ini ke flow.dag.yamldalam . Nilai bidang ini adalah daftar jalur file/folder relatif ke folder alur. Misalnya, jika requirements.txt berada di folder induk folder alur, Anda dapat menambahkan ../requirements.txt ke additional_includes bidang .

inputs:
  question:
    type: string
outputs:
  output:
    type: string
    reference: ${answer_the_question_with_context.output}
environment:
  python_requirements_txt: requirements.txt
additional_includes:
  - ../requirements.txt
...

File requirements.txt disalin ke folder alur, dan menggunakannya untuk memulai sesi komputasi Anda.

Memperbarui sesi komputasi di halaman alur studio

Pada halaman alur, Anda bisa menggunakan opsi berikut untuk mengelola sesi komputasi:

  • Mengubah pengaturan sesi komputasi, Anda mengubah pengaturan komputasi seperti ukuran VM dan e identitas terkelola yang ditetapkan pengguna untuk komputasi tanpa server, jika Anda menggunakan instans komputasi, Anda dapat mengubah untuk menggunakan instans lain. Anda juga dapat mengubah
  • juga dapat mengubah identitas terkelola yang ditetapkan pengguna untuk komputasi tanpa server. Jika Anda mengubah ukuran VM, sesi komputasi diatur ulang dengan ukuran VM baru. Jika Anda
  • Instal paket dari requirements.txt Buka requirements.txt di UI alur perintah, Anda dapat menambahkan paket di dalamnya.
  • Lihat paket yang diinstal menunjukkan paket yang diinstal dalam sesi komputasi. Ini termasuk paket yang diinstal ke gambar dasar dan paket yang ditentukan dalam requirements.txt file di folder alur.
  • Mengatur ulang sesi komputasi menghapus sesi komputasi saat ini dan membuat sesi baru dengan lingkungan yang sama. Jika Anda mengalami masalah konflik paket, Anda dapat mencoba opsi ini.
  • Hentikan sesi komputasi akan menghapus sesi komputasi saat ini. Jika tidak ada sesi komputasi aktif pada komputasi yang mendasar, sumber daya komputasi tanpa server juga akan dihapus.

Cuplikan layar tindakan untuk sesi komputasi di halaman alur.

Anda juga dapat menyesuaikan lingkungan yang Anda gunakan untuk menjalankan alur ini dengan menambahkan paket dalam requirements.txt file di folder alur. Setelah menambahkan lebih banyak paket dalam file ini, Anda dapat memilih salah satu opsi berikut:

  • Simpan dan instal pemicu pip install -r requirements.txt di folder alur. Prosesnya dapat memakan waktu beberapa menit, tergantung pada paket yang Anda instal.
  • Simpan hanya menyimpan requirements.txt file. Anda dapat menginstal paket nanti sendiri.

Cuplikan layar opsi untuk menyimpan dan menginstal paket untuk sesi komputasi pada halaman alur.

Catatan

Anda dapat mengubah lokasi dan bahkan nama requirements.txtfile , tetapi pastikan untuk juga mengubahnya dalam flow.dag.yaml file di folder alur.

Jangan sematkan versi promptflow dan promptflow-tools di requirements.txt, karena kami sudah menyertakannya dalam gambar dasar sesi.

requirements.txt tidak akan mendukung file roda lokal. Buat dalam gambar Anda dan perbarui gambar dasar yang disesuaikan di flow.dag.yaml. Pelajari selengkapnya tentang cara membuat gambar dasar kustom.

Menambahkan paket dalam umpan privat di Azure DevOps

Jika Anda ingin menggunakan umpan privat di Azure DevOps, ikuti langkah-langkah berikut:

  1. Tetapkan identitas terkelola ke ruang kerja atau instans komputasi.

    1. Gunakan komputasi tanpa server sebagai sesi komputasi, Anda perlu menetapkan identitas terkelola yang ditetapkan pengguna ke ruang kerja.

      1. Buat identitas terkelola yang ditetapkan pengguna dan tambahkan identitas ini di organisasi Azure DevOps. Untuk mempelajari selengkapnya, lihat Menggunakan perwakilan layanan dan identitas terkelola.

        Catatan

        Jika tombol Tambahkan Pengguna tidak terlihat, Anda mungkin tidak memiliki izin yang diperlukan untuk melakukan tindakan ini.

      2. Menambahkan atau memperbarui identitas yang ditetapkan pengguna ke ruang kerja.

        Catatan

        Pastikan identitas terkelola yang ditetapkan pengguna memiliki Microsoft.KeyVault/vaults/read keyvault yang ditautkan di ruang kerja.

    2. Gunakan instans komputasi sebagai sesi komputasi, Anda perlu menetapkan identitas terkelola yang ditetapkan pengguna ke instans komputasi.

  2. Tambahkan {private} ke URL umpan privat Anda. Misalnya, jika Anda ingin menginstal test_package dari test_feed di Azure DevOps, tambahkan -i https://{private}@{test_feed_url_in_azure_devops} di requirements.txt:

    -i https://{private}@{test_feed_url_in_azure_devops}
    test_package
    
  3. Tentukan menggunakan identitas terkelola yang ditetapkan pengguna dalam konfigurasi sesi komputasi.

    1. Jika Anda menggunakan komputasi tanpa server, tentukan identitas terkelola yang ditetapkan pengguna di Mulai dengan pengaturan tingkat lanjut jika sesi komputasi tidak berjalan, atau gunakan tombol Ubah pengaturan sesi komputasi jika sesi komputasi berjalan.

      Cuplikan layar yang memperlihatkan tombol untuk menggunakan identitas terkelola yang ditetapkan pengguna ruang kerja.

    2. Jika Anda menggunakan instans komputasi, instans tersebut menggunakan identitas terkelola yang ditetapkan pengguna yang Anda tetapkan ke instans komputasi.

Catatan

Pendekatan ini terutama berfokus pada pengujian cepat dalam fase pengembangan alur, jika Anda juga ingin menyebarkan alur ini sebagai titik akhir, buat umpan privat ini dalam gambar Anda dan perbarui sesuaikan gambar dasar di flow.dag.yaml. Pelajari lebih lanjut cara membuat gambar dasar kustom

Mengubah gambar dasar untuk sesi komputasi

Secara default, kami menggunakan gambar dasar alur prompt terbaru. Jika Anda ingin menggunakan gambar dasar yang berbeda, Anda dapat membuat gambar kustom.

  • Di studio, Anda dapat mengubah gambar dasar di pengaturan gambar dasar di bawah pengaturan sesi komputasi.

Cuplikan layar mengubah gambar dasar sesi komputasi di halaman alur.

  • Anda juga dapat menentukan gambar dasar baru di bawah environment dalam flow.dag.yaml file di folder alur.

    Cuplikan layar tindakan untuk menyesuaikan gambar dasar untuk sesi komputasi di halaman alur.

    environment:
        image: <your-custom-image>
        python_requirements_txt: requirements.txt
    

Untuk menggunakan gambar dasar baru, Anda perlu mengatur ulang sesi komputasi. Proses ini membutuhkan waktu beberapa menit karena menarik gambar dasar baru dan menginstal ulang paket.

Mengelola instans tanpa server yang digunakan oleh sesi komputasi

Saat Anda menggunakan komputasi tanpa server sebagai sesi komputasi, Anda dapat mengelola instans tanpa server. Lihat instans tanpa server di tab daftar sesi komputasi di halaman komputasi.

Cuplikan layar daftar instans tanpa server.

Anda juga dapat mengakses alur dan menjalankan yang berjalan pada komputasi di bawah tab Alur aktif dan eksekusi . Saat menghapus instans berdampak pada alur dan berjalan di atasnya.

Cuplikan layar halaman detail komputasi instans tanpa server.

Hubungan antara sesi komputasi, sumber daya komputasi, alur, dan pengguna

  • Satu pengguna tunggal dapat memiliki beberapa sumber daya komputasi (instans tanpa server atau komputasi). Karena kebutuhan yang berbeda, satu pengguna dapat memiliki beberapa sumber daya komputasi. Misalnya, satu pengguna dapat memiliki beberapa sumber daya komputasi dengan ukuran VM yang berbeda atau identitas terkelola yang ditetapkan pengguna yang berbeda.
  • Satu sumber daya komputasi hanya dapat digunakan oleh satu pengguna. Sumber daya komputasi digunakan sebagai kotak pengembangan privat dari satu pengguna. Beberapa pengguna tidak dapat berbagi sumber daya komputasi yang sama.
  • Satu sumber daya komputasi dapat menghosting beberapa sesi komputasi. Sesi komputasi adalah kontainer yang berjalan pada sumber daya komputasi yang mendasar. Misalnya, penulisan alur perintah tidak memerlukan terlalu banyak sumber daya komputasi, sehingga satu sumber daya komputasi dapat menghosting beberapa sesi komputasi dari pengguna yang sama.
  • Satu sesi komputasi hanya milik satu sumber daya komputasi pada satu waktu. Tetapi Anda dapat menghapus atau menghentikan sesi komputasi dan mengalokasikannya kembali ke sumber daya komputasi lain.
  • Satu alur hanya dapat memiliki satu sesi komputasi. Setiap alur mandiri dan menentukan gambar dasar dan paket python yang diperlukan di folder alur untuk sesi komputasi.

Mengalihkan runtime ke sesi komputasi

Sesi komputasi memiliki keuntungan berikut daripada runtime instans komputasi:

  • Mengelola siklus hidup sesi dan komputasi yang mendasar secara otomatis. Anda tidak perlu membuat dan mengelolanya secara manual lagi.
  • Kustomisasi paket dengan mudah dengan menambahkan paket dalam requirements.txt file di folder alur, alih-alih membuat lingkungan kustom.

Alihkan runtime instans komputasi ke sesi komputasi dengan menggunakan langkah-langkah berikut:

  • Siapkan file Anda requirements.txt di folder alur. Pastikan Anda tidak menyematkan versi promptflow dan promptflow-tools di requirements.txt, karena kami sudah menyertakannya dalam gambar dasar. Sesi komputasi menginstal paket dalam requirements.txt file saat dimulai.
  • Jika Anda membuat lingkungan kustom untuk membuat runtime instans komputasi, Anda bisa mendapatkan gambar dari halaman detail lingkungan, dan menentukannya dalam flow.dag.yaml file di folder alur. Untuk mempelajari selengkapnya, lihat Mengubah gambar dasar untuk sesi komputasi. Pastikan Anda atau pengguna terkait yang ditetapkan identitas terkelola di ruang kerja memiliki acr pull izin untuk gambar tersebut.

Cuplikan layar menemukan gambar di halaman detail lingkungan.

  • Untuk sumber daya komputasi, Anda dapat terus menggunakan instans komputasi yang ada jika Anda ingin mengelola siklus hidup secara manual atau Anda dapat mencoba komputasi tanpa server yang siklus hidupnya dikelola oleh sistem.

Langkah berikutnya