MODULE m4 · 8.0 HOURS
检索质量指标 (Recall, MRR, nDCG)
已完成 0%
LEARNING OBJECTIVES
本模块目标
- 了解检索增强生成(RAG)流水线中检索阶段的重要性。
- 学习Recall, MRR, nDCG指标的概念及其在RAG系统评估中的意义。
- 分析检索到的上下文相关性对后续答案生成质量的影响。
RAG检索质量评估的重要性
RAG系统通过从外部数据库检索相关信息,并将其传递给LLM来生成答案 [S3]。因此,如果在检索阶段无法识别出相关性高且集中的上下文,即使是再强大的LLM也难以生成准确的答案 [S3]。评估检索质量是改善RAG架构整体性能的第一步。
主要检索评估指标
- Recall (召回率):衡量实际正确答案是否包含在检索到的前k个结果中。即确认所需信息是否被检索系统捕捉到的指标。
- MRR (平均倒数排名):衡量用户问题的正确答案(相关文档)位于检索结果列表中的第几个位置。相关文档出现的位置越靠前,MRR值越接近 1,得分越高。
- nDCG (归一化折损累计增益):考虑检索结果顺序的指标,相关性高的文档位于顶部时赋予更高的分数。比起单纯的包含与否(Recall),它能更精确地评估检索结果的“排序准确性”。
在有参考数据(Ground Truth)的情况下,这些指标对于系统改进至关重要,而像Ragas这样的框架提供了可以定量分析这些维度的工具 [S3, S4]。
WORKED EXAMPLES
讲解示例
- 若系统对问题的返回顺序为 [DocB, DocA, DocC],且正确答案相关文档为DocA?MRR计算:DocA是第 2 个,因此倒数排名(Reciprocal Rank)为 1/2 = 0.5。
- 当k= 3 时,如果前 3 个检索结果中包含正确文档,则 Recall @ 3 = 1;如果不包含,则 Recall @ 3 = 0。
LAB PROTOCOL
检索质量指标定量测量实践
- 1
使用评估集(问题、正确答案文档)准备 50 个样本数据。
- 2
执行检索模块,为每个问题返回前k个文档(k= 3, 5, 10)。
- 3
使用Python直接实现或使用库来计算 Recall, MRR, nDCG 指标。
- 4
将各问题的指标结果整理为数据帧(DataFrame)并进行可视化。
安全检查
- 不要将包含个人隐私或私密文档的数据集发送给外部API。
- 实验时设置API费用限制,并利用缓存来优化请求次数。
实验提交物
- 包含各问题 Recall, MRR, nDCG 值的结果数据帧 CSV 文件
- 显示指标分布的直方图及箱线图图像
ASSIGNMENT
检索器(Retriever)性能对比报告
提交物
评分标准
- 是否准确计算了 Recall, MRR, nDCG 指标?
- 是否对检索性能差异进行了统计学上有意义的解释?
- 是否系统地分类了失败类型?
KNOWLEDGE CHECK
理解检查
FIELD CHECK
完成标准
- 完成了 Recall, MRR, nDCG 计算代码并应用于样本数据。
- 对比两种检索策略并得出了定量分析结果。
- 至少将检索失败类型分类为 3 种以上并记录在报告中。
MODULE SOURCES
本模块参考资料
- [2309.15217] Ragas: Automated Evaluation of Retrieval ... Ragas: Automated Evaluation of Retrieval Augmented Generation RAGAS: Automated Evaluation of Retrieval Augmented Generation RAGAs: Automated Evaluation of Retrieval Augmented Generation RAGAS: Automated Evaluation of Retrieval Augmented Generation RAGAS: Automated Evaluation of Retrieval Augmented Generationarxiv.org · paper
- Ragas: Automated Evaluation of Retrieval Augmented Generationarxiv.org · paper