Titik akhir untuk inferensi dalam produksi

BERLAKU UNTUK:Ekstensi ml Azure CLI v2 (saat ini)Python SDK azure-ai-ml v2 (saat ini)

Setelah melatih model atau alur pembelajaran mesin, Anda perlu menyebarkannya ke produksi sehingga orang lain dapat menggunakannya untuk inferensi. Inferensi adalah proses penerapan data input baru ke model pembelajaran mesin atau alur untuk menghasilkan output. Meskipun output ini biasanya disebut sebagai "prediksi," inferensi dapat digunakan untuk menghasilkan output untuk tugas pembelajaran mesin lainnya, seperti klasifikasi dan pengklusteran. Di Azure Pembelajaran Mesin, Anda melakukan inferensi dengan menggunakan titik akhir dan penyebaran. Titik akhir dan penyebaran memungkinkan Anda memisahkan antarmuka beban kerja produksi Anda dari implementasi yang melayaninya.

Intuisi

Misalkan Anda sedang mengerjakan aplikasi yang memprediksi jenis dan warna mobil, mengingat fotonya. Untuk aplikasi ini, pengguna dengan kredensial tertentu membuat permintaan HTTP ke URL dan menyediakan gambar mobil sebagai bagian dari permintaan. Sebagai gantinya, pengguna mendapatkan respons yang menyertakan jenis dan warna mobil sebagai nilai string. Dalam skenario ini, URL berfungsi sebagai titik akhir.

A diagram showing the concept of an endpoint.

Selain itu, katakanlah bahwa seorang ilmuwan data, Alice, sedang berupaya mengimplementasikan aplikasi. Alice tahu banyak tentang TensorFlow dan memutuskan untuk mengimplementasikan model menggunakan pengklasifikasi berurutan Keras dengan arsitektur RestNet dari TensorFlow Hub. Setelah menguji model, Alice senang dengan hasilnya dan memutuskan untuk menggunakan model untuk menyelesaikan masalah prediksi mobil. Model ini berukuran besar dan membutuhkan memori 8 GB dengan 4 core untuk dijalankan. Dalam skenario ini, model Alice dan sumber daya, seperti kode dan komputasi, yang diperlukan untuk menjalankan model membentuk penyebaran di bawah titik akhir.

A diagram showing the concept of a deployment.

Akhirnya, mari kita bayangkan bahwa setelah beberapa bulan, organisasi menemukan bahwa aplikasi berkinerja buruk pada gambar dengan kondisi iluminasi yang kurang ideal. Bob, ilmuwan data lain, tahu banyak tentang teknik augmentasi data yang membantu model membangun ketahanan pada faktor itu. Namun, Bob merasa lebih nyaman menggunakan Torch untuk mengimplementasikan model dan melatih model baru dengan Torch. Bob ingin mencoba model ini dalam produksi secara bertahap sampai organisasi siap untuk menghentikan model lama. Model baru juga menunjukkan performa yang lebih baik saat disebarkan ke GPU, sehingga penyebaran perlu menyertakan GPU. Dalam skenario ini, model Bob dan sumber daya, seperti kode dan komputasi, yang diperlukan untuk menjalankan model membentuk penyebaran lain di bawah titik akhir yang sama.

A diagram showing the concept of an endpoint with multiple deployments.

Titik akhir dan penyebaran

Titik akhir adalah URL stabil dan tahan lama yang dapat digunakan untuk meminta atau memanggil model. Anda memberikan input yang diperlukan ke titik akhir dan mendapatkan output kembali. Titik akhir menyediakan:

  • URL yang stabil dan tahan lama (seperti endpoint-name.region.inference.ml.azure.com),
  • mekanisme autentikasi, dan
  • mekanisme otorisasi.

Penyebaran adalah sekumpulan sumber daya dan komputasi yang diperlukan untuk menghosting model atau komponen yang melakukan inferensi aktual. Satu titik akhir dapat berisi beberapa penyebaran. Penyebaran ini dapat menghosting aset independen dan menggunakan sumber daya yang berbeda berdasarkan kebutuhan aset. Titik akhir memiliki mekanisme perutean yang dapat mengarahkan permintaan ke penyebaran tertentu di titik akhir.

Agar berfungsi dengan baik, setiap titik akhir harus memiliki setidaknya satu penyebaran. Titik akhir dan penyebaran adalah sumber daya Azure Resource Manager independen yang muncul di portal Microsoft Azure.

Titik akhir online dan batch

Azure Pembelajaran Mesin memungkinkan Anda menerapkan titik akhir online dan titik akhir batch. Titik akhir online dirancang untuk inferensi real-time—saat Anda memanggil titik akhir, hasilnya dikembalikan dalam respons titik akhir. Titik akhir batch, di sisi lain, dirancang untuk inferensi batch yang berjalan lama. Setiap kali Anda memanggil titik akhir batch, Anda menghasilkan pekerjaan batch yang melakukan pekerjaan aktual.

Kapan menggunakan titik akhir online vs batch untuk kasus penggunaan Anda

Gunakan titik akhir online untuk mengoprasikan model untuk inferensi real time dalam permintaan latensi rendah sinkron. Sebaiknya gunakan saat:

  • Anda memiliki persyaratan latensi rendah.
  • Model Anda dapat menjawab permintaan dalam waktu yang relatif singkat.
  • Input model Anda sesuai dengan payload HTTP permintaan.
  • Anda perlu meningkatkan skala dalam hal jumlah permintaan.

Gunakan titik akhir batch untuk mengoprasikan model atau alur untuk inferensi asinkron yang berjalan lama. Sebaiknya gunakan saat:

  • Anda memiliki model atau alur mahal yang membutuhkan waktu lebih lama untuk dijalankan.
  • Anda ingin mengoprasialisasi alur pembelajaran mesin dan menggunakan kembali komponen.
  • Anda perlu melakukan inferensi atas sejumlah besar data yang didistribusikan dalam beberapa file.
  • Anda tidak memiliki persyaratan latensi rendah.
  • Input model Anda disimpan di akun penyimpanan atau di aset data Azure Pembelajaran Mesin.
  • Anda dapat memanfaatkan paralelisasi.

Perbandingan titik akhir online dan batch

Titik akhir online dan batch didasarkan pada gagasan titik akhir dan penyebaran, yang membantu Anda bertransisi dengan mudah dari satu ke yang lain. Namun, ketika berpindah dari satu ke yang lain, ada beberapa perbedaan yang penting untuk diperhitungkan. Beberapa perbedaan ini disebabkan oleh sifat pekerjaan:

Titik akhir

Tabel berikut ini memperlihatkan ringkasan berbagai fitur yang tersedia untuk titik akhir online dan batch.

Fitur Titik Akhir Online Titik akhir batch
URL pemanggilan stabil Ya Ya
Dukungan untuk beberapa penyebaran Ya Ya
Perutean penyebaran Pemisahan lalu lintas Beralih ke default
Mencerminkan lalu lintas untuk peluncuran yang aman Ya Tidak
Dukungan Swagger Ya Tidak
Autentikasi Kunci dan token Microsoft Entra ID
Dukungan jaringan privat Ya Ya
Isolasi jaringan terkelola Ya Ya (lihat konfigurasi tambahan yang diperlukan)
Kunci yang dikelola pelanggan Ya Ya
Dasar biaya Tidak Tidak

Penyebaran

Tabel berikut ini memperlihatkan ringkasan berbagai fitur yang tersedia untuk titik akhir online dan batch di tingkat penyebaran. Konsep ini berlaku untuk setiap penyebaran di bawah titik akhir.

Fitur Titik Akhir Online Titik akhir batch
Jenis Penyebaran Model Model dan komponen Alur
Penyebaran model MLflow Ya Ya
Penyebaran model kustom Ya, dengan skrip penilaian Ya, dengan skrip penilaian
Penyebaran paket model 1 Yes (pratinjau) No
Server inferensi 2 - Server Inferensi Azure Pembelajaran Mesin
-Triton
- Kustom (menggunakan BYOC)
Inferensi Batch
Sumber daya komputasi yang digunakan Instans atau sumber daya terperinci Instans kluster
Tipe komputasi Komputasi terkelola dan Kubernetes Komputasi terkelola dan Kubernetes
Komputasi berprioritas rendah Tidak Ya
Menskalakan komputasi ke nol Tidak Ya
Komputasi penskalaanotomatis 3 Ya, berdasarkan beban sumber daya Ya, berdasarkan jumlah pekerjaan
Manajemen overkapasitas Pembatasan Antrian
Basis biaya4 Per penyebaran: instans komputasi yang berjalan Per pekerjaan: komputasi yang dikonsumsi dalam pekerjaan (dibatasi ke jumlah maksimum instans kluster).
Pengujian penyebaran lokal Ya Tidak

1 Menyebarkan model MLflow ke titik akhir tanpa konektivitas internet keluar atau jaringan privat memerlukan pengemasan model terlebih dahulu.

2Server inferensi mengacu pada teknologi penyajian yang mengambil permintaan, memprosesnya, dan membuat respons. Server inferensi juga menentukan format input dan output yang diharapkan.

3Penskalaan otomatis adalah kemampuan untuk meningkatkan atau menurunkan skala sumber daya penyebaran yang dialokasikan secara dinamis berdasarkan bebannya. Penyebaran online dan batch menggunakan strategi yang berbeda untuk penskalaan otomatis. Meskipun penyebaran online meningkat dan turun berdasarkan pemanfaatan sumber daya (seperti CPU, memori, permintaan, dll.), titik akhir batch meningkatkan atau menurunkan skala berdasarkan jumlah pekerjaan yang dibuat.

4 Biaya penyebaran online dan batch oleh sumber daya yang digunakan. Dalam penyebaran online, sumber daya disediakan pada waktu penyebaran. Namun, dalam penyebaran batch, tidak ada sumber daya yang digunakan pada waktu penyebaran tetapi ketika pekerjaan berjalan. Oleh karena itu, tidak ada biaya yang terkait dengan penyebaran itu sendiri. Perhatikan bahwa pekerjaan yang diantrekan juga tidak menggunakan sumber daya.

Antarmuka pengembang

Titik akhir dirancang untuk membantu organisasi mengoperalisasi beban kerja tingkat produksi di Azure Pembelajaran Mesin. Titik akhir adalah sumber daya yang kuat dan dapat diskalakan dan memberikan kemampuan terbaik untuk mengimplementasikan alur kerja MLOps.

Anda dapat membuat dan mengelola titik akhir batch dan online dengan beberapa alat pengembang:

  • Azure CLI dan Python SDK
  • Azure Resource Manager/REST API
  • Portal web studio Azure Machine Learning
  • portal Azure (IT/Admin)
  • Dukungan untuk alur CI/CD MLOps menggunakan antarmuka Azure CLI & antarmuka REST/ARM

Langkah berikutnya