⚒️

Amazon Bedrock エージェントのモデルを検証

に公開

はじめに

Amazon Bedrock でナレッジベースを作成し、エージェントのモデルに Claude 3.7 Sonnet を使用して性能測定を実施したところ、実運用では費用が高額になることが予想されました。そこで、費用対効果の高いモデルの組み合わせを検証しましたので、その解説をしたいと思います。

前提

  • Amazon Bedrock は、東京リージョンを使用しています。
  • ナレッジベースには、解析戦略として Claude Sonnet 4 を使用しています。解析戦略のコストは、必要経費として割り切ります(解析戦略を使用しないと精度が大きく落ちます)。
  • 検証はエージェント経由で行います。Bedrock のエージェントのデフォルトの動作は ReAct であるため、トレースステップは最大5回(Bedrock の呼び出し回数は最大4回)となります。そのため、入力トークンは大きくなります。

https://aws.amazon.com/jp/blogs/machine-learning/getting-started-with-amazon-bedrock-agents-custom-orchestrator/

検証

使用するデータ

ナレッジベースに以下のファイルを格納しています。エージェントが使用するモデルのみを変更して、次の評価を行います。

ファイルの種類 ファイル数 ファイルサイズ
word, pdf 240 516 MB
html 4,130 61 MB
text 2,230 3 MB

評価方法

  1. word, pdf から取得できるデータのみを対象とする。
  2. 事前にデータから一意に特定できる質問と回答のデータセットを作成し、目視で回答を評価する。
    • データセットは約100件用意し、各質問に対し10点満点で評価する。
    • テキストからの回答の精度だけでなく、図表からの回答の精度についても評価する。

評価するモデル

  • Claude 3.7 Sonnet
  • Amazon Nova Lite
  • Amazon Nova Pro

検証結果

モデル 応答速度 費用 精度(平均点)
Claude 3.7 Sonnet 20~30 秒 USD 40 9.1
Amazon Nova Lite 8~10 秒 USD 0.04 6.2
Amazon Nova Pro 5~7 秒 USD 1.8 6.8

総評

今回用意したデータセットでは、感覚的に精度が8.0付近が運用に耐えうるかどうかのラインでした。応答速度については出力が完全に完了するまでの時間を計測しています。ナレッジベースのデータベースの性能を低く設定していることと、やはりトレースステップの回数が影響していると考えられますが、全体的に期待しているよりも遅かったです。ReAct の振る舞い上、後半のトレースステップになればなるほど Bedrock に渡す情報は増えていくため、費用に関しては仕方ないかと思います。しかし、弊社での運用を考えると、速度はある程度犠牲にしても実用に耐えうる精度を維持しつつ、費用をできる限り抑える必要がありました。以下、モデル毎の評価です。

モデル毎の評価

  1. Claude 3.7 Sonnet

    • テキストからの回答は、ほぼ完璧に出力できる。抽象的な質問にも対応可。
    • 画像やオブジェクトからの回答の精度も高い。複数のオブジェクトの関係に対する質問にも回答できる。
    • wordの表の読み取りが若干低いが、同じドキュメントをpdfで格納すると精度が上がる。
    • 表の複数の項目(決定表など)からの回答は概ね問題ないが、たまに(T/Fを)読み取れない項目がある。
    • 最終の出力が多く、応答速度も遅い。
  2. Amazon Nova Lite

    • ナレッジベースからの取得範囲が狭く、期待する結果は取得できていない。
    • 画像やオブジェクトからの回答の精度はそこそこ。
    • wordの表の読み取りがかなり低い。決定表からの回答は全くできていない。
    • 応答速度は速いが、出力も少ない。
  3. Amazon Nova Pro

    • ナレッジベースからの取得範囲は Amazon Nova Lite よりも広いが、ハルシネーションも発生している。
    • 画像やオブジェクトからの回答の精度はそこそこ。
    • wordの表の読み取りが低い(Amazon Nova Lite より若干良いレベル)。
    • 応答速度は Amazon Nova Lite とあまり変わらないが、出力は Amazon Nova Lite よりも多い。

スペック上は、「Amazon Nova Pro > Amazon Nova Lite」であり、Amazon Nova Pro は GPT‑4o 相当の性能であるため、エージェントのモデルとしてこれを使用できないかと考えていましたが、予想していたよりも悪い結果でした。

https://aws.amazon.com/jp/blogs/machine-learning/benchmarking-amazon-nova-and-gpt-4o-models-with-flotorch/

Amazon Nova Lite/Pro の応答速度や費用は魅力的ですが、運用(表からの読み取り)を考えると、採用を見送ることとしました。ただし、参照範囲がテキストに対する質問であれば、そこそこ精度はよいことと解析戦略を使用していれば、画像やオブジェクトからの回答も可能であるため、ナレッジベースが参照するデータによっては、候補に挙がるかと思います。

表からの読み取り精度については、トレースステップのログを用いて検証した結果、以下の結果が得られています。解析戦略を行っている前提ですが、Claude 3.5 Sonnet と Claude 3 Haiku が表(決定表)の読み取りができる境界でした。Claude 3 Haiku の方が Amazon Nova Pro よりも若干よいです。

表の読み取り精度

Claude 3.7 Sonnet > Claude 3.5 Sonnet ← できる > できない → Claude 3 Haiku ≈ Amazon Nova Pro

追加の検証

このままでは、Claude 3.7 Sonnet を使用することになりますが、応答速度に目をつぶったとしても、やはり費用がネックです。また、Amazon Nova Lite と Amazon Nova Pro の精度があまり変わらない(6.26.8)というのも気になります。そこで、Amazon Nova Pro のトレースステップをより詳細に分析することにしました。

Amazon Nova Pro のオーケストレーションの上書き

Amazon Nova Pro のトレースステップを分析した結果、オーケストレーションを上書きすることで、精度をチューニングできることがわかりました。

※これはカスタムオーケストレーションではありません。実際、ReWoo を実装してみましたが、応答速度はいまいち改善しませんでした(Bedrock の問い合わせ回数は1回になるため、費用は抑えられると思います)。

Amazon Nova Pro の「エージェントビルダー」から、以下を変更します。

  1. オーケストレーション戦略の詳細

    • デフォルトオーケストレーション を選択。
  2. オーケストレーションタブを選択

    • 設定 で以下の値を設定する。※ナレッジベースと用途によって最適な値は異なるため、各自チューニングして下さい。

      Temperature トップP トップK 最大出力トークン
      0.20 0.90 80 8,192

モデルの追加

  1. Claude Haiku 4.5 の追加
    東京リージョンで「エージェントビルダー」から「モデルを選択」をクリックすると、以下のポップアップが表示されます。
    モデルを選択

    ぱっと見たところ、Amazon Micro/Lite/Pro と Claude 3 family しか使用できないように見えますが、デフォルトでは「最適化済み Bedrock エージェント」にチェックが入っています。このチェックを外すことで、モデルプロバイダーや使用できるモデルが追加で選択できるようになります。
    チェックを外すと、Claude 4 family が使用できるようになるため、この中からモデルを追加します。Claude Sonnet 4 は速度の面では改善されていますが、費用は Claude 3.7 Sonnet と変わらないため、Claude Haiku 4.5 を使用することにします。事前にトレースステップのログを用いて、表の検証も行いましたが Claude 3.5 Sonnet より若干劣るものの、ぎりぎり使用できる精度でした(決定表が若干弱い)。

  2. Claude Haiku 4.5 のオーケストレーションの上書き
    Claude Haiku 4.5 のTemperatureトップPは両方同時に設定できません。そのため、トップP以外の設定を行います。

    Temperature トップK 最大出力トークン
    0.20 80 8,192

追加の検証結果

モデル 応答速度 費用 精度(平均点)
Amazon Nova Pro(オーケストレーションの上書き) 8~10 秒 - 7.7
Claude Haiku 4.5(オーケストレーションの上書き) 10~12 秒 USD 7.5 8.9

総評

  1. Amazon Nova Pro(オーケストレーションの上書き)

    • 若干応答速度は低下したが、テキストからの回答は劇的に改善した。
    • 画像やオブジェクトからの回答は、デフォルトの設定とあまり変わらない。
    • wordの表の読み取りは、デフォルトの設定と変わらない。

    テキストからの回答の精度は向上したものの、テキスト以外(図表)は変わりませんでした。テキスト以外は、解析戦略でパースされた情報をもとに回答できるかどうかである(モデルの性能に依存する)ため、オーケストレーションを上書きしても変わらないと思われます。

  2. Claude Haiku 4.5(オーケストレーションの上書き)

    • テキストからの回答は、Claude 3.7 Sonnet よりもよい結果を出力することがある。
    • 画像やオブジェクトからの回答は、Claude 3.7 Sonnet よりも少し低いが、問題ない。
    • wordの表の読み取りは、ぎりぎり使えるレベル。
    • 応答速度は10秒前後で出力できており、出力量もちょうどよい。
    • 費用も Claude 3.7 Sonnet の約20%に抑えられており、現実的なコストになる。

    テキストからの回答の精度はオーケストレーションを上書きしたことにより、精度が向上していると思われます。テキスト以外は、表からたまに間違った結果を出力してきますが、エージェントのメモリの設定を有効にしておいて、正しい結果を入力すれば(メモリの持続期間であれば)問題は解決します。

    Amazon Connect のウィジェットを用いて、ユーザ毎にメモリIDを永続化する方法についても、機会があれば解説したいと思います。

まとめ

エージェントのモデルに Claude 3.7 Sonnet を使用してみましたが、応答速度と費用がネックであったため、費用対効果のバランスがよいモデルの検証を行いました。

現状、最もバランスがよいモデルとして、Claude Haiku 4.5 を使用することを推奨しますが、費用を犠牲にしてでも、精度を追求するのであれば Claude Sonnet 4/4.5 を使用するのがよいかと思います。逆に、精度をある程度犠牲にしてでも、安価に構築したいのであれば Amazon Nova Pro を使用してみてもよいかもしれません(※オーケストレーションの上書きは必須であることとデータに依存します)。

今回の検証では Bedrock だけでなく、Box AI for Hubs(GPT‑5)についても同じデータソースとデータセットを用いて検証を行っています。Box を導入されている企業も多いかと思いますので、Box AI for Hubs の RAG の検証結果についても、別途解説したいと思います(2025/11/28に以下の記事を投稿)。
https://zenn.dev/hirata_infosys/articles/fb144b42a27b08

平田機工株式会社 情報システム

Discussion