如何评估 RAG 回答的引用准确性与证据覆盖?

考查重点:引用支持与证据覆盖。逐条检查引用是否存在、位置是否正确、是否支持对应断言;再统计关键结论有多少被证据覆盖,区别于答案相关性和泛泛忠实性评分

本题目录

参考答案

GPT ResearcherPython

基于 GPT Researcher

核心回答

把报告拆成需要依据的事实断言,逐条检查“引用是否来自本次材料、引用内容是否支持该断言、重要结论是否都有证据”。网址能打开、主题相关、文末列有参考资料,都不足以证明引用准确。 还要区分检索是否找到证据、筛选是否保留证据,以及写作是否正确使用证据。

GPT Researcher 普通研究链会搜集资料、筛选上下文,再生成报告。上下文保留 Source、Title、Content;默认报告提示要求每个实质性论断、数字和引语有正文引用,不能使用未提供的来源。这为溯源提供了基础,但不是程序逐条验证了引用蕴含关系。上下文格式、报告引用提示。

先保存能够复核的研究记录

评估一个报告,至少保存研究问题及时间范围、抓取正文、来源地址、筛选后上下文、最终报告,以及它们使用的配置。只保存报告和几个网址,网页更新后就难以确定模型当时看见了什么。抓取时间也不等于事件发生时间,二者需要分别处理。

当前 visited_urls 主要帮助避免重复抓取:_get_new_urls() 在实际抓取前就加入集合。它不能直接作为“成功获取且已支持结论”的来源清单;不同网址转载同一篇新闻,也不会因此变成多份独立证据。访问集合更新。用于评测的证据记录应补充正文快照、发布时间和原始出处,分别标注抓取失败、未选入上下文、已用于报告等情况。

引用准确性怎样检查

先用规则检查引用格式、是否有对应的本次来源、能否定位正文;再核对正文与断言的关系。把“营收增长、市场排名第一、原因是某项政策”拆成独立事实,不能因为一段材料只支持营收,就把整句话都判为有依据。

语义检查至少区分支持、部分支持、不支持和矛盾。对于数字,核对单位、分母、统计范围和日期;对于因果关系,不能把“同时发生”扩写成“导致”;对于预测和建议,保留其性质,不能当作已经发生的事实。多份资料共同支撑一句话时,也要保留每份证据的作用。

可以按预先约定的断言粒度统计两项:

  • 引用有效性: 检查引用是否对关联断言提供有效支持,并单列无关引用、来源错误和只支持部分信息的情况。
  • 断言证据覆盖率: 需要证据的事实断言中,有多少获得了足够的引用支持。未加引用的事实也进入分母,不能靠少写引用提高分数。

ALCE 的引用质量评估分别考察断言获得引用支持,以及是否夹带无关引用;实际项目需要事先固定断言切分、联合支持和部分支持的判定规范。自动判定器也会漏判,数字、冲突来源和关键结论应保留人工复核,不能用模型给出的总体高分替代逐条依据。

还要检查遗漏了哪些关键事实

“写出来的内容都有来源”不等于回答完整。例如问题要求比较两家公司本年度的收入、成本和风险,报告只写了一家的收入,即使该数字引用完全正确,任务仍未覆盖。

为固定问题标注必须回答的事实及支持材料,分别检查它们是否进入原始抓取、筛选后上下文和最终报告。证据没抓到,要查检索;抓到了却被筛掉,要查上下文选择;材料仍在却写错或漏写,要查生成。百炼 RAG 诊断采用分阶段保留召回与回答结果的方式定位问题;OpenSearch 评测说明也将检索完整度、忠实性与回答完整性分开。

还应避免混淆两个分母:断言证据覆盖针对“报告写出的事实”,任务覆盖针对“问题要求回答的事实”。前者可以很高,后者仍可能很低。一般忠实性评估检查回答能否由所给上下文推出,并不自动检查每一条指定引用是否准确,也不证明原始来源本身真实。Ragas 的忠实性定义。

当前实现提供了什么,还需要补什么

普通报告生成器发现上下文为空时,会明确无法生成可靠的有来源报告;非空上下文仍可能不足以回答问题,不能把这条空值保护说成完整证据审核。无资料时的处理。

仓库还有将访问网址排序后附加到末尾的 add_references(),用于详细报告的拼装;普通报告写作主要依赖引用提示。这个辅助函数只拼接网址,不读取相应正文证明论断。其他多 Agent 模式的事实检查步骤,也不能直接归到普通链中。参考资料拼接。

若要完善质量验收,应补上断言与证据的关联记录,并用同一批冻结材料比较筛选策略和报告结果:统计引用有效性、断言证据覆盖、任务事实覆盖,同时观察延迟和输入成本。加入错误年份、转载重复、相互冲突的数字、抓取失败和没有答案的样例,确认系统能说明缺口。这是改进与评测方案,不是当前项目已经取得的准确率。

相关面经

1 篇

DeepSeek

Agent 开发
查看原面经 →
面试官追问:怎么定义幻觉和引用错误?

收录题集

1 个来源,共1 份题集

相关题目

4 题