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
CreateModel
SageMaker 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
CreateModel
SageMaker 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’: true
sebagai properti lingkungan kontainer, yang merupakan bagian dari panggilanCreateModel
SageMaker API. -
Secara default, tidak ada model yang dimuat saat instance dimulai. Untuk menjalankan permintaan inferensi terhadap model tertentu, tentukan
*.tar.gz
file model yang sesuai sebagai argumen keTargetModel
properti panggilanInvokeEndpoint
SageMaker 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.gz
TargetModel
Untuk manajemen memori yang lebih baik selama memori dinamis
LOAD
danUNLOAD
, 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. -
platform
dan/ataubackend
: Menyetel backend sangat penting untuk menentukan jenis model. Beberapa backend memiliki klasifikasi lebih lanjut, seperti tensorflow_savedmodel
atau.tensorflow_graphdef
Opsi tersebut dapat ditentukan sebagai bagian dariplatform
kunci selainbackend
kunci. Backend yang paling umum adalahtensorrt
,,onnxruntime
,tensorflow
,,pytorch
,python
dali
fil
, dan.openvino
-
input
: Tentukan tiga atribut untuk input:name
,data_type
dandims
(bentuk). -
output
: Tentukan tiga atribut untuk output:name
,data_type
dandims
(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
(kind
digunakan kapanKIND_GPU
).count
Atributnya setara dengan jumlah pekerja. Untuk penyajian model reguler, setiap pekerja memiliki salinan modelnya sendiri. Demikian pula, di Triton,count
menentukan jumlah salinan model per perangkat. Misalnya, jikainstance_group
jenisnyaKIND_CPU
, maka CPU memilikicount
jumlah salinan model.catatan
Pada instance GPU,
instance_group
konfigurasi berlaku per perangkat GPU. Misalnya,count
jumlah salinan model ditempatkan pada setiap perangkat GPU kecuali Anda secara eksplisit menentukan perangkat GPU mana yang harus memuat model. -
dynamic_batching
dan 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 platform
sebagaiensemble
. 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 |
|