ビジネス・社会解説
RAGの検索精度をどう測る?回答評価の前に正解文書付きqueryを作る

目次
結論
回答品質の前にretrievalだけを測るため、正解文書・hard negative・metadata filter・query typeを固定したeval setを作ります。
このテーマでは、サービス名や流行語から先に結論を出すより、何を決める記事なのかを固定してから必要な事実を集める方が安全です。価格、plan、API、policy、求人、地域など変わる情報には観測日を付け、性能や収益のように環境依存の数字は自分のraw dataと分離します。
まず作るもの:正解文書・難易度・filter条件付きretrieval eval set
retrieval eval set schema
| Query ID | Query | Correct doc(s) | Hard negative | Filter/ACL | Query type | Difficulty |
|---|---|---|---|---|---|---|
| q001 | exact term / semantic / mixed | |||||
| q002 |
回答生成を切り離し、まずretrieval側のRecall@k/MRR/coverageを計算できる形にする。
この表で重要なのは、空欄を埋めることではありません。一次情報で確認できない条件、まだ測っていない値、契約前にしか分からない条件は未確認のまま残すことです。空欄は次の問い合わせ・PoC・measurementの入口になります。
なぜ単純な「おすすめ順」で決めないのか
法人AIのgovernanceは、product名ではなくdata・identity・model・ツール・log・運用責任者のcontrolで設計します。同じvendorでもplan、endpoint、地域、admin設定で条件が変わります。
security/controlの有無だけでなく、どの経路・event・data typeまでcoverageされるかを確認します。『SSOあり』『DLPあり』『audit logあり』の一語で必要要件を満たしたことにはしません。
変更可能性を前提に、参照URL、確認日時、責任者、refresh triggerを残します。model lifecycle、地域 routing、AI feature、retentionは特にevent-driven refresh対象です。
そのため、候補を並べる順番は「有名」「安い」「新しい」ではなく、必須条件を満たすか→未確認riskは何か→総費用/運用負荷が見合うか、の順にします。
比較するときに最初に見る3項目
1. Recall@k
Recall@k は「対応あり/なし」だけでなく、対象data・event・identity・地域・planと例外条件まで確認します。契約/docs上のcontrolと、自社で追加実装するcontrolを別列にします。
2. MRR
MRR は「対応あり/なし」だけでなく、対象data・event・identity・地域・planと例外条件まで確認します。契約/docs上のcontrolと、自社で追加実装するcontrolを別列にします。
3. filters
filters は「対応あり/なし」だけでなく、対象data・event・identity・地域・planと例外条件まで確認します。契約/docs上のcontrolと、自社で追加実装するcontrolを別列にします。
4・5番目の軸も同じ証拠形式でそろえる
残る query types / coverage も判断表へ同じ粒度で入れます。候補Aだけ細かく調べ、候補Bはmarketing pageの要約だけ、という比較は避けます。条件が揃わないセルは「不明」とし、その不明点が判断を左右するなら公開結論を弱めるか確認を待ちます。
実務での進め方
- この記事で決めたいことを1文にする。
RAG 検索精度 評価で読者が最後に何を選ぶ・止めるのかを明確にします。 - 必須条件を先に固定する。 価格を見る前にsecurity、権利、地域、latency、運用責任者など外せない条件を決めます。
- 公式一次情報で変わり得る 項目を埋める。 plan、fee、limit、feature、policyはスクリーンショットや転載記事ではなくcurrent公式sourceへ戻ります。
- workload依存値は自分のdataへ分離する。 実測が必要な項目は検証 protocolを先に作り、結果がない段階では空欄にします。
- 除外条件を適用する。 必須条件を満たさない候補を先に外し、残った候補だけでTCOや工数を比べます。
- 確認日時を残す。 後日refreshするときに、何が変わったかを差分で確認できるようにします。
選ばない・進めない条件
正解文書のない質問で『それっぽい回答』だけを見て検索精度を判定しません。
「買わない」「契約しない」「公開しない」「本番化しない」という条件を持つと、比較記事が単なる紹介記事になりにくくなります。選択肢を増やすより、危険な前提を落とすことの方が読者の意思決定には有効です。
参考にした一次情報
- Elastic — Hybrid search
- Qdrant — Hybrid Search
- Pinecone — Documentation
- NIST — Generative AI Profile (NIST AI 600-1)
- OWASP — LLM / GenAI Security guidance
まとめ
回答品質の前にretrievalだけを測るため、正解文書・hard negative・metadata filter・query typeを固定したeval setを作ります。
条件が変わりやすい領域ほど、結論そのものより再判定できる表を残すことに価値があります。次回更新では、判断表の変わったセルだけを公式sourceまたは実際の観測結果で更新し、同じ判断基準でもう一度判定してください。
まとめ
- 回答品質の前にretrievalだけを測るため、正解文書・hard negative・metadata filter・query typeを固定したeval setを作ります。 条件が変わりやすい領域ほど、結論そのものより**再判定できる表**を残すことに価値があります。次回更新では、判断表の変わったセルだけを公式sourceまたは実際の観測結果で更新し、同じ判断基準でもう一度判定してください。