模型架构推理与性能科研与技术前沿

把知识搬出 GPU:DeepSeek Engram 与模型的第二条稀疏轴

翻看 DeepSeek 发布的 V4.1 Flash 的技术报告,会注意到一个容易掠过去的数字:团队把 196B 参数划给了一个叫 Engram 的模块。这批参数和平常讨论的密集权重不同,它们不做矩阵乘,只躺在查找表里等模型来取。既然不用来跑计算,它们就无需常驻 GPU 显存,而是存放在主机内存里,模型运行时按需读取。参数规模越大越消耗显存的经验规律,到这里失效了。

报告中披露的评测数字引出了一条耐人寻味的线索。从作者自述的实验结果看,这个记忆查找模块带来的主要收益落在了推理类任务上,知识类任务的涨幅反而相对平缓。在论文自报的实验数据里,知识评测中 MMLU 上涨 3.0、CMMLU 上涨 4.0;推理评测中 BBH 涨了 5.0、ARC-Challenge 涨了 3.7;大海捞针的长上下文检索准确率也从 84.2 升至 97.0。这批提升目前均属作者自述,尚未见到第三方独立复现。一个专门用来提取记忆的部件,为何反倒让多步推导与长程注意力发挥得更好,这比单纯腾出显存空间更耐人琢磨。

回忆不该走计算

语言模型回答常识事实,走过的通路与推导数学定理并无区别,都要穿过深层网络,从底层往上一层一层执行矩阵乘法。但这两种任务在信息结构上差异很大。严密推理需要全局视野和多步推导,模型得通读整段上下文,顺着逻辑链条逐层推进;回忆某个静态事实,往往只依赖眼前极短的一组词,给定了这几个 token,答案就几乎锁定了。在大多数情况下,回忆都可以看成一个局部的、确定的映射,并不需要多步推导。

把这两种运作规律迥异的任务塞进同一条深层通路,模型每次遇到静态事实,都得动用好几层注意力与前馈网络重新构建它。DeepSeek 在 Engram 论文中将这种设计视作架构缺陷:混合专家模型依靠条件计算来扩展参数容量,模型内部却始终缺少原生的知识检索机制,只能耗费算力去反复模拟查找。团队给出的解法是给模型增加条件记忆通道,将其作为与混合专家模型并行的第二条稀疏轴。两条轴各司其职,一条按需激活计算,另一条按需查表。

为什么偏偏是查表

把记忆与计算解耦,在工程上并不直接等同于查表。检索增强生成早早将记忆放到了外部,通过知识库检索文档;kNN-LM 也探索了分离路径,依靠向量相似度匹配近邻。这两条路线都没有走向静态查表。解耦本身只是架构设计的目标,到底采用什么机制实现分离,取决于要分离的对象本身具有怎样的结构。

回到回忆本身的结构特性:它是一个局部的、确定的映射。要为它搭建一套专属通道,必须同时满足三个苛刻条件。第一,它要能把眼前出现的短语直接置换为对应知识嵌入,自身不能再引入深度计算,否则只是把矩阵运算换了个地方跑。第二,它必须单次寻址直接拿到结果,前面不能再经历任何搜索阶段。第三,它必须能容纳海量的知识条目。同时满足这三项约束的结构极为收敛:键到值的直接映射,最直观的实现就是一张表;查找键不需要检索、直接由最近的几个 token 拼接生成;面对组合爆炸的海量词元,则通过哈希函数将任意键映射进定长表中。

检索增强生成与 kNN-LM 遇到的瓶颈,恰好印证了上述每一步取舍的必要性。检索增强生成虽然把存储移到了外部,却依然让计算留在了原处:系统按相似度从外部库捞出文档,捞到的文本依然需要塞回上下文让模型逐层重算,静态事实照样消耗深度计算资源,还挤占了宝贵的上下文长度。kNN-LM 依靠相似度匹配邻居向量,检索动作本身就是一次复杂的距离搜索,硬件无法预先推算后续要读取的内存地址,也就无从安排流水线预取。两者的检索都得先做相似度匹配,很难只凭输入就提前定下要读哪些地址,也就难以把这部分读取藏进计算背后。

整套设计逻辑由此紧密咬合:回忆本身属于确定的局部查找,查表成了最具能效比的实现载体;查找键可以直接从上下文推导,顺理成章选用了前序的几个连续 token;组合空间过于庞大,便引入哈希函数折叠表项。把实现路径收拢到查表,正是顺着回忆作为局部确定映射这条因果链推导出来的自然结果。

对比面板:旧路径把回忆和推理塞进同一条深层计算通路,新路径让推理走计算、回忆走查表。

查表怎么住进主机内存还不卡

落到具体实现,Engram 查表使用的键直接取自前文序列。网络截取当前生成位置前面的两到四个连续 token 拼接成查找键,送入一张巨大的向量表里查出对应的嵌入向量。两三个词元的排列组合规模极为庞大,无法做穷尽式的单表展开,系统便使用多个哈希函数将同一个键映射到表内的不同槽位,形成多头哈希结构。即便某个哈希头遭遇了地址碰撞,其余哈希槽位往往落在别处,依旧能够稳定读出有效的特征向量。整张表因此可以扩展至极大规模,单次查表耗时始终维持在常数级别,与整张表容纳的条目总量无关。

解决了表结构,接下来的难题是这张大表到底安放在何处。若是继续留在 GPU 显存里,显存吃紧的局面就丝毫没有缓解;论文选择的路径是把这批海量参数移出显卡,安置在容量更宽裕、单位成本更低的主机内存中。这条看似会遭遇总线带宽瓶颈的路线之所以能够跑通,依托于三个环环相扣的前提条件。

首要前提是内存地址完全确定。因为查表所用的键直接取自前文已生成的 token,系统在模型刚开始运行时,就能提前推算出后续网络要读哪个物理地址,完全省去了边推理边检索的开销。第二项前提是真实语言呈现出极端长尾的分布。实际文本中极少数高频词元组合占了绝大多数访问频次,工程上得以搭建清晰的存储分层:最高频的特征向量常驻显存,次高频的部分放在主机内存,稀疏的长尾条目留给更慢但更大的存储介质。第三项前提是用数据预取平摊通信延迟。趁着 GPU 还在算前序浅层的矩阵乘法,传输通道就已经提前把深层网络所需的向量搬运就位。技术报告指出,V4.1 借助 RDMA 管道构建了这套预取流,数据传输与第一个 Transformer 块的前向计算得以无缝重叠。在这三个条件之中,提前算准目标地址是最核心的支柱,整条低成本链路都依托于这个确定动作。

把容量拆成两笔账

如果仅仅停留在这套通信优化上,Engram 或许还只是一项巧妙的显存节约技术。论文更想讲清的核心判断,在于模型容量本身拥有截然不同的开销途径。混合专家模型扩展容量依托的是条件计算,每个生成的 token 都必须经过动态路由去挑选并激活若干专家网络;Engram 扩充容量则依赖条件记忆,挂载一张尺寸庞大的查找表,模型就能沉淀更充沛的静态知识储备,过程中无需增加任何浮点矩阵运算。计算与记忆这两笔账由此清晰地分立开来,随之产生了一个新的工程命题:有限的稀疏容量究竟该如何在动态推导与静态查表之间进行切分。

论文将这个权衡命名为稀疏分配,并通过实验勾勒出一条明确的 U 型曲线。把全部容量全押在计算专家上并非最优,全盘倒向静态记忆查表同样应付不了复杂语境,全局平衡点恰好落在两者交织的中间地带。研究团队先在 5.7B 和 9.9B 两个规模上扫描不同配比,发现把大约 20% 到 25% 的稀疏容量分给 Engram 时效果最好;再把这条规律用到 27B 的模型上,与同等参数量、同等 FLOPs 的纯混合专家基线相比,综合表现更好。当然,这些指标目前均属于论文作者自报的实验数据,行业内尚未出现第三方机构的独立复现。这项探索的核心价值超越了单点工程优化,它把长期以来只讨论模型要做多大参数,往前推了一步:模型容量到底该依托何种硬件介质承载,又该以怎样的比例在计算与记忆之间切分。

分配示意图:稀疏容量大致分成两笔,约四分之三给 MoE 动态推理,约四分之一给 Engram 静态查表。

最反直觉的地方:涨得最多的是推理

依照直觉设想,外挂或者内嵌一个记忆查找单元,主要作用理应是替模型背诵各种常识知识,收益自然应当集中在知识问答榜单上。然而论文披露的实际测试走势展现了颇具反差的一面:在作者自述的评测中,涨幅最大的是多步推理,BBH 涨了 5.0、ARC-Challenge 涨了 3.7,代码与数学也在同步上涨,而知识向的 MMLU 与 CMMLU 分别上涨 3.0 和 4.0。更加直观的变化发生在大海捞针测试中,长上下文信息检索能力从 84.2 攀升至 97.0。需要说明的是,这类推理与检索的大幅跃升仍属论文自报数据,目前未见独立第三方的复现结果。

这个看似反常的走势,背后有一条清楚的机制链路。在常规自回归架构里,靠近输入端的浅层网络往往要分担相当多的参数权重与注意力预算,去反复拼凑和还原局部的静态搭配;查表模块接管了这套局部映射后,前几层网络从重复的机械搬运中抽出身来,模型宝贵的计算深度得以聚焦在更具挑战性的复杂推理任务上。与此同时,局部词序依赖转移给查表模块后,自注意力对近邻模式的建模负担随之减轻,可以挪出更多预算去捕捉全局长程依赖,长上下文检索准确率因此明显改善。

这也是整项工作最有价值的工程推论。将静态记忆移出密集运算通路,价值远不止于省下一块昂贵的 GPU 显存,它深刻改变了剩余计算资源的运用方式。铺设一条低成本的确定查表通道,换来的是一条能够专注投入复杂逻辑推导的高效计算通路。

因果链:静态模式交给查表后,腾出早期层,注意力转向全局,长上下文检索从 84.2 升到 97.0。

更像一次内存分层,而不是一套新架构

把这个思路放回计算机史里看,它并不新。从冯·诺依曼那台机器开始,计算和存储就分处两地,数据要在两者之间来回搬,吞吐长期卡在这条通道上,这就是后来的冯·诺依曼瓶颈。Engram 是对这个老问题的又一次回应:静态知识让整个表反复进出计算单元代价太高,那就把它留在便宜的宿主内存里,只按地址取当前要用的少量向量,再用预取把传输延迟藏起来。它分开的是模型内部两类性质不同的容量,一类拿来算,一类拿来查。

从这个视角观察,这项探索更像计算机体系中历经多次验证的存储分层机制。操作系统里的虚拟内存便遵循这套逻辑:体量庞大的数据存放于廉价慢速的存储介质中,唯有高频活跃的工作集才会换入高速物理内存,系统依托局部性原理做好热点缓存与预先读取。Engram 的确定性寻址也让它适合做类似的缓存分层,并允许运行时提前调度数据;V4.1 报告里明确披露的是主机内存加后台 RDMA 预取。这项设计把工业界成熟的存储分层思想,规范地引入到了深度模型架构内部。

过去若干年里,产品键记忆、kNN-LM 以及检索增强生成都曾尝试将记忆剥离出主干网络,却大多受困于检索延迟过高、需要额外训练检索模型,或者仅仅把检索文本重新塞入上下文。如今这条路线重新走通,依赖于三项工程条件的同步成熟。首先,服务器主机内存的物理容量远超 GPU 显存,且确定寻址配合预取流水线,能把从主机内存读取向量的开销压得很低;其次,取回的嵌入向量能够借助门控网络实现端到端梯度反传;最后,架构确立了在计算容量与记忆容量之间精细调节的配比机制。缺少任何一项,这条通路都难以落地。

这也解释了为什么相关探索并未局限于单个团队。Qwen3.8 Flash-Next 在其架构中引入了 51B 参数量的 N-gram 嵌入层,设计论文明确指出该方案基于 Engram 架构并沿用了门控融合方式,查找表同样放置在主机内存中。两家具有代表性的工程团队在相近时段向同一方向收敛,通常表明外置静态记忆已经走入主流视野。

对于负责实际系统部署的团队而言,性能评估的基准维度随之改变。工程人员过去习惯于紧盯 GPU 显存水位与张量算力峰值,未来还必须严格核算主机内存的可用容量、总线吞吐带宽,以及业务负载是否真正呈现长尾访问特征。论文自述中提及的开销微乎其微,核心前提是寻址动作确定、访问呈现长尾模式,以及预取与计算能够完全重叠,而真实的动态生产环境并不总能维持这些理想条件。在证据采信上也应保持审慎克制:27B 参数下的对比表现建立在作者自选的基准线之上,75/25 的稀疏分配比例同样来自单篇论文自述,是否具备跨规模、跨领域的普适性仍有待观察。Engram 勾勒出的路线图清晰明确,但要真正确立为下一代大模型的标准构件,仍需经历业界独立的充分复现与验证。

本文梳理的是模型容量维度的内存解耦:静态知识如何安全有序地移出 GPU 核心。关于服务侧如何大幅压缩 KV 缓存体积的系统设计,可参见同一系列的第一篇《DeepSeek V4.1 Flash:算力优化触顶之后,长上下文的战争转向内存》

鸭哥每日手记

日更的深度AI新闻和分析