Performa tinggi yang disajikan dengan Triton Inference Server (Pratinjau)
BERLAKU UNTUK:
Azure CLI ml extensionv2 (saat ini)
Pelajari cara menggunakan NVIDIA Triton Inference Server di Azure Machine Learning dengan Titik akhir online terkelola.
Triton adalah perangkat lunak sumber terbuka multi-kerangka kerja yang dioptimalkan untuk inferensi. Ini mendukung kerangka kerja pembelajaran mesin populer seperti TensorFlow, ONNX Runtime, PyTorch, NVIDIA TensorRT, dan banyak lagi. Ini dapat digunakan untuk beban kerja CPU atau GPU Anda.
Pada artikel ini, Anda akan belajar cara menyebarkan Triton dan model ke titik akhir online terkelola. Informasi diberikan tentang penggunaan CLI (baris perintah) dan studio Azure Machine Learning.
Catatan
- NVIDIA Triton Inference Server adalah perangkat lunak pihak ketiga sumber terbuka yang terintegrasi dalam Azure Machine Learning.
- Meskipun titik akhir online Azure Machine Learning secara umum tersedia, menggunakan Triton dengan penyebaran titik akhir online masih dalam pratinjau.
Prasyarat
Sebelum mengikuti langkah-langkah dalam artikel ini, pastikan Anda memiliki prasyarat berikut:
Langganan Azure. Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai. Coba Azure Machine Learning versi gratis atau berbayar.
Azure CLI dan ekstensi
mlke Azure CLI. Untuk informasi selengkapnya, lihat Pasang, siapkan, dan gunakan CLI (v2) (pratinjau).Penting
Contoh CLI dalam artikel ini mengasumsikan bahwa Anda menggunakan shell Bash (atau kompatibel). Misalnya, dari sistem Linux atau Subsistem Windows untuk Linux.
Ruang kerja Azure Machine Learning. Jika Anda tidak memilikinya, gunakan langkah-langkah di Instal, siapkan, dan gunakan CLI (v2) (pratinjau) untuk membuatnya.
Lingkungan Python 3.8 (atau lebih tinggi) yang berfungsi.
Akses ke mesin virtual seri NCv3 untuk langganan Azure Anda.
Penting
Anda mungkin perlu meminta peningkatan kuota untuk langganan Anda sebelum Anda dapat menggunakan seri mesin virtual ini. Untuk informasi selengkapnya, lihat Seri NCv3.
Informasi dalam artikel ini didasarkan pada sampel kode yang terkandung dalam repositori azureml-examples. Untuk menjalankan perintah secara lokal tanpa harus menyalin/menempelkan YAML dan file lainnya, klon repositori dan kemudian ubah direktori ke direktori cli di repositori:
git clone https://github.com/Azure/azureml-examples --depth 1
cd azureml-examples
cd cli
Jika belum mengatur default untuk Azure CLI, simpan pengaturan default Anda. Untuk menghindari meneruskan nilai untuk langganan, ruang kerja, dan grup sumber daya Anda beberapa kali, gunakan perintah berikut ini. Ganti parameter berikut dengan nilai untuk konfigurasi spesifik Anda:
- Ganti
<subscription>dengan ID langganan Azure Anda. - Ganti
<workspace>dengan nama ruang kerja Azure Machine Learning Anda. - Ganti
<resource-group>dengan grup sumber daya Azure yang berisi ruang kerja Anda. - Ganti
<location>dengan wilayah Azure yang berisi ruang kerja Anda.
Tip
Anda dapat melihat default Anda saat ini dengan menggunakan perintah az configure -l.
az account set --subscription <subscription>
az configure --defaults workspace=<workspace> group=<resource-group> location=<location>
NVIDIA Triton Inference Server membutuhkan struktur repositori model tertentu, tempat tersedianya direktori untuk setiap model dan subdirektori untuk versi model. Isi dari setiap subdirektori versi model ditentukan oleh jenis model dan persyaratan backend yang mendukung model. Untuk melihat semua struktur repositori model https://github.com/triton-inference-server/server/blob/main/docs/model_repository.md#model-files
Informasi dalam dokumen ini didasarkan pada penggunaan model yang disimpan dalam format ONNX, sehingga struktur direktori repositori model adalah <model-repository>/<model-name>/1/model.onnx. Secara khusus, model ini melakukan identifikasi gambar.
Sebarkan menggunakan CLI (v2)
BERLAKU UNTUK:
Azure CLI ml extensionv2 (saat ini)
Bagian ini menunjukkan bagaimana Anda dapat menyebarkan Triton ke titik akhir online terkelola menggunakan Azure CLI dengan ekstensi Pembelajaran Mesin (v2).
Penting
Untuk penyebaran tanpa kode Triton, pengujian melalui titik akhir lokal saat ini tidak didukung.
Untuk menghindari pengetikan jalur untuk beberapa perintah, gunakan perintah berikut untuk mengatur variabel lingkungan
BASE_PATH. Variabel ini menunjuk ke direktori tempat model dan file konfigurasi YAML terkait berada:BASE_PATH=endpoints/online/triton/single-modelGunakan perintah berikut untuk mengatur nama titik akhir yang akan dibuat. Dalam contoh ini, nama acak dibuat untuk titik akhir:
export ENDPOINT_NAME=triton-single-endpt-`echo $RANDOM`Instal persyaratan Python menggunakan perintah berikut:
pip install numpy pip install tritonclient[http] pip install pillow pip install geventBuat file konfigurasi YAML untuk titik akhir Anda. Contoh berikut mengonfigurasi nama dan mode autentikasi titik akhir. Yang digunakan dalam perintah berikut terletak di
/cli/endpoints/online/triton/single-model/create-managed-endpoint.ymldi repositori azureml-examples yang Anda klon sebelumnya:create-managed-endpoint.yaml
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineEndpoint.schema.json name: my-endpoint auth_mode: aml_tokenUntuk membuat titik akhir baru menggunakan konfigurasi YAML, gunakan perintah berikut:
az ml online-endpoint create -n $ENDPOINT_NAME -f $BASE_PATH/create-managed-endpoint.yamlBuat file konfigurasi YAML untuk titik akhir Anda. Contoh berikut mengonfigurasi penyebaran bernama blue ke titik akhir yang dibuat di langkah sebelumnya. Yang digunakan dalam perintah berikut digunakan di
/cli/endpoints/online/triton/single-model/create-managed-deployment.ymldi repositori azureml-examples yang Anda klon sebelumnya:Penting
Agar penyebaran tanpa kode Triton (NCD) berfungsi, mengatur
typeketriton_modelwajib dilakukan,type: triton_model. Untuk informasi selengkapnya, lihat skema YAML model CLI (v2).Penyebaran ini menggunakan mesin virtual Standard_NC6s_v3. Anda mungkin perlu meminta peningkatan kuota untuk langganan Anda sebelum Anda dapat menggunakan mesin virtual ini. Untuk informasi selengkapnya, lihat Seri NCv3.
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json name: blue endpoint_name: my-endpoint model: name: sample-densenet-onnx-model version: 1 path: ./models type: triton_model instance_count: 1 instance_type: Standard_NC6s_v3Untuk membuat penyebaran menggunakan konfigurasi YAML, gunakan perintah berikut:
az ml online-deployment create --name blue --endpoint $ENDPOINT_NAME -f $BASE_PATH/create-managed-deployment.yaml --all-traffic
Memanggil titik akhir Anda
Setelah penyebaran selesai, gunakan perintah berikut untuk membuat permintaan penilaian ke titik akhir yang disebarkan.
Tip
File /cli/endpoints/online/triton/single-model/triton_densenet_scoring.py dalam repositori azureml-examples digunakan untuk menilai. Gambar yang diteruskan ke titik akhir memerlukan pra-pemrosesan untuk memenuhi persyaratan ukuran, jenis, dan format, serta pasca-pemrosesan untuk menunjukkan label yang diprediksi. triton_densenet_scoring.py menggunakan perpustakaan tritonclient.http untuk berkomunikasi dengan server antarmuka Triton.
Untuk mendapatkan uri penilaian titik akhir, gunakan perintah berikut:
scoring_uri=$(az ml online-endpoint show -n $ENDPOINT_NAME --query scoring_uri -o tsv) scoring_uri=${scoring_uri%/*}Untuk mendapatkan token autentikasi, gunakan perintah berikut:
auth_token=$(az ml online-endpoint get-credentials -n $ENDPOINT_NAME --query accessToken -o tsv)Untuk menilai data dengan titik akhir, gunakan perintah berikut. Perintah akan mengirimkan gambar merak (https://aka.ms/peacock-pic) ke titik akhir:
python $BASE_PATH/triton_densenet_scoring.py --base_url=$scoring_uri --token=$auth_tokenRespons dari skrip mirip dengan teks berikut:
Is server ready - True Is model ready - True /azureml-examples/cli/endpoints/online/triton/single-model/densenet_labels.txt 84 : PEACOCK
Menghapus titik akhir dan model Anda
Setelah selesai dengan titik akhir, gunakan perintah berikut untuk menghapusnya:
az ml online-endpoint delete -n $ENDPOINT_NAME --yes
Gunakan perintah berikut untuk menghapus model Anda:
az ml model delete --name $MODEL_NAME --version $MODEL_VERSION
Sebarkan menggunakan studio Azure Machine Learning
Bagian ini menampilkan cara Anda dapat menyebarkan Triton ke titik akhir online terkelola menggunakan studio Azure Machine Learning.
Daftarkan model Anda dalam format Triton menggunakan perintah YAML dan CLI berikut. YAML menggunakan model densenet-onnx dari https://github.com/Azure/azureml-examples/tree/main/cli/endpoints/online/triton/single-model
create-triton-model.yaml
name: densenet-onnx-model version: 1 path: ./models type: triton_model description: Registering my Triton format model.az ml model create -f create-triton-model.yamlTangkapan layar berikut menunjukkan bagaimana model terdaftar Anda akan terlihat di halaman Model studio Azure Machine Learning.
Dari studio, pilih ruang kerja Anda, lalu gunakan halaman titik akhir atau model untuk membuat penyebaran titik akhir:
Dari halaman Titik akhir, Pilih Buat.
Berikan tipe nama dan autentikasi untuk titik akhir, lalu pilih Berikutnya.
Saat memilih model, pilih model Triton yang terdaftar sebelumnya. Pilih Berikutnya untuk melanjutkan.
Saat Anda memilih model yang terdaftar dalam format Triton, di langkah Lingkungan panduan, Anda tidak perlu mencetak skrip dan lingkungan.
Selesaikan panduan untuk menyebarkan model ke titik akhir.
Langkah berikutnya
Untuk mempelajari lebih lanjut, tinjau artikel ini:
- Menyebarkan model dengan REST
- Membuat dan menggunakan titik akhir online terkelola di studio
- Peluncuran yang aman untuk titik akhir online
- Cara menskalakan otomatis titik akhir online terkelola
- Melihat biaya untuk titik akhir online terkelola Azure Machine Learning
- Mengakses sumber daya Azure dengan titik akhir online terkelola dan identitas terkelola
- Memecahkan masalah penyebaran titik akhir online terkelola




