AWS Certified Generative AI Developer - Professional 資格対策コース
レイテンシ・スループット最適化(バッチ・並列・ストリーミング・プロビジョンドスループット)
このレッスンで学ぶこと 対応試験ドメイン D4 タスク 4.2.1-4.2.3(性能最適化)。Amazon Bedrock の応答を速くする、または大量処理をさばくための手段であるストリーミング・並列・バッチ・プロビジョンドスループットを理解し、要件に応じて選べるようになります。
解説
性能最適化には「ユーザーが感じる速さ(レイテンシ)」と「単位時間あたりの処理量(スループット)」の 2 つの軸があります。Amazon Bedrock では、それぞれに適した手段が用意されています。試験では「体感を速くしたい」「大量を安くさばきたい」「安定した容量がほしい」というシナリオで手段を選び分けます。
レイテンシを下げる(体感を速くする)
| 手段 | 内容 | 効く場面 |
|---|---|---|
| ストリーミング | 生成トークンを逐次返す(ConverseStream) | チャット UI で最初の表示を速く見せたい |
| 軽量モデル | 小さく速いモデルを選ぶ | 品質要件が中程度のリアルタイム応答 |
| プロンプト短縮・キャッシュ | 入力を減らす・前半をキャッシュ | 固定文脈が長いとき |
ストリーミングは総生成時間を縮めるわけではありませんが、最初のトークンが届くまでの体感(TTFT)を劇的に改善します。
Python
import boto3
client = boto3.client("bedrock-runtime", region_name="us-east-1")
stream = client.converse_stream(
modelId="amazon.nova-pro-v1:0",
messages=[{"role": "user", "content": [{"text": "RAG を3行で説明して"}]}],
)
for ev in stream["stream"]:
if "contentBlockDelta" in ev:
print(ev["contentBlockDelta"]["delta"]["text"], end="")スループットを上げる(大量をさばく)
| 手段 | 内容 | 効く場面 |
|---|---|---|
| 並列処理 | 複数リクエストを同時に発行(非同期/並列) | 独立した大量リクエストを短時間で |
| バッチ推論(Batch Inference) | 大量入力をまとめて非同期処理。低単価 | 即時性不要の大量ジョブ(夜間処理など) |
| プロビジョンドスループット | モデル容量を時間課金で確保 | 安定して高い処理量を保証したい |
バッチ推論は即時性を捨てる代わりに低コストで大量処理できます。オンラインの即応には使えませんが、レポート生成や大量分類のような非同期ジョブに向きます。
プロビジョンドスループットとオンデマンドの違い
- オンデマンド 使った分だけ課金。スロットリング(throttling)が起きうる。小〜中規模・変動の多い負荷に
- プロビジョンドスループット モデルユニットを確保し、安定した高スループットを保証。時間あたり固定課金。大規模・安定負荷やカスタムモデルの本番運用に
スロットリングで ThrottlingException が頻発するほど高い定常負荷があるなら、プロビジョンドスループットで容量を確保するのが定石です。
試験で問われるポイント
- ストリーミングは体感(最初のトークンまで)を速くするが、総処理時間や総コストは下げない。「ストリーミングでコストが下がる」はひっかけ
- バッチ推論は低単価だが即時性がない。リアルタイム要件にバッチを当てるのは誤り。逆に夜間の大量処理にオンデマンド即時呼び出しを使うのもコスト面で不利
- プロビジョンドスループット vs オンデマンド。「安定して高いスループットを保証」「スロットリング回避」ならプロビジョンド、変動負荷ならオンデマンド
- 並列処理はスループットを上げるが、レート制限(クォータ)を超えるとスロットリングされるため、バックオフ設計とセットで考える
サービスの使い分け早見表
| やりたいこと | 使うもの | 混同しやすいもの |
|---|---|---|
| チャット UI の体感を速くする | ConverseStream(ストリーミング) | バッチ推論(即時性なし) |
| 即時性不要の大量処理を安く | Bedrock Batch Inference | プロビジョンドスループット(容量確保が目的) |
| 安定した高スループットを保証 | プロビジョンドスループット | オンデマンド(変動負荷向け・スロットリングあり) |
| 独立リクエストを短時間でさばく | 並列・非同期呼び出し | ストリーミング(1 応答内の逐次表示) |
まとめ
性能最適化はレイテンシとスループットを分けて考えます。体感を速くするならストリーミング(ConverseStream)、大量を安くさばくならバッチ推論、安定した高処理量を保証するならプロビジョンドスループット、独立リクエストの同時処理なら並列化です。「ストリーミング=コスト削減」「バッチ=リアルタイム」のような取り違えが試験の典型ひっかけです。
次のステップ
次のクイズレッスンで、レイテンシとスループットの最適化手段を要件から選び分けるシナリオ問題に挑戦しましょう。
関連レッスン
- トークン効率とコスト削減・コスト可視化(pro-cost-token)
- プロンプトキャッシュ・セマンティックキャッシュ(pro-cost-cache)
- モデルパラメータ調整と A/B テスト(pro-perf-params)