Men-debug titik akhir online secara lokal di Visual Studio Code
BERLAKU UNTUK:Ekstensi ml Azure CLI v2 (saat ini)Python SDK azure-ai-ml v2 (saat ini)
Pelajari cara menggunakan debugger Microsoft Visual Studio Code untuk menguji dan men-debug titik akhir online secara lokal sebelum menyebarkannya ke Azure.
Titik akhir lokal Azure Machine Learning membantu Anda menguji dan mendebug skrip penilaian, konfigurasi lingkungan, konfigurasi kode, dan model pembelajaran mesin secara lokal.
Penting
Fitur ini masih dalam pratinjau umum. Versi pratinjau ini disediakan tanpa perjanjian tingkat layanan, dan tidak disarankan untuk beban kerja produksi. Fitur tertentu mungkin tidak didukung atau mungkin memiliki kemampuan terbatas.
Untuk mengetahui informasi selengkapnya, lihat Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure.
Telusuri kesalahan titik akhir secara lokal sebelum menyebarkannya ke cloud dapat membantu Anda mendeteksi kesalahan dalam kode dan konfigurasi lebih awal. Anda memiliki opsi yang berbeda untuk men-debug titik akhir secara lokal dengan Visual Studio Code.
- Server HTTP inferensi Azure Pembelajaran Mesin
- Titik akhir lokal
Panduan ini berfokus pada titik akhir lokal.
Tabel berikut memberikan gambaran umum skenario untuk membantu Anda memilih yang terbaik untuk Anda.
Skenario | Server HTTP Inferensi | Titik akhir lokal |
---|---|---|
Perbarui lingkungan Python lokal, tanpa pembuatan kembali citra Docker | Ya | Tidak |
Perbarui skrip penilaian | Ya | Ya |
Perbarui konfigurasi penyebaran (penyebaran, lingkungan, kode, model) | Tidak | Ya |
Integrasi debugger Visual Studio Code | Ya | Ya |
Prasyarat
Panduan ini mengasumsikan Anda memiliki item berikut yang diinstal secara lokal di PC.
Untuk informasi selengkapnya, lihat panduan tentang cara menyiapkan sistem Anda untuk menyebarkan titik akhir online.
Contoh dalam artikel ini didasarkan pada sampel kode yang terkandung dalam repositori GitHub azureml-examples . Untuk menjalankan perintah secara lokal tanpa harus menyalin/menempelkan YAML dan file lainnya, kloning repositori lalu ubah direktori ke azureml-examples/cli:
git clone https://github.com/Azure/azureml-examples --depth 1
cd azureml-examples/cli
Jika belum mengatur default untuk Azure CLI, simpan pengaturan default Anda. Untuk menghindari meneruskan nilai untuk langganan, ruang kerja, dan grup sumber daya Anda beberapa kali, gunakan perintah berikut ini. Ganti parameter berikut dengan nilai untuk konfigurasi spesifik Anda:
- Ganti
<subscription>
dengan ID langganan Azure Anda. - Ganti
<workspace>
dengan nama ruang kerja Azure Machine Learning Anda. - Ganti
<resource-group>
dengan grup sumber daya Azure yang berisi ruang kerja Anda. - Ganti
<location>
dengan wilayah Azure yang berisi ruang kerja Anda.
az account set --subscription <subscription>
az configure --defaults workspace=<workspace> group=<resource-group> location=<location>
Tip
Anda dapat melihat default saat ini dengan menggunakan perintah az configure -l
.
Luncurkan kontainer pengembangan
Titik akhir lokal Azure Pembelajaran Mesin menggunakan kontainer pengembangan Docker dan Visual Studio Code (kontainer pengembangan) untuk membangun dan mengonfigurasi lingkungan penelusuran kesalahan lokal. Dengan kontainer dev, Anda dapat memanfaatkan fitur Visual Studio Code dari dalam kontainer Docker. Untuk informasi selengkapnya tentang kontainer pengembangan, lihat Membuat kontainer pengembangan.
Untuk men-debug titik akhir online secara lokal di Visual Studio Code, gunakan --vscode-debug
bendera saat membuat atau memperbarui dan Azure Pembelajaran Mesin penyebaran online. Perintah berikut menggunakan contoh penyebaran dari contoh repositori:
az ml online-deployment create --file endpoints/online/managed/sample/blue-deployment.yml --local --vscode-debug
Penting
Pada Subsistem Windows untuk Linux (WSL), Anda harus memperbarui variabel lingkungan PATH untuk menyertakan jalur ke Visual Studio Code yang dapat dieksekusi atau menggunakan interop WSL. Untuk informasi selengkapnya, lihat Interoperabilitas Windows dengan Linux.
Gambar Docker dibangun secara lokal. Setiap konfigurasi lingkungan atau kesalahan file model muncul pada tahap proses ini.
Catatan
Pertama kali Anda meluncurkan kontainer dev baru atau yang diperbarui, dibutuhkan waktu beberapa menit.
Setelah gambar berhasil dibuat, kontainer dev Anda terbuka di jendela Visual Studio Code.
Anda akan menggunakan beberapa ekstensi Visual Studio Code untuk men-debug penyebaran Anda di kontainer pengembangan. Azure Machine Learning secara otomatis menginstal ekstensi ini di kontainer pengembangan Anda.
Penting
Sebelum memulai sesi debug Anda, pastikan ekstensi Visual Studio Code telah selesai diinstal di kontainer pengembangan Anda.
Mulai sesi debug
Setelah lingkungan Anda disiapkan, gunakan debugger Visual Studio Code untuk menguji dan men-debug penyebaran Anda secara lokal.
Buka skrip penilaian Anda di Visual Studio Code.
Tip
Skrip score.py yang digunakan oleh titik akhir yang disebarkan sebelumnya terletak di azureml-samples/cli/endpoints/online/managed/sample/score.py di repositori yang Anda kloning. Tetapi, langkah-langkah dalam panduan ini berfungsi dengan skrip penilaian apa pun.
Tetapkan titik henti di mana saja dalam skrip penilaian Anda.
- Untuk mendebug perilaku startup, tempatkan titik henti Anda di dalam fungsi
init
. - Untuk mendebug perilaku penilaian, tempatkan titik henti Anda di dalam fungsi
run
.
- Untuk mendebug perilaku startup, tempatkan titik henti Anda di dalam fungsi
Pilih tampilan Pekerjaan Visual Studio Code.
Di menu dropdown Jalankan dan Debug, pilih AzureML: Debug Titik Akhir Lokal untuk mulai men-debug titik akhir Anda secara lokal.
Di bagian Titik henti pada tampilan Jalankan, periksa apakah:
- Pengecualian yang Ditingkatkantidak dicentang
- Pengecualian yang Tidak Diambildicentang
Pilih ikon putar di samping dropdown Jalankan dan Debug untuk memulai sesi penelusuran kesalahan Anda.
Pada titik ini, setiap titik henti dalam fungsi
init
Anda akan diambil. Gunakan tindakan debug untuk menelusuri kode Anda. Untuk informasi selengkapnya tentang tindakan debug, lihat panduan tindakan debug.
Untuk informasi selengkapnya tentang debugger Visual Studio Code, lihat Penelusuran kesalahan.
Debug titik akhir Anda
Sekarang setelah aplikasi Anda berjalan di debugger, coba buat prediksi untuk mendebug skrip penilaian.
Gunakan perintah ml
ekstensi invoke
untuk membuat permintaan ke titik akhir lokal Anda.
az ml online-endpoint invoke --name <ENDPOINT-NAME> --request-file <REQUEST-FILE> --local
Dalam kasus ini, <REQUEST-FILE>
adalah file JSON yang berisi sampel data input untuk model guna membuat prediksi serupa dengan JSON berikut:
{"data": [
[1,2,3,4,5,6,7,8,9,10],
[10,9,8,7,6,5,4,3,2,1]
]}
Tip
URI penilaian adalah alamat tempat titik akhir Anda mendengarkan permintaan. Gunakan ekstensi ml
untuk mendapatkan URI penilaian.
az ml online-endpoint show --name <ENDPOINT-NAME> --local
Output akan terlihat mirip dengan contoh berikut:
{
"auth_mode": "aml_token",
"location": "local",
"name": "my-new-endpoint",
"properties": {},
"provisioning_state": "Succeeded",
"scoring_uri": "http://localhost:5001/score",
"tags": {},
"traffic": {},
"type": "online"
}
URI penilaian dapat ditemukan di properti scoring_uri
.
Pada titik ini, setiap titik henti dalam fungsi run
Anda akan diambil. Gunakan tindakan debug untuk menelusuri kode Anda. Untuk informasi selengkapnya tentang tindakan debug, lihat panduan tindakan debug.
Edit titik akhir Anda
Saat mendebug dan memecahkan masalah aplikasi Anda, ada skenario di mana Anda perlu memperbarui skrip penilaian dan konfigurasi.
Untuk menerapkan perubahan pada kode Anda:
- Perbarui kode Anda.
- Hidupkan ulang sesi debug Anda menggunakan perintah
Developer: Reload Window
di palet perintah. Untuk informasi selengkapnya, lihat dokumentasi palet perintah.
Catatan
Karena direktori yang berisi kode dan aset titik akhir dipasang ke kontainer pengembangan, setiap perubahan yang Anda buat di kontainer pengembangan disinkronkan dengan sistem file lokal.
Untuk perubahan yang lebih ekstensif yang melibatkan pembaruan pada lingkungan dan konfigurasi titik akhir Anda, gunakan perintah ml
ekstensi update
. Melakukannya memicu pembangunan kembali gambar penuh dengan perubahan Anda.
az ml online-deployment update --file <DEPLOYMENT-YAML-SPECIFICATION-FILE> --local --vscode-debug
Setelah gambar yang diperbarui dibuat dan kontainer pengembangan Anda diluncurkan, gunakan debugger Visual Studio Code untuk menguji dan memecahkan masalah titik akhir yang diperbarui.