Bagikan melalui


Titik akhir untuk inferensi dalam produksi

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

Setelah Anda melatih model atau alur pembelajaran mesin, atau Anda menemukan model dari katalog model kami yang sesuai dengan kebutuhan Anda, 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.

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 satu atau beberapa penyebaran (kecuali untuk titik akhir API tanpa server). Penyebaran dapat menghosting aset independen dan menggunakan sumber daya yang berbeda berdasarkan kebutuhan aset. Selain itu, titik akhir memiliki mekanisme perutean yang dapat mengarahkan permintaan ke penyebaran tertentu di titik akhir.

Beberapa jenis titik akhir di Azure Pembelajaran Mesin menggunakan sumber daya khusus pada penyebarannya. Agar titik akhir ini berjalan, Anda harus memiliki kuota komputasi pada langganan Anda. Namun, model tertentu mendukung penyebaran tanpa server—tidak menggunakan kuota dari langganan Anda—sebagai gantinya, Anda ditagih berdasarkan penggunaan.

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.

Diagram yang memperlihatkan konsep titik akhir.

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.

Diagram yang menunjukkan konsep penyebaran.

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.

Diagram memperlihatkan konsep titik akhir dengan beberapa penyebaran.

Titik akhir: API tanpa server, online, dan batch

Azure Pembelajaran Mesin memungkinkan Anda menerapkan titik akhir API tanpa server, titik akhir online, dan titik akhir batch. Titik akhir API tanpa server dan titik akhir online dirancang untuk inferensi real-time—saat Anda memanggil titik akhir, hasilnya dikembalikan dalam respons titik akhir. Titik akhir API tanpa server tidak menggunakan kuota dari langganan Anda; melainkan mereka ditagih dengan penagihan bayar sesuai penggunaan.

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 API tanpa server, online, dan titik akhir batch

Titik akhir API tanpa server:

Gunakan titik akhir API tanpa server untuk mengonsumsi model dasar besar untuk inferensi real time di luar rak atau untuk menyempurnakannya model tersebut. Tidak semua model tersedia untuk penyebaran ke titik akhir API tanpa server. Sebaiknya gunakan mode penyebaran ini saat:

  • Model Anda adalah model dasar, atau versi yang disempurnakan tersedia untuk penyebaran API tanpa server.
  • Anda dapat memperoleh manfaat dari penyebaran tanpa kuota.
  • Anda tidak perlu menyesuaikan tumpukan inferensi yang digunakan untuk menjalankan model.

Titik akhir online:

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

  • Model Anda adalah model dasar atau versi yang disempurnakan, tetapi tidak didukung di titik akhir API tanpa server.
  • 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.

Titik akhir batch:

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 API, online, dan batch tanpa server

Semua titik akhir API, online, dan batch tanpa server didasarkan pada gagasan titik akhir, yang membantu Anda bertransisi dengan mudah dari satu ke yang lain. Titik akhir online dan batch juga memperkenalkan kemampuan mengelola beberapa penyebaran untuk titik akhir yang sama. Bagian berikut menjelaskan berbagai fitur dari setiap opsi penyebaran:

Titik akhir

Tabel berikut menunjukkan ringkasan berbagai fitur yang tersedia untuk API tanpa server, online, dan titik akhir batch.

Fitur Titik akhir API tanpa server Titik akhir online Titik akhir batch
URL pemanggilan stabil Ya Ya Ya
Dukungan untuk beberapa penyebaran Tidak Ya Ya
Perutean penyebaran Tidak Pemisahan lalu lintas Beralih ke default
Mencerminkan lalu lintas untuk peluncuran yang aman Tidak Ya Tidak
Dukungan Swagger Ya Ya Tidak
Autentikasi Kunci ID Kunci dan Microsoft Entra (pratinjau) Microsoft Entra ID
Dukungan jaringan privat (warisan) Tidak Ya Ya
Isolasi jaringan terkelola Ya Ya Ya (lihat konfigurasi tambahan yang diperlukan)
Kunci yang dikelola pelanggan TA Ya Ya
Dasar biaya Per titik akhir, per menit1 Tidak Tidak

1Pecahan kecil dibebankan untuk titik akhir API tanpa server per menit. Lihat bagian penyebaran untuk biaya yang terkait dengan konsumsi, yang ditagih per token.

Penyebaran

Tabel berikut menunjukkan ringkasan berbagai fitur yang tersedia untuk API tanpa server, online, dan titik akhir batch di tingkat penyebaran. Konsep ini berlaku untuk setiap penyebaran di bawah titik akhir (untuk titik akhir online dan batch), dan berlaku untuk titik akhir API tanpa server (di mana konsep penyebaran dibangun ke dalam titik akhir).

Fitur Titik akhir API tanpa server Titik akhir online Titik akhir batch
Jenis Penyebaran Model Model Model dan komponen Alur
Penyebaran model MLflow Tidak, hanya model tertentu dalam katalog Ya Ya
Penyebaran model kustom Tidak, hanya model tertentu dalam katalog Ya, dengan skrip penilaian Ya, dengan skrip penilaian
Penyebaran paket model 1 Bawaan Yes (pratinjau) No
Server inferensi 2 API Inferensi Model Azure AI - Server Inferensi Azure Pembelajaran Mesin
-Triton
- Kustom (menggunakan BYOC)
Inferensi Batch
Sumber daya komputasi yang digunakan Tidak ada (tanpa server) Instans atau sumber daya terperinci Instans kluster
Tipe komputasi Tidak ada (tanpa server) Komputasi terkelola dan Kubernetes Komputasi terkelola dan Kubernetes
Komputasi berprioritas rendah NA Tidak Ya
Menskalakan komputasi ke nol Bawaan Tidak Ya
Komputasi penskalaanotomatis 3 Bawaan Ya, berdasarkan beban sumber daya Ya, berdasarkan jumlah pekerjaan
Manajemen overkapasitas Pembatasan Pembatasan Antrian
Basis biaya4 Per token Per penyebaran: instans komputasi yang berjalan Per pekerjaan: komputasi yang dikonsumsi dalam pekerjaan (dibatasi ke jumlah maksimum instans kluster).
Pengujian penyebaran lokal Tidak 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