Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Penerapan model dengan Triton Inference Server
Triton Inference Server
Kontainer SageMaker AI Triton membantu Anda menyebarkan Triton Inference Server pada platform SageMaker AI Hosting untuk melayani model terlatih dalam produksi. Ini mendukung berbagai mode di mana SageMaker AI beroperasi. Untuk daftar container Triton Inference Server yang tersedia di SageMaker AI, lihat NVIDIA Triton Inference Containers
Untuk contoh end-to-end notebook, kami sarankan untuk melihat amazon-sagemaker-examples repositori
Mode hosting
Mode Hosting SageMaker AI berikut didukung oleh wadah Triton:
-
Titik akhir model tunggal
-
Ini adalah mode operasi default SageMaker AI. Dalam mode ini, wadah Triton dapat memuat satu model, atau model ansambel tunggal.
-
Nama model harus diteruskan sebagai properti lingkungan kontainer, yang merupakan bagian dari panggilan
CreateModelSageMaker AI API. Variabel lingkungan yang digunakan untuk meneruskan nama model adalahSAGEMAKER_TRITON_DEFAULT_MODEL_NAME.
-
-
Titik akhir model tunggal dengan ansambel
-
Triton Inference Server mendukung ansambel, yang merupakan pipeline, atau DAG (grafik asiklik terarah) model. Sementara ansambel secara teknis terdiri dari beberapa model, dalam mode titik akhir model tunggal default, SageMaker AI dapat memperlakukan ansambel dengan tepat (meta-model yang mewakili pipa) sebagai model utama untuk dimuat, dan selanjutnya dapat memuat model terkait.
-
Nama model ansambel yang tepat harus digunakan untuk memuat model. Itu harus diteruskan sebagai properti lingkungan kontainer, yang merupakan bagian dari panggilan
CreateModelSageMaker API. Variabel lingkungan yang digunakan untuk meneruskan nama model adalahSAGEMAKER_TRITON_DEFAULT_MODEL_NAME.
-
-
Titik akhir multi-model
-
Dalam mode ini, SageMaker AI dapat melayani beberapa model pada satu titik akhir. Anda dapat menggunakan mode ini dengan menentukan variabel lingkungan
‘MultiModel’: truesebagai properti lingkungan kontainer, yang merupakan bagian dari panggilanCreateModelSageMaker API. -
Secara default, tidak ada model yang dimuat saat instance dimulai. Untuk menjalankan permintaan inferensi terhadap model tertentu, tentukan
*.tar.gzfile model yang sesuai sebagai argumen keTargetModelproperti panggilanInvokeEndpointSageMaker API.
-
-
Titik akhir multi-model dengan ansambel
-
Dalam mode ini, SageMaker AI berfungsi seperti yang dijelaskan untuk titik akhir multi-model. Namun, kontainer SageMaker AI Triton dapat memuat beberapa model ansambel, yang berarti bahwa beberapa pipeline model dapat berjalan pada instance yang sama. SageMaker AI memperlakukan setiap ansambel sebagai satu model, dan ansambel yang tepat dari setiap model dapat dipanggil dengan menentukan arsip yang sesuai sebagai.
*.tar.gzTargetModel Untuk manajemen memori yang lebih baik selama memori dinamis
LOADdanUNLOAD, kami sarankan Anda menjaga ukuran ansambel kecil.
-
Jenis muatan inferensi
Triton mendukung dua metode pengiriman muatan inferensi melalui jaringan - json dan binary+json (atau json yang dikodekan biner). Muatan JSON dalam kedua kasus mencakup tipe data, bentuk, dan tensor permintaan inferensi yang sebenarnya. Tensor permintaan harus berupa tensor biner.
Dengan binary+json formatnya, Anda harus menentukan panjang metadata permintaan di header untuk memungkinkan Triton mengurai muatan biner dengan benar. Dalam wadah SageMaker AI Triton, ini dilakukan dengan menggunakan Content-Type header khusus:. application/vnd.sagemaker-triton.binary+json;json-header-size={} Ini berbeda dengan menggunakan Inference-Header-Content-Length header pada Triton Inference Server yang berdiri sendiri karena header khusus tidak diizinkan di AI. SageMaker
Menggunakan config.pbtxt untuk mengatur konfigurasi model
Untuk Server Inferensi Triton pada SageMaker AI, setiap model harus menyertakan config.pbtxt file yang menentukan, setidaknya, konfigurasi berikut untuk model:
-
name: Meskipun ini opsional untuk model yang berjalan di luar SageMaker AI, kami menyarankan Anda selalu memberikan nama untuk model yang akan dijalankan di Triton SageMaker pada AI. -
platformdan/ataubackend: Menyetel backend sangat penting untuk menentukan jenis model. Beberapa backend memiliki klasifikasi lebih lanjut, seperti tensorflow_savedmodelatau.tensorflow_graphdefOpsi tersebut dapat ditentukan sebagai bagian dariplatformkunci selainbackendkunci. Backend yang paling umum adalahtensorrt,,onnxruntime,tensorflow,,pytorch,pythondalifil, dan.openvino -
input: Tentukan tiga atribut untuk input:name,data_typedandims(bentuk). -
output: Tentukan tiga atribut untuk output:name,data_typedandims(bentuk). -
max_batch_size: Atur ukuran batch ke nilai yang lebih besar dari atau sama dengan 1 yang menunjukkan ukuran batch maksimum yang harus digunakan Triton dengan model.
Untuk detail lebih lanjut tentang konfigurasiconfig.pbtxt, lihat repositori Triton. GitHub
-
instance_groups: Grup instance membantu menentukan nomor dan lokasi untuk model tertentu. Mereka memiliki atribut count,kind, dangpus(kinddigunakan kapanKIND_GPU).countAtributnya setara dengan jumlah pekerja. Untuk penyajian model reguler, setiap pekerja memiliki salinan modelnya sendiri. Demikian pula, di Triton,countmenentukan jumlah salinan model per perangkat. Misalnya, jikainstance_groupjenisnyaKIND_CPU, maka CPU memilikicountjumlah salinan model.catatan
Pada instance GPU,
instance_groupkonfigurasi berlaku per perangkat GPU. Misalnya,countjumlah salinan model ditempatkan pada setiap perangkat GPU kecuali Anda secara eksplisit menentukan perangkat GPU mana yang harus memuat model. -
dynamic_batchingdan sequence_batching: Batching dinamis digunakan untuk model stateless, dan batch urutan digunakan untuk model stateful (di mana Anda ingin merutekan permintaan ke instance model yang sama setiap saat). Penjadwal batching mengaktifkan antrian per model, yang membantu meningkatkan throughput, tergantung pada konfigurasi batching. -
ensemble: Model ansambel mewakili pipa dari satu atau lebih model dan koneksi tensor input dan output antara model-model tersebut. Itu dapat dikonfigurasi dengan menentukan platformsebagaiensemble. Konfigurasi ansambel hanyalah representasi dari pipa model. Pada SageMaker AI, semua model di bawah ansambel diperlakukan sebagai tanggungan model ansambel dan dihitung sebagai model tunggal untuk SageMaker metrik AI, seperti.LoadedModelCount
Menerbitkan metrik Triton default ke Amazon CloudWatch
NVIDIA Triton Inference Container memaparkan metrik pada port 8002 (dapat dikonfigurasi) untuk model yang berbeda dan GPUs yang digunakan di Triton Inference Server. Untuk detail selengkapnya tentang metrik default yang tersedia, lihat GitHub halaman untuk metrik Triton Inference
Dimulai dengan versi v23.07 dan seterusnya, wadah SageMaker AI Triton mendukung penerbitan metrik ini ke Amazon CloudWatch dengan menentukan beberapa variabel lingkungan. Untuk mengikis metrik Prometheus, wadah SageMaker AI Triton memanfaatkan agen Amazon. CloudWatch
Variabel lingkungan yang diperlukan yang harus Anda tentukan untuk mengumpulkan metrik adalah sebagai berikut:
| Variabel lingkungan | Deskripsi | Nilai contoh |
|---|---|---|
|
|
Tentukan opsi ini untuk memungkinkan Triton mempublikasikan metrik ke titik akhir Prometheus-nya. |
“benar” |
|
|
Tentukan opsi ini untuk memulai pra-pemeriksaan yang diperlukan untuk menerbitkan metrik ke Amazon. CloudWatch |
“benar” |
|
|
Tentukan opsi ini untuk menunjuk ke grup log tempat metrik ditulis. |
"/aws/SageMaker AI/Endpoints/TritonMetrics/SageMakerTwoEnsemblesTest" |
|
|
Tentukan opsi ini untuk menunjuk ke namespace metrik tempat Anda ingin melihat dan memplot metrik. |
"/aws/SageMaker AI/Endpoints/TritonMetrics/SageMakerTwoEnsemblesPublicTest" |
|
|
Tentukan ini sebagai 8002, atau port lainnya. Jika SageMaker AI belum memblokir port yang ditentukan, itu digunakan. Jika tidak, port lain yang tidak diblokir dipilih secara otomatis. |
“8002" |
Saat menerbitkan metrik dengan Triton di SageMaker AI, ingatlah batasan berikut:
Meskipun Anda dapat menghasilkan metrik khusus melalui backend C-API dan Python (v23.05 dan seterusnya), metrik ini saat ini tidak didukung untuk dipublikasikan ke Amazon. CloudWatch
Dalam mode titik akhir multi-model SageMaker AI (MME), Triton berjalan di lingkungan yang mengharuskan ruang nama model diaktifkan karena setiap model (kecuali model ansambel) diperlakukan seolah-olah berada di repositori model mereka sendiri. Saat ini, ini menciptakan batasan untuk metrik. Saat ruang nama model diaktifkan, Triton tidak membedakan metrik antara dua model dengan nama yang sama milik ansambel yang berbeda. Sebagai solusinya, pastikan setiap model yang digunakan memiliki nama yang unik. Ini juga membuatnya lebih mudah untuk mencari metrik Anda. CloudWatch
Variabel-variabel lingkungan
Tabel berikut mencantumkan variabel lingkungan yang didukung untuk Triton pada SageMaker AI.
| Variabel lingkungan | Deskripsi | Jenis | Kemungkinan nilai |
|---|---|---|---|
|
Memungkinkan Triton beroperasi dalam mode titik akhir multi-model SageMaker AI. |
Boolean |
|
|
Tentukan model yang akan dimuat dalam mode model tunggal SageMaker AI (default). Untuk mode ansambel, tentukan nama ansambel yang tepat. |
String |
|
|
|
String |
|
|
Dalam wadah SageMaker AI Triton, ini diatur ke secara |
Boolean |
|
|
Sementara di SageMaker AI, port default adalah 8080. Anda dapat menyesuaikan ke port yang berbeda dalam skenario multi-kontainer. |
String |
|
|
Ini diatur oleh platform SageMaker AI saat menggunakan mode multi-kontainer. |
String |
|
|
Meskipun SageMaker AI tidak mendukung GRPC saat ini, jika Anda menggunakan Triton di depan proxy terbalik khusus, Anda dapat memilih untuk mengaktifkan GRPC. |
Boolean |
|
|
Port default untuk GRPC adalah 8001, tetapi Anda dapat mengubahnya. |
String |
|
|
Anda dapat mengatur jumlah thread handler permintaan HTTP default. |
String |
|
|
|
Boolean |
|
|
|
Boolean |
|
|
|
Boolean |
|
|
|
Boolean |
|
|
Tentukan ukuran shm untuk backend Python, dalam byte. Nilai defaultnya adalah 16 MB tetapi dapat ditingkatkan. |
String |
|
|
Tentukan ukuran pertumbuhan shm untuk backend Python, dalam byte. Nilai default adalah 1 MB tetapi dapat ditingkatkan untuk memungkinkan peningkatan yang lebih besar. |
String |
|
|
Nilai default-nya adalah |
String |
|
|
Batasi persentase memori GPU maksimum yang digunakan untuk pemuatan model, memungkinkan sisanya digunakan untuk permintaan inferensi. |
String |
|
|
|
Boolean |
|
|
Port default adalah 8002. |
String |
|
|
|
Boolean |
|
|
Diperlukan jika Anda telah mengaktifkan penerbitan metrik. CloudWatch |
String |
|
|
Diperlukan jika Anda telah mengaktifkan penerbitan metrik. CloudWatch |
String |
|
|
Menambahkan argumen tambahan saat memulai Triton Server. |
String |
|