尽管大型语言模型能力非凡,但其存在一个致命弱点:倾向于产生“幻觉”,即听起来合理但事实不准确的断言。有时,这些幻觉可能非常微妙:例如,模型可能做出基本准确的断言,但日期只错了一两年。
为了帮助检测此类细微的幻觉,某机构发布了 RefChecker(“Ref”代表“参考”),这是一个结合了新的幻觉检测框架和用于评估不同上下文下幻觉的基准数据集的工具。
以往的幻觉检测框架使用句子或短短语来表征大语言模型生成文本中的事实断言,而 RefChecker 则使用具有 <主体, 谓词, 客体> 结构的知识三元组(与知识图谱中表示数据所用的结构相同)。这能够实现对大语言模型输出更细粒度的评估,从而更加精确和更具信息量。
该基准数据集涵盖三种不同的场景:
数据集为每种场景包含 100 个示例。
幻觉检测的目标是根据一组参考资料检查大语言模型生成回复的事实性。此问题涉及三个主要问题:
RefChecker 可以适配三种寻找参考资料的方式,对应于基准数据集中的三种数据类型:零上下文(例如开放域问答);噪声上下文(例如检索增强生成);精确上下文(例如摘要)。
数据集中的示例从以下数据源随机采样:
场景 | 数据源 | 任务 | 参考资料 |
|---|---|---|---|
零上下文 | NaturalQuestions(开发集) | 闭卷问答 | 标注的长答案 |
噪声上下文 | MS MARCO(开发集) | 检索增强生成 | 检索到的段落 |
精确上下文 | databricks-dolly-15k | 摘要、闭卷问答、信息提取 | 输入上下文 |
与现有分析段落或句子的方法不同,RefChecker 将大语言模型的回复分解为知识三元组。这使我们不仅能测试单个知识点的真实性,还能提供更具信息性和更精确的洞察。
非正式地说,主张是被检查的单位。以往的工作使用从大语言模型生成文本中摘录的句子或短语作为主张。RefChecker 则探索使用知识三元组来表示主张。这种方法受到知识图谱的启发,知识图谱使用具有 <主体, 谓词, 客体> 结构的三元组来封装事实知识。知识三元组比句子或子句能捕捉到大语言模型生成文本中更细粒度的信息。
下面是一个句子及其对应细粒度三元组的示例:
句子: “Richard Mulligan 在《The Partridge Family》中扮演了 Mr. Kincaid。”
主体 | 谓词 | 客体 |
|---|---|---|
Richard Mulligan | 扮演角色 | Mr. Kincaid |
Mr. Kincaid | 角色出现于 | The Partridge Family |
RefChecker 并非简单地声明整个回复是否存在幻觉,而是检查大语言模型生成文本中嵌入的主张。大语言模型对提示的回复与相应参考资料之间的基本关系可以用维恩图表示。
回复与参考资料的交集表示可以直接验证的主张,根据是否得到参考资料的支持,可分为蕴含(绿色对勾)或矛盾(红色叉号)。
在实际应用中,参考资料可能并不总是提供足够的证据来验证所有主张。在这种情况下,评估主张的真实性需要额外的证据(橙色问号);我们将此类主张称为中立。
这三种分类与事实核查文献以及自然语言推理中常用的“支持”、“反驳”和“信息不足”类别紧密对应。RefChecker 使用这种三向分类,而非传统的二元标签,以精确建模回复与参考资料之间的关系。
RefChecker 由两个可配置模块组成:主张三元组提取器 E 和幻觉检查器 C。您还可以配置结果的汇总方式,以在三元组级别的检测和回复级别的幻觉报告之间进行转换。这些模块可以单独扩展和改进。
我们发现大语言模型通常擅长从输入文本中提取主张三元组。在 RefChecker 的初始版本中,我们同时使用了 GPT-4 和 Claude 2。我们将在下一版本中提供一个基于 Mixtral-8x7B 的开源提取器。
回复文本与参考文本中提取出的主张三元组之间的一致性程度可以手动或自动评估。我们将很快发布一个可用于手动评估的标注工具。在 RefChecker 的初始版本中,我们还提供了基于 GPT-4、Claude 2 和 RoBERTa-NLI 的自动检查器。更多开源检查器(如 AlignScore 和我们自己的基于 Mistral 的检查器)将很快推出。我们发现,在自动检查器之间进行多数投票,能获得与人工标注最高的一致性。
我们相信,检测并精确定位细微的、细粒度的幻觉是制定有效缓解策略的第一步。如需反馈,请随时通过 GitHub 问题联系我们。我们欢迎并期待您通过拉取请求进行贡献和改进。
致谢: Lin Qiu, Zheng ZhangFINISHED
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。