Rufen Sie die Ergebnisse Ihrer Inferenzempfehlung ab. - Amazon SageMaker

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.

Rufen Sie die Ergebnisse Ihrer Inferenzempfehlung ab.

Erfassen Sie die Ergebnisse Ihres Jobs mit Inferenzempfehlungen programmgesteuert mit AWS SDK for Python (Boto3) Studio Classic oder der AWS CLI Konsole. SageMaker

AWS SDK for Python (Boto3)

Sobald eine Inferenzempfehlung abgeschlossen ist, können Sie sie verwenden, DescribeInferenceRecommendationsJob um die Auftragsdetails und Empfehlungen abzurufen. Geben Sie den Jobnamen ein, den Sie bei der Erstellung des Jobs für Inferenzempfehlungen verwendet haben.

job_name='<INSERT>' response = sagemaker_client.describe_inference_recommendations_job( JobName=job_name)

Drucken Sie das Antwortobjekt aus. Im vorherigen Codebeispiel wurde die Antwort in einer Variablen mit dem Namen gespeichert. response

print(response['Status'])

Dadurch wird eine JSON Antwort zurückgegeben, die dem folgenden Beispiel ähnelt. Beachten Sie, dass dieses Beispiel die empfohlenen Instance-Typen für Echtzeit-Inferenz zeigt (ein Beispiel mit Empfehlungen für serverlose Inferenzen finden Sie im nachfolgenden Beispiel).

{ 'JobName': 'job-name', 'JobDescription': 'job-description', 'JobType': 'Default', 'JobArn': 'arn:aws:sagemaker:region:account-id:inference-recommendations-job/resource-id', 'Status': 'COMPLETED', 'CreationTime': datetime.datetime(2021, 10, 26, 20, 4, 57, 627000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2021, 10, 26, 20, 25, 1, 997000, tzinfo=tzlocal()), 'InputConfig': { 'ModelPackageVersionArn': 'arn:aws:sagemaker:region:account-id:model-package/resource-id', 'JobDurationInSeconds': 0 }, 'InferenceRecommendations': [{ 'Metrics': { 'CostPerHour': 0.20399999618530273, 'CostPerInference': 5.246913588052848e-06, 'MaximumInvocations': 648, 'ModelLatency': 263596 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.c5.xlarge', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }, { 'Metrics': { 'CostPerHour': 0.11500000208616257, 'CostPerInference': 2.92620870823157e-06, 'MaximumInvocations': 655, 'ModelLatency': 826019 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.c5d.large', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }, { 'Metrics': { 'CostPerHour': 0.11500000208616257, 'CostPerInference': 3.3625731248321244e-06, 'MaximumInvocations': 570, 'ModelLatency': 1085446 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.m5.large', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }], 'ResponseMetadata': { 'RequestId': 'request-id', 'HTTPStatusCode': 200, 'HTTPHeaders': { 'x-amzn-requestid': 'x-amzn-requestid', 'content-type': 'content-type', 'content-length': '1685', 'date': 'Tue, 26 Oct 2021 20:31:10 GMT' }, 'RetryAttempts': 0 } }

Die ersten Zeilen enthalten Informationen über den Job mit Inferenzempfehlungen selbst. Dazu gehören der Jobname, die Rolle ARN sowie die Erstellungs- und Löschzeiten.

Das InferenceRecommendations Wörterbuch enthält eine Liste von Inference Recommender-Inferenzempfehlungen.

Das EndpointConfiguration verschachtelte Wörterbuch enthält die Empfehlung für den Instanztyp (InstanceType) sowie den Endpunkt- und Variantennamen (ein bereitgestelltes Modell für AWS maschinelles Lernen), die während des Empfehlungsjobs verwendet wurden. Sie können den Endpunkt und den Variantennamen für die Überwachung in Amazon CloudWatch Events verwenden. Weitere Informationen finden Sie unter Metriken für die Überwachung von Amazon SageMaker mit Amazon CloudWatch.

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 Mikrosekunden), auf das Ihr Modell reagiert hat. SageMaker Dieses Intervall enthält die lokale Kommunikationszeitspanne für das Senden der Anforderung und Abrufen der Antwort vom Container eines Modells sowie die Zeitspanne für das Abschließen der Inferenz im Container.

Das folgende Beispiel zeigt den InferenceRecommendations Teil der Antwort für einen Job mit Inferenzempfehlungen, der so konfiguriert ist, dass er serverlose Inferenzempfehlungen zurückgibt:

"InferenceRecommendations": [ { "EndpointConfiguration": { "EndpointName": "value", "InitialInstanceCount": value, "InstanceType": "value", "VariantName": "value", "ServerlessConfig": { "MaxConcurrency": value, "MemorySizeInMb": value } }, "InvocationEndTime": value, "InvocationStartTime": value, "Metrics": { "CostPerHour": value, "CostPerInference": value, "CpuUtilization": value, "MaxInvocations": value, "MemoryUtilization": value, "ModelLatency": value, "ModelSetupTime": value }, "ModelConfiguration": { "Compiled": "False", "EnvironmentParameters": [], "InferenceSpecificationName": "value" }, "RecommendationId": "value" } ]

Sie können die Empfehlungen für die serverlose Inferenz ähnlich wie die Ergebnisse für die Echtzeit-Inferenz interpretieren, mit Ausnahme von ServerlessConfig, das Ihnen die Metriken angibt, die für einen serverlosen Endpunkt mit dem angegebenen MemorySizeInMB und wann MaxConcurrency = 1 zurückgegeben werden. Um den auf dem Endpunkt möglichen Durchsatz zu erhöhen, erhöhen Sie den Wert MaxConcurrency linear. Wenn zum Beispiel die Schlussfolgerungsempfehlung MaxInvocations als 1000 ausweist, dann würde die Erhöhung von MaxConcurrency auf 2 2000 MaxInvocations unterstützen. Beachten Sie, dass dies nur bis zu einem bestimmten Punkt gilt, der je nach Modell und Code variieren kann. Serverlose Empfehlungen messen auch die Metrik ModelSetupTime, die (in Mikrosekunden) die Zeit misst, die benötigt wird, um Computerressourcen auf einem serverlosen Endpunkt zu starten. Weitere Informationen zum Festlegen serverloser Endpunkte finden Sie in der Serverless Inferenz-Dokumentation.

AWS CLI

Sobald eine Inferenzempfehlung abgeschlossen ist, können Sie describe-inference-recommendations-job verwenden, um die Auftragsdetails und die empfohlenen Instance-Typen abzurufen. Geben Sie den Jobnamen an, den Sie bei der Erstellung des Jobs für die Inferenzempfehlung verwendet haben.

aws sagemaker describe-inference-recommendations-job\ --job-name <job-name>\ --region <aws-region>

Eine ähnliche JSON Antwort sollte dem folgenden Beispiel ähneln. Beachten Sie, dass dieses Beispiel die empfohlenen Instance-Typen für Echtzeit-Inferenz zeigt (ein Beispiel mit Empfehlungen für serverlose Inferenzen finden Sie im nachfolgenden Beispiel).

{ 'JobName': 'job-name', 'JobDescription': 'job-description', 'JobType': 'Default', 'JobArn': 'arn:aws:sagemaker:region:account-id:inference-recommendations-job/resource-id', 'Status': 'COMPLETED', 'CreationTime': datetime.datetime(2021, 10, 26, 20, 4, 57, 627000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2021, 10, 26, 20, 25, 1, 997000, tzinfo=tzlocal()), 'InputConfig': { 'ModelPackageVersionArn': 'arn:aws:sagemaker:region:account-id:model-package/resource-id', 'JobDurationInSeconds': 0 }, 'InferenceRecommendations': [{ 'Metrics': { 'CostPerHour': 0.20399999618530273, 'CostPerInference': 5.246913588052848e-06, 'MaximumInvocations': 648, 'ModelLatency': 263596 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.c5.xlarge', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }, { 'Metrics': { 'CostPerHour': 0.11500000208616257, 'CostPerInference': 2.92620870823157e-06, 'MaximumInvocations': 655, 'ModelLatency': 826019 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.c5d.large', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }, { 'Metrics': { 'CostPerHour': 0.11500000208616257, 'CostPerInference': 3.3625731248321244e-06, 'MaximumInvocations': 570, 'ModelLatency': 1085446 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.m5.large', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }], 'ResponseMetadata': { 'RequestId': 'request-id', 'HTTPStatusCode': 200, 'HTTPHeaders': { 'x-amzn-requestid': 'x-amzn-requestid', 'content-type': 'content-type', 'content-length': '1685', 'date': 'Tue, 26 Oct 2021 20:31:10 GMT' }, 'RetryAttempts': 0 } }

Die ersten Zeilen enthalten Informationen über den Job mit Inferenzempfehlungen selbst. Dazu gehören der Jobname, die RolleARN, die Erstellungs- und Löschzeit.

Das InferenceRecommendations Wörterbuch enthält eine Liste von Inference Recommender-Inferenzempfehlungen.

Das EndpointConfiguration verschachtelte Wörterbuch enthält die Empfehlung für den Instanztyp (InstanceType) sowie den Endpunkt- und Variantennamen (ein bereitgestelltes Modell für AWS maschinelles Lernen), die während des Empfehlungsjobs verwendet wurden. Sie können den Endpunkt und den Variantennamen für die Überwachung in Amazon CloudWatch Events verwenden. Weitere Informationen finden Sie unter Metriken für die Überwachung von Amazon SageMaker mit Amazon CloudWatch.

Das Metrics verschachtelte Wörterbuch enthält Informationen zu den geschätzten Kosten pro Stunde (CostPerHour) für Ihren Echtzeit-Endpunkt in US-Dollar, zu den geschätzten Kosten pro Inferenz (CostPerInference) in US-Dollar für Ihren Echtzeit-Endpunkt, zur erwarteten maximalen Anzahl von InvokeEndpoint Anfragen pro Minute, die an den Endpunkt gesendet werden (MaxInvocations), und zur Modelllatenz (ModelLatency), d. h. das Zeitintervall (in Millisekunden), auf das Ihr Modell reagiert hat SageMaker. Dieses Intervall enthält die lokale Kommunikationszeitspanne für das Senden der Anforderung und Abrufen der Antwort vom Container eines Modells sowie die Zeitspanne für das Abschließen der Inferenz im Container.

Das folgende Beispiel zeigt den InferenceRecommendations Teil der Antwort für einen Job mit Inferenzempfehlungen, der so konfiguriert ist, dass er serverlose Inferenzempfehlungen zurückgibt:

"InferenceRecommendations": [ { "EndpointConfiguration": { "EndpointName": "value", "InitialInstanceCount": value, "InstanceType": "value", "VariantName": "value", "ServerlessConfig": { "MaxConcurrency": value, "MemorySizeInMb": value } }, "InvocationEndTime": value, "InvocationStartTime": value, "Metrics": { "CostPerHour": value, "CostPerInference": value, "CpuUtilization": value, "MaxInvocations": value, "MemoryUtilization": value, "ModelLatency": value, "ModelSetupTime": value }, "ModelConfiguration": { "Compiled": "False", "EnvironmentParameters": [], "InferenceSpecificationName": "value" }, "RecommendationId": "value" } ]

Sie können die Empfehlungen für die serverlose Inferenz ähnlich wie die Ergebnisse für die Echtzeit-Inferenz interpretieren, mit Ausnahme von ServerlessConfig, das Ihnen die Metriken angibt, die für einen serverlosen Endpunkt mit dem angegebenen MemorySizeInMB und wann MaxConcurrency = 1 zurückgegeben werden. Um den auf dem Endpunkt möglichen Durchsatz zu erhöhen, erhöhen Sie den Wert MaxConcurrency linear. Wenn zum Beispiel die Schlussfolgerungsempfehlung MaxInvocations als 1000 ausweist, dann würde die Erhöhung von MaxConcurrency auf 2 2000 MaxInvocations unterstützen. Beachten Sie, dass dies nur bis zu einem bestimmten Punkt gilt, der je nach Modell und Code variieren kann. Serverlose Empfehlungen messen auch die Metrik ModelSetupTime, die (in Mikrosekunden) die Zeit misst, die benötigt wird, um Computerressourcen auf einem serverlosen Endpunkt zu starten. Weitere Informationen zum Festlegen serverloser Endpunkte finden Sie in der Serverless Inferenz-Dokumentation.

Amazon SageMaker Studio Classic

Die Inferenzempfehlungen werden in Studio Classic auf einer neuen Registerkarte mit Inferenzempfehlungen angezeigt. Es kann bis zu 45 Minuten dauern, bis die Ergebnisse angezeigt werden. Diese Registerkarte enthält die Spaltenüberschriften Ergebnisse und Details.

Die Spalte Details enthält Informationen über den Job für die Inferenzempfehlung, z. B. den Namen der Inferenzempfehlung, den Zeitpunkt der Erstellung des Jobs (Erstellungszeit) und mehr. Sie enthält auch Einstellungsinformationen, wie z. B. die maximale Anzahl von Aufrufen pro Minute und Informationen zu den verwendeten Amazon-Ressourcennamen.

Die Spalte Ergebnisse enthält ein Fenster mit Bereitstellungszielen und SageMakerEmpfehlungen, in dem Sie die Reihenfolge, in der die Ergebnisse angezeigt werden, an die Wichtigkeit der Bereitstellung anpassen können. Es gibt drei Dropdown-Menüs, mit denen Sie angeben können, wie wichtig Kosten, Latenz und Durchsatz für Ihren Anwendungsfall sind. Für jedes Ziel (Kosten, Latenz und Durchsatz) können Sie die Prioritätsstufe festlegen: Niedrigste Wichtigkeit, Niedrige Wichtigkeit, Mittlere Wichtigkeit, Hohe Wichtigkeit oder Höchste Wichtigkeit.

Basierend auf Ihrer Auswahl der Wichtigkeit für jedes Ziel zeigt Inference Recommender die wichtigste Empfehlung im Empfehlungsfeld auf der SageMaker rechten Seite des Fensters an, zusammen mit den geschätzten Kosten pro Stunde und der Inferenzanfrage. Es bietet auch Informationen über die erwartete Modelllatenz, die maximale Anzahl von Aufrufen und die Anzahl der Instances. Bei Empfehlungen für serverlose Server können Sie sich die idealen Werte für die maximale Parallelität und die Speichergröße des Endpunkts anzeigen lassen.

Zusätzlich zur Anzeige der wichtigsten Empfehlung werden im Abschnitt Alle Ausführungen dieselben Informationen für alle Instances angezeigt, die Inference Recommender getestet hat.

SageMaker console

Gehen Sie wie folgt vor, um die Jobs für Ihre Instanzempfehlung in der SageMaker Konsole einzusehen:

  1. Gehen Sie zur SageMaker Konsole unter https://console.aws.amazon.com/sagemaker/.

  2. Wählen Sie in der linken Navigationsleiste Inferenz und wählen Sie dann Inferenzempfehlung.

  3. Wählen Sie auf der Seite Inferenzempfehlungsaufträge den Namen Ihres Jobs für Inference Recommender aus.

Auf der Detailseite für Ihren Job können Sie sich die Inferenzempfehlungen ansehen. Dabei handelt es sich um die für Ihr Modell SageMaker empfohlenen Instance-Typen, wie im folgenden Screenshot dargestellt.

Screenshot der Liste der Inferenzempfehlungen auf der Seite mit den Jobdetails in der SageMaker Konsole.

In diesem Abschnitt können Sie die Instance-Typen anhand verschiedener Faktoren wie Modelllatenz, Kosten pro Stunde, Kosten pro Inferenz und Aufrufe pro Minute vergleichen.

Auf dieser Seite können Sie auch die Konfigurationen anzeigen, die Sie für Ihren Job angegeben haben. Im Bereich Monitor können Sie die CloudWatch Amazon-Metriken einsehen, die für jeden Instance-Typ protokolliert wurden. Weitere Informationen zur Interpretation dieser Metriken finden Sie unter Interpretieren von Ergebnissen.

Weitere Informationen zum Interpretieren der Ergebnisse aus Ihrem Empfehlungsjob finden Sie unter Ergebnisse der Empfehlungen.