Paket model untuk penyebaran (pratinjau)

Setelah melatih model pembelajaran mesin, Anda perlu menyebarkannya sehingga orang lain dapat menggunakan prediksinya. Namun, menyebarkan model membutuhkan lebih dari sekadar bobot atau artefak model. Paket model adalah kemampuan di Azure Pembelajaran Mesin yang memungkinkan Anda mengumpulkan semua dependensi yang diperlukan untuk menyebarkan model pembelajaran mesin ke platform penyajian. Anda dapat memindahkan paket di seluruh ruang kerja dan bahkan di luar Azure Pembelajaran Mesin.

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.

Apa itu paket model?

Sebagai praktik terbaik sebelum menyebarkan model, semua dependensi yang diperlukan model untuk berjalan dengan sukses harus dikumpulkan dan diselesaikan sehingga Anda dapat menyebarkan model dalam pendekatan yang dapat direproduksi dan kuat.

Screenshot that shows the dependencies collected during a model package operation.

Biasanya, dependensi model meliputi:

  • Gambar dasar atau lingkungan tempat model Anda dijalankan.
  • Daftar paket dan dependensi Python yang bergantung pada model agar berfungsi dengan baik.
  • Aset tambahan yang mungkin diperlukan model Anda untuk menghasilkan inferensi. Aset ini dapat mencakup peta label dan parameter pra-pemrosesan.
  • Perangkat lunak yang diperlukan agar server inferensi melayani permintaan; misalnya, server flask atau TensorFlow Serving.
  • Rutinitas inferensi (jika diperlukan).

Semua elemen ini perlu dikumpulkan untuk kemudian disebarkan dalam infrastruktur penyajian. Aset yang dihasilkan setelah Anda mengumpulkan semua dependensi disebut paket model.

Manfaat model pengemasan

Model pengemasan sebelum penyebaran memiliki keuntungan berikut:

  • Reproduksi: Semua dependensi dikumpulkan pada waktu pengemasan, bukan waktu penyebaran. Setelah dependensi diselesaikan, Anda dapat menyebarkan paket sebanyak yang diperlukan sambil menjamin bahwa dependensi telah diselesaikan.
  • Resolusi konflik yang lebih cepat: Azure Pembelajaran Mesin mendeteksi kesalahan konfigurasi yang terkait dengan dependensi, seperti paket Python yang hilang, saat mengemas model. Anda tidak perlu menyebarkan model untuk menemukan masalah tersebut.
  • Integrasi yang lebih mudah dengan server inferensi: Karena server inferensi yang Anda gunakan mungkin memerlukan konfigurasi perangkat lunak tertentu (misalnya, paket Torch Serve), perangkat lunak tersebut dapat menghasilkan konflik dengan dependensi model Anda. Paket model di Azure Pembelajaran Mesin menyuntikkan dependensi yang diperlukan oleh server inferensi untuk membantu Anda mendeteksi konflik sebelum menyebarkan model.
  • Portabilitas: Anda dapat memindahkan paket model Azure Pembelajaran Mesin dari satu ruang kerja ke ruang kerja lainnya, menggunakan registri. Anda juga dapat menghasilkan paket yang dapat disebarkan di luar Azure Pembelajaran Mesin.
  • Dukungan MLflow dengan jaringan privat: Untuk model MLflow, Azure Pembelajaran Mesin memerlukan koneksi internet untuk dapat menginstal paket Python yang diperlukan secara dinamis agar model dapat berjalan. Dengan mengemas model MLflow, paket Python ini diselesaikan selama operasi pengemasan model, sehingga paket model MLflow tidak akan memerlukan koneksi internet untuk disebarkan.

Tip

Mengemas model MLflow sebelum penyebaran sangat disarankan dan bahkan diperlukan untuk titik akhir yang tidak memiliki konektivitas jaringan keluar. Model MLflow menunjukkan dependensinya dalam model itu sendiri, sehingga memerlukan penginstalan paket dinamis. Ketika model MLflow dikemas, penginstalan dinamis ini dilakukan pada waktu pengemasan daripada waktu penyebaran.

Penyebaran paket model

Anda dapat menyediakan paket model sebagai input ke titik akhir online. Penggunaan paket model membantu menyederhanakan alur kerja MLOps Anda dengan mengurangi kemungkinan kesalahan pada waktu penyebaran, karena semua dependensi akan dikumpulkan selama operasi pengemasan. Anda juga dapat mengonfigurasi paket model untuk menghasilkan gambar docker bagi Anda untuk disebarkan di mana saja di luar Azure Pembelajaran Mesin, baik di tempat maupun di cloud.

Screenshot that shows all the possible targets for a model package.

Paket sebelum penyebaran

Cara paling sederhana untuk menyebarkan menggunakan paket model adalah dengan menentukan ke Azure Pembelajaran Mesin untuk menyebarkan paket model, sebelum menjalankan penyebaran. Saat menggunakan studio Azure CLI, Azure Pembelajaran Mesin SDK, atau Azure Pembelajaran Mesin untuk membuat penyebaran di titik akhir online, Anda dapat menentukan penggunaan kemasan model sebagai berikut:

--with-package Gunakan bendera saat membuat penyebaran:

az ml online-deployment create --with-package -f model-deployment.yml -e $ENDPOINT_NAME

Azure Pembelajaran Mesin mengemas model terlebih dahulu lalu menjalankan penyebaran.

Catatan

Saat menggunakan paket, jika Anda menunjukkan lingkungan dasar dengan conda atau pip dependensi, Anda tidak perlu menyertakan dependensi server inferensi (azureml-inference-server-http). Sebaliknya, dependensi ini secara otomatis ditambahkan untuk Anda.

Menyebarkan model paket

Anda dapat menyebarkan model yang telah dikemas langsung ke Titik Akhir Online. Praktik ini memastikan reproduksi hasil dan ini adalah praktik terbaik. Lihat Mengemas dan menyebarkan model ke Titik Akhir Online.

Jika Anda ingin menyebarkan paket di luar Azure Pembelajaran Mesin, lihat Mengemas dan menyebarkan model di luar Azure Pembelajaran Mesin.

Langkah selanjutnya