MIT发现语言模型内的事实知识可被修改??

news/2024/5/17 17:14:55/文章来源:https://blog.csdn.net/xixiaoyaoww/article/details/128090430

7ab6f5239c37a1a5a6f4cf6fb35aa968.jpeg

文 | 小伟

a5ca642f7ee097f19a39aecefb18343f.png前言519059be89464c53097a5c52e8844360.png

众所周知,自回归语言模型(如GPT-2)里存储着大量的事实知识,比如语言模型可以正确的预测出埃菲尔铁塔所在的城市是巴黎市。

那么语言模型是在什么地方存储这些知识呢?我们是否可以修改存储在语言模型里的知识呢?

来自于MIT的这篇文章就对这些问题做出了解答。

它发现GPT中的事实知识对应于可以直接编辑的局部计算。通过对GPT的一小部分参数进行小的改变就可以修改其内部的知识,实现我们把埃菲尔铁塔搬到英国的小目标 :)

论文标题:
Locating and Editing Factual Associations in GPT

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

1c6c2d8e31c462a4d6a87b8a63cdb732.png概览b7b37a01b77264024c847ecf8c1a04ec.png

首先,什么是语言模型里的知识呢?我们可以用三元组 (s,r,o) 来代表这些事实知识,其中 so 分别是主体和客体,r 代表它们之间的关系。例如:

(s = Kevin Durant, r = plays sport professionally, o = basketball)

就表明了杜兰特是一名职业篮球运动员这一事实。

其次,为什么需要定位以及修改语言模型里的知识呢?显而易见,它可以帮助我们很容易地更新改正语言模型中存在的过时或者错误的知识。例如关于川普已经过时了的知识:

(s = Donald Trump, r = is President of, o = the US)

可以看到对语言模型里的知识进行定位和修改还是蛮有用的,让语言模型可以与时俱进。

那么本文具体是用什么方法来实现目标的呢?下面让我们一起来一探究竟。

292c7b3c4ed637c4227cd04d9b65b7f4.png定位46ef80b58f3192ad86cc02b59d7405a2.png

为了定位语言模型中的知识,本文采用了因果追踪的方法来量化每个隐藏状态对模型预测的因果影响。为了计算每个隐藏状态对正确的事实知识预测的贡献,本文设计了3种不同的运行模式:

  • 干净模式: 将输入正常喂给模型得到输出

  • 干扰模式: 给输入的embedding加上高斯分布的噪声来得到被干扰的输出

  • 干扰后恢复模式: 给输入的embedding加上高斯分布的噪声,同时调整模型在某一层的某个token index处的状态为对应的干净模式中的状态。直觉上来看,在许多其他状态被干扰的情况下,一些干净状态恢复正确事实的能力将表明它们在计算图中的因果重要性

通过把干扰模式以及干扰后恢复模式的输出进行对比(在本文中定义为average indirect effect),我们就可以知道模型的不同组成部分对最终模型预测的因果影响。

efba82555add46545bd6dc977312ab08.png

如上图所示,我们可以看到MLP模块在早期起到了决定性的作用 (MLP 6.6% AIE vs. attention 1.6% AIE),而attention模块则是在最后一个token处比较重要。

基于因果追踪的结论以及过往的工作,作者提出了一种存储事实知识的特定机制: 早期的MLP模块进行知识检索,然后后期的注意力机制将累积的信息带到计算结束(最后一个token)处来预测输出。

8a5f70047eee416c567e015958e7df32.png修改bbb22e92c233fe482f4201171bc67872.png

现在我们已经知道了事实知识主要存储在早期的MLP中,那我们应该怎么样来修改这些知识呢?本文引入了 Rank-One Model Editing (一阶模型编辑) 来修改模型里的知识。

a042ff0bfb2489262166861be62523d7.png

具体来说, 一阶模型编辑(ROME)把MLP视为简单的键值存储:如果键编码主体,值编码和主体相关的知识,MLP就可以通过检索与键对应的值来获取相应的知识。

在本文中,ROME使用针对MLP参数的一阶编辑来直接写入新的键值对,也就是为模型注入新的知识。如上图所示,(d) 处的向量表示要插入的主体的键,而 (e) 处的输出编码了有关该主体的知识。ROME通过对键值间映射矩阵 进行一阶编辑 (f) 来插入新的键值对 :

其中 是原始映射矩阵,是从维基百科文本中估计出的关于的协方差常量,以及 。

这样通过把 修改为 , 我们就实现了在语言模型中插入新的事实知识。

3646d2c7d54dfb2506b4556cc4d70302.png实验3ee58911baa8fa6ab0a9a002d876fd84.png

本文主要在两个基准上进行了实验,结果非常给力(ROME是本文方法)

8c2c1834dcb4d17b8c4ecae7f578c47c.png876653c092b4af2c46b3835cf9672f08.png

我们可以看到:

  • 尽管ROME十分简单,它的性能和之前的方法相比还是很有竞争力

  • 除了ROME之外,之前所有的方法都或多或少有以下两个问题: (1) 对反事实陈述过度拟合,无法泛化 (Generalization); 以及 (2) 对不相关的一些主体欠拟合并预测相同的输出 (Specificity)。而ROME则避免了这些问题,很好的实现了 Generalization 以及 Specificity 的目标

最后本文还进行了人工评估来衡量ROME生成文本的质量,结果发现ROME生成的文本在一致性方面表现的更好,但在流畅性方面却略有不足,这说明ROME在流畅性方面引入了一些没有被相关指标 (表4中的Fluency) 度量到的损失。

c8e489a560f56fd5ef77985dbdbb1765.png总结b6170c810c034777528cea8653a57f6f.png

本文发现了在自回归语言模型中,事实知识是可以进行定位以及修改的,比如我们可以直接给语言模型注入知识: 埃菲尔铁塔在英国 (搬到大英博物馆 :))。与此同时,本文也存在着一些不足,比如它一次只能编辑一个事实知识,不能处理其他诸如逻辑、空间以及数学知识,以及会猜测出没有依据的似是而非的新知识等。但总体感觉这篇文章所做的内容还是很有趣的,相信未来也会有更多后续工作来解决这些问题 :)。

9a24d953d2771cb4a20923cd7bcd7029.png

卖萌屋作者:小伟

NTU-NLP小萌新,目前对few-shot learning有着浓厚的兴趣,也是偶尔玩玩kaggle的竞赛爱好者。个人主页: https://qcwthu.github.io/

作品推荐

1.NYU & Google: 知识蒸馏无处不在,但它真的有用吗?

2.谷歌 | 多任务学习,如何挑选有效的辅助任务?只需一个公式!

166ffc10f034da5010f8c6acca72ae53.jpeg后台回复关键词【入群

加入卖萌屋NLP、CV、搜广推与求职讨论群

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

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

相关文章

R语言分布滞后非线性模型(DLNM)研究发病率,死亡率和空气污染示例

全文下载链接:http://tecdat.cn/?p21317本文提供了运行分布滞后非线性模型的示例,同时描述了预测变量和结果之间的非线性和滞后效应,这种相互关系被定义为暴露-滞后-反应关联(点击文末“阅读原文”获取完整代码数据)。…

[附源码]计算机毕业设计springboot本地助农产品销售系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

小程序上新(2022.11.15~11.28)

20221115 小程序基础库 2.27.3 更新 更新 框架 设备 VoIP 能力授权更新 框架 支持 worker 代码打包到小程序&小游戏分包 详情更新 组件 scroll-view 接近全屏尺寸时默认开启点击回到顶部更新 API createVKSession 在不需要用到摄像头的时候不再发起摄像头授权 详情修复 框…

【笔试强训】Day 4

🌈欢迎来到笔试强训专栏 (꒪ꇴ꒪(꒪ꇴ꒪ )🐣,我是Scort目前状态:大三非科班啃C中🌍博客主页:张小姐的猫~江湖背景快上车🚘,握好方向盘跟我有一起打天下嘞!送给自己的一句鸡汤&#x…

王道考研——操作系统(第三章 内存管理)

一、内存的基础知识 什么是内存?有何作用? 这么做的原因是,程序本来是放在外存中的,放在磁盘中的,但是磁盘的读写速度很慢,而cpu的处理速度又很快 存储单元就是存放数据的最小单元,每一个地址…

NetCore路由的Endpoint模式

IdentityServer里有各种Endpoint,如TokenEndpoint,UserInfoEndpoint,Authorize Endpoint,Discovery Endpoint等等。Endpoint从字面意思来看是“终端节点"或者“终节点”的意思。无独有偶NetCore的路由也有Endpoint的概念。那么我们提出一个问题来,究竟什么是En…

不用ps怎么修改图片?电脑图片在线处理的方法

很多小伙伴在工作、学习的时候会用到简单的图片处理工具(在线ps 图片编辑制作工具 免费照片编辑器_压缩图),但是因为用到的功能比较多,需要下载安装很多电脑处理图片软件,非常不方便,而且上手比较难。下面就…

Windows OpenGL ES 图像色彩替换

目录 一.OpenGL ES 图像色彩替换 1.原始图片2.效果演示 二.OpenGL ES 图像色彩替换源码下载三.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 基础 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 特效 零基础 …

代码调优?从Fibonacci数列的7种写法说起,看完coding能力上一个台阶

开启掘金成长之旅!这是我参与「掘金日新计划 12 月更文挑战」的第2天,点击查看活动详情 引子 楼梯有 N阶,上楼可以一步上一阶,也可以一步上二阶。 编一个程序,计算共有多少种不同的走法。 例: 0层&…

【微信小程序高频面试题——精选一】

微信小程序高频面试题小程序中如何进行接口请求?会不会跨域,为什么小程序的常用命令有哪些你认为微信小程序的优点是什么,缺点是什么微信小程序中的js和浏览器中的js以及node中的js的区别微信小程序中的数据渲染浏览器中有什么不同小程序中如…

FineReport表格软件- 计算操作符说明

1. 概述 FineReport 中使用函数需要用到很多的操作符。 操作符不仅包含很多运算符,还包括一些报表特有的操作符。 FineReport 11.0 优化了公式 2. 运算符类型 运算符用于指定要对公式中的元素执行的计算类型。有默认计算顺序,但可以使用括号更改此顺序…

python如何将日期字符串格式化年月日

今天用Python的DataFrame处理数据时,相对一波数据按日期分组处理,但是原始数据包含时间分秒,无法按日期分组,因此需要先将数据转成只包含年月日的数据格式。但是写代码处理过程中发现有点绕,不熟悉的同学容易绕晕。这种…

数据库——数据库备份与恢复

目录 原因: 数据库的备份与恢复: 1、使用MySQLdump命令备份 2、恢复数据库 表的导入和导出 1、表的导出 2、表的导入 原因: 尽管采取了一些管理措施来保证数据库的安全,但是不确定的意外情况总是有可能造成数据的损失,…

【学习笔记60】JavaScript原型链的理解

一、万物皆对象 JS中, 万物都可以都可以称为对象 1、对象概念 含义1: 一种数据格式 {key: value, key2: value2}含义2: 某一类事务的实例(某一类内容中的真实个体) 2、说明 arr1就是Array这一类内容中的某一个真实个体数组也可以算作一个对象(Array 这一类事务中的一个个体) …

NoSQL数据库之MongoDB

一、NoSQL数据库背景 传统关系型数据库遇到的问题 2008 年左右,网站 、 论坛、社交网络开始高速发展,传统的关系型数据库在存储及处理数据的时候受到了很大的挑战 ,其中主要体现在以下几点: 难以应付每秒上万次的高并发数据写入…

文献认证!Kamiya艾美捷抗酒石酸酸性磷酸酶TRAP染色试剂盒

人类及动物体骨组织不断地进行着重建,骨重建过程包括骨的分解吸收与新骨的形成。破骨细胞(Osteoclast,OC)负责骨分解与吸收,而成骨细胞(osteoblast,OB)负责新骨形成。破骨细胞贴附在…

Native 内存warp

Native 启动-动态/静态&libc &linker https://www.cnblogs.com/ilocker/p/4645308.html https://www.cnblogs.com/ilocker/p/4645308.html 修改LD_PRELOAD hook java native 库函数 https://blog.csdn.net/m0_57036414/article/details/126811772 Native malloc_debug …

项目经理和产品经理正在用哪些管理工具?

项目管理包括定义项目目标,指定行程和安排任务,以达到特定的目标。在项目管理过程中,很多工具可以使项目管理更有效、更高效。(项目管理资料文末) 跟大家介绍一下项目经理常用的项目管理工具: 1、甘特图 …

氨基苯酚/多巴胺仿生修饰碳纳米管/α-氧化铝/ CNTs-Ag纳米复合材料

小编下面和大家来看间氨基苯酚/多巴胺仿生修饰碳纳米管/α-氧化铝/ CNTs-Ag纳米复合材料的制备! 多巴胺仿生修饰材料的研究: 通过表面聚多巴胺层与银离子的螯合作用,通过表面聚多巴胺与银离子的螯合作用,利用葡萄糖作还原剂,在聚多巴胺修饰的聚酯纤维表…

[附源码]计算机毕业设计springboot冬奥资讯系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…