

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
Kontrak Kontainer API

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_name`Ini 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` `TargetModel`Nilai 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 ](https://docs.aws.amazon.com/sagemaker/latest/dg/triton.html) 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.

**Topics**
+ [

## Muat Model API
](#multi-model-api-load-model)
+ [

## Daftar Model API
](#multi-model-api-list-model)
+ [

## Dapatkan Model API
](#multi-model-api-get-model)
+ [

## Bongkar Model API
](#multi-model-api-unload-model)
+ [

## Memanggil Model API
](#multi-model-api-invoke-model)

## Muat Model API
Model Beban

Menginstruksikan wadah untuk memuat model tertentu yang ada di `url` bidang tubuh ke dalam memori wadah pelanggan dan untuk melacaknya dengan yang ditugaskan`model_name`. Setelah model dimuat, wadah harus siap untuk melayani permintaan inferensi menggunakan ini`model_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
Daftar Model

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 untuk`next_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
Dapatkan Model

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
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
Memanggil Model

Membuat permintaan prediksi dari yang `model_name` disediakan tertentu. `InvokeEndpoint`Permintaan 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.