powered by TechFeed
表示モード
Amazon

AWSでGPT-5.6が使えるように — キャッシュ読み取りトークンが90%引きになる「明示的キャッシュ」でコストを大幅削減

7月31日、AWSが「Introducing explicit prompt caching for OpenAI GPT-5.6 models on Amazon Bedrock」と題した記事を公開した。Amazon BedrockにOpenAI GPT-5.6モデルファミリーが正式提供開始され、キャッシュ読み取りトークンを通常の90%引きで処理できる明示的プロンプトキャッシュ機能が新たに追加された。エージェント型ワークフローのように同一のシステムプロンプトやツール定義を繰り返し送信するユースケースでは、コスト構造が根本から変わりうる内容だ。

7月31日、AWSが「Introducing explicit prompt caching for OpenAI GPT-5.6 models on Amazon Bedrock」と題した記事を公開した。Amazon BedrockにOpenAI GPT-5.6モデルファミリーが正式提供開始され、キャッシュ読み取りトークンを通常の90%引きで処理できる明示的プロンプトキャッシュ機能が新たに追加された。エージェント型ワークフローのように同一のシステムプロンプトやツール定義を繰り返し送信するユースケースでは、コスト構造が根本から変わりうる内容だ。


GPT-5.6がAmazon Bedrockで利用可能に

OpenAI GPT-5.6 Sol、Terra、Lunaの3モデルがAmazon Bedrockで一般公開された。OpenAIのChris Dickensとの共著記事で、AWSのセキュリティ・ガバナンス制御やAWSコミットメントへの充当が可能なまま、最新世代のOpenAIモデルをペイパートークンで利用できる。

※ Amazon BedrockはAWSが提供するマネージド基盤モデルサービスで、2024年後半からサードパーティモデルのサポートを段階的に拡張してきた。OpenAIモデルのBedrock提供は、AWSとOpenAIの提携を背景に実現したものだ。GPT-5.6はOpenAIのGPT-5系列に属する最新世代モデルで、従来のGPT-4o系とは命名規則が異なる点に注意が必要だ。

3モデルの位置づけは以下のとおりだ:

  • GPT-5.6 Solopenai.gpt-5.6-sol):複雑な推論・エージェント型コーディング向け
  • GPT-5.6 Terraopenai.gpt-5.6-terra):日常的なプロダクションワークロードのバランス型
  • GPT-5.6 Lunaopenai.gpt-5.6-luna):分類・要約など高スループットタスク向け

利用可能リージョンは、SolがUS East(バージニア北部・オハイオ)、TerraとLunaはUS West(オレゴン)にも対応している。

APIへのアクセスはOpenAI互換のResponses API経由で、bedrock-mantleエンドポイントを使用する。bedrock-mantleはBedrockがOpenAI互換のREST APIを公開するためのゲートウェイエンドポイントで、既存のOpenAI SDKをそのまま利用できるよう設計されている。認証はAWSクレデンシャルから生成する短期ベアラートークンで行う:

pip install openai aws-bedrock-token-generator
from openai import OpenAI
from aws_bedrock_token_generator import provide_token

REGION = "us-east-2"

client = OpenAI(
    base_url=f"https://bedrock-mantle.{REGION}.api.aws/openai/v1",
    api_key=provide_token(region=REGION),
)

今回の目玉:明示的プロンプトキャッシュ

GPT-5.6最大のポイントは明示的プロンプトキャッシュ(Explicit Prompt Caching)だ。プロンプトキャッシュ自体はLLMのAPIコスト削減手段として広く注目されているが、GPT-5.6ではキャッシュ境界を開発者が自分で指定できる「明示的モード」が加わった。

暗黙キャッシュ vs 明示的キャッシュ

GPT-5.6では2つのキャッシュモードが使える:

  • 暗黙モード(implicit):デフォルト。Amazon Bedrockが自動でキャッシュブレークポイントを設定する。コード変更不要で既存ワークロードもそのままキャッシュ恩恵を受けられる
  • 明示的モード(explicit):開発者がキャッシュ境界を明示的に指定。ヒット率が高くなりやすく、エージェント型ワークフローで特に効果的

コスト構造は以下のとおりだ:

種別 料金
キャッシュ読み取り 通常の90%引き
キャッシュ書き込み 通常の1.25倍
キャッシュ有効期間 30分

書き込み1回に対して読み取りが多ければ多いほど得になる設計で、キャッシュ読み取りトークンがトークン全体の約20%を超えると純コストが下がる計算だ。

明示的キャッシュの設定方法

制御に使うパラメータは3つだ:

  • **prompt_cache_breakpoint**:コンテンツブロックに付与。ここまでがキャッシュ対象(最低1,024トークン必要、1リクエストあたり最大4ブレークポイント)
  • **prompt_cache_key**:同一キャッシュに誘導するための安定したID
  • **prompt_cache_options**:モード(implicit/explicit)とTTLを制御

長い静的システムプロンプトの後に可変のユーザー入力が続く構成での実装例:

response = client.responses.create(
    model="openai.gpt-5.6-terra",
    prompt_cache_key="support-app:kb-v1",
    input=[
        {
            "type": "message",
            "role": "developer",
            "content": [{
                "type": "input_text",
                "text": SYSTEM_INSTRUCTIONS,  # 静的な長文(>= 1,024トークン)
                "prompt_cache_breakpoint": {"mode": "explicit"},
            }],
        },
        {
            "type": "message",
            "role": "user",
            "content": [{
                "type": "input_text",
                "text": user_question,  # リクエストごとに変化
            }],
        },
    ],
    extra_body={"prompt_cache_options": {"mode": "explicit"}},
)

キャッシュが効いているか確認する

レスポンスのusage.input_tokens_detailsオブジェクトでキャッシュ動作を確認できる:

details = response.usage.input_tokens_details
print(f"cached: {details.cached_tokens}, written: {details.cache_write_tokens}")

同一の3,626トークンのシステムプレフィックスを複数リクエストで再利用した場合の挙動は以下のとおりだ:

リクエスト input_tokens cached_tokens cache_write_tokens 非キャッシュ分
1回目(コールド) 3,682 0 3,626 56
2回目 3,671 3,626 0 45
3回目 3,662 3,626 0 36

2回目以降は3,626トークンが90%引きで読み出され、変化するユーザー入力分だけが通常レートで課金される。cached_tokenscache_write_tokensinput_tokensの内数であり、同一トークンが二重課金されることはない。


エージェント型ループでの活用

明示的キャッシュが最も効果を発揮するのは、ツール呼び出しループを持つエージェント型ワークフローだ。システムプロンプトとツール定義がターンごとに繰り返され、会話履歴だけが末尾に蓄積されるパターンは、静的プレフィックスの後にブレークポイントを置く構成と完全に合致する。

元記事では、サービスヘルスチェックとデプロイ履歴を確認するインシデントレスポンスアシスタントの実装例が示されている。長いランブック(手順書)とツール定義をキャッシュしつつ、会話の変化部分だけを毎回送信する構成で、エージェントループの各ターンでprompt_cache_keyを固定し、ブレークポイントをツール定義の末尾に配置することでキャッシュヒット率を最大化している。元記事には完全な実装コードが掲載されているため、詳細は原文を参照されたい。


GPT-5.5/5.4からの移行

GPT-5.5や5.4から移行する場合のガイドラインとして、まず現在使っているのと同じ推論エフォートレベルで試し、1段階下げてテストすることが推奨されている。GPT-5.6はトークン効率が改善されており、低いエフォートレベルでも品質を維持できるケースが多いという。

推論エフォートはnonelowmedium(デフォルト)、highxhighから選択できる。noneが最低レイテンシで、temperaturetop_pといったサンプリングパラメータはreasoning.effortnoneの場合のみ有効だ。

集計モニタリングはbedrock-mantleエンドポイントがAmazon CloudWatchAWS/BedrockMantle名前空間にメトリクスを発行しており、リクエスト単位のキャッシュ詳細はレスポンスのusageオブジェクトから取得する形になっている。


詳細はIntroducing explicit prompt caching for OpenAI GPT-5.6 models on Amazon Bedrockを参照していただきたい。