View a markdown version of this page

為生成式 AI 推論建議設定工作負載組態 - Amazon SageMaker AI

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

為生成式 AI 推論建議設定工作負載組態

工作負載組態定義 SageMaker AI 在評估模型或端點時所使用的流量模式和基準參數。您在執行建議任務或基準任務之前建立工作負載組態。相同的工作負載組態可以在多個任務之間重複使用。

您可以透過兩種方式定義工作負載:

  • 內嵌規格。直接在 API 呼叫中指定權杖分佈和流量參數。

  • 來自 Amazon S3 的資料集。使用 DatasetConfig 參數提供實際請求的代表性資料集。

使用內嵌參數建立工作負載組態

當您沒有代表性資料集時,請使用內嵌參數來指定字符分佈。

Python (boto3)

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

使用資料集建立工作負載組態

如果您有代表性的真實請求資料集,請使用 DatasetConfig 參數搭配 InputDataConfig頻道透過 Amazon S3 提供。

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)} }, )

根據預設,會產生合成提示。您也可以使用公有資料集,或從 Amazon S3 提供自訂資料集。

用於基準化的工作負載組態

建立用於基準化現有端點的工作負載組態時,您可以指定其他參數,例如字符器、並行、請求計數和請求率。

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"}, }

管理工作負載組態

使用下列操作來管理您的工作負載組態。

# 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" )

工作負載規格參考

本節提供您在建立工作負載組態時在 WorkloadSpec.Inline 欄位中傳遞之工作負載規格 JSON 文件的完整結構描述。

語法

以下是工作負載規格的代表性範例,其中包含常用參數。所有參數都記錄在下面的參考表中。

{ "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" } }

工作負載規格金鑰

工作負載規格包含下列最上層金鑰。不明金鑰遭到拒絕。

基準

必要的映射。識別要使用的基準測試工具。

benchmark/type

必要. 基準引擎。唯一有效的值為 aiperf

parameters

選用的映射。傳遞至 AIPerf 引擎的基準參數。不明的參數名稱會遭到拒絕。除非另有說明,否則所有參數都是選用的。

字符分佈

prompt_input_tokens_mean

整數. 合成提示產生每個請求的平均輸入字符數量。別名:synthetic_input_tokens_meanisl

prompt_input_tokens_stddev

浮動。輸入字符計數的標準差。別名:synthetic_input_tokens_stddevisl_stddev

output_tokens_mean

整數. 每個請求的平均輸出字符數量。別名:prompt_output_tokens_meanosl

output_tokens_stddev

浮動。輸出字符計數的標準差。別名:prompt_output_tokens_stddevosl_stddev

流量成形

concurrency

整數. 在基準測試期間要傳送的並行請求數量。

request_count

整數. 要傳送的請求總數。別名:num_requests

request_rate

浮動。每秒的目標請求數。

benchmark_duration

整數. 基準的持續時間,以秒為單位。

max_concurrency

整數. 允許的最大並行請求數。

request_rate_mode

字串. 請求抵達模式。別名:arrival_pattern

arrival_smoothness

浮動。控制請求到達的爆量。較高的值會產生更順暢的流量。別名:vllm_burstiness

prefill_concurrency

整數. 並行預先填入請求的數量。

一般

streaming

布林值。是否使用串流回應。預設:true

tokenizer

字串. 用於計算字符之字符器的 HuggingFace 模型名稱或本機目錄路徑。範例:meta-llama/Llama-3.2-1B

hf_token

字串. Hugging Face 存取字符,用於下載門控模型和字符器。別名:HF_TOKEN。對於敏感值,請使用 secrets區段,而不是以純文字傳遞字符。

request_timeout_seconds

整數. 個別請求的逾時以秒為單位。

benchmark_grace_period

整數. 基準測試完成後的寬限期,以秒為單位,允許處理中的請求完成。

extra_inputs

字串. 要包含在每個請求承載中的其他 JSON 編碼輸入。

random_seed

整數. 用於產生隨機數字的種子。預設:42

verbose

布林值。啟用詳細記錄。預設:false

num_conversations

整數. 要模擬的多轉對話次數。別名:conversation_numnum_sessions

model_selection_strategy

字串. 當端點上有多個模型可用時,選取模型的策略。

暖機

暖機參數控制在測量基準之前執行的選用暖機階段。這會導致模型伺服器的快取和 JIT 編譯。

warmup_duration

整數. 暖機階段的持續時間,以秒為單位。

warmup_request_count

整數. 暖機請求的數量。別名:num_warmup_requests

warmup_concurrency

整數. 暖機期間的並行層級。

warmup_prefill_concurrency

整數. 在暖機期間預先填充並行。

warmup_request_rate

浮動。暖機期間的請求率。

warmup_arrival_pattern

字串. 暖機期間的抵達模式。

warmup_grace_period

浮動。暖機完成後的寬限期,以秒為單位。

num_warmup_sessions

整數. 暖機工作階段的數量。

資料集

public_dataset

字串. 用於基準提示而非合成產生的公有資料集名稱。

custom_dataset_type

字串. 透過 Amazon S3 提供的自訂資料集格式。

input_file

字串. 基準容器中輸入資料集檔案的路徑。當您透過 DatasetConfig 參數提供資料集時,資料會掛載在 /opt/ml/input/data/{ChannelName}/。使用此參數來指向該掛載路徑中的特定檔案。

影像輸入

用於基準化接受影像輸入的多模態模型的參數。

image_width_mean

浮動。合成影像的平均寬度,以像素為單位。

image_width_stddev

浮動。影像寬度的標準差。

image_height_mean

浮動。合成影像的平均高度,以像素為單位。

image_height_stddev

浮動。影像高度的標準偏差。

image_batch_size

整數. 每個請求的影像數量。別名:batch_size_image

image_format

字串. 影像格式 (例如,、pngjpeg)。

視訊輸入

用於基準化接受視訊輸入的多模態模型的參數。

video_batch_size

整數. 每個請求的影片數量。別名:batch_size_video

video_duration

浮動。合成影片的持續時間,以秒為單位。

video_fps

整數. 合成影片的每秒影格數。

video_width

整數. 合成影片的寬度,以像素為單位。

video_height

整數. 合成影片的高度,以像素為單位。

video_synth_type

字串. 合成影片產生的類型。

video_format

字串. 影片容器格式。

video_codec

字串. 視訊轉碼器。

video_audio_sample_rate

整數. 以 Hz 為單位的音訊取樣率。

video_audio_num_channels

整數. 音訊聲道的數量。

video_audio_codec

字串. 音訊轉碼器。

video_audio_depth

字串. 音訊位元深度。

秘密

選用的映射。使用本節透過參考 AWS Secrets Manager 秘密來傳遞敏感值 (例如 Hugging Face 存取權杖),而不是將它們作為純文字包含在 中parameters

每個金鑰都是參數名稱,而值是 AWS Secrets Manager 中秘密的 ARN。在任務開始時,服務會解析秘密並將值注入基準環境。

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

工具

選用的映射。指定 API 標準和工具版本。

tooling/api_standard

選用。端點使用的 API 標準。例如 openai

tooling/version

選用。基準測試工具的版本。預設為最新的可用版本。