Kembangkan, latih, dan terapkan model deep learning di cloud menggunakan Notebook bawaan atau VSCode di Data Science Workshop (DSW). Topik ini menggunakan contoh pengenalan angka tulisan tangan MNIST untuk mendemonstrasikan alur kerja secara lengkap.
Pengenalan angka tulisan tangan MNIST adalah tugas pengantar klasik dalam deep learning yang bertujuan melatih model untuk mengenali 10 angka tulisan tangan dari 0 hingga 9.
Prasyarat
PAI telah diaktifkan dan ruang kerja telah dibuat di Akun Alibaba Cloud Anda. Jika PAI belum diaktifkan, buka Konsol PAI, pilih Wilayah target di pojok kiri atas halaman, lalu selesaikan otorisasi dan aktivasi satu klik.
Penagihan
Instans DSW dan layanan model EAS dalam topik ini dibuat dalam kelompok sumber daya publik dan ditagih berdasarkan metode pay-as-you-go. Untuk detail penagihan, lihat Penagihan DSW dan Penagihan EAS.
Membuat instans DSW
-
Buka halaman DSW.
Buka Konsol PAI.
Pilih Wilayah target di pojok kiri atas halaman.
Klik Workspaces di panel navigasi kiri untuk membuka ruang kerja target.
Di panel navigasi kiri, pilih .
-
Dalam wizard Configure Instance, konfigurasikan parameter berikut dan pertahankan nilai default untuk parameter lainnya:
Resource Type: Pilih Public Resources (pay-as-you-go).
-
Instance Type: Pilih
ecs.gn7i-c8g1.2xlarge.Jika Tipe instans ini tidak tersedia, pilih Tipe instans GPU lain.
-
Image config: Pilih Alibaba Cloud Image, cari dan pilih image
modelscope:1.26.0-pytorch2.6.0-gpu-py311-cu124-ubuntu22.04.Gunakan image yang sama untuk menghindari masalah kompatibilitas lingkungan.
-
Mount storage: Digunakan untuk menyimpan file pengembangan model. Topik ini menggunakan OSS. Klik OSS, klik ikon
, pilih Bucket, dan buat direktori (misalnya, pai_test).Jika tidak ada bucket yang tersedia di Wilayah saat ini, ikuti langkah-langkah berikut untuk membuatnya:
Uri:
oss://**********oss-cn-hangzhou-internal.aliyuncs.com/pai_test/Mount Path:
/mnt/data/
-
Klik OK untuk membuat instans.
Jika instans gagal dimulai, lihat Membuat instans DSW untuk pemecahan masalah.
Mengembangkan model di DSW
Klik Open pada daftar instans untuk membuka lingkungan pengembangan DSW. Di launcher, klik JupyterLab untuk membuat lingkungan pengembangan Notebook.
-
Tulis kode model. Topik ini menyediakan kode Pelatihan MNIST: unduh mnist.ipynb, lalu klik ikon
di pojok kiri atas Notebook untuk mengunggah file tersebut.
-
Latih model. Buka
mnist.ipynb, temukan Sel yang berisi kode Pelatihan, lalu klik ikon
untuk menjalankan Sel tersebut. Kode akan secara otomatis mengunduh set data MNIST ke direktori dataSetdan menyimpan model yang telah dilatih ke direktorioutput. Proses Pelatihan memakan waktu sekitar 10 menit.

Output Pelatihan menampilkan akurasi model pada set validasi, yang mencerminkan kemampuan generalisasinya. Dalam contoh ini, akurasi set validasi adalah 98%. Lanjutkan ke langkah berikutnya.
-
Lihat kurva Pelatihan. Jalankan Sel berikut dan buka URL TensorBoard
http://localhost:6006/.
TensorBoard menampilkan kurva train_loss (loss set pelatihan) dan validation_loss (loss set validasi).

Setelah melihat kurva, klik ikon
di dalam Sel untuk menghentikan TensorBoard. Jika TensorBoard tidak dihentikan, Sel berikutnya tidak dapat dijalankan. -
Uji model. Jalankan Sel berikut untuk menampilkan 20 gambar uji beserta Label aslinya dan prediksi model.

Contoh output:

-
Cadangkan file model. Instans DSW dalam topik ini dibuat dalam kelompok sumber daya publik, dan file disimpan di disk cloud gratis. Jika instans dimatikan selama lebih dari 15 hari, konten pada disk cloud akan dihapus secara otomatis. Salin file model ke OSS untuk Penerapan selanjutnya dengan EAS.

Buka Konsol OSS untuk melihat file yang telah disalin:

Setelah model dikembangkan, Anda dapat menerapkannya sebagai layanan online. Untuk informasi selengkapnya, lihat Menerapkan layanan model dengan EAS.
Instans DSW dalam topik ini dibuat dalam kelompok sumber daya publik dan ditagih berdasarkan metode pay-as-you-go. Saat instans tidak lagi diperlukan, hentikan atau hapus instans di sisi kanan halaman daftar instans untuk menghindari tagihan berkelanjutan.
Menerapkan layanan model dengan EAS
EAS (Elastic Algorithm Service) memungkinkan Anda menerapkan model yang telah dilatih sebagai layanan inferensi online atau aplikasi web AI. EAS mendukung resource heterogen dan menggabungkan fitur seperti auto scaling, uji stres satu klik, rilis canary, dan Pemantauan waktu nyata untuk memastikan stabilitas layanan dalam skenario konkurensi tinggi dengan biaya yang lebih rendah.
-
Tulis antarmuka web untuk model dan salin ke OSS. Topik ini menyediakan kode antarmuka web dan perintah penyalinan. Jalankan Sel berikut untuk menyelesaikan langkah ini.

-
(Opsional) Verifikasi antarmuka web di DSW. Jalankan Sel berikut untuk menginstal dependensi dan memulai layanan.

Uji antarmuka. Di halaman launcher, klik Terminal untuk membuka terminal dan jalankan
python request_web.py. Hasil berikut akan dikembalikan:{"prediction": 7}CatatanMengakses layanan web di DSW melalui Internet memerlukan VPC, NAT gateway, dan Elastic IP (EIP). Untuk informasi selengkapnya, lihat Mengakses layanan dalam instans melalui jaringan publik.
-
Buat layanan EAS. Di panel navigasi kiri Konsol PAI, klik Elastic Algorithm Service (EAS) > Deploy Service > Custom Deployment.
Konfigurasikan parameter berikut dan pertahankan nilai default untuk parameter lainnya:
-
Resource Type: Pilih Public Resources. Untuk Instance Type, pilih
ecs.gn7i-c8g1.2xlarge.Jika Tipe instans ini tidak tersedia, pilih Tipe instans GPU lain.
Deployment Method: Image-based Deployment
-
Image Configuration: Pilih Official Image, cari dan pilih
torcheasyrec:1.2.0-pytorch2.11.0-gpu-py311-cu126-ubuntu22.04.Dalam lingkungan produksi, biasanya Anda mengembangkan dan menguji kode di DSW terlebih dahulu, kemudian mengemas lingkungan Kontainer dan mendorongnya ke Container Registry (ACR) untuk digunakan oleh EAS selama Penerapan model. Untuk informasi selengkapnya, lihat Membuat image instans DSW.
-
Mount storage: File model dan kode antarmuka web telah disalin ke OSS. Klik OSS dan pilih jalur yang sesuai.
Uri: oss://*/pai_test/
Mount Path: /mnt/data/
Command to Run:
web.pydipasang ke/mnt/data/. Perintah jalannya adalahpython /mnt/data/web.pyPort Number: Masukkan Port
9000, yang digunakan olehweb.py.-
Third-party Library Settings: Masukkan
bottle torchvision.Image resmi yang dipilih tidak menyertakan library bottle atau torchvision (seperti yang diverifikasi melalui pengujian). Oleh karena itu, masukkan
bottle torchvisiondalam konfigurasi library pihak ketiga.
Klik Deploy untuk membuat layanan. Diperlukan waktu sekitar 5 menit untuk membuat layanan. Ketika status berubah menjadi Running, layanan telah diterapkan.
-
Dapatkan informasi pemanggilan. Di halaman detail layanan, klik View Endpoint Information untuk mendapatkan Internet Endpoint dan Token.
-
Panggil layanan. Ganti Internet Endpoint dan Token dalam kode berikut dengan nilai yang sebenarnya, lalu jalankan kode tersebut.
import requests """ URL gambar uji: label adalah 7 http://aliyun-document-review.oss-cn-beijing.aliyuncs.com/dsw_files/mnist_label_7_No_0.jpg label adalah 2 http://aliyun-document-review.oss-cn-beijing.aliyuncs.com/dsw_files/mnist_label_2_No_1.jpg label adalah 1 http://aliyun-document-review.oss-cn-beijing.aliyuncs.com/dsw_files/mnist_label_1_No_2.jpg label adalah 0 http://aliyun-document-review.oss-cn-beijing.aliyuncs.com/dsw_files/mnist_label_0_No_3.jpg label adalah 4 http://aliyun-document-review.oss-cn-beijing.aliyuncs.com/dsw_files/mnist_label_4_No_4.jpg label adalah 5 http://aliyun-document-review.oss-cn-beijing.aliyuncs.com/dsw_files/mnist_label_9_No_5.jpg """ image_url = 'http://aliyun-document-review.oss-cn-beijing.aliyuncs.com/dsw_files/mnist_label_7_No_0.jpg' # Klien mengunduh gambar untuk mendapatkan data biner img_response = requests.get(image_url, timeout=10) # Periksa apakah permintaan berhasil berdasarkan kode status img_response.raise_for_status() img_bytes = img_response.content # Di header, ganti <EAS_TOKEN> dengan token yang sebenarnya # Dalam produksi, sebaiknya atur token sebagai Variabel lingkungan untuk mencegah kebocoran informasi sensitif # Untuk informasi tentang cara mengonfigurasi Variabel lingkungan, lihat https://www.alibabacloud.com/help/zh/sdk/developer-reference/configure-the-alibaba-cloud-accesskey-environment-variable-on-linux-macos-and-windows-systems headers = {"Authorization": "Token"} # Kirim data biner sebagai body permintaan POST ke layanan model resp = requests.post('public endpoint/predict_image', data=img_bytes, headers=headers) print(resp.json())Hasil berikut akan dikembalikan:
{"prediction": 7}
Layanan EAS dalam topik ini dibuat dalam kelompok sumber daya publik dan ditagih berdasarkan metode pay-as-you-go. Saat layanan tidak lagi diperlukan, hentikan atau hapus layanan di sisi kanan halaman daftar layanan untuk menghindari tagihan berkelanjutan.
Referensi
Untuk informasi tentang pemecahan masalah kegagalan startup DSW, lihat Membuat instans DSW.
Untuk detail penagihan DSW, lihat Penagihan DSW.
Untuk fitur inti DSW, lihat Ikhtisar DSW.
Untuk informasi tentang mengakses layanan web DSW melalui Internet, lihat Mengakses layanan dalam instans melalui jaringan publik.
Untuk fitur inti EAS, lihat Ikhtisar EAS.
