deepseek节前开始蓄力!
最新论文直接给transformer加上“条件记忆”(conditional memory),补上了原生缺乏的知识查找机制。
结论中明确写道:我们将条件记忆视为下一代稀疏模型不可或缺的建模原语。
还是梁文锋署名,并与北京大学王选所赵东岩、张辉帅团队合作。
论文中不仅提出了条件记忆这个全新范式,并给出了具体实现方案engram模块,实验中让27b参数碾压同规模纯moe模型,甚至变相提升了大模型的推理能力:
让原来transformer要用6层注意力才能干的简单任务压缩到1-2层搞定,省出来的资源就可以用于更难的推理任务了。
条件记忆的原理其实也非常“原始”:不靠计算,回归查表,用上了传统n-gram方法。
给大模型一个巨大的词表,专门存那些固定的实体名称和两三个词的短语,不管词表多大,找信息都是o(1)速度。
关键就在于,如此前大模型时代的玩法,deepseek如何解决传统n-gram模型存储爆炸和多义性问题,又是让它和现代transformer结合起来的?
让注意力干“苦力活”太浪费了
团队的核心观察是,语言建模其实包含两种性质完全不同的任务,一种是需要深度动态计算的组合推理,另一种则是检索静态知识。
问题在于,现有的transformer架构缺乏原生的知识查找机制。
当模型需要识别一个实体时,它得消耗好几层注意力和前馈网络,逐层拼凑特征,最终才能完成。
论文中引用了一个具体案例:”diana, princess of wales”
模型需要经过6层才能完成这个识别过程,前几层还在纠结”wales是英国的一个地区”、”princess of wales是某种头衔”这些中间状态,最终才能“想起来”这是指戴安娜王妃。
本质上是在用昂贵的运行时计算来重建一个静态查找表,那些本可以用于更高层推理的网络深度,被浪费在了识别概念这种“苦力活”上。
回归查表,回归n-gram
engram的设计思路相当直接:既然经典的n-gram模型就能用o(1)的时间复杂度捕获这些局部依赖,那为什么不把这个能力直接嵌入transformer?
具体实现上,团队在原有的transformer层之间插入engram模块。每个位置的输入会触发一次哈希查找:把当前token和前面几个token组成的n-gram映射到一个巨大的嵌入表中,直接取出对应的向量。