新工具与数据集助力大语言模型幻觉检测
采用知识三元组而非自然语言表述事实,可实现更细粒度的判断。
幻觉检测挑战
大型语言模型(LLM)存在显著缺陷:倾向于产生幻觉,即作出听起来合理但事实不准确的断言。有时这些幻觉非常微妙,例如断言基本正确但日期误差仅一两年。
RefChecker 框架
为检测此类微妙幻觉,某中心发布 RefChecker(引用检查器),包含新型幻觉检测框架和用于多场景评估的基准数据集。与传统使用句子或短语表征LLM文本事实断言的方式不同,RefChecker 采用具备<主体、谓词、客体>结构的知识三元组——与知识图谱数据结构一致。这种细粒度评估方式使LLM输出分析更精确且信息量更丰富。
基准数据集涵盖三种场景:
- 零上下文:LLM无参考文本直接回答问题(100个样例)
- 噪声上下文:提供可能包含错误信息的检索文档列表(检索增强生成/RAG场景,100个样例)
- 准确上下文:提供单一准确文档(100个样例)
检测机制三要素
1. 参考文献获取
RefChecker 支持三种参考文献获取方式,对应基准数据集的三种数据类型:
- 零上下文(开放问答)
- 噪声上下文(检索增强生成)
- 准确上下文(文本摘要)
数据来源包括 NaturalQuestions 开发集(闭卷问答)、MS MARCO 开发集(RAG)和 databricks-dolly-15k(摘要/闭卷问答/信息抽取)。
2. 评估粒度
通过将LLM响应分解为知识三元组,可检测单个知识点的真实性。例如句子"Richard Mulligan在《Partridge Family》中饰演Kincaid先生"可拆解为:
- 〈Richard Mulligan, 饰演角色, Mr. Kincaid〉
- 〈Mr. Kincaid, 出现于剧集, The Partridge Family〉
3. 声明分类
采用三维分类法而非二元标签:
- 蕴含(绿色对勾):参考文献支持的声明
- 矛盾(红色叉号):参考文献反驳的声明
- 中立(橙色问号):需要额外证据验证的声明
技术实现流程
RefChecker 包含两个可配置模块:
- 声明三元组提取器 (E):初始版本使用 GPT-4 和 Claude 2,后续将提供 Mixtral-8x7B 开源提取器
- 幻觉检查器 (C):提供基于 GPT-4、Claude 2 和 RoBERTa-NLI 的自动检查器,后续将增加 AlignScore 和基于 Mistral 的开源检查器
自动检查器多数投票结果与人工标注一致性最高。即将发布用于人工评估的标注工具。
快速开始
RefChecker 已在 GitHub 开源库发布,支持 pip 安装。详细使用指南包含:
- 知识三元组提取方法
- 三元组层级幻觉检测流程
- 自定义LLM评估方案
精细幻觉检测是制定有效缓解策略的第一步。欢迎通过 GitHub 提交反馈和改进方案。
致谢:Lin Qiu, Zheng Zhang