View a markdown version of this page

生成 AI 推論レコメンデーションのワークロード設定をセットアップする - Amazon SageMaker AI

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

生成 AI 推論レコメンデーションのワークロード設定をセットアップする

ワークロード設定は、モデルまたはエンドポイントを評価するときに SageMaker AI が使用するトラフィックパターンとベンチマークパラメータを定義します。レコメンデーションジョブまたはベンチマークジョブを実行する前に、ワークロード設定を作成します。同じワークロード設定を複数のジョブで再利用できます。

ワークロードは、次の 2 つの方法で定義できます。

  • インライン仕様。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

データセットを使用してワークロード設定を作成する

実際のリクエストの代表的なデータセットがある場合は、 InputDataConfigチャネルで DatasetConfigパラメータを使用して 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 です。

パラメータ

オプションのマッピング。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

浮動小数点。1 秒あたりのターゲットリクエスト数。

benchmark_duration

整数。秒単位のベンチマークの期間。

max_concurrency

整数。許可される同時リクエストの最大数。

request_rate_mode

文字列。リクエストの到着パターン。エイリアス: arrival_pattern

arrival_smoothness

浮動小数点。リクエストの到着のバーストを制御します。値を大きくすると、トラフィックがスムーズになります。エイリアス: vllm_burstiness

prefill_concurrency

整数。同時事前入力リクエストの数。

全般

streaming

Boolean。ストリーミングレスポンスを使用するかどうか。デフォルト: 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

Boolean。詳細なログ記録を有効にします。デフォルト: 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

整数。合成ビデオの 1 秒あたりのフレーム数。

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

オプション。ベンチマークツールのバージョン。デフォルトは利用可能な最新バージョンです。