为了检测 RAG 系统给出的答案在事实正确的情况下是否不完整或缺乏细节,开发者应着重于将系统的输出与检索到的源文档进行比较。一个关键步骤是分析答案是否省略了来源中存在的关键信息,即使包含的信息是准确的。例如,如果用户问:“气候变化的原因是什么?”,而 RAG 答案正确地列出了温室气体,但未提及森林砍伐(该信息在来源中),这种遗漏表明了不完整性。为了实现自动化,您可以实施一些检查来衡量答案和源内容之间的重叠程度,例如使用关键词匹配、实体提取或语义相似度评分(例如,答案嵌入和源文本嵌入之间的余弦相似度)。如果答案缺少来源中明确出现的术语或概念,则表明信息缺失。
另一种方法是验证答案的深度。例如,如果源文档用三个步骤解释了一个技术过程,但 RAG 答案只总结了一个步骤,那么这个答案是不完整的。开发者可以创建测试用例,根据预定义的标准对答案进行评分,例如涵盖的关键点的数量。BERTScore 或 ROUGE 等工具可以量化答案与源内容的对齐程度。然而,这些指标并非完美——它们可能会遗漏细微的遗漏。一个实用的解决方案是设计一个基于规则的层,将低于某个长度或复杂性阈值的答案标记出来以供手动审查。例如,如果用户要求对神经网络进行详细解释,而 RAG 的响应只有两句话,尽管来源包含多个段落,系统应将其标记为可能不完整。
最后,整合人机循环验证或用户反馈机制可以帮助识别系统性缺陷。例如,如果用户持续提出关于同一主题的后续问题,这表明最初的答案缺乏足够的细节。开发者还可以记录 RAG 系统检索到多个相关来源但答案只综合了其中一部分的情况。例如,如果一个医疗查询检索到五个关于治疗方案的研究,但答案只提到了其中两个,这种差异突出了不完整性。定期对照源文档审核系统的输出,并改进检索或摘要参数(例如,增加检索到的段落数量)可以随着时间的推移缓解这些问题。