衡量答案对所提供文档的忠实度意味着检查答案是否准确反映了源材料中的信息,而没有引入不支持的主张或矛盾之处。这在诸如检索增强生成 (RAG) 之类的系统中至关重要,因为在这些系统中,答案必须始终基于提供的上下文。通常通过将生成的答案的主张与源文档进行比较,并验证每个语句是否直接由源支持、从逻辑上推断出或未提及(但不与源冲突)来评估忠实度。
用于忠实度的自动化指标通常依赖于自然语言理解技术。例如,RAGAS(检索增强生成评估)包括一个忠实度指标,该指标使用两步法:首先,它使用语言模型 (LM) 从生成的答案中提取所有主张,然后使用蕴含检测模型或第二个 LM 检查每个主张是否被源文档蕴含。其他工具,如 BERTScore 或 BLEURT,比较答案和源文本之间的语义相似性,但它们对于忠实度的精确度较低,因为它们侧重于整体对齐,而不是主张级别的验证。一些框架还使用精确率(答案主张中受源支持的百分比)和召回率(包含多少源事实)作为代理。例如,如果一个来源声明“埃菲尔铁塔于 1889 年竣工”,则声称它是“建于 1889 年”的答案将在忠实度方面得分很高,而添加“由古斯塔夫·埃菲尔设计”(如果来源省略了设计师)将降低得分。
虽然自动化指标很有用,但它们也有局限性。蕴含模型可能会遗漏细微的矛盾,并且用于主张提取的 LM 可能会引入错误。开发人员通常将多个指标和人工验证结合起来以提高鲁棒性。例如,一个管道可以使用 RAGAS 来过滤低置信度的答案,然后应用基于规则的检查来检查来自源的特定关键字或数字。 像 LlamaIndex 的评估模块或 TruLens 这样的工具为此提供了可定制的工作流程。 最终,选择取决于用例:高风险应用程序可能需要更严格的验证,而更简单的系统可能优先考虑使用基本的语义相似性检查来提高速度。