DeepSeek的Engram项目:条件记忆的新维度
看了DeepSeek的Engram项目,发现它和大众对于记忆系统的理解有很大的不同。Engram是一个开源项目,旨在通过可扩展的查找表实现条件记忆,为大型语言模型提供一个新的稀疏维度。这个项目的初衷是解决大模型中Transformer层的计算资源浪费问题,特别是在固定知识匹配上的浪费。为此,作者在模型结构中新增了一个模块,称为Engram块,它位于Attention块之前。Engram块的工作原理是,对于当前处理的token,找到其前面的token序列,并使用这个序列来查询一个表,查询结果将与当前计算结果融合,供后续模块参考。例如,在生成句子“中国|首都|…”时,Engram可以查询到与“北京”概念相关的结果,并将这个结果融合进当前计算结果中,从而节省了Attention和Moe层存储和计算这个知识资源的需要。这种新结构模型与原结构模型性能的对比显示,Engram可以有效地提升模型的智力。因此,Engram可以被看作是模型内置的一个微型RAG(Retrieval-Augmented Generation),而不是传统的记忆系统。Engram的查找表是通过训练得到的,初始状态是随机生成的,随着训练过程,模型会自己记录有用的信息在表里。在处理token序列时,模型会取出前2到n个token的所有序列,然后分别查表得到结果,并将这些结果融合在一起。这种设计使得Engram能够有效地存储和检索固定token搭配的相关知识,从而提升语言模型的表现。
评论已关闭