一种基于注意力读出与竞争式更新的语言模型外置记忆方法与流程

摘要: 本发明属于人工神经网络与自然语言处理,尤其涉及到一种基于注意力读出与竞争式更新的语言模型外置记忆方法。背景技术:1、近年来部署于对话场景的大型预训练语言模型(l...
一种基于注意力读出与竞争式更新的语言模型外置记忆方法与流程

本发明属于人工神经网络与自然语言处理,尤其涉及到一种基于注意力读出与竞争式更新的语言模型外置记忆方法。

背景技术:

1、近年来部署于对话场景的大型预训练语言模型(large language model,以下简称llm)在长期会话、跨会话回忆、多日累积上下文等"长程记忆"任务上存在显著困难;本领域目前主要采用以下三类已有技术方案:

2、1.扩展上下文窗口(extended context window)方案;该方案将历史对话以原始文本形式拼接到本次推理的输入上下文中,设上下文长度为n,则标准自注意力的计算复杂度为,在线性注意力变体中亦呈超线性增长。此外,每次推理需在显存中维护键值缓存(kv-cache),其占用与n成正比。代表性现有技术包括:长上下文transformer类(如longformer、bigbird、streamingllm等);通过位置插值/外推扩展窗口长度的方法(如position interpolation、yarn等);

3、2.检索增强生成(retrieval-augmented generation,rag)方案;该方案将历史对话存入外部向量数据库,推理时先用嵌入模型对当前查询进行向量化、再以相似度检索方式取回若干段历史文本片段,并将这些片段重新拼入语言模型的上下文窗口。代表性现有技术包括传统rag管线、各类检索式对话系统、以及"长期记忆插件"类外接组件;

4、3.用户级微调(per-user fine-tuning)方案;该方案对每个用户的对话历史在语言模型本体权重上进行增量微调,例如全参数微调、lora、adapter等参数高效微调方法。

5、现有技术的缺点:

6、1.关于扩展上下文窗口方案的缺点:(1)随会话长度增加,单次推理的算力与显存成本单调增长,呈二次方或超线性,长期使用经济上不可持续;(2)注意力机制在长上下文中段存在"信息中部丢失"现象,即模型对位于上下文中部的信息利用率显著下降;(3)多数预训练模型对超出其训练时窗口长度的上下文外推能力弱,强行扩展会引入分布偏移;(4)历史信息以原始token形式重复进入上下文,缺乏"应记什么、应忘什么"的主动判别机制。

7、关于检索增强生成方案的缺点:(1)依赖外部独立基础设施(嵌入模型、向量库、检索管线、重排序模型),系统复杂度高,部署运维成本高;(2)检索器与语言模型在训练阶段相互解耦,无法联合学习"什么内容值得记忆",记忆策略只能由人工启发式设计;(3)检索结果以自然语言文本形式回注上下文,仍然消耗与扩展窗口方案同等的token级算力;(4)每个用户的检索状态需在语言模型外部独立维护,难以满足端侧(on-device)私有记忆的需求。

8、关于用户级微调方案的缺点:(1)对每用户进行参数更新的算力开销巨大,难以扩展到大规模用户群;(2)微调容易引发灾难性遗忘(catastrophic forgetting),损害预训练阶段所学的通用能力;(3)每用户单独的参数副本体积通常远大于一段对话历史所需的存储空间,端侧部署不经济;(4)一旦微调完成,模型即"固化"了用户信息,难以做到主动忘记或细粒度更新某条具体记忆。

技术实现思路

1、本发明的目的在于克服上述现有技术中存在的不足,本发明能够在不修改预训练语言模型本体参数、不依赖任何外部检索系统、不扩展模型上下文窗口的前提下,使语言模型在前向推理过程中以恒定的、与历史长度无关的计算开销访问跨会话长程信息,并由方法本身判定哪些历史信息应被保留、哪些应被覆盖。

2、为了实现上述发明目的,本发明专利提供的技术方案如下:

3、一种基于注意力读出与竞争式更新的语言模型外置记忆方法,该方法具体包括如下步骤:

4、s1,记忆-注意力注入,在每一次推理会话内,对于语言模型的一个或多个指定层,以该层的输入隐状态作为查询,从固定容量记忆矩阵中以跨层注意力方式读出一个记忆读出量,对所述记忆读出量以所述记忆矩阵为键值进行至少一次残差式迭代精化,并将精化后的记忆读出量通过深度路由机制注入该层的残差流;

5、s2,自动改写,在一次会话结束之后、所述记忆矩阵被后续会话读出之前,以一组可学习的改写查询作用于刚结束的本次会话的token表征序列,通过跨层注意力将该会话所含信息压缩为一个与记忆矩阵形状一致的候选记忆矩阵;

6、s3,两阶段竞争,将旧记忆矩阵与候选矩阵沿槽位维拼接为长度为2k的拼接矩阵,以一组可学习的判定查询作用于拼接矩阵,执行基于softmax归一化的竞争式注意力更新,使旧槽位内容与新候选内容通过softmax归一化构成零和竞争,由竞争结果决定更新后记忆矩阵中每一槽位的内容,产出更新后的记忆矩阵,作为下一会话的初始记忆。

7、进一步地,所述语言模型的解码器层数为l,设置一个或多个被注入层的索引集合;所述s1中记忆-注意力注入具体为:

8、s11,为每一被注入层ℓ配置该层独有的可学习投影矩阵、、;设该层在当前推理位置的输入隐状态序列为,其中n为当前序列长度;

9、s12,从固定容量记忆矩阵获得当前层、当前位置的记忆读出量,具体获取为:

10、;其中为该层当前输入隐状态序列,softmax沿k维度归一化;

11、s13,将得到的作为该层的基础源加入残差流的可选源池中,设该层在沿深度方向已积累的可路由源池为:

12、,

13、其中表示由本方法注入的记忆源,b_0表示embedding层输出,表示来自此前各解码块的中间残差源;以可学习的伪查询对中的各源做softmax加权:

14、,

15、;

16、并以作为该层后续子层的实际输入。

17、进一步地,所述s1中还包括:引入精化深度r≥1,对r=1,2,...,r迭代执行:,其中各拥有独立的可学习参数。

18、进一步地,所述s2具体包括:

19、s21,配置一组可学习的改写查询矩阵,其行数与m_c的槽位数k一致;m_in各行以正交初始化,并在前向传播时为每一行叠加槽位位置编码以打破置换对称性;

20、s22,将本次会话压缩为候选记忆矩阵具体为:,

21、其中为本次会话的token表征序列,、、为可学习投影,为压缩结果;

22、s23,将e作为m_new输出。

23、进一步地,所述s2还包括:引入提取深度l_e≥0,对迭代执行:

24、,

25、,

26、,

27、其中各拥有独立的可学习参数。

28、进一步地,所述s3具体包括:

29、s31,将旧记忆与新候选沿槽位轴拼接:;

30、s32,配置一组可学习的判定查询矩阵,其行数与最终输出的槽位数k一致;m_judge以正交初始化并叠加槽位位置编码;

31、s33,以m_judge为初始槽位状态,对i=1,...,t迭代执行下述竞争式更新,t为预设迭代次数:

32、;;;;,其中、、为可学习投影;softmax_k表示沿k个记忆槽位方向的softmax归一化,使拼接矩阵p中2k个输入槽位(k个旧槽位与k个新候选槽位)中每一个的注意力质量在k个记忆槽位之间零和分配;norm_slot表示对每一记忆槽位行做加权平均归一化使其行和为1;gru为权重跨槽位共享、隐状态逐槽位独立的门控循环单元,实现逐槽位的保留/写入门控。

33、进一步地,所述s3中还包括:在执行softmax归一化前,对每一输入列在k个输出槽中仅保留得分最高的k个,将其余位置的logits置为,再做softmax;其中k为预设的小整数;

34、执行softmax归一化后,追加一个可学习的逐槽位门控向量,按下式进行门控融合:,其中m_judged表示s33迭代结束后的输出。

35、进一步地,所述被注入层索引集合为所有层均注入、仅指定的若干层注入和按可学习的层选择门动态决定注入层中的任意一种。

36、进一步地,该方法所引入的可学习参数在语言模型本体参数冻结的条件下以端到端语言建模损失训练获得;且训练总损失中还包括一个深度路由记忆占比下限辅助损失

37、

38、其中为全部被注入层的集合,为第层深度路由分配给记忆源b_{-1}的softmax权重在当前训练批次全部token位置上的平均值,τ∈(0,1)为预设下限阈值,relu(x)=max(x,0);训练总损失为,其中l_lm为语言建模损失,λ_floor>0为预设权重;该辅助损失仅在训练阶段生效,不改变推理阶段的任何计算。

39、进一步地,所述s3中的竞争式归一化注意力更新采用单轮判定实现,具体包括:

40、s311,将旧记忆与新候选沿槽位轴拼接:;

41、s312,配置一组可学习的判定查询矩阵,其行数与最终输出的槽位数k一致;

42、s313,按下式得到更新后的记忆:

43、,

44、其中、、为可学习投影;所述softmax沿2k个输入方向归一化,使每一输出槽位的注意力权重在k个旧槽位与k个新候选槽位之间构成一个概率分布,旧槽位内容与新候选内容通过该概率分布实现零和竞争。

45、一种语言模型外置记忆装置,包括记忆维护模块、记忆-注意力注入模块、自动改写模块与两阶段竞争模块,分别用于维护所述记忆矩阵及执行上述步骤s1、s2、s3。

46、一种电子设备,包括处理器与存储器,存储器中的计算机程序被处理器执行时实现上述方法。

47、一种计算机可读存储介质,其上的计算机程序被处理器执行时实现上述方法。

48、基于上述技术方案,本发明专利一种基于注意力读出与竞争式更新的语言模型外置记忆方法经过实践应用取得了如下技术效果:

49、1.与“扩展上下文窗口”方案相比,本发明的注入方式使每次推理只需访问大小恒定的m_c,单token推理算力与会话历史长度无关,不存在二次方爆炸,相同硬件条件下可支持任意长会话。

50、2.与“检索增强生成”方案相比,本发明的改写与竞争完全在模型前向通路内由可学习参数完成,无需嵌入模型、向量库、检索管线、重排序模型;可学习查询使“什么应被记忆”由端到端任务损失自动学得,而非由人工启发式决定;竞争机制使“什么应被覆盖”亦由方法自身判定。

51、3.与“用户级微调”方案相比,本发明的方法均不修改语言模型本体参数,仅维护可在用户间共享的方法侧投影参数以及每用户极小的私有m_c(典型为数百kb到数mb级别);不存在灾难性遗忘问题,可便捷地进行端侧部署。