Führen Sie einen benutzerdefinierten Belastungstest aus - 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.

Führen Sie einen benutzerdefinierten Belastungstest aus

Amazon SageMaker Inference Recommender-Lasttests führen umfangreiche Benchmarks durch, die auf den Produktionsanforderungen für Latenz und Durchsatz, benutzerdefinierten Datenverkehrsmustern und entweder serverlosen Endpunkten oder Echtzeit-Instances (bis zu 10) basieren, die Sie auswählen.

In den folgenden Abschnitten wird gezeigt, wie Sie einen Auslastungstest programmgesteuert mit AWS SDK for Python (Boto3) und dem oder interaktiv mit Amazon SageMaker Studio Classic oder der Konsole erstellen AWS CLI, beschreiben und beenden. SageMaker

Erstellen eines Lasttestauftrags

Erstellen Sie einen Auslastungstest programmgesteuert mit dem AWS SDK for Python (Boto3), mit dem AWS CLI oder interaktiv mithilfe von Studio Classic oder der Konsole. SageMaker Geben Sie wie bei den Inferenzempfehlungen von Inference Recommender einen Jobnamen für Ihren Auslastungstest, eine AWS IAM Rolle, eine Eingabekonfiguration und Ihr Modellpaket anARN, das Sie bei der ARN Registrierung Ihres Modells in der Modellregistrierung erhalten haben. Für Lasttests müssen Sie auch ein Verkehrsmuster und die Stoppbedingungen angeben.

AWS SDK for Python (Boto3)

Verwenden Sie den CreateInferenceRecommendationsJobAPI, um einen Inference Recommender-Lasttest zu erstellen. Geben Sie Advanced für das JobType Feld an und geben Sie Folgendes an:

  • Ein Jobname für Ihren Auslastungstest (JobName). Der Jobname muss in Ihrer AWS Region und in Ihrem AWS Konto eindeutig sein.

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

  • Ein Endpunkt-Konfigurationswörterbuch (InputConfig), in dem Sie Folgendes angeben:

    • Geben Sie für TrafficPattern entweder das Phasen- oder das Treppenverkehrsmuster an. Beim Phasen-Verkehrsmuster erscheinen jede Minute neue Benutzer mit der von Ihnen angegebenen Geschwindigkeit. Beim Treppen-Verkehrsmuster erscheinen neue Benutzer in bestimmten Intervallen (oder Schritten) mit einer von Ihnen festgelegten Geschwindigkeit. Wählen Sie eine der folgenden Optionen aus:

      • Legen Sie für TrafficType die Option PHASES fest. Geben Sie dann für das Phases Array die InitialNumberOfUsers (mit wie vielen gleichzeitigen Benutzern, mit mindestens 1 und maximal 3), SpawnRate (die Anzahl der Benutzer, die in einer Minute für eine bestimmte Phase des Lasttests gestartet werden sollen, mit mindestens 0 und maximal 3) und DurationInSeconds (wie lang die Datenverkehrsphase sein soll, mit mindestens 120 und maximal 3600) an.

      • Legen Sie für TrafficType die Option STAIRS fest. Geben Sie dann für das Stairs Array an DurationInSeconds (wie lang die Verkehrsphase sein soll, mit mindestens 120 und maximal 3600), NumberOfSteps (wie viele Intervalle während der Phase verwendet werden) und UsersPerStep (wie viele Benutzer in jedem Intervall hinzugefügt werden). Beachten Sie, dass die Länge jedes Schritts dem Wert von DurationInSeconds / NumberOfSteps entspricht. Wenn Ihr DurationInSeconds z.B 600 ist, und Sie 5 Schritte angeben, so ist jeder Schritt 120 Sekunden lang.

        Anmerkung

        Ein Benutzer ist als ein vom System generierter Akteur definiert, der in einer Schleife läuft und im Rahmen von Inference Recommender Anfragen an einen Endpunkt aufruft. Bei einem typischen XGBoost Container, der auf einer ml.c5.large Instance ausgeführt wird, können Endpunkte 30.000 Aufrufe pro Minute (500 tps) mit nur 15 bis 20 Benutzern erreichen.

    • Geben Sie für ResourceLimit MaxNumberOfTests (die maximale Anzahl von Benchmarking-Lasttests für einen Inference Recommender-Job, mit mindestens 1 und maximal 10) und MaxParallelOfTests (die maximale Anzahl parallel Benchmarking-Lasttests für einen Inference Recommender-Job, mit mindestens 1 und maximal 10) an.

    • Für EndpointConfigurations können Sie eine der folgenden Möglichkeiten angeben:

      • Das InstanceType Feld, in dem Sie den Instance-Typ angeben, auf dem Sie Ihre Lasttests ausführen möchten.

      • Das ServerlessConfig, in dem Sie Ihre idealen Werte für MaxConcurrency und MemorySizeInMB für einen serverlosen Endpunkt angeben. Weitere Informationen finden Sie in der Dokumentation zu Serverloser Inferenz.

  • Ein Wörterbuch mit Stoppbedingungen (StoppingConditions), in dem der Inference Recommender-Job beendet wird, wenn eine der Bedingungen erfüllt ist. Geben Sie für dieses Beispiel die folgenden Felder im Wörterbuch an:

    • Geben Sie für MaxInvocations die maximale Anzahl von Anfragen pro Minute an, die für den Endpunkt erwartet werden, mit einem Minimum von 1 und einem Maximum von 30.000.

    • Geben Sie für ModelLatencyThresholds Percentile (den Perzentilschwellenwert für die Modelllatenz) und ValueInMilliseconds (den Perzentilwert für die Modelllatenz in Millisekunden) an.

    • (Optional) Für können Sie angebenFlatInvocations, ob der Auslastungstest fortgesetzt werden soll, wenn die Rate TPS (Aufrufe pro Minute) abnimmt. Eine reduzierte TPS Rate bedeutet normalerweise, dass der Endpunkt seine Kapazität erreicht hat. Möglicherweise möchten Sie den Endpunkt jedoch weiterhin unter vollen Kapazitätsbedingungen überwachen. Um den Lasttest in diesem Fall fortzusetzen, geben Sie diesen Wert als an Continue. Andernfalls ist der Standardwert Stop.

# Create a low-level SageMaker service client. import boto3 aws_region=<INSERT> sagemaker_client=boto3.client('sagemaker', region=aws_region) # Provide a name to your recommendation based on load testing load_test_job_name="<INSERT>" # Provide the name of the sagemaker instance type instance_type="<INSERT>" # Provide the IAM Role that gives SageMaker permission to access AWS services role_arn='arn:aws:iam::<account>:role/*' # Provide your model package ARN that was created when you registered your # model with Model Registry model_package_arn='arn:aws:sagemaker:<region>:<account>:role/*' sagemaker_client.create_inference_recommendations_job( JobName=load_test_job_name, JobType="Advanced", RoleArn=role_arn, InputConfig={ 'ModelPackageVersionArn': model_package_arn, "JobDurationInSeconds": 7200, 'TrafficPattern' : { # Replace PHASES with STAIRS to use the stairs traffic pattern 'TrafficType': 'PHASES', 'Phases': [ { 'InitialNumberOfUsers': 1, 'SpawnRate': 1, 'DurationInSeconds': 120 }, { 'InitialNumberOfUsers': 1, 'SpawnRate': 1, 'DurationInSeconds': 120 } ] # Uncomment this section and comment out the Phases object above to use the stairs traffic pattern # 'Stairs' : { # 'DurationInSeconds': 240, # 'NumberOfSteps': 2, # 'UsersPerStep': 2 # } }, 'ResourceLimit': { 'MaxNumberOfTests': 10, 'MaxParallelOfTests': 3 }, "EndpointConfigurations" : [{ 'InstanceType': 'ml.c5.xlarge' }, { 'InstanceType': 'ml.m5.xlarge' }, { 'InstanceType': 'ml.r5.xlarge' }] # Uncomment the ServerlessConfig and comment out the InstanceType field if you want recommendations for a serverless endpoint # "ServerlessConfig": { # "MaxConcurrency": value, # "MemorySizeInMB": value # } }, StoppingConditions={ 'MaxInvocations': 1000, 'ModelLatencyThresholds':[{ 'Percentile': 'P95', 'ValueInMilliseconds': 100 }], # Change 'Stop' to 'Continue' to let the load test continue if invocations flatten 'FlatInvocations': 'Stop' } )

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

AWS CLI

Verwenden Sie den create-inference-recommendations-jobAPI, um einen Inference Recommender-Lasttest zu erstellen. Geben Sie Advanced für das JobType Feld an und geben Sie Folgendes an:

  • Ein Jobname für Ihren Auslastungstest (job-name). Der Jobname muss in Ihrer AWS Region und in Ihrem AWS Konto eindeutig sein.

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

  • Ein Endpunkt-Konfigurationswörterbuch (input-config), in dem Sie Folgendes angeben:

    • Geben Sie für TrafficPattern entweder das Phasen- oder das Treppenverkehrsmuster an. Beim Phasen-Verkehrsmuster erscheinen jede Minute neue Benutzer mit der von Ihnen angegebenen Geschwindigkeit. Beim Treppen-Verkehrsmuster erscheinen neue Benutzer in bestimmten Intervallen (oder Schritten) mit einer von Ihnen festgelegten Geschwindigkeit. Wählen Sie eine der folgenden Optionen aus:

      • Legen Sie für TrafficType die Option PHASES fest. Geben Sie dann für das Phases Array die InitialNumberOfUsers (mit wie vielen gleichzeitigen Benutzern, mit mindestens 1 und maximal 3), SpawnRate (die Anzahl der Benutzer, die in einer Minute für eine bestimmte Phase des Lasttests gestartet werden sollen, mit mindestens 0 und maximal 3) und DurationInSeconds (wie lang die Datenverkehrsphase sein soll, mit mindestens 120 und maximal 3600) an.

      • Legen Sie für TrafficType die Option STAIRS fest. Geben Sie dann für das Stairs Array an DurationInSeconds (wie lang die Verkehrsphase sein soll, mit mindestens 120 und maximal 3600), NumberOfSteps (wie viele Intervalle während der Phase verwendet werden) und UsersPerStep (wie viele Benutzer in jedem Intervall hinzugefügt werden). Beachten Sie, dass die Länge jedes Schritts dem Wert von DurationInSeconds / NumberOfSteps entspricht. Wenn Ihr DurationInSeconds z.B 600 ist, und Sie 5 Schritte angeben, so ist jeder Schritt 120 Sekunden lang.

        Anmerkung

        Ein Benutzer ist als ein vom System generierter Akteur definiert, der in einer Schleife läuft und im Rahmen von Inference Recommender Anfragen an einen Endpunkt aufruft. Bei einem typischen XGBoost Container, der auf einer ml.c5.large Instance ausgeführt wird, können Endpunkte 30.000 Aufrufe pro Minute (500 tps) mit nur 15 bis 20 Benutzern erreichen.

    • Geben Sie für ResourceLimit MaxNumberOfTests (die maximale Anzahl von Benchmarking-Lasttests für einen Inference Recommender-Job, mit mindestens 1 und maximal 10) und MaxParallelOfTests (die maximale Anzahl parallel Benchmarking-Lasttests für einen Inference Recommender-Job, mit mindestens 1 und maximal 10) an.

    • Für EndpointConfigurations können Sie eine der folgenden Möglichkeiten angeben:

      • Das InstanceType Feld, in dem Sie den Instance-Typ angeben, auf dem Sie Ihre Lasttests ausführen möchten.

      • Das ServerlessConfig, in dem Sie Ihre idealen Werte für MaxConcurrency und MemorySizeInMB für einen serverlosen Endpunkt angeben.

  • Ein Wörterbuch mit Stoppbedingungen (stopping-conditions), in dem der Inference Recommender-Job beendet wird, wenn eine der Bedingungen erfüllt ist. Geben Sie für dieses Beispiel die folgenden Felder im Wörterbuch an:

    • Geben Sie für MaxInvocations die maximale Anzahl von Anfragen pro Minute an, die für den Endpunkt erwartet werden, mit einem Minimum von 1 und einem Maximum von 30.000.

    • Geben Sie für ModelLatencyThresholds Percentile (den Perzentilschwellenwert für die Modelllatenz) und ValueInMilliseconds (den Perzentilwert für die Modelllatenz in Millisekunden) an.

    • (Optional) Für können Sie angebenFlatInvocations, ob der Auslastungstest fortgesetzt werden soll, wenn die Rate TPS (Aufrufe pro Minute) abnimmt. Eine reduzierte TPS Rate bedeutet normalerweise, dass der Endpunkt seine Kapazität erreicht hat. Möglicherweise möchten Sie den Endpunkt jedoch weiterhin unter vollen Kapazitätsbedingungen überwachen. Um den Lasttest in diesem Fall fortzusetzen, geben Sie diesen Wert als an Continue. Andernfalls ist der Standardwert Stop.

aws sagemaker create-inference-recommendations-job\ --region <region>\ --job-name <job-name>\ --job-type ADVANCED\ --role-arn arn:aws:iam::<account>:role/*\ --input-config \"{ \"ModelPackageVersionArn\": \"arn:aws:sagemaker:<region>:<account>:role/*\", \"JobDurationInSeconds\": 7200, \"TrafficPattern\" : { # Replace PHASES with STAIRS to use the stairs traffic pattern \"TrafficType\": \"PHASES\", \"Phases\": [ { \"InitialNumberOfUsers\": 1, \"SpawnRate\": 60, \"DurationInSeconds\": 300 } ] # Uncomment this section and comment out the Phases object above to use the stairs traffic pattern # 'Stairs' : { # 'DurationInSeconds': 240, # 'NumberOfSteps': 2, # 'UsersPerStep': 2 # } }, \"ResourceLimit\": { \"MaxNumberOfTests\": 10, \"MaxParallelOfTests\": 3 }, \"EndpointConfigurations\" : [ { \"InstanceType\": \"ml.c5.xlarge\" }, { \"InstanceType\": \"ml.m5.xlarge\" }, { \"InstanceType\": \"ml.r5.xlarge\" } # Use the ServerlessConfig and leave out the InstanceType fields if you want recommendations for a serverless endpoint # \"ServerlessConfig\": { # \"MaxConcurrency\": value, # \"MemorySizeInMB\": value # } ] }\" --stopping-conditions \"{ \"MaxInvocations\": 1000, \"ModelLatencyThresholds\":[ { \"Percentile\": \"P95\", \"ValueInMilliseconds\": 100 } ], # Change 'Stop' to 'Continue' to let the load test continue if invocations flatten \"FlatInvocations\": \"Stop\" }\"
Amazon SageMaker Studio Classic

Erstellen Sie einen Auslastungstest mit Studio Classic.

  1. Wählen Sie in Ihrer Studio Classic-Anwendung das Home-Symbol ( Black square icon representing a placeholder or empty image. ).

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

  3. Wählen Sie Inferenzempfehlung aus der Dropdown-Liste.

  4. Wählen Sie Create Inference Recommender Job aus. Eine neue Registerkarte mit dem Titel Job für Inferenzempfehlungen erstellen wird geöffnet.

  5. Wählen Sie den Namen Ihrer Modellgruppe aus dem Dropdown-Feld Modellgruppe aus. Die Liste enthält alle Modellgruppen, die bei der Model-Registry in Ihrem Konto registriert sind, einschließlich Modelle, die außerhalb von Studio Classic registriert sind.

  6. Wählen Sie eine Modellversion aus dem Dropdown-Feld Modellversion aus.

  7. Klicken Sie auf Weiter.

  8. Geben Sie im Feld Name einen Namen für den Job ein.

  9. (Optional) Geben Sie im Feld Beschreibung eine Beschreibung Ihres Jobs ein.

  10. Wählen Sie eine IAM Rolle aus, die Inference Recommender die Erlaubnis erteilt, auf Dienste zuzugreifen AWS . Sie können eine Rolle erstellen und die AmazonSageMakerFullAccess IAM verwaltete Richtlinie anhängen, um dies zu erreichen, oder Sie können Studio Classic eine Rolle für Sie erstellen lassen.

  11. Wählen Sie Stoppbedingungen, um die verfügbaren Eingabefelder zu erweitern. Geben Sie eine Reihe von Bedingungen für das Stoppen einer Bereitstellungsempfehlung an.

    1. Geben Sie im Feld Max. Aufrufe pro Minute die maximale Anzahl von Anfragen pro Minute an, die für den Endpunkt erwartet werden.

    2. Geben Sie den Schwellenwert für die Modelllatenz in Mikrosekunden im Feld Schwellenwert für Modelllatenz an. Der Schwellenwert für die Modelllatenz gibt das Zeitintervall an, das ein Modell benötigt, um zu reagieren, wie es im Inference Recommender angezeigt wird. Das Intervall umfasst die lokale Kommunikationszeit, die benötigt wird, um die Anfrage zu senden und die Antwort aus dem Modellcontainer zu holen, sowie die Zeit, die benötigt wird, um die Inferenz im Container abzuschließen.

  12. Wählen Sie Traffic Pattern, um die verfügbaren Eingabefelder zu erweitern.

    1. Legen Sie die anfängliche Anzahl virtueller Benutzer fest, indem Sie im Feld Anfängliche Anzahl von Benutzern eine Ganzzahl angeben.

    2. Geben Sie eine Ganzzahl für das Feld Spawnrate ein. Die Spawn-Rate legt die Anzahl der pro Sekunde erstellten Benutzer fest.

    3. Legen Sie die Dauer der Phase in Sekunden fest, indem Sie im Feld Dauer eine Ganzzahl angeben.

    4. (Optional) Fügen Sie zusätzliche Verkehrsmuster hinzu. Wählen Sie dafür Hinzufügen.

  13. Wählen Sie die Einstellung Erweitert, um das Feld Max. Testdauer einzublenden. Geben Sie in Sekunden die maximale Zeit an, die ein Test während eines Jobs dauern kann. Neue Jobs werden nicht nach der definierten Dauer geplant. Auf diese Weise wird sichergestellt, dass laufende Jobs nicht gestoppt werden und dass Sie nur abgeschlossene Jobs sehen.

  14. Klicken Sie auf Weiter.

  15. Wählen Sie Ausgewählte Instances.

  16. Wählen Sie im Feld Instances für Benchmarking die Option Zu testende Instances hinzufügen aus. Wählen Sie bis zu 10 Instances aus, die Inference Recommender für Lasttests verwenden soll.

  17. Wählen Sie Zusätzliche Einstellungen

    1. Geben Sie eine Ganzzahl ein, die eine Obergrenze für die Anzahl der Tests festlegt, die ein Job für das Feld Maximale Anzahl von Tests durchführen kann. Beachten Sie, dass jede Endpunktkonfiguration zu einem neuen Belastungstest führt.

    2. Geben Sie eine Ganzzahl für das Testfeld Max Parallel an. Diese Einstellung definiert eine Obergrenze für die Anzahl der Lasttests, die parallel ausgeführt werden können.

  18. Wählen Sie Absenden aus.

    Der Belastungstest kann bis zu 2 Stunden dauern.

    Warnung

    Schließen Sie diese Registerkarte nicht. Wenn Sie diese Registerkarte schließen, brechen Sie den Inference Recommender-Lasttestjob ab.

SageMaker console

Erstellen Sie einen benutzerdefinierten Auslastungstest über die SageMaker Konsole, indem Sie wie folgt vorgehen:

  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 Inferenz Empfehlungsgeber Aufträge die Option Job erstellen aus.

  4. Führen Sie für Schritt 1: Modellkonfiguration die folgenden Schritte aus:

    1. Wählen Sie als Jobtyp die Option Erweiterter 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 Modellregistrierung aus, in SageMaker der sich Ihr Modell befindet.

      2. Wählen Sie in 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. Als IAMRolle können Sie eine vorhandene 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 SageMaker neuen Rolle, 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 unter Payload-Inhaltstyp die MIME Typen Ihrer Beispiel-Payload-Daten ein.

    7. Konfigurieren Sie unter Verkehrsmuster die Phasen für den Auslastungstest, indem Sie wie folgt vorgehen:

      1. Geben Sie unter Anfängliche Benutzeranzahl an, mit wie vielen gleichzeitigen Benutzern Sie beginnen möchten (mit mindestens 1 und maximal 3).

      2. Geben Sie unter Spawnrate die Anzahl der Benutzer an, die in einer Minute für die Phase erzeugt werden sollen (mit einem Minimum von 0 und einem Maximum von 3).

      3. Geben Sie unter Dauer (Sekunden) an, wie tief die Verkehrsphase in Sekunden sein soll (mit einem Minimum von 120 und einem Maximum von 3600).

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

      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.

    9. (Optional) Für die Modellkompilierung mit SageMaker Neo können Sie den Empfehlungsjob für ein Modell konfigurieren, das Sie mit SageMaker Neo kompiliert haben. 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.

    10. Wählen Sie Weiter.

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

    1. Wählen Sie für Select Instances for Benchmarking bis zu 8 Instance-Typen aus, mit denen Sie einen Benchmark durchführen möchten.

    2. (Optional) Für Umgebungsparameterbereiche können Sie Umgebungsparameter angeben, die zur Optimierung Ihres Modells beitragen. Geben Sie die Parameter als Schlüssel- und Werte -paare an.

    3. Wählen Sie Weiter.

  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 anhand des Namens aus, oder geben Sie ihn ein, ARN um Ihre Daten zu verschlüsseln.

    4. (Optional) Geben Sie unter Maximale Anzahl an Tests die Anzahl der Tests ein, die Sie während des Empfehlungsjobs ausführen möchten.

    5. (Optional) Geben Sie für Max parallel Tests die maximale Anzahl parallel Tests ein, die Sie während des Empfehlungsjobs ausführen möchten.

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

    7. 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.

    8. Geben Sie für den Latenzschwellenwert des Modells P99 (ms) das Perzentil der Modelllatenz in Millisekunden ein.

    9. Wählen Sie Weiter.

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

Holen Sie sich Ihre Belastungstestergebnisse

Sie können programmgesteuert Metriken für alle Auslastungstests sammeln AWS SDK for Python (Boto3), sobald die Auslastungstests mit Studio Classic oder der AWS CLI SageMaker Konsole durchgeführt wurden.

AWS SDK for Python (Boto3)

Erfassen Sie Metriken mit dem. DescribeInferenceRecommendationsJob API Geben Sie den Jobnamen des Belastungstests für das JobName Feld an:

load_test_response = sagemaker_client.describe_inference_recommendations_job( JobName=load_test_job_name )

Drucken Sie das Antwortobjekt aus.

load_test_response['Status']

Dies gibt eine JSON Antwort zurück, 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': 'Advanced', 'JobArn': 'arn:aws:sagemaker:region:account-id:inference-recommendations-job/resource-id', 'Status': 'COMPLETED', 'CreationTime': datetime.datetime(2021, 10, 26, 19, 38, 30, 957000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2021, 10, 26, 19, 46, 31, 399000, tzinfo=tzlocal()), 'InputConfig': { 'ModelPackageVersionArn': 'arn:aws:sagemaker:region:account-id:model-package/resource-id', 'JobDurationInSeconds': 7200, 'TrafficPattern': { 'TrafficType': 'PHASES' }, 'ResourceLimit': { 'MaxNumberOfTests': 100, 'MaxParallelOfTests': 100 }, 'EndpointConfigurations': [{ 'InstanceType': 'ml.c5d.xlarge' }] }, 'StoppingConditions': { 'MaxInvocations': 1000, 'ModelLatencyThresholds': [{ 'Percentile': 'P95', 'ValueInMilliseconds': 100} ]}, 'InferenceRecommendations': [{ 'Metrics': { 'CostPerHour': 0.6899999976158142, 'CostPerInference': 1.0332434612791985e-05, 'MaximumInvocations': 1113, 'ModelLatency': 100000 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.c5d.xlarge', 'InitialInstanceCount': 3 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }], 'ResponseMetadata': { 'RequestId': 'request-id', 'HTTPStatusCode': 200, 'HTTPHeaders': { 'x-amzn-requestid': 'x-amzn-requestid', 'content-type': 'content-type', 'content-length': '1199', 'date': 'Tue, 26 Oct 2021 19:57:42 GMT' }, 'RetryAttempts': 0} }

Die ersten Zeilen enthalten Informationen über den Lasttestjob 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 EndpointConfiguration verschachtelte Wörterbuch enthält auch die Empfehlung für die Anzahl der Instances (InitialInstanceCount). Dies ist die Anzahl der Instances, die Sie auf dem Endpunkt bereitstellen sollten, um die im StoppingConditions angegebenen Wert MaxInvocations angegebene Anzahl zu erreichen. Wenn beispielsweise „is“ ml.m5.large und „InstanceTypeis“ angegeben InitialInstanceCount sind2, sollten Sie zwei ml.m5.large Instances für Ihren Endpunkt bereitstellen, damit dieser die in der MaxInvocations Stopp-Bedingung TPS angegebenen Bedingungen verarbeiten kann.

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) für Ihren Echtzeit-Endpunkt, zur maximalen Anzahl von InvokeEndpoint Anfragen, die an den Endpunkt gesendet wurden, und zur Modelllatenz (ModelLatency), d. h. das Zeitintervall (in Mikrosekunden), auf das Ihr Modell reagiert hat SageMaker. Die Modelllatenz umfasst die lokalen Kommunikationszeiten für das Senden der Anfrage und das Abrufen der Antwort aus dem Modellcontainer sowie die Zeit, die für den Abschluss der Inferenz im Container benötigt wird.

Das folgende Beispiel zeigt den InferenceRecommendations Teil der Antwort für einen Lasttestjob, der so konfiguriert wurde, 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 serverlose Inferenz ähnlich wie die Ergebnisse für Echtzeit-Inferenzen interpretieren, mit Ausnahme von ServerlessConfig, die Ihnen die Werte anzeigt, die Sie für MaxConcurrency und MemorySizeInMB bei der Einrichtung des Lasttests angegeben haben. Serverlose Empfehlungen messen auch die Metrik ModelSetupTime, die (in Mikrosekunden) die Zeit misst, die benötigt wird, um Rechenressourcen auf einem serverlosen Endpunkt zu starten. Weitere Informationen zum Festlegen serverloser Endpunkte finden Sie in der Serverless Inferenz-Dokumentation.

AWS CLI

Erfassen Sie Metriken mit dem. describe-inference-recommendations-job API Geben Sie den Jobnamen des Lasttests für das job-name Flag an:

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

Dies gibt eine Antwort zurück, die dem folgenden Beispiel ähnelt. Beachten Sie, dass dieses Beispiel die empfohlenen Instanztypen 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': 'Advanced', 'JobArn': 'arn:aws:sagemaker:region:account-id:inference-recommendations-job/resource-id', 'Status': 'COMPLETED', 'CreationTime': datetime.datetime(2021, 10, 26, 19, 38, 30, 957000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2021, 10, 26, 19, 46, 31, 399000, tzinfo=tzlocal()), 'InputConfig': { 'ModelPackageVersionArn': 'arn:aws:sagemaker:region:account-id:model-package/resource-id', 'JobDurationInSeconds': 7200, 'TrafficPattern': { 'TrafficType': 'PHASES' }, 'ResourceLimit': { 'MaxNumberOfTests': 100, 'MaxParallelOfTests': 100 }, 'EndpointConfigurations': [{ 'InstanceType': 'ml.c5d.xlarge' }] }, 'StoppingConditions': { 'MaxInvocations': 1000, 'ModelLatencyThresholds': [{ 'Percentile': 'P95', 'ValueInMilliseconds': 100 }] }, 'InferenceRecommendations': [{ 'Metrics': { 'CostPerHour': 0.6899999976158142, 'CostPerInference': 1.0332434612791985e-05, 'MaximumInvocations': 1113, 'ModelLatency': 100000 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.c5d.xlarge', 'InitialInstanceCount': 3 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }], 'ResponseMetadata': { 'RequestId': 'request-id', 'HTTPStatusCode': 200, 'HTTPHeaders': { 'x-amzn-requestid': 'x-amzn-requestid', 'content-type': 'content-type', 'content-length': '1199', 'date': 'Tue, 26 Oct 2021 19:57:42 GMT' }, 'RetryAttempts': 0 } }

Die ersten Zeilen enthalten Informationen über den Lasttestjob 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 über die geschätzten Kosten pro Stunde (CostPerHour) für Ihren Echtzeit-Endpunkt in US-Dollar, die geschätzten Kosten pro Inferenz (CostPerInference) für Ihren Echtzeit-Endpunkt, die maximale Anzahl von InvokeEndpoint Anfragen, die an den Endpunkt gesendet wurden, und die Modelllatenz (ModelLatency), d. h. das Zeitintervall (in Mikrosekunden), auf das Ihr Modell reagiert hat. SageMaker Die Modelllatenz umfasst die lokalen Kommunikationszeiten für das Senden der Anfrage und das Abrufen der Antwort aus dem Modellcontainer sowie die Zeit, die für den Abschluss der Inferenz im Container benötigt wird.

Das folgende Beispiel zeigt den InferenceRecommendations Teil der Antwort für einen Lasttestjob, der so konfiguriert wurde, 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 serverlose Inferenz ähnlich wie die Ergebnisse für Echtzeit-Inferenzen interpretieren, mit Ausnahme von, das Ihnen die Werte anzeigtServerlessConfig, die Sie für MaxConcurrency und MemorySizeInMB bei der Einrichtung des Lasttests angegeben haben. 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 Empfehlungen werden in Studio Classic auf einer neuen Registerkarte mit dem Namen Inferenzempfehlungen angezeigt. Es kann bis zu 2 Stunden dauern, bis die Ergebnisse angezeigt werden. Diese Registerkarte enthält die Spalten Ergebnisse und Details.

Die Spalte Details enthält Informationen über den Lasttestauftrag, z. B. den Namen, den der Lasttestauftrag erhalten hat, wann der Job erstellt wurde (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 Fenster mit Bereitstellungszielen und SageMakerEmpfehlungen, in denen Sie die Reihenfolge, in der die Ergebnisse angezeigt werden, je nach Wichtigkeit der Bereitstellung anpassen können. Es gibt drei Dropdown-Menüs, in 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.

Zusätzlich zur angezeigten Top-Empfehlung können Sie im Abschnitt Alle Läufe dieselben Informationen für alle Instances sehen, die Inference Recommender getestet hat.

SageMaker console

Sie können die Ergebnisse Ihrer benutzerdefinierten Lasttest-Jobs in der SageMaker Konsole anzeigen, indem Sie wie folgt vorgehen:

  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.