RAG 評価

執筆:Ai Flowi · 公開日

RAG 評価では、検索で必要な根拠が見つかるか、生成された回答がその根拠を正しく使うかを確認します。文章断片の網羅性、回答の根拠への忠実性、有用性を別々に評価します。正確そうな回答が検索の不備を隠すことも、関連する断片から根拠のない回答が生まれることもあります。自動評価器を加える前に、ラベル付きの質問とソースの文章断片から始めます。

この手順では、AI Flowi Workflow のカタログコンポーネントを使って、提案する評価実行を構成します。これらはカタログに記載されていますが、Ai Flowi による本番環境でのテストは行われていません。ここで説明する評価器の出力はインターフェース仕様であり、測定済みの品質結果やベンチマークスコアではありません。

1. 根拠ラベル付きの質問コーパスを作る

各ケースを CSV に保存し、固定のケース識別子、質問、回答可能性のラベル、承認済みソースの版、必要な文章断片の識別子、短い受け入れメモを含めます。ラベルはチャットボットの現在の回答ではなく、文書から作ってください。主なルールだけでなく例外も必要な質問を含めます。そうしないと、例外を落とすシステムでも受け入れ可能に見えます。

ラベル付きコーパスの取り込みには、Load CSV のインターフェースとData → DataFrame 変換リファレンスに従います。

ケース識別子では、質問とソースの版を一緒に特定できる必要があります。方針が変わったら、以前のケース記録を保持し、根拠ラベルの新しい版を作ります。そうしないと、モデルが新しい方針に正しく従っていても、期待する回答の変更がモデルの性能低下に見えます。検索要求が失敗したケースもデータセットに残します。黙って除くと、たまたま届いた回答だけを比較することになります。

レビューする RAG コーパスのラベル
ケースの分類正解根拠のラベル検出できる失敗
ルールと例外の両方が対象両方の文章断片の識別子が必要です。検索または生成で例外が落ちます。
回答できない要求承認済みの裏付けとなる断片がありません。無関係なテキストから回答を作り上げます。
版の競合二つのソースが食い違っており、レビューが必要です。流暢な回答の中に矛盾が隠れます。
関連がありそうな紛らわしい断片要求された主題についての断片だけが適格です。表面的な言葉の一致が、適用できる根拠より優先されます。

2. 実際の検索と回答の入力を記録する

Knowledge Base の search_query に質問を渡し、knowledge_base と top_k を固定します。include_metadata でメタデータを保持し、Results をケース識別子と一緒に保存します。ベースの作成とチャンクの確認は既存の検索ガイドを参照してください。回答の経路には別の根拠に基づくチャットボット設計を使い、モデルに実際に送ったテキストを記録します。

データベースにあるソース断片と、プロンプトに含まれるソース断片は同じではありません。検索された行、整形後のコンテキスト、最終回答を記録します。整形で必要な例外が切り詰められた場合は、コンテキスト構築の失敗と分類します。入力に届かなかった情報の欠落を生成器の責任にしたり、ソースが別の場所に存在するだけで主張に根拠があると判定したりしないでください。

3. ケースごとに評価入力を設定する

ケースごとの評価設定:設定例であり、記録されたテストではありません

提案する RAG 評価コンポーネント
コンポーネント設定するカタログ入力続行前の確認
Load CSV と Data → DataFramecsv_file:レビュー済みコーパス。続いて data_list:JSON List。結果の各行に、識別可能なケースが一つずつあることを確認します。
Batch Rundf:準備したプロンプトテーブル。column_name:レビュー済みのプロンプト列。output_column_name:candidate_answer。model:設定済みの LanguageModel。これは列を処理するもので、各行について検索が自動実行される根拠ではありません。
Cleanlab RAG Evaluatorquery:ケースの質問。context:実際に渡した根拠。response:保存した回答。model:対応する設定済みの選択肢。quality_preset:"base"。api_key:ご自身の認証情報。trust_score と説明を、ソースのラベルと一緒にレビューします。
LangWatch Evaluatorevaluator_name:設定済みのプロバイダー評価器。input:質問。output:回答。contexts:根拠。expected_output:レビュー済みの受け入れテキスト。エクスポートには評価器名の選択肢がありません。試行前にプロバイダーを設定します。

ご自身のモデルと評価器のアカウント、必要な API キー、合成コーパスをそれらのサービスに送信する許可が必要です。プロバイダーの料金は別途請求されます。カタログには型付きの評価入力はありますが、検索からバッチ処理までの完全な構成手順はありません。一つのケースから始め、観測した値の対応を明示し、データセット実行を試みる前に各接続境界を検証します。

4. RAG評価で網羅性、根拠への忠実性、有用性をどう区別しますか?

検索の網羅性は、返された文章断片の識別子を正解識別子と比較します。根拠への忠実性は、回答の重要な主張が実際に渡したコンテキストで裏付けられるか確認します。有用性は、質問に答え、適用条件を保持しているか確認します。これらの判定は一致するとは限りません。回答不能のケースで回答を控えることは適切ですが、根拠がそろうケースでは不十分です。

Cleanlab RAG Evaluator は run_context_sufficiency、run_query_ease、run_response_groundedness、run_response_helpfulness というスイッチを公開しています。評価基準に関係するチェックを有効にし、確認用に other_scores、trust_explanation、evaluation_summary を保持します。エクスポートにはスコアの尺度、校正、万能の合格しきい値は定義されていません。数値出力は正しさを保証するラベルではありません。

Cleanlab Evaluator には一般的な回答評価用の prompt と response 入力があります。RAG 評価器のような、別名の context と query の仕様はありません。評価したい根拠に合うインターフェースを選び、自動の説明が説得力を持っていても、人による文章断片の確認を残します。

5. ケース識別子で版を比較する

コーパス、ソースの版、評価基準を固定します。検索またはプロンプトの選択を一つ変え、同じケースで新旧の結果を比較します。Table Operations で、operation を公開された選択肢 "Merge" に、merge_on_column をケース識別子に、merge_how を "outer" に設定します。結果を結合する前に識別子の一意性を検証してください。

比較例として、新しい検索要求が失敗し、基準となる回答はあるのに比較対象の回答がないケースを考えます。外部結合による比較では、失敗をレビューできるよう、そのケースが残るはずです。内部結合では除かれ、比較対象が実際より問題の少ないものに見える可能性があります。これは期待する比較の特性であり、記録された Table Operations の結果ではありません。変更を要約する前に、実際の結合後の行を確認します。

各実行で、モデルの選択、検索件数、プロンプトテキスト、評価器設定を保存します。回答が変わらなくても、評価器が変われば判定が変わる可能性があります。改善・悪化したケース、失敗した要求、欠落した出力をレビューしてください。回答不能のケースの失敗を平均値に埋もれさせたり、評価器のタイムアウトを回答成功として扱ったりしないでください。

6. 合成ケースは候補として使い、正解とはみなさない

aGenerate は schema、instructions、任意の source テーブルから模擬行を作れます。質問の別の言い回しや紛らわしい選択肢を作らせ、コーパスに加える前に承認済みの文章断片と照らしてレビューします。生成した候補と、手動でラベル付けしたケースを区別できるようにします。モデルが作った正解表は、テスト対象のシステムと同じ誤解を繰り返す可能性があります。

プラットフォーム評価チェックリストは、ビルダーの選定とテストを扱います。このガイドは特定の検索・回答タスクを評価します。エージェントのツール選択には、AI エージェント評価で説明する独自の観測が必要です。回答スコアを、権限、ツールの正しさ、デプロイの信頼性に関する主張に変えないでください。

7. 評価後にフォールバックの処理をテストする

Cleanlab Remediator は score、threshold、fallback_text、show_untrustworthy_response を公開しています。選んだ評価器の出力を理解し、ラベル付きケースをレビューしてからしきい値を使います。必須の score 入力は number を受け取るため、実際の数値出力との互換性を検証してください。フォールバックのルールは、欠けた断片を修復したり、誤った回答を正しくしたりしません。

この提案する評価構成を、慎重な判断が必要な意思決定の自律的なリリース判定に使わないでください。ユーザー向けフローを変える前に、エラー、ソースの網羅性、評価器間の不一致をレビューします。信頼できない回答をユーザーに見せずにフォールバックを監査できるよう、以前の出力を保存してください。

評価の予算

プラン:Goは年払いで月額USD8から(月払いUSD10)、Plusは月額USD16から(月払いUSD20)、Pro 100は月額USD80から(月払いUSD100)、Pro 200は月額USD160から(月払いUSD200)、Pro 500は月額USD400から(月払いUSD500)。毎月5,000~250,000 Flowi Tokensが含まれ、追加購入も可能です。ノード実行1回につき1トークン。サードパーティのAPIとモデルの利用料金は含まれません。

データセットの行、再実行、評価器の呼び出しは、本番チャットボットの会話とは独立して利用量を増やします。ケース数だけでなく、観測した実行経路から見積もってください。