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
Um mehrere Modelle verarbeiten zu können, muss Ihr Container eine Reihe von Modellen unterstützenAPIs, die es Amazon ermöglichen, mit dem Container SageMaker 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 model_name
ist der ein undurchsichtiger Bezeichner und entspricht nicht unbedingt dem Wert des TargetModel
Parameters, der an den 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 unterstützte Instanzen werden derzeit nur mit dem NVIDIATriton SageMaker Inference Server-Container unterstützt. Dieser Container implementiert bereits den unten definierten Vertrag. Kunden können diesen Container ohne zusätzlichen Aufwand direkt mit ihren GPU Multimodell-Endpunkten verwenden.
Sie können Folgendes APIs auf Ihren Containern für CPU gesicherte Endpunkte mit mehreren Modellen konfigurieren.
Modell laden API
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
es bereits geladen ist, API sollte dies 409 zurückgeben. Jedes Mal, wenn ein Modell aufgrund von Speichermangel oder einer anderen Ressource nicht geladen werden kann, API sollte dies den HTTP Statuscode 507 zurückgeben SageMaker, der dann das Entladen ungenutzter Modelle zur Rückgewinnung initiiert.
Modell auflisten API
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", }, .... ] }
Dies unterstützt API 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 kann die List-Modelle zunächst aufrufen, API ohne einen Wert für next_page_token
anzugeben. 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 abrufen API
Dies ist eine einfache Lektüre API der model_name
Entität.
GET /models/{model_name} HTTP/1.1 Accept: application/json { "modelName" : "{model_name}", "modelUrl" : "/opt/ml/models/{model_name}/model", }
Anmerkung
Wenn nicht geladen model_name
ist, API sollte dies 404 zurückgeben.
Modell entladen API
Weist die SageMaker 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 bereitgestellten Ressourcen model_name
sollten vom Container zurückgefordert werden, wenn dieser eine Antwort zurückgibt. API
DELETE /models/{model_name}
Anmerkung
Wenn nicht geladen model_name
ist, API sollte dies 404 zurückgeben.
Modell aufrufen API
Stellt eine Vorhersageanforderung von einem bestimmten bereitgestellten model_name
. Die SageMaker 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 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 nicht geladen model_name
ist, API sollte dies 404 zurückgeben.
Außerdem API sollte bei GPU Instances, wenn sie aufgrund eines Mangels an Arbeitsspeicher oder anderen Ressourcen InvokeEndpoint
fehlschlagen, ein HTTP 507-Statuscode an zurückgegeben werden SageMaker, der dann das Entladen ungenutzter Modelle zur Rückgewinnung initiiert.