论文解读 | NeurIPS'24 IRCAN:通过识别和重新加权上下文感知神经元来减轻大语言模型生成中的知识冲突...

点击蓝字

82401254ef12330ec2cd14d203cb3d74.jpeg

关注我们

AI TIME欢迎每一位AI爱好者的加入!

1a962832f0394ed2dc475e0ecde2616e.png

点击 阅读原文 观看作者讲解回放!

作者简介

史丹,天津大学博士生

内容简介

大语言模型(LLM)经过海量数据训练后编码了丰富的世界知识。最近的研究表明,当LLM面临其编码的参数知识和上下文中提供的知识之间存在矛盾(被称为知识冲突)时,可能会过度依赖其内在的参数知识,而不能充分重视上下文中引入的新知识。为了减轻该问题,本文提出了一个新颖的框架IRCAN,通过识别和重新加权上下文感知神经元,引导LLM根据上下文中提供的新知识生成对上下文更敏感的输出。具体而言,IRCAN首先利用基于积分梯度的上下文感知归因评分,识别出显著贡献于处理上下文的神经元。随后,通过重新加权来增强所识别的上下文感知神经元。在来自多个系列的模型和多种任务上进行的广泛实验表明,IRCAN不仅显著提升了LLM在知识冲突问题上的性能,还可以与现有方法无缝集成,取得了最先进的结果。

论文地址:https://arxiv.org/abs/2312.12853

代码链接:https://github.com/danshi777/IRCAN

Motivation

众所周知,大语言模型经过大量数据的训练,蕴含了丰富的知识。然而,由于信息/知识的快速发展以及训练数据中存在的噪音,LLM可能拥有不正确或过时的知识。在现实应用中,通常使用检索增强生成(RAG)等方法,将最新的知识或来自外部数据库的知识集成到输入的提示上下文中来缓解这个问题。这导致LLM在生成过程中依赖两种知识来源:一种是参数知识,即模型在预训练阶段获得并编码在其参数中的知识;另一种是上下文知识,即我们提供给模型的输入上下文中的信息。当这两种知识存在不一致或矛盾时,就会出现所谓的知识冲突问题。

4be5ab80654dd9a872a7a8927545b476.png

以往的研究表明,当LLM面临参数知识与上下文知识之间的冲突时,它们可能会过度坚持现有的参数知识,而不能充分关注在上下文中引入的新知识。

例如,即便将“截至2023年,印度成为世界上人口最多的国家”这一信息作为上下文输入给Llama-2-7B,当被问及“世界上人口最多的国家是哪个”时,它仍然回答为“中国”。

fe6fc3f8453bef46d6ef5b92990b8416.png

作者猜想,是否类似于之前的知识神经元,在LLM中也存在专注于处理上下文的神经元呢?基于此假设,作者提出一个识别和重新加权上下文感知神经元的框架IRCAN,首先通过计算每个神经元的归因分数来衡量来识别负责处理上下文的神经元,称之为知识感知神经元,然后通过增加这些知识感知神经元的权重,使模型在生成过程中更加关注上下文,从而生成更忠诚于上下文的响应。

8e610c4c71c72512c4904a78279391a7.png

Methodology

具体而言,本方法首先通过一种基于梯度积分的上下文感知归因方法,计算每个神经元在感知上下文以预测答案方面的贡献分数。这些分数可用于评估哪些神经元在处理上下文中发挥着关键作用。与许多先前的研究相同,本文也关注第2个FFN层中的神经元。

作者将每个神经元要计算的归因分数记作66c01490876ddd766a0d80675f5ad679.png,其中表示在模型的第层的位于第i个位置的神经元。首先,仅将问题作为输入,记录下此时模型中每个神经元的激活值,记作a83bd7a77c75bf8dd96dacd9b55e9d38.png。接着,将上下文和问题一起输入给语言模型并记录此时新的神经元激活值,记作1f53d3943d074d754cebfd0133e6b3ea.png。然后,当输入为上下文和问题时,逐渐将神经元的激活值从d57ba882107d2aa7abcebf4cc1540e68.png改变为d7510c980f210b3cc8d9f1e1c347a074.png,观察输出正确答案的概率梯度的变化,计算归因分数为式(1)。直观上,通过对 α 从 0 变化到 1 时的梯度进行积分,7d24aa5e20e55c2cf95621435197dc94.png累积了由上下文不存在到存在的激活值变化引起的输出概率变化。如果神经元对上下文有很强的感知和处理能力,那么梯度就会很大,从而产生很大的积分值。因此,归因分数可以衡量神经元在处理上下文方面的贡献程度。

在实际的实验中,作者采用黎曼逼近法来近似计算归因分数,如式(2)所示。具体做法是将ece761e192eeea568176b325f075feff.png减这个值分成m份,每次改变其中的m分之一,然后将这些变化累加起来。在实验中,m默认为20。

3009b5cbb5eab48071dbcced0586ab42.png

第二步,根据计算出的神经元归因分数,首先保留分数高于阈值t的神经元。然后,对于每个数据实例,选择具有最高归因分数的前z个神经元作为候选集。在实验中,t和z分别默认设置为 10% 和 20。最终,计算所有候选集中神经元的共现次数,并选择共现次数最多的前h个神经元作为上下文感知神经元。这些识别出的上下文感知神经元在所有数据实例之间共享。

15542722c243cf7d57dce31abb34fac5.png

最后,本文采用了一种简单而有效的办法来放大识别到的知识感知神经元的作用,即直接将这些神经元的权重扩大到原始权重的β倍。在实验中,选取的知识神经元的数量h以及增强的倍数β都是超参数。

bdcc05c7318c437512f891b6b4bebd47.png

Experiments

作者在两种不同类型的知识冲突任务上进行了实验:一是补全任务,涉及“MemoTrap”数据集,该任务要求模型在英文谚语的上下文中使用不同于其传统结尾词的其他词语来补全谚语;另一种则是多项选择任务,在 COSE_KRE 和 ECARE_KRE 数据集上进行了实验,在该任务中,预先指定一个错误答案为正确答案,然后让ChatGPT生成一个支持这个错误答案的解释,并将这个解释作为上下文,期望模型在被提问后,能根据这个解释回答指定的答案,而非它原本的答案。

作者采用accuracy作为主要指标来评估模型的性能。此外,还设计了一个作为参考的指标——称为“固执率”。该指标旨在评估模型是否倾向于固守其内在参数知识。较低的固执率意味着模型利用内部参数知识回答问题的比例越低,从而在一定程度上反映了模型对上下文知识的专注。

fc160ada17c9ae2b149d303e310e3248.png

首先,在补全任务中,对比的baselines包括不做任何操作的原始模型,基于Probe的方法,以及一个强大的baseline CAD,它直接调整了输出概率,放大了使用上下文和不使用上下文时的概率差异,以此来使模型更加关注于上下文知识。实验结果表明,本文方法的性能达到了SOTA,尤其对于LLaMa-2-7B和LLaMa-3-8B,分别实现了129%和136%的显著ACC提升,SSR指标也明显下降。这证明了通过增加上下文感知神经元的权重,模型可以从依赖预先存储的参数知识转向利用上下文知识。此外,IRCAN和CAD技术能够产生叠加效应,结合CAD后性能进一步提升。

22e483160d1863d6e091dfc35c902ead.png

在多项选择任务中,除了前面提到的baseline,实验还增加了基于Prompt Engeering的baselines,包括三种明确指示模型在回答问题时更加关注上下文的方法和一种使用基于opinion的prompt的方法。结果显示,基于Prompt Engeering的方法并未带来一致的性能提升,甚至在某些模型上还导致了性能下降,但IRCAN在所有模型上都实现了稳定的性能提升,并且在结合CAD后,性能也进一步得到提高。

43909d75195c7447e6d1a6b6b4cc963f.png

为了进一步验证IRCAN识别的神经元是否在处理上下文中发挥关键作用,作者进一步进行了消融实验,包括:擦除(将权重置为0)检测到的上下文感知神经元;随机增强或删除与 IRCAN 中实现的相同数量的神经元。结果显示,与 IRCAN 的结果相比,当上下文感知神经元被擦除时,准确率大幅下降。然而,无论是擦除还是增强随机神经元,性能都与原始模型相似。这表明本文检测到的上下文感知神经元在解决知识冲突方面发挥着关键作用,从而验证了它们在模型功能中的重要性。

7b0d63d9ad79f43468c08e0ce2d0b24f.png

本文还探究了增强倍数和增强神经元的数量这两个超参数对模型性能的影响。左图显示了在固定神经元数量的情况下,随着上下文感知神经元增强倍数的增加,模型性能在初期逐渐提升,凸显了IRCAN识别的神经元的关键作用。然后,与我们的直觉一致,超过一定的增强强度后性能开始下降。这种下降可能是由于神经元的过度增强导致模型直接崩溃,其输出完全不可用。右图也展示出了类似的结果,随着增强神经元数量的增加,模型性能也呈现出先上升后下降的趋势。

7c55f26b64d67ad5aad19f257f0b3a1c.png

本文还对计算得到的归因分数较高的神经元进行了可视化,观察它们在模型层内部的分布情况。结果显示,大部分神经元集中在高层,也有部分位于中间层。这与以往的研究发现相吻合,即语言模型主要在高层编码高级语义知识。

33ec1272922ee5c3b7ba5484cf1b4c39.png

由于IRCAN增强了某些神经元的权重,这可能会引发一个担忧,即这是否会损害模型的一般能力?为了探究这一点,作者在六个常用的基准上进行了测试,结果显示,与原始模型的性能相比,IRCAN只会导致轻微的性能振荡。这表明IRCAN 可以可靠地提高大语言模型解决知识冲突任务的能力,同时保持其出色的综合能力。

本期文章由陈研整理

往期精彩文章推荐

b0f853ce9705586a035bf086d4af5fb9.jpeg

AAAI 2025预讲会28位讲者相聚|28篇论文工作+2个团队专场,一起期待2025年的首场预讲会

 关于AI TIME 

AI TIME源起于2019年,旨在发扬科学思辨精神,邀请各界人士对人工智能理论、算法和场景应用的本质问题进行探索,加强思想碰撞,链接全球AI学者、行业专家和爱好者,希望以辩论的形式,探讨人工智能和人类未来之间的矛盾,探索人工智能领域的未来。

迄今为止,AI TIME已经邀请了2000多位海内外讲者,举办了逾700场活动,超800万人次观看。

 7c3b076ae54cf020c5ce153b505f6593.png

我知道你 

在看

提出观点,表达想法,欢迎 

留言

b38b467c24ce7ccbc0c62edc38d31422.gif

点击 阅读原文 观看作者讲解回放!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/66351.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大语言模型训练所需的最低显存,联邦大语言模型训练的传输优化技术

联邦大语言模型训练的传输优化技术 目录 联邦大语言模型训练的传输优化技术大语言模型训练所需的最低显存大语言模型训练所需的最低显存 基于模型微调、压缩和分布式并行处理的方法,介绍了相关开源模型及技术应用 核心创新点 多维度优化策略:综合运用基于模型微调、模型压缩和…

(CICD)自动化构建打包、部署(Jenkins + maven+ gitlab+tomcat)

一、平滑发布与灰度发布 **什么叫平滑:**在发布的过程中不影响用户的使用,系统不会因发布而暂停对外服务,不会造成用户短暂性无法访问; **什么叫灰度:**发布后让部分用户使用新版本,其它用户使用旧版本&am…

Python 科学计算

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…

【pytorch】注意力机制-1

1 注意力提示 1.1 自主性的与非自主性的注意力提示 非自主性提示: 可以简单地使用参数化的全连接层,甚至是非参数化的最大汇聚层或平均汇聚层。 自主性提示 注意力机制与全连接层或汇聚层区别开来。在注意力机制的背景下,自主性提示被称为查…

Qt窗口获取Tftpd32_svc服务下载信息

前言 一个由Qt开发的Windows小工具需要布置Tftp协议服务端来支持设备下载数据,并显示下载列表(进度、下载源等)。 考虑开发方便,优先使用了Qtftp方案,经测试发现,不够稳定,会有下载超时的情况&a…

<OS 有关> DOS 批处理命令文件,用于创建 python 虚拟机,并进入虚拟机状态执行后继命令 判断虚拟机是否存在,在批处理文件中自定义 虚拟机名字

前言: 经常要敲重复的命令: python -m venv venv.\venv\Scripts\activate.bat (虽然能按 Tab 省几下,多了也烦恼,后来写了四行脚本 start.bat) DOS批处理 create_venv_start.bat 功能: 批处理显示支持中文在 creat…

【算法刷题】leetcode hot 100 哈希篇

文章目录 1. 两数之和49. 字母异位词分组128. 最长连续序列总结 1. 两数之和 leetcode:https://leetcode.cn/problems/two-sum/description/?envTypestudy-plan-v2&envIdtop-100-liked暴力解决: public int[] twoSum(int[] nums, int target) {for …

iOS 逆向学习 - iOS Architecture Cocoa Touch Layer

iOS 逆向学习 - iOS Architecture Cocoa Touch Layer 一、Cocoa Touch Layer 简介二、Cocoa Touch Layer 的核心功能1. UIKit2. Event Handling(事件处理)3. Multitasking(多任务处理)4. Push Notifications(推送通知&…

网站常用功能模块-鉴权

一:JWT是什么? 常用鉴权方式有很多种,今天主要介绍基于token的鉴权方式JWT(Json JSON Web Token)。因为这种方式实现起来方便快捷。整体实现逻辑如下 第一次登陆时,前端携带账号和密码请求登录接口。服务…

stm32的掉电检测机制——PVD

有时在一些应用中,我们需要检测系统是否掉电了,或者要在掉电的瞬间需要做一些处理。 STM32内部自带PVD功能,用于对MCU供电电压VDD进行监控。 STM32就有这样的掉电检测机制——PVD(Programmable Voltage Detecter),即可编程电压检…

Flink系列知识讲解之:深入了解 Flink 的网络协议栈

Flink系列知识之:深入了解 Flink 的网络协议栈 Flink 的网络协议栈是组成 flink-runtime 模块的核心组件之一,也是每个 Flink 任务的核心。它连接着来自所有任务管理器的各个工作单元(子任务)。这是流数据流过的地方,…

基于深度学习的视觉检测小项目(六) 项目的信号和变量的规划

• 关于前后端分离 当前流行的一种常见的前后端分离模式是vueflask,vueflask模式的前端和后端之间进行数据的传递通常是借助 API(应用程序编程接口)来完成的。vue通过调用后端提供的 API 来获取或提交数据。例如,前端可能通过发送…

党员学习交流平台

本文结尾处获取源码。 本文结尾处获取源码。 本文结尾处获取源码。 一、相关技术 后端:Java、JavaWeb / Springboot。前端:Vue、HTML / CSS / Javascript 等。数据库:MySQL 二、相关软件(列出的软件其一均可运行) I…

web实操9——session

概念 数据保存在服务器HttpSession对象里。 session也是域对象,有setAttribute和getAttribute方法 快速入门 代码 获取session和塞入数据: 获取session获取数据: 请求存储: 请求获取: 数据正常打印&#xff1a…

面向对象分析和设计OOA/D,UML,GRASP

目录 什么是分析和设计? 什么是面向对象的分析和设计? 迭代开发 UML 用例图 交互图 基于职责驱动设计 GRASP 常见设计原则 什么是分析和设计? 分析,强调是对问题和需求的调查研究,不是解决方案。例如&#x…

Nginx:限流限速

1. 什么是限流限速? 限流限速是Nginx运维中一个非常重要的功能,用于防止服务器过载和保护资源免受滥用。它可以通过限制客户端的请求速率或上传/下载速度来实现。 限流:控制单位时间内允许处理的请求数量。这有助于防止过多的并发请求导致服务器性能下降或崩溃。限速:限制…

探索 JMeter While Controller:循环测试的奇妙世界

嘿,宝子们!今天咱们就来聊聊 JMeter 里超级厉害的 While 控制器,它就像是一把神奇的钥匙,能帮我们打开循环测试的大门,模拟出各种各样复杂又有趣的场景哦! 一、While 控制器初印象 想象一下,你…

迈向AGI,3、2、1,2025上链接!

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 往期精彩文章推荐 关于AI TIME AI TIME源起于2019年,旨在发扬科学思辨精神,邀请各界人士对人工智能理论、算法和场景应用的本质问题进行探索,加强思想碰撞,链接全…

JVM对象内存分配

1 栈上分配 栈空间随着方法执行完毕而回收通过栈上分配对象内存空间的方式,减少对堆空间的使用,从而减少gc的压力,提升程序性能 逃逸分析:分析对象的作用域,判断对象所需内存是否可以在栈上分配当对象没有被外部方法或…

计算机网络--路由器问题

一、路由器问题 1.计算下一跳 计算机网络--根据IP地址和路由表计算下一跳-CSDN博客 2.更新路由表 计算机网络--路由表的更新-CSDN博客 3.根据题目要求给出路由表 4.路由器收到某个分组,解释这个分组是如何被转发的 5.转发分组之路由器的选择 二、举个例子 …