MODULE m6 · 8.0 HOURS
引用准确度及来源追踪
已完成 0%
LEARNING OBJECTIVES
本模块目标
- 理解RAG系统中的回答在多大程度上忠实于检索到的文档内容。
- 学习引用(Citation)准确度的定义及其测量方式。
- 利用Ragas框架定量评估回答的忠实度(Faithfulness)和回答相关性(Answer Relevance)。
- 设计验证模型回答中来源可追踪性的流程。
RAG系统的引用及忠实度评估
RAG(检索增强生成)系统利用外部知识库来降低LLM产生幻觉(Hallucination)的风险,但验证生成的回答是否准确引用了检索到的文档是一个必要过程 [S4]。
1. 主要评估指标
- 忠实度 (Faithfulness): 衡量生成的回答是否源于提供的检索上下文(Context)。回答中的所有主张都必须基于检索到的文档,如果仅凭外部知识或模型的预训练知识进行回答,得分会降低 [S4]。
- 回答相关性 (Answer Relevance): 评估回答与给定问题之间的直接相关程度。即使检索到的信息充足,该指标也能用于识别回答偏离问题意图的情况。
2. 引用准确度验证流程
引用准确度是指识别回答中的特定句子引用了检索上下文的哪一部分,并确认其是否与原文档的事实一致的过程。自动化评估框架Ragas为这一过程提供了无需引用数据(Ground Truth)即可评估忠实度的指标 [S4]。
3. 失败类型分类
- 漏引: 回答的事实关系虽存在于检索文档中,但未进行引用标注。
- 虚假引用: 将检索文档中不存在的内容标记为引用。
- 事实扭曲: 虽然正确标记了引用,但因误解原意而导致生成内容有误。
WORKED EXAMPLES
讲解示例
- 示例 1:忠实度得分计算。针对问题“A公司的 2025 年销售额是多少?”,生成了回答“A公司的 2025 年销售额为 100 亿。”。如果背景文档中包含“A公司在 2025 年记录了 100 亿销售额。”,由于回答的所有信息都存在于上下文中,因此该回答的忠实度得分被评为 1.0(最高分)。
- 示例 2:引用准确度错误识别。针对问题“A公司的成立年份是?”,生成了回答“A公司成立于 1990 年(参考:文档 1)。”,但文档 1 中明确写着“A公司成立于 1995 年”,这被归类为“事实扭曲”失败类型,并判定为引用准确度较低。
LAB PROTOCOL
使用Ragas进行回答忠实度自动化评估实践
- 1
准备待评估RAG系统的检索结果(Context)和生成的回答(Answer)数据集。
- 2
安装Ragas框架并加载回答数据集。
- 3
使用Ragas的 `Faithfulness` 指标为数据集中的每个问答对计算得分。
- 4
单独提取出忠实度低于 0.7 的 30 条回答。
- 5
对提取的样本进行人工审核,并标记对应的失败类型(“漏引”、“虚假引用”、“事实扭曲”)。
安全检查
- 在评估过程中使用的文档语料库中,请预先进行去标识化处理,以防包含个人信息或企业机密。
- 调用外部API时请设定费用上限,并固定随机种子(Seed)值以确保可重现性,防止重复产生API费用。
实验提交物
- 包含评估结果的Jupyter Notebook文件(.ipynb)
- 忠实度得分分布可视化图表
- 包含人工审核记录的失败类型分类表
ASSIGNMENT
RAG系统可靠性回归评估报告撰写
提交物
评分标准
- 是否准确说明了评估指标的定量计算方法?
- 检索文档与生成回答之间的引用关系是否逻辑可追溯?
- 失败类型分类是否与人工审核数据一致并提出了合理的论据?
KNOWLEDGE CHECK
理解检查
FIELD CHECK
完成标准
- 通过Jupyter Notebook完成自动化评估指标计算。
- 提交至少 30 条回答样本的人工审核及失败类型分类记录。
- 编写包含评估结果及改进方案的最终报告。
MODULE SOURCES
本模块参考资料
- Ragas: Automated Evaluation of Retrieval Augmented Generationarxiv.org · paper