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.

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.

  1. 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.

  2. 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.
  3. Pilih tampilan Pekerjaan Visual Studio Code.

  4. 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

    Cuplikan layar memperlihatkan cara mengonfigurasi profil debug Lingkungan Lokal Azure Pembelajaran Mesin Debug.

  5. 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:

  1. Perbarui kode Anda.
  2. 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.