Kontrak Kontainer Kustom untuk Titik Akhir Multi-Model - Amazon SageMaker AI

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Kontrak Kontainer Kustom untuk Titik Akhir Multi-Model

Untuk menangani beberapa model, container Anda harus mendukung satu set APIs yang memungkinkan Amazon SageMaker AI berkomunikasi dengan container untuk memuat, mencantumkan, mendapatkan, dan membongkar model sesuai kebutuhan. model_nameIni digunakan dalam set baru APIs sebagai parameter input kunci. Kontainer pelanggan diharapkan untuk melacak model yang dimuat menggunakan model_name sebagai kunci pemetaan. Juga, model_name ini adalah pengidentifikasi buram dan belum tentu nilai TargetModel parameter yang diteruskan ke API. InvokeEndpoint TargetModelNilai asli dalam InvokeEndpoint permintaan diteruskan ke container di APIs as a X-Amzn-SageMaker-Target-Model header yang dapat digunakan untuk tujuan logging.

catatan

Titik akhir multi-model untuk instans yang didukung GPU saat ini hanya didukung dengan wadah Server Inferensi NVIDIA Triton SageMaker AI. Wadah ini sudah mengimplementasikan kontrak yang didefinisikan di bawah ini. Pelanggan dapat langsung menggunakan wadah ini dengan titik akhir GPU multi-model mereka, tanpa pekerjaan tambahan apa pun.

Anda dapat mengonfigurasi hal berikut APIs pada kontainer Anda untuk titik akhir multi-model yang didukung CPU.

Muat Model API

Menginstruksikan wadah untuk memuat model tertentu yang ada di url bidang tubuh ke dalam memori wadah pelanggan dan untuk melacaknya dengan yang ditugaskanmodel_name. Setelah model dimuat, wadah harus siap untuk melayani permintaan inferensi menggunakan inimodel_name.

POST /models HTTP/1.1 Content-Type: application/json Accept: application/json { "model_name" : "{model_name}", "url" : "/opt/ml/models/{model_name}/model", }
catatan

Jika model_name sudah dimuat, API ini harus mengembalikan 409. Setiap kali model tidak dapat dimuat karena kurangnya memori atau sumber daya lain, API ini harus mengembalikan kode status HTTP 507 ke SageMaker AI, yang kemudian memulai pembongkaran model yang tidak digunakan untuk mengklaim kembali.

Daftar Model API

Mengembalikan daftar model dimuat ke dalam memori wadah pelanggan.

GET /models HTTP/1.1 Accept: application/json Response = { "models": [ { "modelName" : "{model_name}", "modelUrl" : "/opt/ml/models/{model_name}/model", }, { "modelName" : "{model_name}", "modelUrl" : "/opt/ml/models/{model_name}/model", }, .... ] }

API ini juga mendukung pagination.

GET /models HTTP/1.1 Accept: application/json Response = { "models": [ { "modelName" : "{model_name}", "modelUrl" : "/opt/ml/models/{model_name}/model", }, { "modelName" : "{model_name}", "modelUrl" : "/opt/ml/models/{model_name}/model", }, .... ] }

SageMaker AI awalnya dapat memanggil List Models API tanpa memberikan nilai untuknext_page_token. Jika nextPageToken bidang dikembalikan sebagai bagian dari respons, itu akan diberikan sebagai nilai untuk next_page_token dalam panggilan Model Daftar berikutnya. Jika a nextPageToken tidak dikembalikan, itu berarti tidak ada lagi model untuk dikembalikan.

Dapatkan Model API

Ini adalah API baca sederhana pada model_name entitas.

GET /models/{model_name} HTTP/1.1 Accept: application/json { "modelName" : "{model_name}", "modelUrl" : "/opt/ml/models/{model_name}/model", }
catatan

Jika model_name tidak dimuat, API ini harus mengembalikan 404.

Bongkar Model API

Menginstruksikan platform SageMaker AI untuk menginstruksikan wadah pelanggan untuk membongkar model dari memori. Ini memulai penggusuran model kandidat sebagaimana ditentukan oleh platform saat memulai proses pemuatan model baru. Sumber daya yang disediakan model_name harus direklamasi oleh container saat API ini mengembalikan respons.

DELETE /models/{model_name}
catatan

Jika model_name tidak dimuat, API ini harus mengembalikan 404.

Memanggil Model API

Membuat permintaan prediksi dari yang model_name disediakan tertentu. InvokeEndpointPermintaan SageMaker AI Runtime mendukung X-Amzn-SageMaker-Target-Model sebagai header baru yang mengambil jalur relatif model yang ditentukan untuk pemanggilan. Sistem SageMaker AI membangun jalur absolut model dengan menggabungkan awalan yang disediakan sebagai bagian dari panggilan CreateModel API dengan jalur relatif model.

POST /models/{model_name}/invoke HTTP/1.1 Content-Type: ContentType Accept: Accept X-Amzn-SageMaker-Custom-Attributes: CustomAttributes X-Amzn-SageMaker-Target-Model: [relativePath]/{artifactName}.tar.gz
catatan

Jika model_name tidak dimuat, API ini harus mengembalikan 404.

Selain itu, pada instance GPU, jika InvokeEndpoint gagal karena kurangnya memori atau sumber daya lainnya, API ini harus mengembalikan kode status HTTP 507 ke SageMaker AI, yang kemudian memulai pembongkaran model yang tidak digunakan untuk mengklaim kembali.