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
DatasetConfigParameters 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 densecretsAbschnitt, 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
DatasetConfigParameter 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 Beispiel
png,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.