首页 > 其他分享 >一文详解大模型归因机制,幻觉问题有救了!

一文详解大模型归因机制,幻觉问题有救了!

时间:2023-12-11 18:01:29浏览次数:41  
标签:有救 模型 生成 详解 归因 答案 文档 文本


作者 | 谢年年、python

大模型的幻觉问题一直是一个亟待解决的挑战。由于大模型的训练语料来源广泛,且都是未经筛选的现实世界文本,预训练的目标也仅在于预测下一个单词,并未对生成内容的真实性进行建模和验证,这导致了大模型幻觉问题的频繁出现。

为了增强模型事实准确性和可验证性,一种可行的方法是在大模型生成响应的同时,提供相关证据来支撑其答案。这一研究方向称为归因(Attribution),即为大模型生成的答案追根溯源。通过归因,可帮助用户查看答案可能的来源,从而增强模型的可解释性,有利于用户评估答案的可靠性。

最近,哈尔滨工业大学团队对开放域生成系统中的归因机制进行了全面的回顾,深入探讨了归因的起源、相关技术、评估标准以及所面临的挑战。他们期望通过改进归因机制来提高生成式大模型的可靠性和真实性。

论文标题:
A Survey of Large Language Models Attribution

论文链接:
https://arxiv.org/abs/2311.03731

Github链接:
https://github.com/HITsz-TMG/awesome-llm-attributions

1. 什么是归因(Attribution)

在社会心理学中,归因指的是观察者根据他人的行为来推论行为原因和因果关系。而在大模型时代,归因指的是LLM能够回答问题且提供支撑回答的证据,通常以引用或文献引证的形式出现。

形式上来说,对于一个查询(或指令、提示) 和一个文本段落语料库。系统的目标是产生一个输出,其中包含一组个不同的论断: 。每个论断都关联着一组引用,其中每个是语料库中的一个段落。在呈现上,引用可以采用方括号的形式进行标注。如下图所示。

一文详解大模型归因机制,幻觉问题有救了!_数据

2. 归因与其他NLP任务的联系与区别

开放领域问答: 这两个任务都依赖于检索相关文档或信息来回答提出的问题或主张。开放领域问答侧重于回答的准确性和相关性,归因任务则关注生成的文本是否能够准确追溯到检索到的文档。

事实核查和主张验证: 事实核查和归因任务都需要检索外部证据来验证声明或生成的文本。事实核查的重点是验证声明的真实性,主张验证则根据证据或材料评估主张的真实性,而归因任务则侧重于确保生成的文本准确反映提供的参考资料。

自然语言推理: 这两个任务都涉及评估两段文本之间的关系;自然语言推理注重文本间的逻辑关系是蕴涵、矛盾或中性,而归因任务用于评估参考文心提供的证据是否能证实生成的文本。

文本摘要:摘要和归因任务都会生成简洁的文本,并需要检查生成文本与原始文本或来源内容的一致性。归因在摘要任务中起关键作用,能避免出现幻觉(即生成虚假或不支持的信息)并确保生成的摘要准确反映输入文本。

模型可解释性:归因特指将模型生成的信息或决策追溯到其源材料或输入特征的过程,为输出提 供清晰的参考或基础。而解释性是一个更广泛的概念,包括了理解模型如何处理输入数据以达到特定输出,使模型的内部运作对用户透明和可理解。归因可以被视为解释性的组成部分或具体形式,通过提供源参考来帮助理解和信任模型的输出。

3. 归因的方法

归因的形式主要有三种,如下图所示:

一文详解大模型归因机制,幻觉问题有救了!_搜索_02

直接生成归因

在直接生成归因的过程中,模型不仅生成了答案,还直接生成了用于引用答案的参考文献。通过要求模型进行自我检测和自我归因,一些研究发现这样生成的文本更加基于事实,并在下游任务上表现出了更好的性能。

例如,《" according to..." prompting language models improves quoting from pre-training data》这篇论文提出了“根据提示”的方法,将模型生成的文本与预训练数据联系起来。《Learning to Plan and Generate Text with Citations》这篇论文则引入了一个中间规划模块,要求模型生成一系列问题作为当前问题的蓝图,然后将蓝图问题生成的文本组合为最终答案。这种蓝图模型允许在每个问题回答步骤中进行不同的归因,从而增强了模型的可解释性。

后检索回答

在后检索回答方式中,模型根据检索到的文档生成包含引文的答案。SmartBook框架从新闻文章中检索相关信息,然后生成结构化的情景报告。这些报告按时间轴组织,每个时间轴包含重要事件、战略问题和引文支持的简单总结。SearChain采用先检索后答复的方法,生成全局推理链(CoQ),并利用信息检索框架验证答案和提供缺失的知识。

后生成归因

为了保证准确归因又不影响LLMs的鲁棒性,一些研究将目标瞄准了后生成归因,即利用搜索引擎或文档检索系统根据输入的问题和生成的答案搜索证据。这种方法允许研究人员在不需要直接访问模型参数的情况下评估或改进答案的真实性。后检索问答归因的工作流程如下图所示,先生成答案然后再执行检索。检索到的文档用于引用和归因,随后用于进行事实验证和后期编辑纠正错误的内容。

一文详解大模型归因机制,幻觉问题有救了!_参考文献_03

例如,《RARR: Researching and Revising What Language Models Say, Using Language Models》能够自动识别并纠正模型输出中归因错误的内容,同时尽可能保留模型的原始输出。而《Retrieving Supporting Evidence for Generative Question Answering》则通过检索语料库中的材料,并利用LLM验证生成的回答与检索材料的一致性,并进行后期编辑纠正输出减少幻觉。

带归因的系统

LaMDA是一个以对话为核心的语言模型,经过使用带注释的数据对LaMDA进行微调,使其能够依据可信度较高的外部来源产生内容而非仅仅生成一个合理的回应,从而显著提升了模型的安全性。

基于GPT-3的WebGPT系统具备网络搜索和浏览能力,并能回答长篇问题。为了对其事实准确性进行人工评估,该模型在浏览Microsoft Bing时需要采集参考资料来支持其答案,以确保所提供的答案具备可信的网络来源。

在强化学习的帮助下,GopherCite能够引用多个文档的证据或用户提供的单篇文档。然而,在不确定的情况下,它会选择不回应。人工评估表明,GopherCite能够提供高达80%的高质量回应。

Sparrow可以利用Google搜索来搜索互联网,提供更准确的答案,并引用最新信息。在用户界面中,模型的响应与引文一起显示,为评估员提供了验证答案正确性的可能性。通过人工评估,带有证据的响应在78%的情况下被认为是合理的。

一文详解大模型归因机制,幻觉问题有救了!_参考文献_04

4.归因的评估方式

归因的评估侧重于基于参考的答案的可验证性,即引文与模型响应的相关性。它不测量模型的响应是否正确。

那么归因是否正确又是如何评判的呢?

归因错误的几种形式

粒度错误:对于一些模糊不清的问题,其答案往往涉及多个不同的方面,这时候检索到的多篇文档可能包含繁杂且多样的信息。因此,答案往往复杂且具有多样性,导致引用的内容往往不足以完全阐明问题。

如下图所示的答案中第二句话,涉及了两个不同方面的内容(巴齐尔最大的金块和美国最大的金块)。然而,在答案中只引用了文档3。

一文详解大模型归因机制,幻觉问题有救了!_参考文献_05

错误整合:当存在多个复杂的参考文档时,模型可能会混淆实体与事件之间的关联。在引用时,应确保引用的内容与生成的文本相符,同时对所有参考的文档进行引用。

如下图所示,答案错误地将奥林匹亚诸神与罗马神话混淆在一起,而奥林匹亚诸神和罗马神话分别来源于文档1和文档2。因此,在引用时,这两份文件都应被视为参考文件。

一文详解大模型归因机制,幻觉问题有救了!_数据_06

虚构生成:检索到的参考文献可能与问题无关,或者与模型内在参数知识之间存在冲突,导致生成错误的答案。

如下图,生成的答案并不是基于参考文档的,产生了幻觉,因此引用失效。

一文详解大模型归因机制,幻觉问题有救了!_搜索_07

评估方式

人工评价:由于归因错误的检测难度较大,当前LLMs主要依赖人工评价进行归因。人工评估虽然准确,但成本高且耗时。单个样本的标注成本约为1美元,标注过程中还需要标注员谨慎对待并进行手动验证。因此,自动化方法也在逐步发展。

基于分类的评价: 早期研究主要采用二元分类法,即确定一个答案是否有参考支持(归因或非归因)。此外,还有一些更细致的分类方法,如《Evaluating Verifiability in Generative Search Engines》将参考文献支持程度划分为完全支持、部分支持或不支持。在此基础上,《Automatic Evaluation of Attribution by Large Language Models》引入了精细的归因分类,包括:1)可以归因–参考完全支持生成的陈述;2)可以推断–参考对陈述的支持不足;和3)相悖–陈述直接与引用的文献相矛盾。

定量评价指标: 归因质量的评估从三个不同角度进行:1)准确性:评估生成文本与提供的来源的一致性;2)精确性:衡量生成的归因与所要回答问题的关联性的百分比;3)召回率:评估生成的归因捕捉关键知识的范围。F1得分是由精确性和召回率指标得出的。此外,还有引用准确性,即模型响应中引用网络来源的频率。N-gram重叠度用于评估生成的语句是否来源于参考文档。

一文详解大模型归因机制,幻觉问题有救了!_数据_08

以上自动化方法相比人工评价省时省力,但仍不如人工评价准确、覆盖全面。未来的研究预计将进一步改进这些方法,确保它们在实际应用中的可行性和可靠性。

5. 归因的限制与未来挑战

1. 限制与挑战

LLMs的归因功能虽然有望提升任务性能和模型可解释性,但仍面临诸多待解决的限制。以下是对这些限制的总结:

  1. 难以确定何时以及如何进行归因。在LLMs中区分一般知识(可能不需要引文)和专业知识(理应进行归因)是一项微妙的任务,难以达成一致。
  2. 归因的准确性无法得到保证。LLMs可能会将生成的答案与不相关或错误的来源关联起来,这种错误归因可能导致用户产生困惑,从而影响信息的可靠性。例如,在医学领域,如果LLMs错误地将错误的医疗建议与可靠的参考进行关联,可能会产生严重的后果。
  3. 在计算机科学和临床医学等快速发展的领域中,数据的更新速度很快,因此LLMs进行的归因可能很快就会过时。
  4. 如果LLM过于频繁地提供引用,用户可能会因为信息量过大而感到困惑,难以区分内容的重要性和相关性。
  5. LLM归因有可能泄露隐私。
  6. 存在偏见挑战。LLM可能会倾向于某些来源或信息类型,从而推动特定观点而忽略其他观点。
  7. 缺乏可靠的验证措施可能导致LLM传播错误或误导性的信息,破坏模型的可靠性。未来的模型应该在证据不明确时避免发表陈述,而不是提出毫无根据的主张。

2.未来发展方向

在分析了归因方法的挑战和限制后,作者还提出了一些未来发展的方向:

LLMs持续更新: 建立一个新系统,以搜索引擎更新数据库的方式,持续更新LLMs的信息。这将确保引用的内容不断更新,并为持续学习提供一个平台。

提高LLM输出可靠性: 引入验证机制来评估归因的信息来源的可信度和准确性。这将确保引用的来源是可靠的,从而增强用户的信心。

在创造力与正确归因间保持平衡: 在不妨碍模型的创造力的情况下,确保生成的内容是可信的且基于事实的。这将创造一个平衡的环境,让用户从中受益。

一文详解大模型归因机制,幻觉问题有救了!_搜索_09

标签:有救,模型,生成,详解,归因,答案,文档,文本
From: https://blog.51cto.com/xixiaoyao/8776469

相关文章

  • Redis 3 种特殊数据类型详解、Redis内存碎片
    CacheAsidePattern(旁路缓存模式)CacheAsidePattern是我们平时使用比较多的一个缓存读写模式,比较适合读请求比较多的场景。CacheAsidePattern中服务端需要同时维系db和cache,并且是以db的结果为准。下面我们来看一下这个策略模式下的缓存读写步骤。写:先更新db然......
  • 瑞萨RZ/G2L核心板Linux Log目录文件详解
    为了排除系统问题,监控系统健康状况以及了解系统与应用程序的交互方式,我们需要了解各log文件的作用,以G2L中yocto文件系统为例,在系统/var/log/目录下会存放记录系统中各个部分的log文件作用如下:1. 文件详情下图为系统中 /var/log目录下的文件。图1.1目录下的文件Log文件作用......
  • js判断文件类型详解
    js判断文件类型详解通过file的type属性判断<inputtype="file"onchange="onchangecb(this)"/><script>functiononchangecb(e){constfile=e.files[0];console.log(file.type);}</script>像html中input标签,就是根据选择......
  • Unity3D 任务系统的架构与设计详解
    前言Unity3D是一款非常强大的游戏引擎,它提供了丰富的功能和工具,使得游戏开发变得更加简单和高效。在游戏开发中,任务系统是一个非常重要的组件,它可以使游戏更加有趣和挑战性。在本文中,我们将详细介绍Unity3D任务系统的架构与设计,包括技术详解和代码实现。对惹,这里有一个游戏开......
  • Unity3D 基于状态机的流程控制详解
    Unity3D是一款强大的游戏开发引擎,它提供了丰富的功能和工具,方便开发者创建各种类型的游戏。在游戏开发过程中,流程控制是一个重要的部分,它决定了游戏的逻辑和玩家的体验。在Unity3D中,我们可以使用状态机来实现流程控制,本文将详细介绍基于状态机的流程控制的技术和代码实现。对啦!这......
  • Unity3D《守望先锋》如何来做帧同步详解
    Unity3D是一种跨平台的游戏开发引擎,它提供了丰富的功能和工具,可以帮助开发人员轻松创建高质量的游戏。在Unity3D中,帧同步是一种重要的技术,它可以确保多个玩家在不同的客户端上同时进行游戏,并保持游戏状态的同步。对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础......
  • Unity3D 游戏开发中的随机算法详解
    在Unity3D游戏开发中,随机算法是非常重要的一部分。随机算法可以用于生成随机数、随机位置、随机事件等,为游戏增加了一定的变化性和可玩性。本文将详细介绍Unity3D中常用的随机算法,并给出相应的技术详解和代码实现。对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基......
  • 判断推理-逻辑判断(论证类-归因论证)
    归因论证介绍观察者对他人的行为过程或自己的行为过程所进行的因果解释和推论。题目形式一般由既成事实和原因分析两部分组成,有些题目会省略原因分析的过程,直接给出结论或建议。一、对比实验归因(难点)常见形式完整叙述对比实验过程,并根据实验结果给出原因分析、结论......
  • Spring Boot 3 集成 MyBatis详解
    MyBatis是一款开源的持久层框架,它极大地简化了与数据库的交互流程。与类似Hibernate的ORM框架不同,MyBatis更具灵活性,允许开发者直接使用SQL语句与数据库进行交互。SpringBoot和MyBatis分别是两个功能强大的框架,它们的协同使用可以极大地简化数据访问层的开发,提高整体的开发效率。......
  • sar命令详解
    man手册:sar名称sar-收集,报告,或者记录系统的运行状态信息该命令属于sysstat包,使用该命令需要安装sysstat包参数概要sar[-A][-B][-b][-C][-d][-F][-H][-h][-p][-q][-R][-r][-S][-t][-u[ALL]][-V][-v][-W][-w]......