搞懂“记忆”必看|吃透Engram,坐等Deepseek新模型

AITNT-国内领先的一站式人工智能新闻资讯网站
# 热门搜索 #
搞懂“记忆”必看|吃透Engram,坐等Deepseek新模型
9584点击    2026-03-31 10:30

本文中的“我们”指的是两位硬核教授,


张家俊教授,


中科院自动化所研究员、


中国科学院大学岗位教授、


武汉人工智能研究院副院长;


王金桥教授,


中科院自动化所研究员、


武汉人工智能研究院院长;


再加我,科技作者谭婧。


这次表面上是聊一篇论文,


其实要聊两篇论文。


搞懂“记忆”必看|吃透Engram,坐等Deepseek新模型


第一篇论文来自字节SEED团队,


打了一些基础;


Over-Tokenized Transformer》。


论文标题看上去在讨论“过度分词”。


而重点必然是在第二篇上——


DeepSeek公司的学术成果Engram


Conditional Memory via Scalable Lookup


也就是Engram模块所出处的论文。


搞懂“记忆”必看|吃透Engram,坐等Deepseek新模型


毋庸置疑,Engram“核心思想”是检索,


但它并不是为了做检索而检索。


既然资源总是有限,


那么就需要计算和记忆和平衡。


本质上,既然能直接从记忆中检索到,


就不用重复计算。


那么废话少说,


现在开始吧。


当下的AI


记忆是一个宏大的叙事,


外挂,压缩,总结都是方法,


想去解决大模型记忆能力不足,


一杆子打三枣肯定不行,


摘光低垂的果实,再跳起来够高处的。


也肯定会有博士,博士后,


拿出人生的宝贵时光,专攻于此。


Engram它是模型的“记忆模块”,


肯定算是高处的果实,


它的出现也水到渠成,


正巧处于“上下文”技术并不完美的阶段。


“上下文”,像一种临时草稿纸。


扩展上下文,就是在增强记忆,


它属于扩大计算窗口的路径。


然而,“上下文”再怎么长,


还是有一个明确的边界。


无论你的长度从几千,


还是到几百万token的数量。


当下看来,“上下文”的方法还是“保守了”:


所有信息都用注意力计算(attention),算一遍,


也就是让模型给每个词算“和其他所有词的关系”,


当然,成本线性上升。


比如,一篇文章里,


“彭于晏”出现了88次,


与其算88次,


不如把“彭于晏”,


压缩成一个记忆单元,


以后就只算一次。


这个就是Engram的思路。


学术说法是:


将这种高频,常见的信息,抽取为结构化记忆,


需要之时,直接检索,而不是重新计算。


搞懂“记忆”必看|吃透Engram,坐等Deepseek新模型


这真是一个好想法,


但是,


在哪里检索?


以何种形式检索?


这些都是重要技术细节。


模型架构改进,


它解决的是计算路径怎么高效。


如果想成一个二维坐标,


横轴(模型架构)=让大脑“更聪明”


纵轴(记忆系统)=让大脑“记得住”


这俩不是一回事,而且互相替代不了。


DeepSeek想解决,


如何在“计算”和“记忆”之间找到最优平衡。


怎么把记忆变成拓展无限的呢?


这个问题,光想想都觉得十分有趣,


需要记忆的东西也很多,


比如你女友的生日,例假日期,忌口。


这些是常识,是基础知识,不能犯错。


“知识”是智慧的结晶,


那就更高级了,必须被“记忆”搞定。


Deepseek也是从记忆“知识”下手,


人类世界,有很多信息是固定不变的知识,


比如人名、地名、机构名,成语。


别重新计算了,


要不然还占了用于复杂推理的资源,


省下的算力就可以增加计算的深度。


目前多数方法依赖计算,


而很少用检索。


这是一个非常有价值的思想,


它代表着一种范式的探索:


Engram的核心创新在于,


将检索扩展到N元组或短语级别,


通过识别固定下来的短语和组合来检索。


常言道:“找”比“算”快。


“gram”源自希腊语,


本义是,写下来的东西,


program(往前写 → 计划),


telegram(远写 → 电报),


Engram(记忆 + 书写 → 记忆单元),


好的,小学生单词词尾记忆法介绍到这里。


我们接着聊计算机科学,


后面演化出:


最小有意义的语言片段的含义。


2-gram,3-gram


多了就是N-gram,


于是,N-gram就是语义候选单位。


token是模型为了计算切出来的碎片


而gram是这些碎片,


在语境中重新长出来的意义


“中国”和“科学院”,


分别是两个token的话,


“中国+科学院”,就是2-gram,


也是两个连续token的组合,


实际上,模型事先并不知道,


哪些是有意义的2-gram组合,


因此,枚举所有2-gram,


都进行向量表示(embedding),


这样,后面模型碰上的话,


就不用再计算语义组合了。


还有两个好问题。


第一,为什么强调连续?


强调是连续的2个token组成的片段(词块)。


因为其本质在捕捉局部关系(上下文);


也就是,只看近处,远处不看。


第二,tokengram如何比大小?


token是文本序列切分的最小单元,


gram是组合的最小单元,


1-gram就是一个token


这时候,gram=token


但是,gram也可以根据组合规则确定,


例如gram等于一个词语的词性,


那么n-gram就是关于词性的n-元组,


也就是说,n-gram的基本组合单元,


由我们人为定义的语义决定,


token是相对确定的。


搞懂“记忆”必看|吃透Engram,坐等Deepseek新模型


既然要组合,那就再讲一下组合爆炸怎么来的?


假设词表大小 = V


2-gram的数量 = V²


3-gram的数量 = V³


n-gram的数量 = Vⁿ


词汇表一般几万甚至几十万,


2-gram就是几万的平方就是几亿,


3-gram就是几万的三次方就是千亿量级。


为什么只做到3-gram


超过3就不现实,存储和检索成本太高。


模型为了直接利用这些组合进行处理,


这时候需要将组合(如2-gram、3-gram等),


预先映射到一个Embedding空间中,


形成一个可以高效存储和检索的表示,


使得固定的、稳定的模式可以被快速检索。


有了组合(短语),下一步就是检索。


这些片段是Engram检索的核心对象。


这些词块变成了“检索单位”。


一旦成为检索单位,


系统就不再依赖语义相似


这一步,把检索从像不像


变成了“有没有”。


再往深聊,


语义理解解决的是,


你知不知道它是什么,


而检索解决的是,


你能不能稳定地把它找出来。


检索中用到什么技术呢?


哈希映射的结构化记忆单元。


张家俊老师所带领的NLP研究组,


曾做过这种分组哈希的方式。


为了去解决规模太大,


又希望语义表达空间充足的时候,


会用到的方法。


哈希的目标就是,


希望用更少的存储来实现更多的表征。


哈希映射的作用是将token序列(或N-gram),


映射到一个结构化的内存空间,


通过哈希表的方式索引,


例如,如果“檀健次颜值高”,


作为一个稳定的短语出现频率很高,


Engram可能会为它分配一个哈希位置,


将这个短语的语义,


与哈希表中的某个索引关联起来。


这样,当模型处理类似的短语时,


通过哈希检索,


就可以直接找到对应的信息,


而不需要重新计算。


既然要找(检索)东西,


在建模阶段,就必须讨论清楚,


“要找的东西”到底怎么表示。


假设“要找的东西”就是一个“概念”。


Token组合可以形成比较完整的概念,


但毕竟token是从词汇切分而来,


那就要思考:怎么分,才更好算?


如果词汇切分token切粗一些,


token是否不用组合,


就能形成比较完整的概念?


最极端的方式,就不切分词汇,


一个完整的词汇,就是一个token,


那样词汇表将非常大,


学习词向量(embedding)就成为难题,


很多词汇出现次数太少,


那就很难学到准确的表征。


也就说,token不能切太“完整”,


因为越完整 → 出现越少 → 模型学不会。


字节的论文为DeepSeek的论文,


打下了什么基础?


字节的做法是通过“暴力推测”,


来尽量预见哪些组合会在后续有意义,


从而在后续阶段减少计算量。


字节SEED团队论文的方法,


也是一种预处理的手段,


没有用到检索的这个方式,


检索是DeepSeek“原创”的。


两篇论文,目标一样,方法不一样。


因为Deepseek没有用“暴力推测”,


而是用检索的方法替代了输入的爆炸。


至此,检索这个关键动作终于付出水面。


我们认为,这两篇论文的思想目标是一样的。


就是为了怎么更好,更快的,


把能固定的语义提前给它计算好,


进而理解为,


让模型把“提前算好”的东西,


给提前给它记住。


从检索到记忆,逻辑就是如此。


字节的方法往前推进了一步,


尽管后面省力气,


但是,用分词和过度分词来处理输入文本,


这样的计算方式可能会导致输入的膨胀,


即文本的处理量会急剧增加,


更别谈在长文本或复杂句子中,


模型需要处理更多的token


过大的计算负担始终存在。


回到论文结果,


如果每一层都能查记忆,


那到底哪一层查,效果最好?


Engram在使用时,


并不是每个层级都直接检索。


相反,模型会逐层探索,


查看在哪一层检索的效果最好。


Deepseek论文里的结论是,


第二层效果最佳,


也就是Engram最明显的效果的层数,


并不是在模型的第一层或最后一层,


而是在中间,第二层。


这是实验结果。


最后,


所有知识可以“重新计算”出来,


也可以增加一个“先记忆再检索”的方法。


让记忆给计算打个配合。


你说检索香不香?当然香,找东西贼快,


但也不能一招鲜吃遍天,啥都靠找。


你想,大脑这玩意儿,压根就不是本翻页词典。


真正的聪明的玩法是啥呢?


让检索配合着计算来。


这就好比,


向世界各地小学数学课上推广,


九九乘法表。


文章来自于"亲爱的数据",作者 "亲爱的数据"。

AITNT-国内领先的一站式人工智能新闻资讯网站
AITNT资源拓展
根据文章内容,系统为您匹配了更有价值的资源信息。内容由AI生成,仅供参考
1
RAG

【开源免费】graphrag是微软推出的RAG项目,与传统的通过 RAG 方法使用向量相似性作为搜索技术不同,GraphRAG是使用知识图谱在推理复杂信息时大幅提高问答性能。

项目地址:https://github.com/microsoft/graphrag

【开源免费】Dify是最早一批实现RAG,Agent,模型管理等一站式AI开发的工具平台,并且项目方一直持续维护。其中在任务编排方面相对领先对手,可以帮助研发实现像字节扣子那样的功能。

项目地址:https://github.com/langgenius/dify


【开源免费】RAGFlow是和Dify类似的开源项目,该项目在大文件解析方面做的更出色,拓展编排方面相对弱一些。

项目地址:https://github.com/infiniflow/ragflow/tree/main


【开源免费】phidata是一个可以实现将数据转化成向量存储,并通过AI实现RAG功能的项目

项目地址:https://github.com/phidatahq/phidata


【开源免费】TaskingAI 是一个提供RAG,Agent,大模型管理等AI项目开发的工具平台,比LangChain更强大的中间件AI平台工具。

项目地址:https://github.com/TaskingAI/TaskingAI