生成答案看起来流畅,不能证明检索正确。RAG 检索评估应先冻结问题与相关文档标注,再计算 Hit Rate、MRR 等指标,定位目标文档是否进入 Top-K 以及排在第几位。 本文基于 LlamaIndex Retriever Evaluation 示例说明指标,未在你的语料上运行;指标定义、是否允许多个相关文档和节点 ID 映射需要在项目中书面固定。
本篇验收要点:对每个问题保存 expected_ids,若 Top-K 至少包含一个相关 ID 则记为命中,再计算全部问题的 Hit Rate。 记录第一个相关结果的排名 r,单题倒数排名为 1/r;未命中为 0,最后对测试集取平均。

开始前准备
- 至少 30 条真实问题
- 每题人工核对的相关 document_id 或 node_id
- 固定语料版本和索引配置
- 可导出检索排名的评测代码
按顺序搭建
- 从真实查询和关键任务抽样,覆盖精确术语、同义表达、跨段落和无答案问题;不要只让模型生成容易题。
- 由人工阅读语料,为每题标注 expected_ids。若存在多个可接受文档全部记录,并解决 ID 与索引节点的映射。
- 冻结嵌入模型、切片、Top-K、过滤与重排配置,运行 RetrieverEvaluator,保存每题实际排名。
- 计算 Hit Rate 与 MRR,同时按问题类型分组;总体平均可能掩盖某一类完全失败。
- 逐条阅读未命中和低排名样本,判断是语料缺失、切片、查询、过滤、嵌入还是重排问题,再一次只改一个变量。
可复制的最小示例
三条样例可以这样手算,先确认团队采用的公式:
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