AIPテスト、検証、トラブルシューティング
あるメディア企業が、Amazon Bedrock(Claude)で記事要約を生成するパイプラインを本番運用しています。直近、特定の長文記事でのみ「要約が途中で切れて文が完結しない」「JSON 形式で返すよう指示しているのにキーが欠落した不完全な JSON が返る」事象が増えました。入力記事は長く、出力にも詳細な構造化要約を求めています。CloudWatch のモデル呼び出しログを確認すると、該当リクエストの stopReason が max_tokens になっていました。この問題の根本原因と最も適切な対策の組み合わせはどれですか。
A出力が maxTokens 上限に達して打ち切られているため、maxTokens を必要量に引き上げる、または要約をより簡潔にする/分割生成するようプロンプトを調整する
✓ 正解
stopReason=max_tokens は出力が上限トークンに達して途中で打ち切られた明確な証拠で、文の未完結や不完全JSONと一致する。maxTokens引き上げや出力簡潔化・分割生成で根本対処でき症状が解消する。
Bモデルのハルシネーションが原因のため、Guardrails のコンテンツフィルタを最強に設定して不完全な出力をブロックする
症状の原因はハルシネーションではなく出力トークン上限による打ち切り。Guardrails で不完全出力をブロックしても完結した要約は生成されず、stopReason=max_tokens という証拠とも整合しない。
C入力のコンテキストウィンドウ超過が原因のため、Knowledge Bases を導入して記事をチャンク化して取得させる
入力がコンテキストウィンドウを超過する場合はバリデーション例外等の別エラーになる。stopReason=max_tokens は出力側の上限到達を示すため、入力チャンク化では根本原因を解消できない。
D温度(temperature)が高すぎて出力が不安定なため、temperature を 0 に固定して JSON 欠落を防ぐ
temperature は出力の多様性・ランダム性に影響するが、トークン上限到達による打ち切りの直接原因ではない。0に固定しても出力が長ければ依然 max_tokens で切れ、JSON欠落は解消しない。
解説
stopReason が max_tokens であることは、モデルが応答の途中で出力トークン上限に達して打ち切られたことを明確に示します。文が完結しない・JSON が途中で切れてキー欠落になる症状はこれに合致します。対策は maxTokens を必要な出力量に引き上げる、または要約を簡潔化・分割生成して出力長を上限内に収めることです。
選択肢Bはハルシネーションではなく打ち切りが原因で、Guardrails はブロックしても完結した出力は得られない。
選択肢Cは入力ウィンドウ超過なら別のエラー(バリデーション例外)になり、stopReason=max_tokens は出力長の問題を示す。
選択肢Dの temperature は出力の多様性に影響するが、上限到達による打ち切りの直接原因ではない。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでAIPを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →