当前位置: 首页 > article >正文

综述论文解读:Editing Large Language Models: Problems, Methods, and Opportunities

  论文为大语言模型知识编辑综述,发表于自然语言处理顶会ACL(原文链接)。由于目前存在广泛的模型编辑技术,但一个统一全面的分析评估方法,所以本文:

  1、对LLM的编辑方法进行了详尽、公平的实证分析,探讨了它们各自的优势和劣势。

  2、构建了一个新的数据集,旨在揭示当前模型编辑方法的缺点,特别是泛化和效率方面。

  3、概述了模型编辑领域未来潜在的研究机会。

  阅读本文请同时参考原始论文图表。

问题定义

  假设原始模型为$f_\theta(x):\mathbb{X}\to\mathbb{Y}$,对于某个样本$(x_e,y_e)$,或称编辑描述符,有$f_\theta(x_e)\neq y_e$,则模型编辑就是使得编辑后的模型$f_{\theta_e}$$f_{\theta_e}(x_e)= y_e$

  模型编辑会影响与所编辑样本$(x_e,y_e)$相关的样本的预测,把这样的样本集合称为编辑域$I(x_e,y_e)$,也就是$(x_e,y_e)$和与它相似的邻域样本$N(x_e,y_e)$构成的样本集合。一个成功的模型编辑仅影响编辑域内部的模型行为,而不影响编辑域外部的模型行为。如文中式(1)所示,其中$O(x_e,y_e)$表示编辑域之外的样本。

  编辑后的模型$f_{\theta_e}$通常要满足可靠性、普适性和局部性(reliabilty, generality, locality):

  1、可靠性 (Reliability):文中式(2),即修改后的模型对编辑样本正确预测的期望,越大越好。

  2、普适性 (Generality):文中式(3),即修改后的模型对编辑样本的邻域$N(x_e,y_e)$的样本正确预测的期望,越大越好,本文的意思就是同义句也要满足。

  3、局部性 (Locality):文中式(4),即修改后的模型对编辑域之外的样本的预测与原始模型预测一致的期望,越大越好。

现有LLM编辑方法

  现有LLM编辑方法可分为两类。总结看表1,示意图看图2.

使用额外参数而保持原始模型参数不变

  1. SERAC: 一种使用检索增强反事实模型(SERAC)实现的半参数编辑。该模型将编辑存储在显式存储器中,并学会对其进行推理,从而根据需要调整原始模型的预测。

  2. T-Patcher和CaliNET: 将额外的可训练参数引入到PLM的FFN层中,并在修改后的数据集上训练额外添加的参数。

修改模型内部参数

基于定位和修改

  1、KN: 使用知识归因方法定位模型FFN中表达知识的神经元,并进行更新。

  2、ROME: 使用因果中介分析来定位编辑区域。与在FFN中修改知识神经元不同,ROME修改整个矩阵。

  3、MEMIT: 修改一系列的模型层,支持同时执行数千个修改。

  以上方法基于事实知识的局部性假设,尚未得到广泛验证,某些参数的变化可能会影响不相关的知识,并产生不可预见的结果。

基于元学习

  1、KE:训练一个超网络(双向LSTM)来预测每个数据点的权重更新,从而实现对目标知识的编辑,而不破坏其他知识。但这种方法对于LLM效果不佳。

  2、MEND: 使用梯度的低秩分解来学习转换经过微调的语言模型的梯度。这种方法能够以较少的资源消耗应用于LLMs。

初步实验

  表2展示了以上模型在三个指标上的实验对比结果,其中,FT表示直接对原始模型进行微调。

  数据集:ZsRE一个问答 (QA) 数据集,使用反译生成的问题改写作为样本邻域,并使用自然问题 (NQ) 作为编辑域之外的数据来评估局部性。COUNTERFACT通过用一个与主语实体相似但共享相同谓词的近似主语实体替换事实中的主语实体来构建超出范围的数据。

  模型:实验实施在T5-XL(3B)和GPT-J(6B)两个大模型上,T5-XL包含编解码器结构,GPT-J仅包含解码器。由于ROME和MEMIT只适用于解码器,因此只在GPT-J上进行了实验。

  微调:为了减小计算量,仅对ROME定位的层进行微调。

  结果分析:SERAC、ROME、MEMIT效果最好,在修改模型权重的方法中,ROME最好。

综合分析

可移植性 (Portability)

  除了前面的指标以外,模型将修改的某个知识转移到相关内容的有效性也是一个重要的指标。因此使用GPT-4来构建一个新的数据集来评估编辑方法的相关性能。简单来说,当将模型关于某个提问$(s,r,?)$的预测$o$修改为$o^*$时,对于已知事实$(o^*,r^*,o'^*)$,能对问题$(s,r,r^*,?)$预测出$o'^*$,也就是把$o^*$当做一个跳板。如果模型能正确回答出$o'^*$,则可以推断模型正确修改了$(s,r,o^*)$。数据集构建方式如文中表6所示。B.1好像是,对于GPT-4生成的问题答案的已知事实$(o^*,r^*,o'^*)$,选择T5和GPT-J共享的作为最终的可移植性数据集,但是符号写的却是原始的。

  可移植性指标定义为文中式(5),其中$P(x_e,y_e)$表示由新生成的数据组成的样本。

  结果如表3所示,可以看出MEMIT效果最好。

局部性

  图4可视化了不同指标概念对于某个样本的分布。对于某个问题的模型编辑,一个好的编辑应该使模型同步修改整个灰色虚线内部的所有问题的答案,而不修改虚线外的问题的答案。

效率

  表4展示了各方法10次编辑所需的时间,不计入模型训练时间。

  图5对比各方法的显存消耗。

批量编辑分析

  图6展示了各方法批量编辑的结果。在基于定位和修改的方法中,MEMIT效果最好。尽管SERAC效果不错,但是MEND和SERAC需要为每一批编辑训练一个独特的模型,在实践中不可行。

序列编辑分析

  图7展示了各方法在连续实施多次编辑编辑后的模型指标,横坐标为编辑次数。可以看出冻结模型参数而进行外部修改的方法SERAC和T-Patcher最稳定。另外三个方法由于需要修改原始模型,所以会性能产生退化,其中MEMIT的效果和稳定性最强。

总结

  在所有方法中,可靠性、普适性、局部性、可移植性综合来说最高的方法是MEMIT,并且它还支持批量编辑,缺点是它只适用于解码器,并且随着连续编辑次数增加,模型会退化,但这是基于定位和修改的方法的通病。

  在基于外部参数的方法中,SERAC的可靠性、普适性、局部性最好,对连续编辑的鲁棒性强,但可移植性较差。

相关文章:

综述论文解读:Editing Large Language Models: Problems, Methods, and Opportunities

论文为大语言模型知识编辑综述,发表于自然语言处理顶会ACL(原文链接)。由于目前存在广泛的模型编辑技术,但一个统一全面的分析评估方法,所以本文: 1、对LLM的编辑方法进行了详尽、公平的实证分析,探讨了它们各自的优势…...

WEB3全栈开发——面试专业技能点P1Node.js / Web3.js / Ethers.js

一、Node.js 事件循环 Node.js 的事件循环(Event Loop)是其异步编程的核心机制,它使得 Node.js 可以在单线程中实现非阻塞 I/O 操作。 🔁 简要原理 Node.js 是基于 libuv 实现的,它使用事件循环来处理非阻塞操作。事件…...

Vscode下Go语言环境配置

前言 本文介绍了vscode下Go语言开发环境的快速配置,为新手小白快速上手Go语言提供帮助。 1.下载官方Vscode 这步比较基础,已经安装好的同学可以直接快进到第二步 官方安装包地址:https://code.visualstudio.com/ 双击一直点击下一步即可,记…...

Java八股文——MySQL篇

文章目录 Java八股文——MySQL篇慢查询如何定位慢查询?如何分析慢SQLExplain标准答案 索引索引类型索引底层数据结构什么是聚簇索引什么是非聚簇索引?(二级索引)(回表)聚集索引选取规则回表查询 什么是覆盖…...

Oracle数据库学习笔记 - 创建、备份和恢复

Oracle数据库学习笔记 创建,备份和恢复 Oracle 版本基于11g 尽量不使用图形界面方式,操作适用于linux和windows 创建数据库 创建实例 # 步骤1:设置环境变量 export ORACLE_SIDmyorcl export ORACLE_HOME/u01/app/oracle/product/19.0.0/dbh…...

Go语言--语法基础5--基本数据类型--输入输出(1)

I : input 输入操作 格式化输入 scanf O : output 输出操作 格式化输出 printf 标准输入 》键盘设备 》 Stdin 标准输出 》显示器终端 》 Stdout 异常输出 》显示器终端 》 Stderr 1 、输入语句 Go 语言的标准输出流在打印到屏幕时有些参数跟别的语言…...

永磁同步电机无速度算法--自适应龙贝格观测器

一、原理介绍 传统龙伯格观测器,在设计观测器反馈增益矩阵K时,为简化分析与设计,根据静止两相坐标系下的对称关系,只引入了K、K,两个常系数,且在实际应用时,大多是通过试凑找到一组合适的反馈增益系数缺乏…...

LangChain工具集成实战:构建智能问答系统完整指南

导读:在人工智能快速发展的今天,如何构建一个既能理解自然语言又能调用外部工具的智能问答系统,成为许多开发者面临的核心挑战。本文将为您提供一套完整的解决方案,从LangChain内置工具包的基础架构到复杂系统的工程实践。 文章深…...

【razor】x264 在 的intra-refresh和IDR插帧

你提到的是这样一个情况: 使用 DirectShow 采集,帧率稳定(如回调了20帧)使用 x264 的 total intra refresh 模式(intra-refresh=1) 进行编码但编码过程中「隔几十秒才有一帧intra(关键帧)」这不正常,具体分析如下: 🎯 一、问题核心 x264 的 intra refresh 模式(特…...

分库分表的取舍

文章目录 大数据量下采用**水平分表**的缺点**1. 跨表查询复杂性与性能下降****2. 数据分布不均衡****3. 分布式事务与一致性问题****4. 扩展性受限****5. 查询条件限制与索引管理复杂****6. 数据迁移与维护成本高****7. 业务逻辑复杂度增加****总结** shardingJdbc分片策略**1…...

随机算法一文深度全解

随机算法一文深度全解 一、随机算法基础1.1 定义与核心特性1.2 算法优势与局限 二、随机算法经典案例2.1 随机化快速排序原理推导问题分析与策略代码实现(Python、Java、C) 2.2 蒙特卡罗方法计算 π 值原理推导问题分析与策略代码实现(Python…...

在 Conda 环境下配置 Jupyter Notebook 环境和工作目录

作为数据科学家或Python开发者,Jupyter Notebook 是我们日常工作的得力工具。本文将详细介绍如何在 Conda 环境中配置 Jupyter Notebook,包括环境设置和工作目录管理,帮助你打造高效的工作流程。 为什么要在 Conda 环境中使用 Jupyter Noteb…...

MS39531N 是一款正弦驱动的三相无感直流电机驱动器,具有最小振动和高效率的特点

MS39531N 是一款正弦驱动的三相无感直流电机驱动器,具有最小振动和高效率的特点 简述 MS39531 是一款正弦驱动的 三相无感直流电机驱动器 ,具有最小振动和高效率的特点。该驱动器内部集成了基本的闭环速度控制功能,能够根据特定的应用定制电…...

web3-基于贝尔曼福特算法(Bellman-Ford )与 SMT 的 Web3 DeFi 套利策略研究

web3-基于贝尔曼福特算法(Bellman-Ford )与 SMT 的 Web3 DeFi 套利策略研究 如何找到Defi中的交易机会 把defi看做是一个完全开放的金融产品图表,可以看到所有的一切东西;我们要沿着这些金融图表找到一些最优的路径,就…...

分析 java 的 Map<String,Map<String, List<Map<String,Integer>>>>

import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;public class Test02 {public static void main(String[] args) {//分析方法:由外层向内层逐渐拆解要定义的变量。再由内向外进行变量赋值//外层第一层&#x…...

ChatterBox - 轻巧快速的语音克隆与文本转语音模型,支持情感控制 支持50系显卡 一键整合包下载

ChatterBox 是一个近期备受关注的开源语音克隆与文本转语音(TTS)模型,由 Resemble AI 推出,具备体积轻巧及超快的推理速度等特色。它也是首个支持情感夸张控制的开放源代码 TTS 模型,这一强大功能能让您的声音脱颖而出…...

前端开发面试题总结-HTML篇

文章目录 HTML面试高频问答一、HTML 的 src 和 href 属性有什么区别?二、什么是 HTML 语义化?三、HTML的 script 标签中 defer 和 async 有什么区别?四、HTML5 相比于 HTML有哪些更新?五、HTML行内元素有哪些? 块级元素有哪些? 空(void)元素有哪些?六、iframe有哪些优点…...

嵌入式学习--江协stm32day4

只能说拖延没有什么好结果,欠下的债总是要还的。 ADC 模拟信号转化为数字信号,例如温度传感器将外部温度的变化(模拟信号),转换为内部电压的变化(数字信号) IN是八路输入,下方是选择…...

【Matlab】连接SQL Server 全过程

文章目录 一、下载与安装1.1 SQL Server1.2 SSMS1.3 OLE DB 驱动程序 二、数据库配置2.1 SSMS2.2 SQL Server里面设置2.3 设置防火墙2.4 设置ODBC数据源 三、matlab 链接测试 一、下载与安装 微软的,所以直接去微软官方下载即可。 1.1 SQL Server 下载最免费的Ex…...

MS8551/MS8552/MS8554 单电源、轨到轨输入输出、高精度运放,可替代AD8551/AD8552/AD8554

MS8551/MS8552/MS8554 单电源、轨到轨输入输出、高精度运放,可替代AD8551/AD8552/AD8554 简述 MS8551/8552/8554 是轨到轨输入输出的高精度运算放大器,它有极低的输入失调电压和偏置电流,单电源电压范围为 1.8V 到 5V 。 MS8551/8552/85…...

什么是 Ansible 主机和组变量

Ansible 是一款强大的自动化工具,可简化配置管理、应用程序部署和预配等 IT 任务。其最有价值的功能之一是能够定义变量,从而为不同的主机和组定制剧本。本文将解释 Ansible 中组变量和主机变量的概念,并通过实际示例说明它们的用法。 Ansib…...

F#语言的区块链

F#语言在区块链中的应用 引言 区块链技术在过去十年中迅速崛起,成为了推动金融、供应链、物联网等多个领域创新的重要力量。近年来,随着区块链技术的普及,各种编程语言也纷纷被应用于区块链的开发中。F#语言作为一种功能性编程语言&#xf…...

9.RV1126-OPENCV 视频的膨胀和腐蚀

一.膨胀 1.视频流的膨胀流程 之前膨胀都是在图片中进行的,现在要在视频中进行也简单,大概思路就是:获取VI数据,然后把VI数据给Mat化发给VENC模块,然后VENC模块获取,这样就完成了。流程图: 2.代…...

查找 Vue 项目中未使用的依赖

在 Vue 项目中查找未使用的依赖可以通过以下几种方法: 1. 使用 depcheck 工具 depcheck 是一个专门用于查找项目中未使用依赖的工具。 安装: bash npm install -g depcheck使用: bash depcheck它会列出: 未使用的依赖缺失…...

华为OD机考-内存冷热标记-多条件排序

import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextInt();int[] arr new int[a];for(int…...

UDP 与 TCP 调用接口的差异:面试高频问题解析与实战总结

在日常开发中,我们经常使用封装良好的 TCP 协议栈,比如 HTTP 客户端、Moudou 网络库等,因此很少从“裸 API”角度深入了解 TCP 和 UDP 的套接字调用流程。但在一些系统底层开发或者网络编程面试中,常被问到“TCP 和 UDP 的调用流程…...

AI时代:学习永不嫌晚,语言多元共存

最近看到两个关于AI的两个问题,“现在开始学习AI,是不是为时已晚?”、“AI出现以后,翻译几乎已到末路,那么,随着时代的进步,中文会一统全球吗?” 联想到自己正在做的“万能AI盒”小程…...

『React』Fragment的用法及简写形式

在 React 渲染组件时&#xff0c;每个组件只能返回一个根节点&#xff08;root element&#xff09;。传统上&#xff0c;如果我们需要渲染多条并列的元素&#xff0c;通常会使用一个多余的 <div> 或者其他容器标签将它们包裹起来。但是&#xff0c;这样会在最终的 HTML …...

强化学习入门:交叉熵方法数学推导

前言 最近想开一个关于强化学习专栏&#xff0c;因为DeepSeek-R1很火&#xff0c;但本人对于LLM连门都没入。因此&#xff0c;只是记录一些类似的读书笔记&#xff0c;内容不深&#xff0c;大多数只是一些概念的东西&#xff0c;数学公式也不会太多&#xff0c;还望读者多多指教…...

CSS3 的特性

目录 CSS3 的特性CSS3 的三大特性1. 层叠性2. 继承性3. 优先级 CSS3 新增特性1. 选择器2. 盒模型3. 背景4. 渐变5. 过渡6. 动画7. 2D/3D 变换8. 弹性布局9. 网格布局10. 媒体查询11. 多列布局12. 文字阴影和盒子阴影 CSS3 的特性 CSS3 的三大特性 1. 层叠性 定义&#xff1a…...