Holen Sie sich eine Inferenzempfehlung für einen vorhandenen Endpunkt
Jobs mit Inferenzempfehlungen führen eine Reihe von Lasttests für empfohlene Instance-Typen und einen vorhandenen Endpunkt durch. Inferenzempfehlungsjobs verwenden Leistungsmetriken, die auf Lasttests mit den Beispieldaten basieren, die Sie bei der Registrierung der Modellversion angegeben haben.
Sie können Benchmarks für einen vorhandenen SageMaker-AI-Inferenzendpunkt durchführen und Inferenzempfehlungen abrufen, um die Leistung Ihres Endpunkts zu verbessern. Das Verfahren zum Abrufen von Empfehlungen für einen vorhandenen SageMaker-AI-Inferenzendpunkt ähnelt dem Verfahren zum Abrufen von Inferenzempfehlungen ohne Endpunkt. Beim Benchmarking eines vorhandenen Endpunkts sind mehrere Funktionsausschlüsse zu beachten:
-
Sie können nur einen vorhandenen Endpunkt pro Inference Recommender-Job verwenden.
-
Sie können nur eine Variante auf Ihrem Endpunkt haben.
-
Sie können keinen Endpunkt verwenden, der Autoscaling aktiviert.
-
Diese Funktionalität wird nur für Real-Time-Inference unterstützt.
-
Diese Funktion unterstützt keine Echtzeit-Endpunkte mit mehreren Modellen.
Warnung
Es wird dringend davon abgeraten, Inference Recommender-Jobs auf einem Produktionsendpunkt auszuführen, der Live-Traffic verarbeitet. Die synthetische Belastung beim Benchmarking kann sich auf Ihren Produktionsendpunkt auswirken und zu Drosselungen führen oder zu ungenauen Benchmark-Ergebnissen führen. Wir empfehlen Ihnen, zu Vergleichszwecken einen Endpunkt zu verwenden, der nicht für die Produktion oder für Entwickler bestimmt ist.
Die folgenden Abschnitte zeigen, wie Sie mit Amazon SageMaker Inference Recommender eine Inferenzempfehlung für einen bestehenden Endpunkt auf Basis Ihres Modelltyps unter Verwendung des AWS SDK für Python (Boto3) und des AWS CLI erstellen.
Anmerkung
Bevor Sie einen Inference Recommender-Empfehlungsauftrag erstellen, stellen Sie sicher, dass Sie die Voraussetzungen für die Verwendung von Amazon SageMaker Inference Recommender Anforderungen erfüllt haben.
Voraussetzungen
Wenn Sie noch keinen SageMaker-AI-Inferenzendpunkt haben, können Sie entweder eine Inferenzempfehlung ohne Endpunkt erhalten, oder Sie können einen Real-Time-Inferenzendpunkt erstellen, indem Sie den Anweisungen unter Erstellen Ihres Endpunkts und Bereitstellen Ihres Modells folgen.
Erstellen Sie einen Job mit Inferenzempfehlungen für einen vorhandenen Endpunkt
Erstellen Sie programmgesteuert eine Inferenzempfehlung mithilfe vonAWS SDK für Python (Boto3), oder AWS CLI. Geben Sie einen Jobnamen für Ihre Inferenzempfehlung, den Namen eines vorhandenen SageMaker-AI-Inferenzendpunkts, den ARN einer AWS-IAM-Rolle, eine Eingabekonfiguration und Ihren Modellpaket-ARN aus der Registrierung Ihres Modells bei der Model Registry an.
Holen Sie sich die Job-Ergebnisse Ihrer Inferenzempfehlung
Sie können die Ergebnisse Ihres Jobs mit Inferenzempfehlungen programmgesteuert sammeln. Gehen Sie dabei genauso vor wie bei Standardjobs mit Inferenzempfehlungen. Weitere Informationen finden Sie unter Rufen Sie die Ergebnisse Ihrer Inferenzempfehlung ab..
Wenn Sie Ergebnisse des Jobs mit Inferenzempfehlungen für einen vorhandenen Endpunkt erhalten, sollten Sie eine JSON-Antwort erhalten, die der folgenden ähnelt:
{ "JobName":"job-name", "JobType": "Default", "JobArn": "arn:aws:sagemaker:region:account-id:inference-recommendations-job/resource-id", "RoleArn":"iam-role-arn", "Status": "COMPLETED", "CreationTime": 1664922919.2, "LastModifiedTime": 1664924208.291, "InputConfig": { "ModelPackageVersionArn": "arn:aws:sagemaker:region:account-id:model-package/resource-id", "Endpoints": [ { "EndpointName":"endpoint-name"} ] }, "InferenceRecommendations": [ { "Metrics": { "CostPerHour": 0.7360000014305115, "CostPerInference": 7.456940238625975e-06, "MaxInvocations": 1645, "ModelLatency": 171 }, "EndpointConfiguration": { "EndpointName":"sm-endpoint-name", "VariantName":"variant-name", "InstanceType": "ml.g4dn.xlarge", "InitialInstanceCount": 1 }, "ModelConfiguration": { "EnvironmentParameters": [ { "Key": "TS_DEFAULT_WORKERS_PER_MODEL", "ValueType": "string", "Value": "4" } ] } } ], "EndpointPerformances": [ { "Metrics": { "MaxInvocations": 184, "ModelLatency": 1312 }, "EndpointConfiguration": { "EndpointName":"endpoint-name"} } ] }
Die ersten Zeilen enthalten Informationen über den Job mit Inferenzempfehlungen selbst. Dazu gehören der Jobname, der Rollen-ARN sowie die Erstellungs- und letzten Änderungszeiten.
Das InferenceRecommendations Wörterbuch enthält eine Liste von Inference Recommender-Inferenzempfehlungen.
Das EndpointConfiguration verschachtelte Wörterbuch enthält die Empfehlung für den Instance-Typ (InstanceType) sowie den Endpunkt- und Variantennamen (ein bereitgestelltes Modell für AWS Machine Learning), die während des Empfehlungsjobs verwendet wurden.
Das Metrics-verschachtelte Wörterbuch enthält Informationen über die geschätzten Kosten pro Stunde (CostPerHour) für Ihren Echtzeit-Endpunkt in US-Dollar, die geschätzten Kosten pro Inferenz (CostPerInference) in US-Dollar für Ihren Echtzeit-Endpunkt, die erwartete maximale Anzahl von InvokeEndpoint-Anfragen pro Minute, die an den Endpunkt gesendet werden (MaxInvocations), und die Modelllatenz (ModelLatency), d. h. das Zeitintervall (in Millisekunden), das Ihr Modell benötigt hat, um auf SageMaker AI zu antworten. Die Modelllatenz umfasst die lokalen Kommunikationszeiten für das Senden der Anfrage und das Abrufen der Antwort aus dem Container eines Modells sowie die Zeit, die für den Abschluss der Inferenz im Container benötigt wird.
Das EndpointPerformances verschachtelte Wörterbuch enthält den Namen Ihres vorhandenen Endpunkts, auf dem der Empfehlungsjob ausgeführt wurde (EndpointName), und die Leistungskennzahlen für Ihren Endpunkt (MaxInvocationsundModelLatency).