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 telah menemukan model dari katalog model 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. Azure Machine Learning memungkinkan Anda menerapkan penyebaran standar, titik akhir online, dan titik akhir batch. 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. Titik akhir berisi penyebaran, dan untuk titik akhir online dan batch, satu titik akhir dapat berisi beberapa penyebaran. 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 salah satu penyebarannya.

Di satu sisi, 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 Azure Anda. Di sisi lain, model tertentu mendukung penyebaran tanpa server—memungkinkan mereka untuk tidak menggunakan kuota dari langganan Anda. Untuk penyebaran tanpa server, 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: penyebaran standar, online, dan batch

Azure Machine Learning memungkinkan Anda menerapkan penyebaran standar, titik akhir online, dan titik akhir batch.

penyebaran standar dan titik akhir online dirancang untuk inferensi real-time. Setiap kali Anda memanggil titik akhir, hasilnya dikembalikan dalam respons titik akhir. Penyebaran standar tidak menggunakan kuota dari langganan Anda; sebaliknya, ditagihkan dengan skema penagihan Standar.

Titik akhir batch dirancang untuk inferensi batch yang berjalan lama. Setiap kali Anda memanggil titik akhir batch, Anda menghasilkan pekerjaan batch yang melakukan pekerjaan aktual.

Kapan menggunakan penyebaran standar, online, dan titik akhir batch

penyebaran standar:

Gunakan penyebaran standar untuk menggunakan model dasar besar yang siap pakai untuk inferensi real-time atau untuk menyempurnakan model tersebut. Tidak semua model tersedia untuk diterapkan dalam penyebaran standar. Sebaiknya gunakan mode penyebaran ini saat:

  • Model Anda adalah model dasar atau versi model dasar yang disesuaikan yang tersedia untuk implementasi standar.
  • 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 model dasar yang disempurnakan, tetapi tidak didukung dalam penyebaran standar.
  • 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 penyebaran standar, online, dan titik akhir batch

Semua penyebaran standar, titik akhir online, dan batch didasarkan pada gagasan titik akhir, sehingga Anda dapat dengan mudah beralih dari satu ke lainnya. Titik akhir online dan batch juga mampu mengelola beberapa penyebaran untuk titik akhir yang sama.

Titik akhir

Tabel berikut ini memperlihatkan ringkasan beragam fitur yang tersedia untuk penyebaran standar, titik akhir online, dan batch pada tingkatan titik akhir.

Fitur Penyebaran standar 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 Tombol 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

1Biaya kecil dikenakan per menit untuk penyebaran standar. Lihat bagian penyebaran untuk biaya yang terkait dengan konsumsi, yang ditagih per token.

Penyebaran

Tabel berikut ini memperlihatkan ringkasan berbagai fitur yang tersedia untuk penyebaran standar, online, dan titik akhir batch di tingkat penyebaran. Konsep-konsep ini berlaku untuk setiap penyebaran pada endpoint (untuk endpoint online dan batch), dan berlaku untuk penyebaran standar (di mana konsep penyebaran terintegrasi dengan endpoint).

Fitur Penyebaran standar 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 2 Bawaan Yes (pratinjau) Tidak
Server inferensi 3 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 TA Tidak Ya
Menskalakan komputasi ke nol Bawaan Tidak Ya
Komputasi penskalaanotomatis 4 Bawaan Ya, berdasarkan penggunaan sumber daya Ya, berdasarkan jumlah pekerjaan
Manajemen overkapasitas Pembatasan Pembatasan Antrian
Basis biaya5 per satuan Per penyebaran: instans komputasi yang berjalan Per pekerjaan: komputasi instans yang dikonsumsi dalam pekerjaan (dibatasi ke jumlah maksimum instans kluster)
Pengujian penyebaran lokal Tidak Ya Tidak

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

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

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

5 Biaya penyebaran online dan batch oleh sumber daya yang digunakan. Dalam penyebaran online, sumber daya disediakan pada waktu penyebaran. Dalam penyebaran batch, sumber daya tidak digunakan pada waktu penyebaran tetapi pada saat pekerjaan berjalan. Oleh karena itu, tidak ada biaya yang terkait dengan penyebaran batch itu sendiri. Demikian juga, 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 menyediakan 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