RAG 检索效果怎么评估?用命中率与 MRR 核对 Top-K

用带相关文档标注的问题集评估 RAG 检索,计算 Hit Rate 与 MRR,并分别检查 Top-K、无答案和版本变化。

生成答案看起来流畅,不能证明检索正确。RAG 检索评估应先冻结问题与相关文档标注,再计算 Hit Rate、MRR 等指标,定位目标文档是否进入 Top-K 以及排在第几位。 本文基于 LlamaIndex Retriever Evaluation 示例说明指标,未在你的语料上运行;指标定义、是否允许多个相关文档和节点 ID 映射需要在项目中书面固定。

本篇验收要点:对每个问题保存 expected_ids,若 Top-K 至少包含一个相关 ID 则记为命中,再计算全部问题的 Hit Rate。 记录第一个相关结果的排名 r,单题倒数排名为 1/r;未命中为 0,最后对测试集取平均。

RAG 检索效果怎么评估?用命中率与 MRR 核对 Top-K

开始前准备

  • 至少 30 条真实问题
  • 每题人工核对的相关 document_id 或 node_id
  • 固定语料版本和索引配置
  • 可导出检索排名的评测代码

按顺序搭建

  1. 从真实查询和关键任务抽样,覆盖精确术语、同义表达、跨段落和无答案问题;不要只让模型生成容易题。
  2. 由人工阅读语料,为每题标注 expected_ids。若存在多个可接受文档全部记录,并解决 ID 与索引节点的映射。
  3. 冻结嵌入模型、切片、Top-K、过滤与重排配置,运行 RetrieverEvaluator,保存每题实际排名。
  4. 计算 Hit Rate 与 MRR,同时按问题类型分组;总体平均可能掩盖某一类完全失败。
  5. 逐条阅读未命中和低排名样本,判断是语料缺失、切片、查询、过滤、嵌入还是重排问题,再一次只改一个变量。

可复制的最小示例

三条样例可以这样手算,先确认团队采用的公式:

Q1 expected=D1, retrieved=[D1,D3,D8] -> hit=1, RR=1
Q2 expected=D5, retrieved=[D2,D5,D9] -> hit=1, RR=1/2
Q3 expected=D7, retrieved=[D2,D4,D9] -> hit=0, RR=0
Hit Rate=2/3;MRR=(1+0.5+0)/3=0.5

怎样验收结果

验证标准是同一语料版本和配置能重复得到相同排名,expected_ids 可人工回查,Hit Rate 与 MRR 计算可复算,修改检索参数后同时报告提升与退化样本。

  • 问题来自真实任务并覆盖难例
  • 标注 ID 与索引 ID 一致
  • 固定 Top-K 和过滤条件
  • 保存每题排名而不只留平均值

常见失败与处理

  • 指标异常为零:检查 expected_ids 与检索 node_id 的映射。
  • Hit Rate 高但答案差:继续评估上下文和生成,不把检索指标当最终质量。
  • 调参后测试集越来越好:留出未参与调参的验证集,避免过拟合。

读者下一步是人工标注 30 条问题的相关文档 ID,先运行当前检索器作为不可覆盖的基线。

相关问答

Hit Rate 和 Recall@K 有什么区别?

在每题只有一个相关目标时表现接近;多个相关文档时 Recall@K 关注找回比例,项目应固定定义。

MRR 越高答案就越可靠吗?

不一定。MRR 只衡量第一个相关结果排名,答案还受上下文拼装和生成模型影响。

官方资料与适用边界

Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/32463.html

赞 (0)
AI小管家的头像AI小管家
RAG 元数据过滤怎么设计?按租户和文档版本限制检索范围
上一篇 1小时前
RAG 回答怎么显示引用?保留来源 ID、页码与原文片段
下一篇 1小时前

相关推荐

联系我们

联系我们

1

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
关注微信
分享本页
返回顶部