現役のITエンジニアが、 システム開発の現場で求められる知識を発信
記事検索
公開

Amazon Bedrock EvaluationsでRAGの検索精度を定量評価してみた

生成AI関連

はじめに

RAG(検索拡張生成)システムを構築したあと、「本当にこの検索結果は適切なのか?」「回答の品質をどう測ればいいのか?」という課題に直面したことはないでしょうか。
RAGの精度改善には、チャンキング戦略の変更やメタデータフィルタリングの導入など、さまざまなアプローチがあります。しかし、改善の効果を定量的に把握できなければ、何が効いて何が効かなかったのかが分かりません。
そこで注目したいのがAmazon Bedrock Evaluationsです。このサービスを使えば、LLM as a Judge(LLMを評価者として活用する手法)により、Knowledge Baseの検索・生成品質を自動で定量評価できます。
以前の記事ではKnowledge Baseの構築方法やメタデータの活用を紹介しましたが、今回はその次のステップとして「構築したRAGをどう評価し、改善サイクルを回すか」にフォーカスします。

生成AI関連
Amazon Bedrock Knowledge Base × S3 VectorsでRAGを作って…
生成AI関連
Amazon Bedrock Knowledge Baseでのメタデータ活用法

Amazon Bedrock Evaluationsとは

Amazon Bedrock Evaluationsは、生成AIモデルやRAGシステムの性能を定量的に評価するマネージドサービスです。
主な特徴は以下の通りです。

特徴 内容
評価方式 自動評価(LLM as a Judge)と人力評価に対応
RAG評価 自動評価(LLM as a Judge)のみ対応
評価対象 Retrieval only(検索のみ)とRetrieval and response generation(検索+生成)の2種類
評価モデル Amazon Nova、Claude などのBedrock上のモデルを評価者として使用
料金 評価時のモデル推論料金が発生。Knowledge Base方式では追加でKnowledge Bases利用料金も発生

ポイントは、評価機能そのものに個別の追加料金が設定されているわけではないという点です。課金されるのは評価モデル(Judge)が推論に使用するトークン分で、Bedrock Knowledge Base方式でRAG評価を行う場合は、これに加えてAmazon Bedrock Knowledge Basesの通常利用料金も発生します。

参考:Amazon Bedrock Pricing

2つの評価アプローチ

Bedrock EvaluationsでRAGを評価する方法は、大きく分けて2つあります。

Bedrock Knowledge Base方式

Bedrock Evaluationsが検索と評価の両方を担当するアプローチです。評価ジョブを作成する際にKnowledge Baseを直接指定すると、Bedrock側が検索を実行し、その結果を自動で評価してくれます。

メリット:

  • 設定がシンプルで手軽に始められる
  • 検索パラメータ(検索件数、検索タイプなど)も評価ジョブ内で指定可能

Bring Your Own Inference方式

ユーザーが自前で検索結果を用意し、Bedrock Evaluationsは評価のみを担当するアプローチです。

メリット:

  • Bedrock Knowledge Base以外のRAGシステムも評価可能
  • 独自の検索ロジックや前処理を含めた状態で評価できる

今回は、より手軽に始められるBedrock Knowledge Base方式を使って実際に評価してみます。

評価の全体フロー

RAG評価の流れは、以下の4ステップです。

  1. RAGシステムの構築

    — Knowledge Baseを作成し、データソースを同期済みの状態にする
  2. プロンプトデータセットの準備

    — 想定される質問と期待回答をJSONL形式で作成し、S3に配置する
  3. 評価ジョブの実行

    — AWSマネジメントコンソールから評価ジョブを作成・実行する
  4. 結果の確認と改善

    — 評価レポートを確認し、改善につなげる

本記事では、ステップ1のRAGシステム(Knowledge Base)はすでに構築済みであることを前提とし、ステップ2以降を解説します。Knowledge Baseの構築方法については、以下の過去記事をご参照ください。

生成AI関連
Amazon Bedrock Knowledge Base × S3 VectorsでRAGを作って…

プロンプトデータセットの準備

評価を行うには、まずプロンプトデータセットを用意する必要があります。これは「RAGに対してどんな質問をし、どんな回答を期待するか」を定義したファイルです。

データセットの形式

JSONL(JSON Lines)形式で作成します。各行が1つの評価ケースで、conversationTurns配列の中にプロンプトとリファレンス(期待回答)を記述します。Retrieval onlyの評価では、各ケースで指定できる会話ターンは1ターンのみです。
以下は、質問のみのケースとリファレンス付きのケースの例です。

prompt-dataset.jsonl

{"conversationTurns":[{"prompt":{"content":[{"text":"Amazon Bedrockのガードレールとは何ですか?"}]}}]}
{"conversationTurns":[{"prompt":{"content":[{"text":"Knowledge Baseのチャンキング戦略にはどのような種類がありますか?"}]},"referenceResponses":[{"content":[{"text":"デフォルトチャンキング、固定サイズチャンキング、階層的チャンキング、セマンティックチャンキング、チャンキングなしの5種類があります。"}]}]}]}
{"conversationTurns":[{"prompt":{"content":[{"text":"S3 Vectorsのメリットは何ですか?"}]},"referenceResponses":[{"content":[{"text":"サーバーレスでベクトルストアを利用でき、別途ベクトルDBを構築・運用する必要がありません。"}]}]}]}

1行だと見づらいので、展開すると以下のような構造です。

json

{
  "conversationTurns": [
    {
      "prompt": {
        "content": [
          { "text": "Knowledge Baseのチャンキング戦略にはどのような種類がありますか?" }
        ]
      },
      "referenceResponses": [
        {
          "content": [
            { "text": "デフォルトチャンキング、固定サイズチャンキング、階層的チャンキング、セマンティックチャンキング、チャンキングなしの5種類があります。" }
          ]
        }
      ]
    }
  ]
}
フィールド 必須 説明
conversationTurns[].prompt.content[].text 必須 RAGに投げる質問文
conversationTurns[].referenceResponses[].content[].text 任意 期待される回答(一部メトリクスで必要)

注意点:

  • 最大1,000レコードまで登録可能
  • referenceResponses がないと使えないメトリクスがある(後述)
  • データセットはS3バケットに配置する必要がある

参考:Knowledge base evaluation prompt datasets – Amazon Bedrock

S3バケットの準備

評価ジョブでは、プロンプトデータセットの読み込みと評価結果の書き出しにS3を使用します。モデル評価ジョブで指定するすべてのS3バケットに対して、以下のCORS設定が必要です。
S3コンソールで対象バケットを開き、「アクセス許可」タブ > 「Cross-Origin Resource Sharing (CORS)」セクションの「編集」から、以下のJSONを設定します。

json

[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "GET",
            "PUT",
            "POST",
            "DELETE"
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": [
            "Access-Control-Allow-Origin"
        ]
    }
]

この設定がないと、Bedrock Evaluationsがデータセットの読み書きに失敗するので忘れずに設定しましょう。

参考:Amazon S3 に CORS アクセス許可を設定する – Amazon Bedrock

評価メトリクスの種類

Bedrock Evaluationsで利用できるメトリクスは、評価タイプによって異なります。Amazon Bedrockでは組み込みメトリクスに加えてカスタムメトリクスも定義できますが、ここではコンソールからすぐに使える組み込みメトリクスを中心に紹介します。

Retrieval only(検索のみ)の組み込みメトリクス

今回使用するRetrieval onlyでは、検索結果そのものの品質を評価します。利用できる組み込みメトリクスは以下の2種類です。

メトリクス 説明 referenceResponses
Context Relevance 検索結果が質問に対してどれだけ関連性があるか(Precision的な指標) 不要
Context Coverage 期待回答に必要な情報が検索結果にどれだけ含まれているか(Recall的な指標) 必要

Context RelevanceはreferenceResponsesなしで評価できるため、まずはここから始めるのがおすすめです。LLMが「質問と検索結果の組み合わせ」を見て関連性を判定してくれます。
一方、Context Coverageは「正解情報がどれだけカバーされているか」を測る指標なので、比較対象となるreferenceResponsesが必須です(公式ドキュメントに明記)。

参考:メトリクスを使用して RAG システムのパフォーマンスを把握する – Amazon Bedrock

Retrieval and response generation(検索+生成)の組み込みメトリクス

参考として、Retrieval and response generationで使用できる組み込みメトリクスも紹介します。こちらは検索結果をもとにLLMが生成した回答の品質を評価するもので、Retrieval onlyで検索精度を確認した後のステップとして活用できます。

メトリクス 説明
Correctness 回答が期待回答と比べて正確か
Completeness 回答が期待回答の内容を網羅しているか
Helpfulness 回答がユーザーの質問に対してどれだけ有用か
LogicalCoherence 回答が論理的に一貫しているか
Faithfulness 回答が検索結果(コンテキスト)に忠実か(ハルシネーション検出)
CitationPrecision 引用が回答内容に対して適切か(引用の適合率)
CitationCoverage 回答の主張が引用でどれだけカバーされているか(引用の網羅率)
Harmfulness 回答に有害な内容が含まれていないか
Stereotyping 回答にステレオタイプが含まれていないか
Refusal 回答すべきでない質問を適切に拒否しているか

メトリクスの数は多いですが、最初からすべてを使う必要はありません。自社のユースケースで重視したいポイントを絞り、数件のメトリクスから始めて段階的に追加していくのがおすすめです。より細かい観点で評価したい場合は、カスタムメトリクスを定義して独自の評価基準を組み込むこともできます。

参考:メトリクスを使用して RAG システムのパフォーマンスを把握する – Amazon Bedrock

評価ジョブの作成手順

AWS マネジメントコンソールからRetrieval onlyの評価ジョブを作成する手順を解説します。

1. Evaluation detailsを設定する

Amazon Bedrock > 評価(Evaluations) > RAGタブを開き、作成(Create)ボタンをクリックすると、評価ジョブの作成画面が表示されます。

評価ジョブの作成画面

Evaluation detailsの設定画面

まず「Evaluation details」セクションで、以下を設定します。

  1. Evaluation name

    評価ジョブの名前(小文字英数字とハイフンのみ、最大50文字)
  2. Description(任意)

    評価ジョブの説明(最大150文字)
  3. Evaluator model

    評価を行うLLMモデル(Judge)を選択。ClaudeやAmazon Novaなどが選択可能で、精度とコストのバランスを考慮して選びましょう

2. Inference sourceを設定する

「Inference source」セクションでは、評価対象のRAGソースと評価タイプを設定します。

Inference sourceの設定

Inference sourceの設定画面
Select source

評価対象のソースを選択します。

ソース 内容
Bedrock Knowledge Base Bedrock上に作成済みのKnowledge Baseを選択して評価
Bring your own inference responses 外部RAGシステムの検索結果・回答をデータセットとして持ち込んで評価

今回はBedrock Knowledge Baseを選択します。

Choose a Knowledge Base

評価対象のKnowledge Baseをドロップダウンから選択します。作成済みのKnowledge Baseが一覧に表示されます。

Evaluation type
評価タイプ 内容
Retrieval and response generation 検索+LLMによる回答生成まで含めて評価
Retrieval only 検索結果のみを評価(検索精度にフォーカス)

今回はRetrieval onlyを選択します。
まずは検索精度を確認し、問題がなければRetrieval and response generationに進むのが効率的です。検索精度が低いままRetrieval and response generationを評価しても、根本的な問題の切り分けが難しくなります。
なお、Retrieval and response generationを選択した場合は、Response generator model(回答生成に使うモデル)の選択項目が追加で表示されます。

3. メトリクスを選択する

前述の評価メトリクスの中から、今回の評価で使用するものを選択します。今回はRetrieval onlyなので、Context RelevanceとContext Coverageが選択対象です。

4. データセットと出力先を指定する

  • プロンプトデータセット:S3上のJSONLファイルのパスを指定
  • 評価結果の出力先:結果を保存するS3バケットとプレフィックス(ディレクトリ)を指定

すべて設定したら、作成(Create)ボタンで評価ジョブを開始します。

評価結果の確認

評価ジョブが完了すると、AWSコンソール上でレポートを確認できます。

ダッシュボード画面

以下は、Retrieval onlyで5件のプロンプトを評価した結果の例です。

評価結果のダッシュボード

評価結果のダッシュボード画面(Retrieval onlyの例)

画面上部のMetric summaryには、各メトリクスの平均スコアが表示されます。スコアは0〜1の範囲で、1に近いほど高品質です。この例では、Context Relevanceが0.34、Context Coverageが0.8という結果になりました。
画面下部のGeneration metrics breakdownでは、メトリクスごとのスコア分布をヒストグラムで確認できます。どのプロンプトがどの程度のスコアだったかを視覚的に把握でき、スコアが低い質問を特定して改善につなげることができます。

個別結果の確認

各質問ごとに、以下の情報を確認できます。

  • 入力した質問文(prompt)
  • 検索されたチャンク(コンテキスト)
  • 各メトリクスのスコアと判定理由
  • Retrieval and response generationの場合は、生成された回答も表示されます

判定理由が記載されている点が非常に便利です。なぜそのスコアになったのかをLLMが説明してくれるため、改善のヒントを得やすくなっています。

ジョブ間の比較

複数の評価ジョブを比較する機能もあります。たとえば、チャンキング戦略を変更する前後で評価ジョブを実行し、スコアの変化を確認するといった使い方ができます。

評価駆動開発のすすめ

RAGシステムの改善でありがちなのが、「パラメータを変更してみたが、良くなったのか悪くなったのか分からない」という状況です。感覚的な判断に頼っていると、改善のつもりが実は性能ダウンしていた、ということも起こり得ます。
そこで重要になるのが、評価指標を定量的に示し、変更による向上・低下を目に見える形で把握することです。ソフトウェア開発におけるテスト駆動開発(TDD)のように、まず評価基準を定め、改善のたびに評価を実行し、数値で効果を確認する——このアプローチは「評価駆動開発(Evaluation-Driven Development)」と呼ばれています。
RAGの評価指標については、Precision@KやRecall@K、Faithfulness、Answer Relevancyなど、検索・生成それぞれの観点で様々な指標が提案されています。詳しくは以下の過去記事で整理していますので、あわせてご参照ください。

生成AI関連
RAGの評価指標 ─ 何を・どう測るかを整理する

Bedrock Evaluationsは、この評価駆動開発を実践するための強力なツールです。改善施策の前後で評価ジョブを実行し、ジョブ間比較機能でスコアの変化を確認することで、「この変更でContext Relevanceが0.34→0.65に向上した」「Faithfulnessが下がったのでロールバックしよう」といった判断がデータに基づいてできるようになります。
最初から完璧なデータセットやメトリクスを揃える必要はありません。少数のプロンプトから始めて、実際のユーザーからの質問やエッジケースを随時追加しながら、「評価 → 改善 → 再評価」のサイクルを回していくことが大切です。

LLM as a Judgeは過信しない

ここで注意したいのは、LLM as a Judgeは便利ですが、人手評価を完全に置き換えるものではないという点です。評価結果は、選択したJudgeモデル、メトリクスの定義、プロンプトの書き方に影響を受けます。そのため、微妙なニュアンスの妥当性や業務要件への適合性まで、常に正しく判定できるとは限りません。
特に、公開前の重要なユースケースや、スコアが低かったケース、ユーザー影響の大きい改善施策については、LLM as a Judgeによる自動評価と人手によるサンプリング確認を併用するのが現実的です。LLM as a Judgeは「すべてを自動で正しく判定する仕組み」というより、改善の方向性を素早く把握し、問題のあるケースを効率よく見つけるための仕組みとして活用するのが適しています。

まとめ

Amazon Bedrock Evaluationsを使ったRAGの評価について解説しました。要点を振り返ります。

  • Bedrock Evaluationsは、LLM as a Judgeの手法でRAGの品質を自動評価するマネージドサービス
  • 評価時はJudgeモデルの推論料金が発生し、Knowledge Base方式ではKnowledge Bases利用料金も加算される
  • Retrieval only(検索のみ)とRetrieval and response generation(検索+生成)の2種類の評価タイプがある
  • まずはContext Relevanceから始めて、段階的にメトリクスを追加するのがおすすめ
  • プロンプトデータセットの充実が評価の精度を左右するため、継続的に拡充する
  • 改善施策の前後で評価ジョブを比較し、評価駆動開発のサイクルを回す
  • LLM as a Judgeは便利だが過信せず、重要なケースでは人手評価も併用する

RAGの「なんとなく良さそう」を「定量的に良い」に変えるための第一歩として、ぜひBedrock Evaluationsを試してみてください。

生成AI活用支援サービスのご紹介

Tech Funでは、お客様のフェーズに合わせ、生成AI活用に向けた支援を3つのパックでご提供しています。

  1. 無料診断パック:業務・プロセスの現状を無料で診断し、生成AI活用の可能性をレポートします。
  2. 検証(PoC)パック:診断で有効性が確認された業務を対象に、プロトタイプ構築を支援します。
  3. コンサルティングサービス:生成AI導入戦略の策定から運用体制構築までを包括的に支援します。

生成AIに限らず、Web・業務システム開発やインフラ設計など、技術領域を問わずご相談を承っています。「何から始めれば良いか分からない」という段階でも構いませんので、ぜひお気軽にお問い合わせください。

執筆・編集

Tech Fun Magazine R&Dチーム
Tech Funの生成AI研究に携わるエンジニアが、最新のAIモデル動向やプロンプト設計、実業務への応用手法など、生成AIに特化した知見を執筆・編集しています。
モデル評価や業務シナリオに応じたAI活用設計など、日々のR&D活動で得られる実践的なノウハウをわかりやすく紹介します。

ARTICLE
生成AI関連記事一覧

生成AI関連

Amazon Bedrock EvaluationsでRAG…

生成AI関連

生成AIの脅威を正しく知る ── OWASP Top 10 …

生成AI関連

マルチモーダルAIとは?「テキスト以外」の生成AI

生成AI関連

AGENTS.mdとは?AIコーディングエージェントに渡す「…

生成AI関連

コーディングエージェントを実務でどう使う?社内勉強会で見えた…

生成AI関連

生成AI用語・ツール早わかりマップ

生成AI関連

生成AIのSkillsとは?仕組み・MCPやカスタム指示との…

生成AI関連

Claude Coworkで案件の進捗状況を日次レポートする

生成AI関連

Claude Coworkとは?AIに”作業&#…

記事一覧を見る