本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
為生成式 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_mean、isl。 prompt_input_tokens_stddev-
浮動。輸入字符計數的標準差。別名:
synthetic_input_tokens_stddev、isl_stddev。 output_tokens_mean-
整數. 每個請求的平均輸出字符數量。別名:
prompt_output_tokens_mean、osl。 output_tokens_stddev-
浮動。輸出字符計數的標準差。別名:
prompt_output_tokens_stddev、osl_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_num、num_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-
選用。基準測試工具的版本。預設為最新的可用版本。