MODULE m4 · 8.0 HOURS

检索质量指标 (Recall, MRR, nDCG)

已完成 0%

LEARNING OBJECTIVES

本模块目标

  1. 了解检索增强生成(RAG)流水线中检索阶段的重要性。
  2. 学习Recall, MRR, nDCG指标的概念及其在RAG系统评估中的意义。
  3. 分析检索到的上下文相关性对后续答案生成质量的影响。

RAG检索质量评估的重要性

RAG系统通过从外部数据库检索相关信息,并将其传递给LLM来生成答案 [S3]。因此,如果在检索阶段无法识别出相关性高且集中的上下文,即使是再强大的LLM也难以生成准确的答案 [S3]。评估检索质量是改善RAG架构整体性能的第一步。

主要检索评估指标

  1. Recall (召回率):衡量实际正确答案是否包含在检索到的前k个结果中。即确认所需信息是否被检索系统捕捉到的指标。
  2. MRR (平均倒数排名):衡量用户问题的正确答案(相关文档)位于检索结果列表中的第几个位置。相关文档出现的位置越靠前,MRR值越接近 1,得分越高。
  3. nDCG (归一化折损累计增益):考虑检索结果顺序的指标,相关性高的文档位于顶部时赋予更高的分数。比起单纯的包含与否(Recall),它能更精确地评估检索结果的“排序准确性”。

在有参考数据(Ground Truth)的情况下,这些指标对于系统改进至关重要,而像Ragas这样的框架提供了可以定量分析这些维度的工具 [S3, S4]。

WORKED EXAMPLES

讲解示例

  1. 若系统对问题的返回顺序为 [DocB, DocA, DocC],且正确答案相关文档为DocA?MRR计算:DocA是第 2 个,因此倒数排名(Reciprocal Rank)为 1/2 = 0.5。
  2. 当k= 3 时,如果前 3 个检索结果中包含正确文档,则 Recall @ 3 = 1;如果不包含,则 Recall @ 3 = 0。

LAB PROTOCOL

检索质量指标定量测量实践

  1. 1

    使用评估集(问题、正确答案文档)准备 50 个样本数据。

  2. 2

    执行检索模块,为每个问题返回前k个文档(k= 3, 5, 10)。

  3. 3

    使用Python直接实现或使用库来计算 Recall, MRR, nDCG 指标。

  4. 4

    将各问题的指标结果整理为数据帧(DataFrame)并进行可视化。

安全检查
  • 不要将包含个人隐私或私密文档的数据集发送给外部API。
  • 实验时设置API费用限制,并利用缓存来优化请求次数。

实验提交物

  • 包含各问题 Recall, MRR, nDCG 值的结果数据帧 CSV 文件
  • 显示指标分布的直方图及箱线图图像

ASSIGNMENT

检索器(Retriever)性能对比报告

提交物

评分标准

  • 是否准确计算了 Recall, MRR, nDCG 指标?
  • 是否对检索性能差异进行了统计学上有意义的解释?
  • 是否系统地分类了失败类型?

KNOWLEDGE CHECK

理解检查

1在RAG系统中,检索阶段的质量对生成阶段有什么影响?
2MRR指标最高的情况是什么?

FIELD CHECK

完成标准

  • 完成了 Recall, MRR, nDCG 计算代码并应用于样本数据。
  • 对比两种检索策略并得出了定量分析结果。
  • 至少将检索失败类型分类为 3 种以上并记录在报告中。

MODULE SOURCES

本模块参考资料

  1. [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
  2. Ragas: Automated Evaluation of Retrieval Augmented Generationarxiv.org · paper