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 über benutzerdefinierte Container für Endpunkte Multi-Model
Um mehrere Modelle verarbeiten zu können, muss Ihr Container eine Reihe von APIs unterstützen, 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 in der neuen Gruppe von APIs als Schlüsseleingabeparameter 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-Anforderung wird an Container in den APIs als X-Amzn-SageMaker-Target-Model-Header übergeben, der für Protokollierungszwecke verwendet werden kann.
Anmerkung
Multi-model Endpunkte für GPU-gestützte Instances werden derzeit nur mit dem NVIDIA Triton Inference Server-Container 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 die folgenden APIs auf Ihren Containern für CPU-gestützte Multimodell-Endpunkte konfigurieren.
Modell API laden
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, das dann das Entladen ungenutzter Modelle zur Rückgewinnung initiiert.
Modell API auflisten
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 AI 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
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
Weist die SageMaker AI-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
Stellt eine Vorhersageanforderung von einem bestimmten bereitgestellten model_name. Die SageMaker AI InvokeEndpoint Runtime-Anfrage unterstützt X-Amzn-SageMaker-Target-Model als neuen Header den relativen Pfad des Modells, das für den Aufruf angegeben wurde. Das SageMaker AI-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 auf GPU-Instances, wenn sie aufgrund mangelnden Speichers oder anderer Ressourcen InvokeEndpoint ausfällt, einen 507-HTTP-Statuscode an SageMaker AI zurückgeben, die dann das Entladen ungenutzter Modelle zur Rückgewinnung initiiert.