View a markdown version of this page

Richten Sie eine Workload-Konfiguration für generative KI-Inferenzempfehlungen ein - Amazon SageMaker KI

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.

Richten Sie eine Workload-Konfiguration für generative KI-Inferenzempfehlungen ein

Eine Workload-Konfiguration definiert die Verkehrsmuster und Benchmark-Parameter, die SageMaker KI bei der Bewertung Ihres Modells oder Endpunkts verwendet. Sie erstellen eine Workload-Konfiguration, bevor Sie einen Empfehlungs- oder Benchmark-Job ausführen. Dieselbe Workload-Konfiguration kann für mehrere Jobs wiederverwendet werden.

Sie können Ihren Workload auf zwei Arten definieren:

  • Inline-Spezifikation. Geben Sie Token-Verteilungen und Datenverkehrsparameter direkt im API-Aufruf an.

  • Datensatz aus Amazon S3. Stellen Sie mithilfe des DatasetConfig Parameters einen repräsentativen Datensatz realer Anfragen bereit.

Erstellen Sie eine Workload-Konfiguration mit Inline-Parametern

Verwenden Sie Inline-Parameter, um Token-Verteilungen anzugeben, wenn Sie keinen repräsentativen Datensatz haben.

Python (Teil 3)

import boto3 import json client = boto3.client("sagemaker", region_name="us-west-2") workload_spec = { "benchmark": {"type": "aiperf"}, "parameters": { "prompt_input_tokens_mean": 550, "prompt_input_tokens_stddev": 150, "output_tokens_mean": 150, "output_tokens_stddev": 50, }, } response = client.create_ai_workload_config( AIWorkloadConfigName="my-workload-config", AIWorkloadConfigs={ "WorkloadSpec": {"Inline": json.dumps(workload_spec)} }, ) print(response["AIWorkloadConfigArn"])

AWS CLI

aws sagemaker create-ai-workload-config \ --ai-workload-config-name "my-workload-config" \ --ai-workload-configs '{"WorkloadSpec": {"Inline": "{\"benchmark\": {\"type\": \"aiperf\"}, \"parameters\": {\"prompt_input_tokens_mean\": 550, \"output_tokens_mean\": 150}}"}}' \ --region us-west-2

Erstellen Sie eine Workload-Konfiguration mit einem Datensatz

Wenn Sie über einen repräsentativen Datensatz mit echten Anfragen verfügen, stellen Sie ihn über Amazon S3 bereit, indem Sie den DatasetConfig Parameter mit einem InputDataConfig Kanal verwenden.

response = client.create_ai_workload_config( AIWorkloadConfigName="my-dataset-workload", DatasetConfig={ "InputDataConfig": [ { "ChannelName": "traffic", "DataSource": { "S3DataSource": { "S3Uri": "s3://DOC-EXAMPLE-BUCKET/datasets/traffic-trace/" } } } ] }, AIWorkloadConfigs={ "WorkloadSpec": {"Inline": json.dumps(workload_spec)} }, )

Standardmäßig werden synthetische Eingabeaufforderungen generiert. Sie können auch einen öffentlichen Datensatz verwenden oder einen benutzerdefinierten Datensatz aus Amazon S3 bereitstellen.

Workload-Konfiguration für Benchmarking

Wenn Sie eine Workload-Konfiguration für das Benchmarking eines vorhandenen Endpunkts erstellen, können Sie zusätzliche Parameter wie Tokenizer, Parallelität, Anzahl der Anfragen und Anforderungsrate angeben.

workload_spec = { "benchmark": {"type": "aiperf"}, "parameters": { "tokenizer": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "concurrency": 1, "request_count": 10, "streaming": True, "prompt_input_tokens_mean": 550, "prompt_input_tokens_stddev": 150, "output_tokens_mean": 50, "output_tokens_stddev": 10, "request_rate": 1.0, "benchmark_duration": 60, }, "tooling": {"api_standard": "openai", "version": "0.6.0"}, }

Workload-Konfigurationen verwalten

Verwenden Sie die folgenden Operationen, um Ihre Workload-Konfigurationen zu verwalten.

# List workload configurations response = client.list_ai_workload_configs(MaxResults=10) for config in response["AIWorkloadConfigs"]: print(f"{config['AIWorkloadConfigName']} - {config['AIWorkloadConfigArn']}") # Describe a workload configuration response = client.describe_ai_workload_config( AIWorkloadConfigName="my-workload-config" ) # Delete a workload configuration client.delete_ai_workload_config( AIWorkloadConfigName="my-workload-config" )

Referenz zur Workload-Spezifikation

Dieser Abschnitt enthält das vollständige Schema für das JSON-Dokument mit der Workload-Spezifikation, das Sie bei der Erstellung einer Workload-Konfiguration in das WorkloadSpec.Inline Feld übergeben.

Syntax

Im Folgenden finden Sie ein repräsentatives Beispiel für eine Workload-Spezifikation mit häufig verwendeten Parametern. Alle Parameter sind in der nachstehenden Referenztabelle dokumentiert.

{ "benchmark": { "type": "aiperf" }, "parameters": { "prompt_input_tokens_mean": 550, "prompt_input_tokens_stddev": 150.0, "output_tokens_mean": 150, "output_tokens_stddev": 50.0, "concurrency": 10, "request_count": 100, "request_rate": 5.0, "benchmark_duration": 120, "streaming": true, "tokenizer": "meta-llama/Llama-3.2-1B" }, "secrets": { "hf_token": "arn:aws:secretsmanager:us-west-2:111122223333:secret:my-hf-token-AbCdEf" }, "tooling": { "api_standard": "openai" } }

Schlüssel zur Workload-Spezifikation

Die Workload-Spezifikation enthält die folgenden Schlüssel der obersten Ebene. Unbekannte Schlüssel werden zurückgewiesen.

Benchmark

Erforderliche Zuweisung. Identifiziert das zu verwendende Benchmarking-Tool.

benchmark/type

Erforderlich Die Benchmark-Engine. Der einzige gültige Wert ist aiperf.

Parameter

Optionale Zuweisung. Benchmark-Parameter, die an die AiPerf-Engine übergeben wurden. Unbekannte Parameternamen werden zurückgewiesen. Alle Parameter sind optional, sofern nicht anders angegeben.

Verteilung von Tokens

prompt_input_tokens_mean

Ganzzahl. Durchschnittliche Anzahl von Eingabe-Token pro Anfrage für die Generierung synthetischer Eingabeaufforderungen. Aliase:synthetic_input_tokens_mean,isl.

prompt_input_tokens_stddev

Schweben. Standardabweichung der Anzahl der Eingabe-Tokens. Aliase:synthetic_input_tokens_stddev,isl_stddev.

output_tokens_mean

Ganzzahl. Durchschnittliche Anzahl von Ausgabetokens pro Anfrage. Aliase:prompt_output_tokens_mean,osl.

output_tokens_stddev

Schweben. Standardabweichung der Anzahl der Ausgabetokens. Aliase:prompt_output_tokens_stddev,osl_stddev.

Gestaltung des Verkehrs

concurrency

Ganzzahl. Anzahl der gleichzeitigen Anfragen, die während des Benchmarks gesendet werden sollen.

request_count

Ganzzahl. Gesamtzahl der zu sendenden Anfragen. Alias:num_requests.

request_rate

Schweben. Zielanfragen pro Sekunde.

benchmark_duration

Ganzzahl. Dauer des Benchmarks in Sekunden.

max_concurrency

Ganzzahl. Zulässige maximale Anzahl gleichzeitiger Anfragen.

request_rate_mode

Zeichenfolge. Muster der Ankunft der Anfrage. Alias:arrival_pattern.

arrival_smoothness

Schweben. Steuert die Häufigkeit eingehender Anfragen. Höhere Werte sorgen für einen reibungsloseren Verkehr. Alias:vllm_burstiness.

prefill_concurrency

Ganzzahl. Anzahl der gleichzeitigen Vorbefüllungsanforderungen.

General

streaming

Boolesch. Ob Streaming-Antworten verwendet werden sollen. Standard: true.

tokenizer

Zeichenfolge. HuggingFace Modellname oder lokaler Verzeichnispfad für den Tokenizer, der zum Zählen von Token verwendet wird. Beispiel: meta-llama/Llama-3.2-1B.

hf_token

Zeichenfolge. Hugging Face Face-Zugriffstoken zum Herunterladen von geschlossenen Modellen und Tokenizern. HF_TOKENAlias:. Verwenden Sie für sensible Werte den secrets Abschnitt, anstatt das Token im Klartext zu übergeben.

request_timeout_seconds

Ganzzahl. Timeout in Sekunden für einzelne Anfragen.

benchmark_grace_period

Ganzzahl. Übergangszeit in Sekunden nach Abschluss des Benchmarks, damit Anfragen während der Bearbeitung abgeschlossen werden können.

extra_inputs

Zeichenfolge. Zusätzliche JSON-encoded Eingaben, die in jeder Payload der Anfrage enthalten sein müssen.

random_seed

Ganzzahl. Startwert für die Generierung von Zufallszahlen. Standard: 42.

verbose

Boolesch. Aktivieren Sie die ausführliche Protokollierung. Standard: false.

num_conversations

Ganzzahl. Anzahl der Multi-Turn-Konversationen, die simuliert werden sollen. Aliase:conversation_num,. num_sessions

model_selection_strategy

Zeichenfolge. Strategie für die Auswahl von Modellen, wenn mehrere Modelle auf dem Endpunkt verfügbar sind.

Aufwärmen

Die Aufwärmparameter steuern eine optionale Aufwärmphase, die vor dem gemessenen Benchmark läuft. Dadurch werden die Caches und die JIT-Kompilierung des Modellservers vorbereitet.

warmup_duration

Ganzzahl. Dauer der Aufwärmphase in Sekunden.

warmup_request_count

Ganzzahl. Anzahl der Aufwärmanfragen. Alias:num_warmup_requests.

warmup_concurrency

Ganzzahl. Grad der Parallelität während des Aufwärmens.

warmup_prefill_concurrency

Ganzzahl. Parallelität beim Aufwärmen vorfüllen.

warmup_request_rate

Schweben. Anforderungsrate beim Aufwärmen.

warmup_arrival_pattern

Zeichenfolge. Ankunftsmuster während des Aufwärmens.

warmup_grace_period

Schweben. Nachfrist in Sekunden nach Abschluss des Aufwärmens.

num_warmup_sessions

Ganzzahl. Anzahl der Aufwärmsitzungen.

Datensatz

public_dataset

Zeichenfolge. Name eines öffentlichen Datensatzes, der für Benchmark-Eingabeaufforderungen statt für die synthetische Generierung verwendet werden soll.

custom_dataset_type

Zeichenfolge. Format eines benutzerdefinierten Datensatzes, der über Amazon S3 bereitgestellt wird.

input_file

Zeichenfolge. Pfad zur Eingabedatensatzdatei im Benchmark-Container. Wenn Sie einen Datensatz über den DatasetConfig Parameter angeben, werden die Daten unter gemountet/opt/ml/input/data/{ChannelName}/. Verwenden Sie diesen Parameter, um auf eine bestimmte Datei innerhalb dieses Mount-Pfads zu verweisen.

Bildeingaben

Parameter für das Benchmarking multimodaler Modelle, die Bildeingaben akzeptieren.

image_width_mean

Schweben. Mittlere Breite synthetischer Bilder in Pixeln.

image_width_stddev

Schweben. Standardabweichung der Bildbreite.

image_height_mean

Schweben. Durchschnittliche Höhe synthetischer Bilder in Pixeln.

image_height_stddev

Schweben. Standardabweichung der Bildhöhe.

image_batch_size

Ganzzahl. Anzahl der Bilder pro Anfrage. Alias:batch_size_image.

image_format

Zeichenfolge. Bildformat (zum Beispielpng,jpeg).

Videoeingänge

Parameter für das Benchmarking multimodaler Modelle, die Videoeingänge akzeptieren.

video_batch_size

Ganzzahl. Anzahl der Videos pro Anfrage. Alias:batch_size_video.

video_duration

Schweben. Dauer synthetischer Videos in Sekunden.

video_fps

Ganzzahl. Bilder pro Sekunde für synthetische Videos.

video_width

Ganzzahl. Breite synthetischer Videos in Pixeln.

video_height

Ganzzahl. Höhe synthetischer Videos in Pixeln.

video_synth_type

Zeichenfolge. Art der synthetischen Videogenerierung.

video_format

Zeichenfolge. Videocontainerformat.

video_codec

Zeichenfolge. Videocodec.

video_audio_sample_rate

Ganzzahl. Audio-Abtastrate in Hz.

video_audio_num_channels

Ganzzahl. Die Anzahl der Audiokanäle.

video_audio_codec

Zeichenfolge. Audiocodec.

video_audio_depth

Zeichenfolge. Audio-Bittiefe.

Secrets

Optionale Zuweisung. Verwenden Sie diesen Abschnitt, um sensible Werte (wie Hugging Face Face-Zugriffstoken) zu übergeben, indem Sie auf AWS Secrets Manager Manager-Geheimnisse verweisen, anstatt sie als Klartext einzufügen. parameters

Jeder Schlüssel ist ein Parametername, und der Wert ist der ARN des AWS Secrets in Secrets Manager. Beim Start des Jobs löst der Service das Geheimnis auf und fügt den Wert in die Benchmark-Umgebung ein.

"secrets": { "hf_token": "arn:aws:secretsmanager:us-west-2:111122223333:secret:my-hf-token-AbCdEf" }

Werkzeugbau

Optionale Zuweisung. Spezifiziert den API-Standard und die Toolversion.

tooling/api_standard

Optional. Der vom Endpunkt verwendete API-Standard. Beispiel, openai.

tooling/version

Optional. Die Version des Benchmarking-Tools. Standardmäßig wird die neueste verfügbare Version verwendet.