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.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.
- Anda dapat menggunakan perintah CLI berikut untuk menetapkan identitas terkelola yang ditetapkan pengguna ke ruang kerja. Pelajari selengkapnya tentang cara membuat dan memperbarui identitas yang ditetapkan pengguna untuk ruang kerja.
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 menetapkanManaged 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.
Pelajari selengkapnya tentang cara membuat dan mengelola instans komputasi
- Pilih jenis komputasi. Anda dapat memilih antara komputasi tanpa server dan 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.yaml
dalam . 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.
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.
Catatan
Anda dapat mengubah lokasi dan bahkan nama requirements.txt
file , 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:
Tetapkan identitas terkelola ke ruang kerja atau instans komputasi.
Gunakan komputasi tanpa server sebagai sesi komputasi, Anda perlu menetapkan identitas terkelola yang ditetapkan pengguna ke ruang kerja.
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.
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.
Gunakan instans komputasi sebagai sesi komputasi, Anda perlu menetapkan identitas terkelola yang ditetapkan pengguna ke instans komputasi.
Tambahkan
{private}
ke URL umpan privat Anda. Misalnya, jika Anda ingin menginstaltest_package
daritest_feed
di Azure DevOps, tambahkan-i https://{private}@{test_feed_url_in_azure_devops}
direquirements.txt
:-i https://{private}@{test_feed_url_in_azure_devops} test_package
Tentukan menggunakan identitas terkelola yang ditetapkan pengguna dalam konfigurasi sesi komputasi.
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.
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.
Anda juga dapat menentukan gambar dasar baru di bawah
environment
dalamflow.dag.yaml
file di folder 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.
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.
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 versipromptflow
danpromptflow-tools
direquirements.txt
, karena kami sudah menyertakannya dalam gambar dasar. Sesi komputasi menginstal paket dalamrequirements.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 memilikiacr pull
izin untuk gambar tersebut.
- 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.