

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Vertrag für individuelle Container für Multimodell-Endpunkte
<a name="mms-container-apis"></a>

Um mehrere Modelle verarbeiten zu können, muss Ihr Container eine Reihe von Modellen unterstützen APIs , die es Amazon SageMaker AI ermöglichen, mit dem Container zu kommunizieren, um Modelle nach Bedarf zu laden, aufzulisten, abzurufen und zu entladen. Der `model_name` wird im neuen Satz von APIs als der wichtigste Eingabeparameter verwendet. Es wird erwartet, dass der Kundencontainer die geladenen Modelle unter Verwendung von `model_name` als Zuordnungsschlüssel verfolgt. Außerdem ist `model_name` ein undurchsichtiger Bezeichner und ist nicht unbedingt der Wert des `TargetModel`-Parameters, der an die `InvokeEndpoint`-API übergeben wird. Der ursprüngliche `TargetModel` Wert in der `InvokeEndpoint` Anfrage wird APIs als `X-Amzn-SageMaker-Target-Model` Header, der für Protokollierungszwecke verwendet werden kann, an den Container im Container übergeben.

**Anmerkung**  
Endpunkte mit mehreren Modellen für GPU-gestützte Instances werden derzeit nur mit dem [NVIDIA Triton Inference Server-Container](https://docs.aws.amazon.com/sagemaker/latest/dg/triton.html) von SageMaker AI unterstützt. Dieser Container implementiert bereits den unten definierten Vertrag. Der Kunde kann diesen Container ohne zusätzlichen Aufwand direkt mit seinen MultimodellGPU-Endpunkten verwenden.

Sie können in Ihren Containern für CPU-gestützte APIs Endpunkte mit mehreren Modellen Folgendes konfigurieren.

**Topics**
+ [Modell API laden](#multi-model-api-load-model)
+ [Modell API auflisten](#multi-model-api-list-model)
+ [Modell API aufrufen](#multi-model-api-get-model)
+ [Modell API entladen](#multi-model-api-unload-model)
+ [Modell API aufrufen](#multi-model-api-invoke-model)

## Modell API laden
<a name="multi-model-api-load-model"></a>

Weist den Container an, ein bestimmtes Modell im Feld `url` des Fließtexts in den Speicher des Kundencontainers zu laden und es mit dem zugewiesenen `model_name` zu verfolgen. Nachdem ein Modell geladen wurde, sollte der Container bereit sein, Inferenzanforderungen unter Verwendung dieses `model_name` zu bedienen.

```
POST /models HTTP/1.1
Content-Type: application/json
Accept: application/json

{
     "model_name" : "{model_name}",
     "url" : "/opt/ml/models/{model_name}/model",
}
```

**Anmerkung**  
Wenn `model_name` bereits geladen ist, sollte diese API 409 zurückgeben. Jedes Mal, wenn ein Modell aufgrund von Speichermangel oder einer anderen Ressource nicht geladen werden kann, sollte diese API einen 507-HTTP-Statuscode an SageMaker AI zurückgeben, die dann das Entladen ungenutzter Modelle zur Rückgewinnung initiiert.

## Modell API auflisten
<a name="multi-model-api-list-model"></a>

Gibt die Liste der Modelle zurück, die in den Speicher des Kundencontainers geladen werden.

```
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",
        },
        ....
    ]
}
```

Diese API unterstützt auch die Paginierung.

```
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 KI kann die List Models API zunächst aufrufen, ohne einen Wert für anzugeben. `next_page_token` Wenn ein `nextPageToken`-Feld als Teil der Antwort zurückgegeben wird, wird es als Wert für `next_page_token` in einem nachfolgenden Aufruf zum Auflisten der Modelle angegeben. Wenn kein `nextPageToken` zurückgegeben wird, bedeutet dies, dass keine weiteren Modelle zurückgegeben werden müssen.

## Modell API aufrufen
<a name="multi-model-api-get-model"></a>

Dies ist eine einfache Lese-API für die Entität `model_name`.

```
GET /models/{model_name} HTTP/1.1
Accept: application/json

{
     "modelName" : "{model_name}",
     "modelUrl" : "/opt/ml/models/{model_name}/model",
}
```

**Anmerkung**  
Wenn `model_name` nicht geladen ist, sollte diese API 404 zurückgeben.

## Modell API entladen
<a name="multi-model-api-unload-model"></a>

Weist die SageMaker KI-Plattform an, den Kundencontainer anzuweisen, ein Modell aus dem Speicher zu entladen. Dies löst die Bereinigung eines Kandidatenmodells aus, wie von der Plattform festgelegt, wenn der Prozess des Ladens eines neuen Modells gestartet wird. Die `model_name` bereitgestellten Ressourcen sollten vom Container zurückgerufen werden, wenn diese API eine Antwort zurückgibt.

```
DELETE /models/{model_name}
```

**Anmerkung**  
Wenn `model_name` nicht geladen ist, sollte diese API 404 zurückgeben.

## Modell API aufrufen
<a name="multi-model-api-invoke-model"></a>

Stellt eine Vorhersageanforderung von einem bestimmten bereitgestellten `model_name`. Die SageMaker AI `InvokeEndpoint` Runtime-Anfrage wird `X-Amzn-SageMaker-Target-Model` als neuer Header unterstützt, der den relativen Pfad des für den Aufruf angegebenen Modells verwendet. Das SageMaker KI-System erstellt den absoluten Pfad des Modells, indem es das Präfix, das als Teil des `CreateModel` API-Aufrufs bereitgestellt wird, mit dem relativen Pfad des Modells kombiniert.

```
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
```

**Anmerkung**  
Wenn `model_name` nicht geladen ist, sollte diese API 404 zurückgeben.

Darüber hinaus sollte diese API bei GPU-Instanzen, wenn sie aufgrund eines Mangels an Arbeitsspeicher oder anderen Ressourcen `InvokeEndpoint` fehlschlagen, einen 507-HTTP-Statuscode an SageMaker AI zurückgeben, der dann das Entladen ungenutzter Modelle zur Rückgewinnung initiiert.