当前位置: 首页 » 资讯 » 新科技 » 正文

给大模型做知识编辑这件事,为什么能把事实说对,却答不对问题

IP属地 中国·北京 科技行者 时间:2026-10-31 00:18:58


你有没有想过这样一个场景:你教会一个人一整段话,他能把这段话一字不差地背出来,但你从这段话里随便抽一句单独问他,他却答不上来。

这听起来很荒诞,但这正是当下大语言模型知识编辑领域正在发生的事。

大语言模型知识编辑

知识编辑(Knowledge Editing,简称KE):在不重新训练整个大模型的前提下,对模型里某个具体的知识点进行修改,同时尽量不影响模型其他方面的能力。

为什么需要这件事。大语言模型一旦训练完成,它脑子里的知识基本就定型了。可现实世界一直在变,比如一家公司换了新CEO,一座城市的人口数据更新了,一项科学发现被修正了。模型没法实时跟上这些变化,而重新训练一次动辄花费数百万美元的算力,根本不现实。知识编辑就是想找到一条便宜又精准的路:只改该改的,不碰不该碰的。

早期的知识编辑方法处理的是结构化知识,也就是把事实整理成"主语、关系、宾语"这样的三元组,比如"法国的首都是巴黎"。这种格式整齐、好操作,但现实中的知识往往不是这么规整的。更多时候,新知识是以一整段话的形式出现的,一句话里可能同时藏着好几个事实点。

比如这样一段介绍:"张伟是一位数据科学家,他在2019年加入了一家人工智能初创公司,目前负责该公司的核心算法研发,并在过去三年里带领团队发表了十余篇论文。"这段话里至少包含了职业、入职时间、现任职责、团队成果这四个独立的事实。处理这种自由文本形式的知识编辑,领域内把它叫做非结构化知识编辑。

非结构化知识编辑

非结构化知识编辑(Unstructured Knowledge Editing,简称UKE):输入不再是整齐的三元组,而是一整段自由文本,这段文本里可能同时表达了多条相互关联的事实。

听起来挺合理的技术路线,对吧。给模型喂一段话,模型学会这段话,以后别人问起这段话里的任何内容,模型都该答得上来。

但现实给了研究者一个响亮的巴掌。

当你用原本编辑时用的那句话去问模型,模型能流畅地把整段内容复述出来,看起来编辑非常成功。可一旦你换个问法,单独问这段话里的某个具体事实,比如直接问"张伟哪一年加入这家公司的",模型却经常答错,或者干脆编造一个新答案出来。

这个现象被研究者称为上下文依赖。

上下文依赖

上下文依赖(context reliance):编辑后的模型只有在看到原始编辑文本的完整语境时,才能正确说出其中的知识。一旦脱离这个语境单独提问,模型就找不到答案了。

这就像前面说的那个场景,一个人能完整背出一段课文,却答不出课文里某一句具体讲的是什么。他记住的是"这段话听起来是这样的"这种整体的语感,而不是里面每一个具体的知识点本身。

研究团队没有停在"发现了这个问题"这一步,他们往前多走了一步,去问:为什么会这样?模型的训练过程里到底哪里出了岔子,导致它学会了背诵却没学会理解?

答案和一个叫做"教师强制"的训练技巧有关。

教师强制

教师强制(teacher forcing):在训练语言模型逐字生成文本时,预测当前这个字该是什么的时候,会直接把真实的、正确的前文喂给模型作为参考,而不是让模型根据自己之前预测的内容继续往下猜。

这个技巧本身是为了让训练更稳定、更快收敛,是业界的标准做法。但研究者发现,它在知识编辑的场景下带来了一个意想不到的副作用。

想象一下你在教一个孩子写作文,每写一句话之前,你都先把前面所有正确的句子念给他听,然后让他接着往下写。这种练习方式对孩子来说会越写越容易,因为前面念给他听的内容越多,提示就越丰富,他只需要顺着语感往下接就行,根本不需要真正理解每句话在说什么。

研究团队做了一个很直接的实验来验证这个猜想。他们把一段编辑用的文本喂给模型,在还没开始任何编辑训练之前,先测量模型对这段文本里每个位置的预测难度,也就是初始损失值。

实验结果和直觉完全吻合:文本越往后的位置,初始损失值越低,也就是看起来越"容易"。

这个结果乍一看好像没什么问题,毕竟后面的内容有更长的上文可以参考,预测起来理应更顺畅。但别忘了,这段文本里的每一个事实都是模型从未见过的全新知识。既然都是全新的,凭什么后面出现的事实反而显得更"简单"?

研究者给这个现象起了个名字,叫做上下文诱导的难度低估。

上下文诱导的难度低估

上下文诱导的难度低估(context-induced difficulty underestimation):由于教师强制训练方式,文本越往后的内容能拿到的真实上下文越丰富,这种丰富的上下文成了一种"抄近道"的捷径,让模型即使还没真正学会这个新知识,也能靠蒙对答案,从而让训练损失显得很低,误导了整个学习过程对这段内容"难度"的判断。

为了排除是不是单纯因为后面的句子本身内容更简单,研究团队还做了一个对照实验:把文本里的句子顺序随机打乱,重新测一遍每个位置的损失值。结果呢?规律丝毫没变,还是越靠后的位置损失越低。这就排除了"句子本身难度递减"这个解释,证明问题确实出在上下文提供的捷径上,而不是内容本身。

找到了病因,接下来就是开药方了。研究团队提出的方案叫FOVEATED,这个名字本身带着一点视觉系统的隐喻,意思是"聚焦视图",就像人眼的中央凹聚焦在视野中心一样。

FOVEATED

FOVEATED:一种可以直接插入现有知识编辑方法的框架,核心思路是在编辑训练阶段故意打乱模型对上文位置信息的感知,让模型没法轻松靠上下文的捷径猜答案,必须真正学会每句话本身要表达的事实。

那具体怎么打乱位置信息呢?这里要先解释一下现代大语言模型普遍使用的一种位置编码方式,叫做旋转位置编码。

旋转位置编码

旋转位置编码(Rotary Position Embedding,简称RoPE):一种让模型知道每个词在句子里处于第几个位置的技术手段,它通过对每个词对应的向量做一次"旋转"操作来编码位置信息,旋转的角度跟这个词所在的位置相关。模型在计算两个词之间的关联程度时,就能从这个旋转角度差里感知到它们之间的相对距离。

FOVEATED的做法是,针对要学习的目标句子,把它前面的提示语和每一个前置句子单独看作一个"区块"。对每个区块,随机生成一个位置偏移量,然后只对这个区块里所有词的"键"向量的旋转位置做偏移,而"查询"向量的旋转位置完全不动,目标句子自身的键向量旋转位置也完全不动。

键和查询这两个概念是模型内部注意力机制的核心组件。你可以把它简单理解成,查询是"我现在要找什么信息",键是"我这里存着什么信息,可以被别人查到"。只扰动键而不扰动查询,意味着被扰动的只是"前文被检索到的方式",而目标句子本身"要表达什么"完全没变。

这就好比你在图书馆找资料,你要查的问题没有变,但图书馆每天都把书架上所有旧书的编号悄悄重新打乱排列一次,而你要查的那本新书的位置始终固定不动。如果你习惯了死记硬背某本旧书固定摆在第几排第几列这种取巧的方式去找答案,那这种每天打乱编号的做法会让你没法再偷懒,你必须真正理解这本新书的内容是什么,才能稳定地回答关于它的问题。如果不这样打乱,你很可能永远只记得"大概在那一排",却说不清具体内容。

这个扰动只在编辑训练的过程中生效,编辑完成之后会被撤销,模型在正常使用时的位置编码和原来一模一样,不会有任何额外的推理开销。

研究团队并没有止步于直觉上的解释,他们还给出了一套严谨的数学分析,证明了FOVEATED为什么能起作用。核心结论可以拆成两部分来理解。

第一部分叫做均值边际项。简单说,当你故意打乱上下文的位置信息后,模型原本能从"丰富上下文"里蒙到的那部分置信度会被削弱,这部分削弱量在数学上被证明是非负的,也就是说这种扰动至少不会让模型变得更容易蒙对答案,只会让它更难蒙对。

第二部分叫做视图一致性项。它衡量的是模型在不同的随机扰动视图下,对同一个正确答案给出的置信度是否稳定。如果模型只是单纯依赖位置上下文这种捷径,那在不同的随机扰动视图下,它给出的答案置信度会剧烈波动。而FOVEATED这个训练目标恰恰在惩罚这种波动,逼着模型找到一种不管上下文怎么被打乱都能稳定给出正确答案的内在表示,而不是找到一条只在某种特定上下文排列下才管用的捷径。

这两部分合起来,构成了论文给出的理论保证:只要满足一个叫做"正向捷径假设"的合理条件,使用FOVEATED训练出来的目标token损失,期望上一定不会比不用扰动时更低,这从数学上堵死了模型靠上下文捷径蒙混过关的空间。

讲完了理论,再来看FOVEATED具体怎么落地到不同类型的编辑方法上。目前主流的知识编辑方法大致分成两条路线。

第一条路线叫直接优化编辑器,顾名思义,就是直接用梯度下降去调整模型里某些选定的参数,让模型拟合编辑用的这段文本。这类方法里的代表包括调整模型某一层MLP权重的FT-M方法,以及通过低秩适配器学习新知识的LoRA方法。

对于这类方法,FOVEATED做的事情其实挺直白:把原来对整段文本算一个总损失的做法,拆分成按句子逐一计算损失,每句话的损失计算时都对它前面的上下文施加随机的位置扰动,最后把各句子的损失按词数加权平均起来。论文里专门证明了一个性质,如果把扰动幅度设为零,这个新的损失函数会完全退化回原来那个标准的整段文本损失,这说明FOVEATED是在原有方法基础上做的平滑扩展,而不是推翻重来。

第二条路线叫定位后编辑编辑器,这类方法的思路是先想办法定位出模型里哪些层、哪些隐藏状态和要修改的知识相关,然后针对这些位置写入一个精确的参数更新,往往会用到闭式求解的方式。这类方法里的代表包括μKE和UnKE。

这条路线要应用FOVEATED就没那么直接了,因为它们优化的目标是模型内部的中间隐藏状态,而不是直接去拟合最终输出。研究团队为此设计了一套两阶段方案。

第一阶段,先针对每句话单独学习一个residual残差,residual就是要叠加到模型某一浅层MLP输出上的一小段修正量,把这个残差写入模型比较浅的几层。这一步训练的时候同样会对每句话的前文施加随机位置扰动,确保每个句子级别的知识点都能被单独、稳固地学到,不依赖上下文捷径。

第二阶段,在完成浅层写入之后,再用原来那套定位后编辑的方法去处理更深的层,学习整段文本作为一个整体的连贯表达。这一步会额外加一个约束项,要求深层编辑不要破坏掉第一阶段已经写进浅层的那些句子级知识点。

这个设计思路和FABLE这篇相关工作有一些相似之处,但关键区别在于,FABLE需要借助外部模型额外生成一批问答对作为监督信号,而FOVEATED的句子级目标完全来自编辑文本本身,不需要引入任何外部合成数据,这让整个流程更轻量、更可控。

接下来看实验结果能不能撑得起这套理论。

研究团队在两个主流的开源大模型上做了实验,分别是Qwen2.5-7B-Instruct和Llama-3.1-8B-Instruct,覆盖了三个评测基准,分别基于UnKEBench、CounterFact和MQuAKE这几个知识编辑领域常用的数据集改造而来,统一命名为UnFine系列。他们一共测试了五种编辑方法,覆盖了直接优化和定位后编辑这两条路线。

评测指标分成两大类。一类叫整体召回,衡量用原始编辑问句或者它的改写版本去问模型时,模型能不能把整段编辑内容复述出来。另一类叫原子事实召回,衡量用拆解出来的具体小问题去单独问模型时,模型能不能答对每一个独立的事实点,这是真正检验模型是不是"理解"而不是"背诵"的核心指标。

实验数据相当有说服力。在原子事实召回这一项上,加入FOVEATED之后,所有30个测试场景的ROUGE-L指标都有提升,平均提升了4.4个百分点。还有两个辅助指标,命中率和部分覆盖率,分别在29个场景里都有改善,唯一出现小幅下降的两个场景降幅也都控制在2个百分点以内。

更关键的是,这种提升并不是靠牺牲整体召回能力换来的。原始问句的召回分数基本保持不变,而改写问句的召回分数在20个适用场景里有19个都在提升,平均提升幅度达到8.4个百分点,这说明模型变得更稳健了,不再那么依赖问题的具体措辞方式。

如果拆开两条技术路线分别看,直接优化这一类方法用上FOVEATED后,原子事实召回平均提升了10.3%,而定位后编辑这一类方法的提升更大,达到了12.9%。有一个细节特别值得一提,COIN这个方法本身已经内置了一套专门对抗上下文依赖的机制,但即便如此,叠加FOVEATED之后依然能继续带来提升,这说明两种思路解决的是问题的不同侧面,可以互相补充,不是互相替代的关系。

研究团队还做了一个很细致的分析,按照问题在原始段落里出现的先后顺序,把原子事实召回的表现拆开来看。结果印证了前面提到的发现:越靠后的问题,模型回答得越差,这和前面测到的"越靠后位置损失越低"的现象是互相对应的两个侧面,一个是训练阶段的难度被低估,一个是实际使用阶段表现变差,两者共同指向同一个病因。

而加了FOVEATED之后,即便是排在很靠后位置的问题,提升幅度依然能达到大约6个百分点,和排在中间位置的问题的提升幅度基本持平。这说明FOVEATED确实抓住了问题的根本,不是只对容易的部分做了优化,而是真正解决了那些原本因为上下文过长、捷径效应过强而被严重低估的难题。

除了知识编辑本身的效果,研究团队还检验了编辑之后模型的通用能力有没有受损,这一点在实际应用中非常关键,谁也不希望改好了一个知识点却把模型其他方面的能力弄坏了。他们在六个标准的语言理解和推理测试集上做了评估,包括情感分类、知识问答、句子改写判断、语法正确性判断、文本蕴含关系判断等任务。结果显示,十种模型和编辑方法的组合里,宏观平均分数相对于不用FOVEATED的版本,变化幅度都在正负4.3个百分点以内,整体上维持了稳定,部分组合甚至还有小幅提升。

研究团队还做了一系列拆解实验,想搞清楚FOVEATED里每个设计选择到底各自贡献了多少。

一个关键对比是,只用新的损失函数框架但完全不加任何位置扰动,效果会打回原形甚至更差,这说明光是改变损失计算的组织方式本身没用,核心驱动力真的来自那个随机位置扰动。另一个对比是,如果扰动的是查询和键共享的位置编号,而不是只扰动键,效果会打折扣,这验证了只扰动键、保持查询不变这个设计选择确实是有道理的,不是随便拍脑袋决定的。

对于两阶段的定位后编辑方案,研究者还试了去掉第二阶段只留第一阶段,结果整体召回能力直接腰斩,从99.9%掉到40.1%;他们还试了把两个阶段的顺序倒过来,结果同样是整体召回大幅受损,但原子事实召回反而几乎没受影响。这说明这两个阶段各自承担着不可替代的职责,先打好句子级的根基,再在此基础上去拟合整段话的连贯表达,这个顺序和分工都是经过验证确实必要的,不是随意安排的流程。

最后研究团队还给出了一些真实的案例对比,直观展示FOVEATED解决问题的效果。比如一个关于某位历史人物出生年份的问题,没用FOVEATED之前模型答出了一个错误的年份,像是把别处见过的某个相近年份张冠李戴了过来;用了FOVEATED之后答案就准确对上了编辑文本里写的那个年份。还有一个关于某人任职年龄的问题,原本模型给出的年龄和编辑文本里写的完全不同,像是沿用了模型训练前就记住的某个旧信息,加入FOVEATED之后答案就和编辑文本精确吻合了。

当然,这一切也是要付出代价的。研究团队测算了额外的计算成本,用FT-M这种直接优化方法时,单次编辑耗时从3.06秒涨到了13.72秒;用μKE这种定位后编辑方法时,单次编辑耗时从5.69秒涨到了21.34秒,显存占用也略有上升。好消息是,这些额外开销只发生在编辑训练阶段,一旦编辑完成,位置扰动就会被彻底撤销,模型在实际使用阶段的推理速度和显存占用完全不受影响。

Q&A

Q1:FOVEATED是什么?

A:FOVEATED是一种可以插入现有大语言模型知识编辑方法的框架,通过在编辑训练阶段随机打乱模型对前文位置信息的感知,让模型没法靠上下文捷径蒙答案,从而学会单独回答编辑文本里每一个具体事实的能力。

Q2:为什么编辑后的大模型能复述整段话却答不对里面的具体问题?

A:这是因为训练时用了教师强制的方式,文本越靠后的内容能看到的真实上文越丰富,这种丰富上文成了一种捷径,让模型即使没真正学会新知识也能蒙对答案,造成了上下文依赖和上下文诱导的难度低估两个连带问题。

Q3:FOVEATED会不会增加模型使用时的成本?

A:不会增加使用时的成本,位置扰动只在编辑训练阶段生效,编辑完成后会被撤销,模型推理时的速度和显存占用和原来完全一样,只是编辑训练阶段本身耗时会有所增加。

【数据支持来自天眼查App】

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其内容真实性、完整性不作任何保证或承诺。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。