检索侧评测:召回率与评测集

RAG 工程化进阶15讲解 3

有标注时检索侧最可靠:recall@k、MRR、NDCG 直接量化「该召回的召回了没有」。评测集从真实 query 日志、badcase 与人工构造三处来,按场景分桶;凑不齐一千条也要先跑起来,「知识库里没有答案」这一桶必须单独留。

也叫:召回率 · recall@k · MRR · NDCG · 评测集 · 检索评测

检索侧(有标注时最可靠)出自 T2-8

指标 回答什么问题 什么时候看它
Recall@k 正确文档进候选了吗 最重要——没进候选,后面全白搭
Precision@k 候选里有多少是相关的 噪音多不多
MRR 第一个正确结果排第几 单答案场景
NDCG@k 整体排序质量(考虑位置权重) 多个相关文档时

优先级:先保 Recall(别漏),再优化 NDCG/MRR(别排错)。漏召回是不可逆的,排序错还有 rerank 能救。

以上节选自T2-8 RAG 评测:召回率、RAGAS 与 badcase 驱动迭代,读全文能看到前后语境。

怎么建评测集(最关键的一步)出自 T2-8

  1. 来源:优先真实用户提问日志。没上线就自己写 + 让 LLM 基于文档生成候选问题再人工筛。
  2. 规模100–200 条起步就够用了。别因为「凑不齐一千条」而迟迟不建——没有评测集的优化全是玄学。
  3. 分桶:按问题类型标注(事实型 / 多跳型 / 专有名词型 / 口语型 / 知识库里没有的)。只看总平均会掩盖局部劣化——某个改动可能提升了总分却打坏了某一类。
  4. 标注:给每个问题标出正确的 chunk(用于算 recall)和参考答案(用于算 context recall)。
  5. 必须有一类「知识库里没有答案」的问题,用来测系统会不会老老实实说不知道。这类样本几乎所有人都会漏掉。

以上节选自T2-8 RAG 评测:召回率、RAGAS 与 badcase 驱动迭代,读全文能看到前后语境。

延伸阅读

考这个知识点的题1

会连带问到14