Holen Sie sich eine Empfehlung für Schlussfolgerungen - 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.

Holen Sie sich eine Empfehlung für Schlussfolgerungen

Jobs mit Inferenzempfehlungen führen eine Reihe von Lasttests für empfohlene Instance-Typen oder einen serverlosen Endpunkt aus. Inferenzempfehlungsjobs verwenden Leistungsmetriken, die auf Lasttests mit den Beispieldaten basieren, die Sie bei der Registrierung der Modellversion angegeben haben.

Anmerkung

Bevor Sie einen Inference Recommender-Empfehlungsauftrag erstellen, stellen Sie sicher, dass Sie die Anforderungen Voraussetzungen erfüllt haben.

Im Folgenden wird gezeigt, wie Sie Amazon SageMaker Inference Recommender verwenden, um mithilfe von,, und Amazon SageMaker Studio Classic sowie der AWS SDK for Python (Boto3) Konsole eine auf Ihrem Modelltyp basierende Inferenzempfehlung zu erstellen AWS CLI SageMaker

Erstellen Sie eine Inferenzempfehlung

Erstellen Sie eine Inferenzempfehlung programmgesteuert mit AWS SDK for Python (Boto3) oder dem oder interaktiv mit Studio AWS CLI Classic oder der Konsole. SageMaker Geben Sie im Abschnitt Voraussetzungen einen Jobnamen für Ihre Inferenzempfehlung, einen AWS IAM-Rollen-ARN, eine Eingabekonfiguration und entweder einen Modellpaket-ARN an, als Sie Ihr Modell bei der Modellregistrierung registriert haben, oder Ihren Modellnamen und ein ContainerConfig Wörterbuch von der Erstellung Ihres Modells.

AWS SDK for Python (Boto3)

Verwenden Sie die CreateInferenceRecommendationsJob-API, um einen Job mit Inferenzempfehlungen zu starten. Stellen Sie das JobType Feld auf 'Default' ehlungen ein. Darüber hinaus sind folgende Angaben zu machen:

  • Der Amazon-Ressourcenname (ARN) einer IAM-Rolle, die es Inference Recommender ermöglicht, Aufgaben in Ihrem Namen durchzuführen. Definieren Sie dies für das RoleArn Feld.

  • Ein Modellpaket-ARN oder ein Modellname. Inference Recommender unterstützt entweder einen Modellpaket-ARN oder einen Modellnamen als Eingabe. Geben Sie eines der folgenden Elemente an:

    • Der ARN des versionierten Modellpakets, das Sie erstellt haben, als Sie Ihr Modell bei SageMaker der Modellregistrierung registriert haben. Definieren Sie dies für ModelPackageVersionArn in dem InputConfig Feld.

    • Den Namen des Modells, welches Sie erstellt haben. Definieren Sie dies für ModelName im InputConfig Feld. Geben Sie außerdem das ContainerConfig Wörterbuch an, das die erforderlichen Felder enthält, die mit dem Modellnamen versehen werden müssen. Definieren Sie dies für ContainerConfig in dem InputConfig Feld. In dem ContainerConfig können Sie das SupportedEndpointType Feld auch optional als entweder RealTime oder Serverless angeben. Wenn Sie dieses Feld angeben, gibt Inference Recommender nur Empfehlungen für diesen Endpunkttyp zurück. Wenn Sie dieses Feld nicht angeben, gibt Inference Recommender Empfehlungen für beide Endpunkttypen zurück.

  • Ein Name für Ihren Inference Recommender-Empfehlungsjob für das JobName Feld. Der Inference Recommender-Jobname muss innerhalb der AWS Region und in Ihrem Konto eindeutig sein. AWS

Importieren Sie das AWS SDK for Python (Boto3) Paket und erstellen Sie mithilfe der SageMaker Client-Klasse ein Client-Objekt. Wenn Sie die Schritte im Abschnitt Voraussetzungen befolgt haben, geben Sie nur eine der folgenden Optionen an:

  • Option 1: Wenn Sie einen Job mit Inferenzempfehlungen mit einem Modellpaket-ARN erstellen möchten, speichern Sie den ARN der Modellpaketgruppe in einer Variablen namens model_package_arn.

  • Option 2: Wenn Sie einen Job mit Inferenzempfehlungen mit einem Modellnamen und ContainerConfig erstellen möchten, speichern Sie den Modellnamen in einer Variablen mit dem Namen model_name und das ContainerConfig Wörterbuch in einer Variablen mit dem Namen container_config.

# Create a low-level SageMaker service client. import boto3 aws_region = '<INSERT>' sagemaker_client = boto3.client('sagemaker', region_name=aws_region) # Provide only one of model package ARN or model name, not both. # Provide your model package ARN that was created when you registered your # model with Model Registry model_package_arn = '<INSERT>' ## Uncomment if you would like to create an inference recommendations job with a ## model name instead of a model package ARN, and comment out model_package_arn above ## Provide your model name # model_name = '<INSERT>' ## Provide your container config # container_config = '<INSERT>' # Provide a unique job name for SageMaker Inference Recommender job job_name = '<INSERT>' # Inference Recommender job type. Set to Default to get an initial recommendation job_type = 'Default' # Provide an IAM Role that gives SageMaker Inference Recommender permission to # access AWS services role_arn = 'arn:aws:iam::<account>:role/*' sagemaker_client.create_inference_recommendations_job( JobName = job_name, JobType = job_type, RoleArn = role_arn, # Provide only one of model package ARN or model name, not both. # If you would like to create an inference recommendations job with a model name, # uncomment ModelName and ContainerConfig, and comment out ModelPackageVersionArn. InputConfig = { 'ModelPackageVersionArn': model_package_arn # 'ModelName': model_name, # 'ContainerConfig': container_config } )

Eine vollständige Liste der optionalen und erforderlichen Argumente, an die Sie übergeben können, finden Sie im Amazon SageMaker API-Referenzhandbuch CreateInferenceRecommendationsJob.

AWS CLI

Verwenden Sie die create-inference-recommendations-job-API, um einen Job mit Inferenzempfehlungen zu starten. Stellen Sie das job-type Feld auf 'Default' ehlungen ein. Darüber hinaus sind folgende Angaben zu machen:

  • Der Amazon-Ressourcenname (ARN) einer IAM-Rolle, die es Amazon SageMaker Inference Recommender ermöglicht, Aufgaben in Ihrem Namen auszuführen. Definieren Sie dies für das role-arn Feld.

  • Ein Modellpaket-ARN oder ein Modellname. Inference Recommender unterstützt entweder einen Modellpaket-ARN oder einen Modellnamen als Eingabe. Geben Sie eine der folgenden Möglichkeiten an

    • Der ARN des versionierten Modellpakets, das Sie bei der Registrierung Ihres Modells bei Model Registry erstellt haben. Definieren Sie dies für ModelPackageVersionArn in dem input-config Feld.

    • Den Namen des Modells, welches Sie erstellt haben. Definieren Sie dies für ModelName im input-config Feld. Geben Sie außerdem das ContainerConfig Wörterbuch an, das die erforderlichen Felder enthält, die mit dem Modellnamen versehen werden müssen. Definieren Sie dies für ContainerConfig in dem input-config Feld. In dem ContainerConfig können Sie das SupportedEndpointType Feld auch optional als entweder RealTime oder Serverless angeben. Wenn Sie dieses Feld angeben, gibt Inference Recommender nur Empfehlungen für diesen Endpunkttyp zurück. Wenn Sie dieses Feld nicht angeben, gibt Inference Recommender Empfehlungen für beide Endpunkttypen zurück.

  • Ein Name für Ihren Inference Recommender-Empfehlungsjob für das job-name Feld. Der Inference Recommender-Jobname muss innerhalb der AWS Region und innerhalb Ihres Kontos eindeutig sein. AWS

Verwenden Sie das folgende Beispiel, um Jobs für Inferenzempfehlungen mit einem Modellpaket-ARN zu erstellen:

aws sagemaker create-inference-recommendations-job --region <region>\ --job-name <job_name>\ --job-type Default\ --role-arn arn:aws:iam::<account:role/*>\ --input-config "{ \"ModelPackageVersionArn\": \"arn:aws:sagemaker:<region:account:role/*>\", }"

Verwenden Sie das folgende Beispiel, um Jobs mit einem Modellnamen und ContainerConfig einer Inferenzempfehlung zu erstellen. Das Beispiel verwendet das SupportedEndpointType Feld, um anzugeben, dass wir nur Inferenzempfehlungen in Echtzeit zurückgeben möchten:

aws sagemaker create-inference-recommendations-job --region <region>\ --job-name <job_name>\ --job-type Default\ --role-arn arn:aws:iam::<account:role/*>\ --input-config "{ \"ModelName\": \"model-name\", \"ContainerConfig\" : { \"Domain\": \"COMPUTER_VISION\", \"Framework\": \"PYTORCH\", \"FrameworkVersion\": \"1.7.1\", \"NearestModelName\": \"resnet18\", \"PayloadConfig\": { \"SamplePayloadUrl\": \"s3://{bucket}/{payload_s3_key}\", \"SupportedContentTypes\": [\"image/jpeg\"] }, \"SupportedEndpointType\": \"RealTime\", \"DataInputConfig\": \"[[1,3,256,256]]\", \"Task\": \"IMAGE_CLASSIFICATION\", }, }"
Amazon SageMaker Studio Classic

Erstellen Sie einen Job mit Inferenzempfehlungen in Studio Classic.

  1. Wählen Sie in Ihrer Studio Classic-Anwendung das Home-Symbol ( Home icon in Studio Classic ).

  2. Wählen Sie in der linken Seitenleiste von Studio Classic Modelle aus.

  3. Wählen Sie in der Dropdown-Liste die Option Modellregistrierung aus, um die Modelle anzuzeigen, die Sie in der Modellregistrierung registriert haben.

    Im linken Bereich wird eine Liste von Modellgruppen angezeigt. Die Liste enthält alle Modellgruppen, die bei der Model-Registrierung in Ihrem Konto registriert sind, einschließlich Modelle, die außerhalb von Studio Classic registriert sind.

  4. Wählen Sie den Namen der Modellgruppe aus. Wenn Sie Ihre Modellgruppe auswählen, werden im rechten Bereich von Studio Classic Spaltenüberschriften wie Versionen und Einstellungen angezeigt.

    Wenn Sie ein oder mehrere Modellpakete in Ihrer Modellgruppe haben, wird in der Spalte Versionen eine Liste dieser Modellpakete angezeigt.

  5. Wählen Sie die Spalte Inference Recommender aus.

  6. Wählen Sie eine IAM-Rolle, die Inference Recommender die Berechtigung zum Zugriff auf Dienste gewährt. AWS Sie können dafür eine Rolle erstellen und die von AmazonSageMakerFullAccess IAM verwaltete Richtlinie anfügen. Oder Sie können Studio Classic eine Rolle für Sie erstellen lassen.

  7. Wählen Sie Get recommendations (Empfehlungen erhalten).

    Die Inferenzempfehlung kann bis zu 45 Minuten dauern.

    Warnung

    Schließen Sie diese Registerkarte nicht. Wenn Sie diese Registerkarte schließen, brechen Sie den Job mit der Instance-Empfehlung ab.

SageMaker console

Gehen Sie wie folgt vor, um über die SageMaker Konsole einen Job mit Instanzempfehlung zu erstellen:

  1. Rufen Sie die SageMaker Konsole unter https://console.aws.amazon.com/sagemaker/ auf.

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

  3. Wählen Sie auf der Seite Inferenz Empfehlungsgeber Aufträge die Option Job erstellen aus.

  4. Für Schritt 1: Modellkonfiguration gehen Sie wie folgt vor:

    1. Wählen Sie als Jobtyp die Option Standard-Empfehlungsjob aus.

    2. Wenn Sie ein in der Modellregistrierung registriertes SageMaker Modell verwenden, aktivieren Sie die Option Modell aus der Modellregistrierung auswählen und gehen Sie wie folgt vor:

      1. Wählen Sie in der Dropdownliste Modellgruppe die Modellgruppe in der SageMaker Modellregistrierung aus, in der sich Ihr Modell befindet.

      2. Wählen Sie aus der Dropdown-Liste Modellversion die gewünschte Version Ihres Modells aus.

    3. Wenn Sie ein Modell verwenden, in dem Sie erstellt haben SageMaker, deaktivieren Sie die Option Modell aus der Modellregistrierung auswählen und gehen Sie wie folgt vor:

      1. Geben Sie in das Feld Modellname den Namen Ihres SageMaker Modells ein.

    4. Aus der Dropdownliste für die IAM-Rolle können Sie eine bestehende AWS IAM-Rolle auswählen, die über die erforderlichen Berechtigungen verfügt, um einen Instanzempfehlungsjob zu erstellen. Wenn Sie noch keine Rolle haben, können Sie alternativ Neue Rolle erstellen wählen, um das Pop-up zur Rollenerstellung zu öffnen und der neuen Rolle SageMaker , die Sie erstellen, die erforderlichen Berechtigungen hinzuzufügen.

    5. Geben Sie für S3-Bucket for Benchmarking Payload den Amazon S3-Pfad zu Ihrem Beispiel-Payload-Archiv ein, das Beispiel-Payload-Dateien enthalten sollte, die Inference Recommender verwendet, um Ihr Modell auf verschiedenen Instance-Typen zu vergleichen.

    6. Geben Sie als Payload-Inhaltstyp die MIME-Typen Ihrer Beispiel-Payload-Daten ein.

    7. (Optional) Wenn Sie die Option Modell aus der Modellregistrierung auswählen deaktiviert und ein SageMaker Modell angegeben haben, gehen Sie für die Container-Konfiguration wie folgt vor:

      1. Wählen Sie in der Dropdown-Liste Domain die Domain für Machine Learning des Modells aus, z. B. Computer Vision, Verarbeitung natürlicher Sprache oder Machine Learning.

      2. Wählen Sie in der Dropdownliste Framework das Framework Ihres Containers aus, z. B. TensorFlow oder XGBoost.

      3. Geben Sie als Framework-Version die Framework-Version Ihres Container-Images ein.

      4. Wählen Sie in der Dropdown-Liste Nächster Modellname das vortrainierte Modell aus, das Ihrem Modell am ehesten entspricht.

      5. Wählen Sie in der Dropdown-Liste Aufgabe die maschinelle Lernaufgabe aus, die das Modell erfüllt, z. B. Bildklassifizierung oder Regression.

    8. (Optional) Für die Modellkompilierung mit SageMaker Neo können Sie den Empfehlungsjob für ein Modell konfigurieren, das Sie mit Neo kompiliert haben. SageMaker Geben Sie für die Konfiguration der Dateneingabe die richtige Form der Eingabedaten für Ihr Modell in einem Format ein, das dem {'input':[1,1024,1024,3]} ähnelt.

    9. Wählen Sie Weiter aus.

  5. Bei Schritt 2: Instances und Umgebungsparameter gehen Sie wie folgt vor:

    1. (Optional) Für Select Instances for Benchmarking können Sie bis zu 8 Instance-Typen auswählen, die Sie benchmarken möchten. Wenn Sie keine Instances auswählen, berücksichtigt Inference Recommender alle Instance-Typen.

    2. Wählen Sie Weiter aus.

  6. Für Schritt 3: Auftragsparameter gehen Sie wie folgt vor:

    1. (Optional) Geben Sie für das Feld Jobname einen Namen für Ihren Instance-Empfehlungsjob ein. Wenn Sie den Job erstellen, SageMaker fügt er einen Zeitstempel an das Ende dieses Namens an.

    2. (Optional) Geben Sie in das Feld Auftragsbeschreibung eine Beschreibung für den Auftrag ein.

    3. (Optional) Wählen Sie in der Dropdownliste Verschlüsselungsschlüssel einen AWS KMS Schlüssel nach Namen aus oder geben Sie seinen ARN ein, um Ihre Daten zu verschlüsseln.

    4. (Optional) Geben Sie unter Max. Testdauer (s) die maximale Anzahl von Sekunden ein, für die jeder Test ausgeführt werden soll.

    5. (Optional) Geben Sie für Max. Aufrufe pro Minute die maximale Anzahl von Anfragen pro Minute ein, die der Endpunkt erreichen kann, bevor der Empfehlungsjob beendet wird. Wenn dieses Limit erreicht ist, wird der SageMaker Job beendet.

    6. (Optional) Geben Sie für den Latenzschwellenwert (ms) des Modells P99 den Latenzwert des Modells in Millisekunden ein.

    7. Wählen Sie Weiter aus.

  7. Überprüfen Sie für Schritt 4: Job überprüfen Ihre Konfigurationen und wählen Sie dann Senden aus.

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'])

Dies gibt eine JSON-Antwort ähnlich dem folgenden Beispiel zurück. Beachten Sie, dass dieses Beispiel die empfohlenen Instance-Typen für Echtzeit-Inferenzen 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, der Rollen-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 Überwachen Sie 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>

Die JSON-Antwort sollte dem folgenden Beispiel ähneln. Beachten Sie, dass dieses Beispiel die empfohlenen Instance-Typen für Echtzeit-Inferenzen 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, der Rollen-ARN, 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) zusammen mit dem Endpunkt und dem 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 Überwachen Sie 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

Sie können Ihre Instanzempfehlungsaufträge in der SageMaker Konsole wie folgt anzeigen:

  1. Rufen Sie die SageMaker Konsole unter https://console.aws.amazon.com/sagemaker/ auf.

  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 Interpretieren der Empfehlungsergebnisse.

Stoppen Sie Ihre Inferenzempfehlung

Möglicherweise möchten Sie einen Job beenden, der gerade ausgeführt wird, wenn Sie einen Job versehentlich gestartet haben oder den Job nicht mehr ausführen müssen. Beenden Sie Ihre Inference Recommender-Inferenzempfehlungsjobs programmgesteuert mit der StopInferenceRecommendationsJob API oder mit Studio Classic.

AWS SDK for Python (Boto3)

Geben Sie den Namen des Jobs für die Inferenzempfehlung für das JobName Feld an:

sagemaker_client.stop_inference_recommendations_job( JobName='<INSERT>' )
AWS CLI

Geben Sie den Jobnamen des Jobs für die Inferenzempfehlung für das Kennzeichen job-name an:

aws sagemaker stop-inference-recommendations-job --job-name <job-name>
Amazon SageMaker Studio Classic

Schließen Sie die Registerkarte, in der Sie die Inferenzempfehlung initiiert haben, um Ihre Inference Recommender-Inferenzempfehlung zu beenden.

SageMaker console

Gehen Sie wie folgt vor, um Ihren Instanzempfehlungsjob über die SageMaker Konsole zu beenden:

  1. Rufen Sie die SageMaker Konsole unter https://console.aws.amazon.com/sagemaker/ auf.

  2. Wählen Sie im linken Navigationsbereich Inferenz und dann Inferenzempfehlung aus.

  3. Wählen Sie auf der Seite Inference Recommender Jobs Ihren Instance-Empfehlungsjob aus.

  4. Wählen Sie Stop job (Testauftrag stoppen).

  5. Wählen Sie im daraufhin angezeigten Dialogfeld die Option Confirm (Bestätigen) aus.

Nachdem Sie Ihren Job beendet haben, sollte sich der Status des Jobs auf Stoppt ändern.