新工具和数据集助力检测大语言模型中的幻觉现象
概述
大语言模型(LLMs)虽能力卓越,却存在一个致命弱点:倾向于产生“幻觉”,即做出听起来合理但事实不准确的断言。这些幻觉有时非常微妙,例如断言基本准确但日期错了一两年。
为了帮助检测此类微妙幻觉,某机构发布了 RefChecker(“Ref”代表“reference”),这是一个结合了新幻觉检测框架和基准数据集的工具,用于评估不同上下文中的幻觉[citation:1]。
RefChecker 的创新方法
知识三元组表示
与以往使用句子或短语作为声明摘要的幻觉检测方法不同,RefChecker 使用具有 <主语、谓语、宾语> 结构的知识三元组——这与知识图谱中表示数据所用的结构相同[citation:1]。这种方法能够对 LLM 的输出进行更细粒度的评估,从而更精确、信息更丰富。
基准数据集
该基准数据集涵盖三种不同的设置:
- 零上下文(Zero context):LLM 在没有任何参考文本的情况下生成文本来回答问题。
- 嘈杂上下文(Noisy context):为 LLM 提供可能包含或不包含准确信息的检索文档列表(检索增强生成或 RAG 设置)。
- 准确上下文(Accurate context):为 LLM 提供一份准确文档。
数据集为每种设置包含了 100 个示例[citation:1]。
幻觉检测的核心问题
幻觉检测的目标是根据一组参考文本来检查 LLM 生成响应的事实性。此问题设置引发了三个主要问题:
-
如何以及在哪里找到参考文献? RefChecker 可以适应三种不同的寻找参考文献的方式,与基准数据集中的三种数据类型相对应:零上下文(例如开放域问答)、嘈杂上下文(例如检索增强生成)和准确上下文(例如摘要任务)。
-
评估的粒度? 与分析段落或句子的现有方法不同,RefChecker 将 LLM 响应分解为知识三元组。这允许检验个体知识点的真实性,并提供信息更丰富、更精确的洞察。 知识三元组比句子或子句能捕捉到 LLM 生成文本中更细粒度的信息。
-
声明分类? RefChecker 并非简单声明整个响应是否存在幻觉,而是检查 LLM 生成文本中嵌入的声明。响应与参考文献之间的基本关系可用维恩图可视化。
- 交集(Entailments/Contradictions):可直接验证的声明,根据参考文献支持或反驳分为蕴含(支持)或矛盾(反驳)。
- 中性(Neutral):参考文献未能提供足够证据验证所有声明时,评估这些声明的真实性需要额外证据。
RefChecker 使用这种三方分类(蕴含、矛盾、中性),而不是传统的二元标签,来精确建模响应与参考文献之间的关系。
RefChecker 流程
RefChecker 包含两个可配置模块:
- 声明三元组提取器 (E):从输入文本中提取声明三元组。发现 LLM 通常擅长于此项任务。初始版本使用了 GPT-4 和 Claude 2,后续将提供 Mixtral-8x7B 开源提取器。
- 幻觉检查器 (C):评估响应与参考文本产生的声明三元组之间的一致程度。评估可手动或自动进行。初始版本提供了基于 GPT-4、Claude 2 和 RoBERTa-NLI 的自动检查器。更多开源检查器(如 AlignScore 和基于 Mistral 的检查器)将很快推出。发现自动检查器之间的多数投票(majority voting) 与人工标注的一致性最佳。
还可以配置结果统计方式,以在 triplet 级别的检测和 response 级别的幻觉报告之间进行转换。这些模块可以单独扩展和改进。
开始使用 RefChecker
检测和精确定位细微的、细粒度的幻觉是制定有效缓解策略的第一步。
致谢
Lin Qiu, Zheng Zhang[citation:1]