一块 196B 参数的"外挂大脑"不在 GPU 上,而在服务器最普通的内存条里------推理开销却小于 3%。这件事值得每一个做大模型的人认真读一遍。
序:一个容易被忽略的数字
2026 年 9 月,DeepSeek 发布 V4.1-Flash。绝大多数解读的注意力都落在百万上下文、FP4 KV Cache(每 token 890 字节,比第一代缩小 437 倍)和投机解码模块 DSpark 上。但翻技术报告时,有一个数字更容易被划过去:总参数 552B 的模型里,有 196B 参数被分配给一个叫 Engram 的模块------而且这 196B 参数从不参与矩阵乘法,只是躺在查找表里,等待被检索。
更反直觉的是这 196B 参数的物理位置:它们不在显存里,而在**主机内存(CPU DRAM)**里。推理时,模型按需从中取出几行向量,通过 PCIe 读进 GPU,整个过程对端到端吞吐的影响小于 3%。
这件事的分量,要放到大模型行业的核心矛盾里才能看清。过去三年,模型能力的每一次跃升都伴随一个不成文的等式:参数量 ≈ 显存需求 ≈ GPU 数量 ≈ 成本。MoE 架构打破了等式的一半------激活参数与总参数解耦了(V4.1-Flash 每 token 只激活约 8B 参数做 prefill),但总参数仍然必须全部装进显存,因为"下一个 token 可能路由到任何一个专家"。于是 HBM 容量成了悬在所有从业者头顶的天花板:HBM3e 单卡 141GB 已是顶级,价格却数倍于普通内存,且产能牢牢握在少数厂商手里。
Engram 的意义在于打破了等式的另一半:总参数与显存需求解耦了。它证明了模型的一部分参数可以被"搬到"便宜一个数量级、容量大一个数量级的 DRAM 里,而不拖垮性能。DeepSeek 在论文结论中把这条原则说得非常直白:"其确定性寻址机制支持存储与计算的解耦,能够将海量参数表卸载至主机内存,且推理开销可忽略不计。"
这篇论文的署名作者里出现了梁文锋的名字,标题是《Conditional Memory via Scalable Lookup: A New Axis of Sparsity for Large Language Models》------"稀疏性的新轴"。这个标题没有夸张:MoE 是稀疏的第一根轴(按需计算 ),Engram 是第二根轴(按需记忆)。理解这第二根轴从哪来、为什么成立、边界在哪,就是本文的全部内容。
说明:Engram 是 DeepSeek 于 2026 年 1 月开源发布的条件记忆模块(与北京大学合作),并非"4.1"版本独有的发明------V4.1-Flash 是它第一次进入正式生产模型。文中所有实验数据均出自 Engram 论文与 V4.1-Flash 技术报告的自报数字,截至本文写作尚未见独立第三方复现,阅读时应保留这一层怀疑。
一、问题:回忆,不该跑在计算上
要理解 Engram 解决什么问题,先看一个现象:当模型回答"法国的首都是哪里"时,它走过的计算路径,和它推导一道数学定理时完全一样------逐层穿过整个 Transformer,每层做完整的注意力与前馈计算。
但从信息结构上看,这两种任务是根本不同的。
严格推理需要全局视野和多步演绎:模型必须通读整个上下文,沿着逻辑链一层层向前推进,每一步都依赖前面所有信息。这类计算无法省略,也无可替代。
回忆静态事实 则完全是另一回事。"Diana, Princess of Wales" 这样的实体、"事实上"、"换句话说"、日期、首都、常见搭配------它们的解析往往只取决于眼前极短的一串词。给定这几个 token,答案几乎是"锁死"的:这是一个局部的、确定性的映射,不需要任何多步演绎。
把这两种机制截然不同的任务,塞进同一条深层计算通路里,代价是什么?DeepSeek 团队给出的诊断是:模型在用昂贵的多层计算,反复模拟一张它早已"背下来"的查找表。解析一个常见的多 token 实体,可能消耗掉网络最前面好几层的注意力与前馈算力------这些层本可以被分配给更高层次的推理。早期层实际上在干"静态重建"的杂活,这在大模型里是一种系统性的算力错配。
有人会说:这不是有 MoE 吗?MoE 用条件计算扩展了参数容量,模型可以根据 token 选择专家。但注意 MoE 的稀疏性只回答了"该由谁算 ",没有回答"该不该算"。无论路由到哪个专家,静态事实仍然要经过完整的矩阵乘法来"回忆"------MoE 缺的是模型内部原生的知识检索机制。RAG 把记忆搬到了外部,但检索回来的文本仍要塞进上下文、逐层重新计算,静态事实继续消耗深层算力,还挤占宝贵的上下文长度;kNN-LM 试图用向量相似度匹配做分离,但检索本身是一场复杂的距离搜索,延迟根本没法和主干计算重叠。
所以,一条合格的"条件记忆通路"必须同时满足三个苛刻的条件:
- 查到即用------直接把短语对应的知识嵌入换进残差流,自己不引入深层计算,否则只是把矩阵乘法搬了个位置;
- 一次命中------单次内存访问拿到结果,不存在"先搜索后取回"的两个阶段;
- 能装下海量条目------容纳百万乃至千亿级知识条目,应对词表的组合爆炸。
把三个约束放在一起,答案会自然收敛到一种最古老的形态:直接键值映射的表 + 拼接局部 token 构造的键 + 哈希函数把任意键映射进定长表。这就是 Engram 的全部骨架------用深度学习时代重新改造过的 N-gram 查找表。
二、原理拆解:N-gram 哈希、多头寻址与门控融合
2.1 检索阶段:确定性寻址
Engram 在每个 token 位置分两个阶段工作。第一阶段是检索:
- 取当前位置最近的 2、3、4 个 token(即 {2,3,4} 阶 N-gram);
- 对每一阶,用多头哈希 (V4.1-Flash 里是 8 个哈希头)把 token 序列映射成表内地址。每阶的总嵌入维度是 2048,即每个头负责 256 维,每个头索引约 1600 万个条目,表大小刻意取互不相同的质数------这是哈希表设计的经典技巧,让键空间的余数分布尽量均匀,减少冲突聚集;
- 一次查询共取出 3 阶 × 8 头 = 24 行向量,拼接后通过一个门控网络写入残差流。
这里最关键的性质是:查找索引只取决于输入 token 序列,不取决于任何神经网络计算的中间状态。 这一句平淡的表述,是整个技术的"阿基米德支点",我们下一节会看到它如何撬动整个存储体系。
对比一下就明白这个性质的稀有。注意力的寻址是"软"的:query 与全部 key 做点积,得到对每个位置的注意力权重------地址是算出来的,而且是随着隐状态实时变化的。MoE 的路由也是"软"的:router 根据 hidden state 打分选专家,同一句话换一个上下文,路由结果就变。这两者的访存模式都无法提前预测,所以都无法预取。 而 Engram 的寻址是"硬"的:键就是前几个 token 的 ID,前向计算还没到那一层,地址就已经 100% 确定了。
2.2 融合阶段:门控决定"信多少"
查回来的静态嵌入怎么用?不是无脑加上去,而是经过一个上下文感知的门控:把检索到的嵌入与当前隐状态一起打分,得到一个 0 到 1 之间的混合系数,再写进残差流。
这个门控是整个设计里最"神经网络"的部分,也是 Engram 与普通 N-gram 模型的分界线。它的行为直觉很好理解:遇到"Princess of Wales"这种高频固定搭配,门开得很大,查找结果主导表征------反正 N-gram 已经把答案锁死了,何必浪费计算;遇到需要结合上下文新推理的内容,门自动关小,计算通路接管。记忆与计算的分工不是架构写死的,而是训练中学出来的。
V4.1-Flash 把两个 Engram 模块插在第 1 层和第 14 层(各挂一张表),取的是"浅层管回忆、深层管推理"的位置直觉------越靠前的层越多承担静态重建,把记忆通路直接放在最前面,等于把早期层从杂活里解放出来。值得一提的是,相比原始论文设计,V4.1-Flash 去掉了检索后的短因果卷积,官方理由是"收益不足以抵消推理栈的复杂度"------这种在正式产品里主动做减法的取舍,本身就值得架构师玩味。
2.3 为什么是哈希表,而不是别的记忆形态
把三种候选机制放在天平上:
- 注意力/软检索:地址依赖隐状态,不可预取、不可卸载,且是 O(n) 计算------正是 Engram 要逃离的东西;
- 相似度检索(kNN):一次查询是一次向量搜索,哪怕有 ANN 索引加速,也存在"搜"与"取"两个阶段,延迟抖动大,无法做到与计算精确重叠;
- 哈希直查:O(1),无搜索阶段,地址可预计算------代价是哈希冲突和"只认精确匹配、不懂语义泛化"。
第三条路放弃了语义泛化,看起来是巨大的牺牲。但 DeepSeek 的判断是:泛化这件事应该交给神经网络去做,记忆通路只做神经网络做不好的那件事------无损、精确、零计算地存取。分工由此清晰:近似匹配是计算的活,精确存取是存储的活。这个判断是否全面,我们在第七章会回来批判性地讨论。
1.5 前史:三十年"给模型装记忆"的失败史
Engram 并不是第一个想给神经网络外挂记忆的方案,理解它为什么"这次可能成了",最好的办法是看清前人都倒在哪儿。
2014 年的神经图灵机(NTM)及其后继 DNC 给网络配了可读写的记忆矩阵,用注意力寻址------好看,但寻址本身是可微计算,慢且难训,最终停留在论文里。2017 年谷歌的稀疏门控 MoE 与产品键记忆(Product Key Memory)证明了"超大容量、稀疏激活"可行,但寻址仍依赖隐状态打分。2019-2020 年的 kNN-LM 与 Memorizing Transformers 把检索引入语言建模:前者靠向量相似度搜最近邻------检索本身就是一次复杂搜索,延迟没法和主干重叠;后者把历史 KV 存下来按注意力寻址取回------同样不可预取。2022 年的 RETRO 用数据库检索增强骨干,方向正确,但检索回来的仍是文本,要重新过整个网络计算。
把这些失败排成一列,规律清晰可见:所有前代方案都卡在同一块礁石上------寻址依赖神经网络计算,因此访存不可预测、不可预取、无法与计算重叠,更无法整体搬出显存。 Engram 的全部秘密,就是用"N-gram 哈希确定性寻址"这一步棋绕开了这块礁石:地址只由输入 token 决定,与网络状态彻底无关。检索回来的不再是需要重算的文本,而是可以直接注入残差流的向量;检索动作不再是"搜索",而是 O(1) 的"翻页"。同样的思想内核,换了寻址机制,命运就可能完全不同------这也是给所有做架构创新者的提示:决定工程命运的不是思想是否新颖,而是关键路径上有没有一个"确定性"的抓手。
三、为什么能塞进 CPU 内存:预取流水线与三级缓存
3.1 一笔带宽账
先回答最直接的疑问:从 CPU 内存经 PCIe 取数据,比从 HBM 取慢一到两个数量级(PCIe 5.0 x16 双向约 64 GB/s,HBM3e 单卡带宽 3 TB/s 以上),凭什么说"开销可忽略"?
关键在于查表是稀疏访问 :每个 token 位置每层只取 24 行向量。做个量级估算:每阶总嵌入维度 2048、FP8 存储,一次三阶查询约 6 KB,两层 Engram 合计约 12 KB/token 。就算推理引擎跑到 10000 token/s 的吞吐,PCIe 上的流量也只有每秒一百多 MB------连 PCIe Gen5 零头的零头都不到。显存和内存之间的带宽鸿沟是真实的,但被稀疏性抹平了。真正会出问题的场景是密集访问(比如想用同样思路搬运逐 token 都要全量读取的权重),那属于另一类技术问题(CPU offload 推理、专家卸载),和 Engram 完全不是一回事。
3.2 预取:与计算重叠的艺术
带宽充足只是必要条件,还要解决延迟问题:等 GPU 算到第 1 层、需要查表时再发起 PCIe 读,几十微秒的往返照样会打断流水线。Engram 的解法依赖于 2.1 节那个"阿基米德支点"------地址可提前计算:
- 输入序列进模型的那一刻,每个位置在两个表里的 N-gram 键就已全部确定,GPU 上只需跑哈希和行索引(这部分很便宜,就是一个整数映射);
- 推理引擎把 196B 参数表常驻在锁页主机内存 (pinned host memory,物理地址固定、可被 DMA 直接访问),通过**统一虚拟寻址(UVA)**让 GPU 直接对主机内存发起读取;
- 取数走一条旁路 CUDA 流 (V4.1-Flash 在多机场景用 RDMA),在主干网络计算第 k-1 层 的同时,后台预取第 k 层要用的 Engram 行。等主干算完前一层,需要的记忆已经躺在显存里了。
预取深度取决于 Engram 插入的位置:插在第 1 层的模块只能靠"输入已到达"这一点提前;插在第 14 层的模块则拥有整整 13 层的计算时间做掩护。确定性寻址把"访存"从关键路径上摘下来,变成可以和任意长计算重叠的后台任务------这正是 RAG 和 kNN-LM 做不到、注意力架构更是原理上做不到的事。
3.3 Zipf 分布与三级缓存
Engram 还藏着一条统计学的腿。自然语言的 N-gram 访问天然服从 Zipf 分布 :极少数高频模式(常见实体、惯用搭配)占据绝大多数访问量。这意味着即使表有千亿参数,热数据的工作集其实很小,于是可以搭标准的多级缓存:
- GPU HBM:最高频嵌入常驻显存,命中零成本;
- CPU DRAM:中频与主体表,走预取流水线;
- NVMe SSD:长尾条目,预取时间充裕时(如批量 prefill)也可加载。
V4.1-Flash 的两张表约 384M 行 × 2,FP8 加块缩放因子共约 189 GiB------放进一台普通服务器的 512GB 内存毫无压力,而等效参数若全放 HBM,要多花四倍以上的钱。用访问的统计偏斜换取存储的成本阶梯,这是整个计算机体系结构最古老的智慧,从 TLB 到 CDN 无处不在;Engram 的贡献是证明了这条智慧可以嵌进大模型的前向传播里。
3.4 训练侧:All-to-All 与优化器换了
推理的优雅不能掩盖训练的复杂。词表规模高达千亿参数时,单卡显存装不下,训练时表必须切分到多张 GPU 上,走 All-to-All 通信 让各卡互相传递所需的记忆片段------这也是为什么 Engram 更适合 MoE 化的训练集群:通信基础设施是现成的。优化器侧也有讲究:原始论文对嵌入参数用 Adam 但学习率放大 5 倍、去掉权重衰减(把"记忆条目"和"神经权重"当两类物种对待);V4.1-Flash 进一步改用动量更新配 Sinkhorn 平衡替代 Adam,只需一个动量缓冲,为海量嵌入条目省下大量优化器状态显存。
3.5 划清界限:Engram 不是传统意义上的"CPU Offload"
听到"参数放 CPU 内存",很多人的第一反应是 llama.cpp、KTransformers 或 DeepSpeed 的权重卸载------那类技术把模型权重流式送进 GPU 换取"消费级显卡跑大模型",代价是吞吐量大幅下降,本质是资源受限场景的妥协。Engram 与它们形似而神不同,三条分界线:
第一,卸载的是哪类参数。 传统 offload 搬运的是计算主体(注意力权重、FFN),每个 token 都要全量读取,PCIe 带宽直接成为瓶颈;Engram 卸载的是检索型参数------每 token 只碰 24 行,稀疏访问让带宽鸿沟失效。能不能搬,取决于参数的"访问画像",而不是"放不放得下"。
第二,架构是否原生。 传统 offload 是推理期的外挂手术:模型照旧、引擎适配,模型本身对"自己在被卸载"毫无感知;Engram 的记忆表与门控是预训练全程共同学出的------模型从第一天就知道"这部分知识会以查表的方式回来"。这决定了前者只能省显存、后者能涨性能。
第三,目标场景。 传统 offload 服务"买不起 GPU 的人";Engram 服务"买得起 GPU 但想买得更有性价比的人"------数据中心级的推理集群,用 DRAM 承接边际容量增长,把省下的 HBM 换成 KV cache 与并发度。一个是生存手段,一个是经营策略。
|------|--------------|-----------------|
| 维度 | 传统权重卸载 | Engram |
| 卸载对象 | 计算主体权重 | 检索型参数表 |
| 访问模式 | 每 token 全量流式 | 每 token 稀疏 24 行 |
| 吞吐代价 | 数倍下降 | <3% |
| 模型感知 | 无(推理期外挂) | 原生(训练期共设计) |
| 能力影响 | 无增益 | 全基准正向 |
| 适用人群 | 资源受限的爱好者/边缘 | 数据中心规模化服务 |
四、实验数据(一):把 1000 亿参数搬到 CPU,性能几乎不塌
原理讲完,看硬数据。DeepSeek 的实测:把一张 100B(千亿)参数的 Engram 表放到 CPU 内存,在 H800 上跑纯稠密模型的推理,对照不挂表的情况:
|----------|--------------|--------------|--------|
| 模型 | 无 Engram 吞吐 | 挂 100B 表后吞吐 | 损耗 |
| 4B Dense | 9031 token/s | 8858 token/s | 约 1.9% |
| 8B Dense | 6315 token/s | 6140 token/s | 约 2.8% |
两组额外开销都在 3% 以内。这个数字的震撼之处在于分母:代价的参照物不是"快了慢了几个点",而是凭空多出 100B 参数的容量,只付出不到 3% 的吞吐。按当时的硬件行情粗算,100B FP8 参数约需 93 GB 显存------差不多一整张 H20 或大半张 H100 的显存,而 189 GiB 的内存条价格不到其十分之一。
还应注意到一个容易被略过的细节:8B 模型的损耗比例(2.8%)高于 4B 模型(1.9%)。模型越小,每 token 的计算时间越短,预取与计算重叠的"掩护窗口"就越浅,访存越容易露出关键路径。这提示 Engram 与小模型的搭配存在隐性下限------对端到端延迟以毫秒计的边缘场景,这笔账要重新算。
五、实验数据(二):能力不降反升,以及那个 U 形定律
如果 Engram 只是一个省钱的存储技巧,它值一篇论文;真正让它成为架构主张的,是第二组实验。
5.1 对照实验:同预算下的正面交锋
DeepSeek 训了两个参数量相同的模型做对照:Engram-27B 与纯 MoE-27B,均为 30 层 Transformer、隐藏维度 2560、MLA 注意力 32 头,各训练 262B token,数据配方完全一致------这几乎是 LLM 研究里能设计出的最干净的对照。
|-------------------|------------|-----------|-------|
| 基准 | Engram-27B | 纯 MoE-27B | 提升 |
| MMLU(知识) | 60.4 | 57.4 | +3.0 |
| CMMLU(中文知识) | 61.9 | 57.9 | +4.0 |
| BBH(推理) | 55.9 | 50.9 | +5.0 |
| DROP(阅读推理) | 59.0 | 55.7 | +3.3 |
| ARC-Challenge(推理) | --- | --- | +3.7 |
| HumanEval(代码) | 40.8 | 37.8 | +3.0 |
| MATH(数学) | 30.7 | 28.3 | +2.4 |
| GSM8K(数学) | 60.6 | 58.4 | +2.2 |
| 长文本大海捞针 | 97.0 | 84.2 | +12.8 |
全部基准正向,而且最大的三处增益出现在 BBH(+5.0)、大海捞针(+12.8)、CMMLU(+4.0)。大海捞针的跃升尤其值得盯住:这是一个纯"从超长上下文里精确取出信息"的任务,恰好是"精确存取"能力最直接的考场。
5.2 U 形定律:记忆与计算怎么分家
更有理论价值的发现是稀疏分配定律 。固定总参数量与总算力,系统地调节"MoE 参数 : Engram 参数"的比例,验证损失呈现一条 U 形曲线:
- 纯 MoE(Engram 占比 0%):loss 1.7248------不是最优。大量算力浪费在"用神经网络模拟查找表"上;
- Engram 占比过高:loss 反弹------模型缺足够的计算深度做动态推理;
- Engram 占比 20%~25%(MoE 占 75%~80%):loss 降到 1.7109,全基准最优。
更实用的是这个最优点的稳定性:在 5B 到 27B 的不同规模下,最优占比都落在 75%~80% 这个窄区间里。一条可迁移、可引用的经验法则,对任何要设计下一代稀疏模型的团队都是可直接执行的设计参数。
5.3 一个悖论:为什么"记忆模块"提升最大的是推理?
现在必须面对本文最有趣的谜题:一个为知识检索而设计的模块,为什么在推理任务上的增益(BBH +5.0)反而大于知识任务(MMLU +3.0)? 按直觉,查表应该最擅长喂知识,而不是帮人做数学题。
DeepSeek 官方给的解释是:把局部模式识别的工作卸载给查找后,早期 Transformer 层"完成得更快、表现得像更深的层",从而把计算腾给更深层的推理链。这个说法方向正确,但我认为还可以再往下挖一层------第七章展开。
5.4 方法论提醒:这批数据应该怎么读
在为曲线欢呼之前,四个阅读要点:
- 规模很小。 对照实验只有 262B token 的训练量、27B 级模型------距离当代前沿模型动辄十几万亿 token、数百 B 激活参数的量级还差两个数量级。U 形定律的最优点(75%~80%)在小规模下稳定,不等于在千亿级训练下不动;外推需要新的验证实验。
- 全部自报。 基准分数出自 DeepSeek 自己的训练框架与评测管线,无第三方复现。同代际大厂自报分数普遍存在 1~3 个点的乐观偏差,解读时应整体下修预期再看结论是否仍成立。
- 对照公平但非穷尽。 Engram-27B 与纯 MoE-27B 共享数据配方与算力预算,这是干净的一面;但未对照"同等预算下把 Engram 份额换算成更多 MoE 参数/更多 token"的其他分配方式------U 形曲线只扫了"MoE : Engram"这一个维度。
- 任务覆盖有偏。 基准以英文为主,中文仅 CMMLU;创意写作、多轮对话、代码长程重构等"没有标准答案"的能力未被覆盖。查表式记忆对开放式生成是助是碍,目前是空白。
六、工程落地:V4.1-Flash 里的 Engram 长什么样
论文到产品之间隔着无数取舍,V4.1-Flash 的落地方案本身就是一份优秀的教学材料:
- 规模与位置:196B 参数平均分给两个模块,分别插在第 1 层与第 14 层;两张表约 3.84 亿行,FP8 存储(含块缩放)约 189 GiB,占总 checkpoint 的三分之一以上;
- 精度:嵌入表与投影全部 FP8。查表是"取回即用"的访存操作,对数值精度远没有矩阵乘法敏感,是量化收益最高、风险最低的部件之一;
- 运行时:vLLM 把表常驻锁页主机内存,经 UVA 从旁路 CUDA 流预取,第一个模块的预取直接与第一个 Transformer block 的计算重叠;
- 做减法:砍掉原始设计里的短因果卷积;
- 配套改造:不再使用上一代的 MTP 多 token 预测,改用预训练后单独训练的投机解码模块 DSpark(三个 Transformer block、128 token 滑动窗口、一次前向起草 5 个 token,带 Markov 头建模草稿依赖、置信度头指导自适应验证);主 KV cache 训练为 FP4 存储,全局 KV 降到每 token 890 字节。
把这些拼起来看,V4.1-Flash 的架构哲学非常清晰:把"记忆"(Engram)、"草稿"(DSpark)、"上下文"(FP4/SWA KV)三类各自性质均质的大块状态,逐一从昂贵的 HBM 里剥离到适合它们的存储层级------记忆去 DRAM,长程上下文去压缩编码与持久缓存,只有真正的动态计算留在显存。Engram 是这套"存储分级模型架构化"的第一块、也是最大的一块拼图。
七、我的五点独到见解
以下是本文作者的分析与判断,与官方口径无关,欢迎辩驳。
见解一:Engram 是模型架构的"冯·诺依曼化"------缓存层级第一次进入神经网络
经典计算机体系结构的全部智慧,可以浓缩为一句话:在存储金字塔上,把数据按访问频率放到合适的层级。而过去七年的神经网络设计,恰恰是反其道而行------所有参数一视同仁地挤在最贵的 HBM 里,每 token 全量权重过一遍访存。
Engram 的深层意义不在"省了显存",而在把存储层级的概念重新引入了模型架构本身 :模型从此有了自己的 L1(常驻显存的热条目)、L2(DRAM 主体表)、L3(SSD 长尾)。我判断这不是孤例,而是一个范式的开始------下一代的模型文件格式、加载器、服务引擎,都需要回答"这个参数块的热度画像是什么、该驻留在哪一层"。"模型即程序,权重即数据集"------当参数从"计算对象"分化出"检索对象",模型分发、显存管理、甚至操作系统的页缓存机制都会被重新发明一遍。vLLM 已经在这么做了,这不是巧合。
见解二:收益错位恰恰暴露了"早期层在干杂活"的深度
回到 5.3 节的悖论:记忆模块为何最利好推理?官方解释是"早期层变相加深了"。我的补充机制有三层:
第一层是深度释放。 模型的有效推理深度是稀缺资源,此前被静态重建占用。Engram 把这部分占用买断后,同样的 30 层等价于"逻辑深度"变相增加了数层------对 BBH 这种多步任务,每一层都是真金白银。
第二层是信噪比。 静态事实重建会在早期层产生大量"高置信但低信息"的激活,它们像噪声一样稀释注意力分配。查表直接给出确定性嵌入,等于给下游计算喂了更纯净的表征------大海捞针从 84.2 跳到 97.0,我认为主要来自这条通路。
第三层是最有趣也最思辨的:精确记忆反哺组合推理。 复杂推理由大量"精确的小步"组成------认出这是勾股定理、认出这是某个历史条约的条款。这些小步若每步都要神经网络"重新发明",误差与算力双重消耗;若每步都是一次 O(1) 精确命中,推理链就只剩下真正的"连接"工作。这暗示知识与推理不是对立的两端,精确的底座反而让组合的塔更稳------这与认知科学里"工作记忆有限、长时记忆无价"的图景惊人地一致。
见解三:参数量这个指标,从今天起进一步失效
MoE 已经让"参数量"与计算成本脱钩,Engram 现在让"参数量"与显存需求也脱钩了。196B 参数挂在 DRAM 里,不占激活算力、不全占显存。这直接冲击了一系列行业惯例:以参数量定价的 API 计费、以总参数论英雄的发布会话术、以显存容量倒推模型规格的采购逻辑。
我认为合理的替代指标有三个:激活参数/每 token FLOPs (算多贵)、驻留显存字节数 (住多贵)、以及新增的检索足迹------每 token 从慢速存储取回的字节数及其延迟分布(查多贵)。第三个指标目前还没有行业公认的测法,谁先把它标准化,谁就掌握了下一代性能报告的话语权。
用一个具体算例感受这种"失真":按传统口径,V4.1-Flash 是一个 552B 参数的模型,按 FP8 估算权重要求约 515 GiB 显存------主流 8 卡 H100(1120 GiB)勉强能装,报价比实际部署高出一个档次;而按新口径,真正必须驻留 HBM 的部分远小于此,196B 的 Engram 表由 DRAM 承接,剩余权重的驻留需求显著下降,同样的服务质量可以用更小的机型、更低的报价实现。同一个模型,两种口径,采购决策完全不同------指标之争从来不是学术之争,而是真金白银的定价权之争。这也解释了为什么 vLLM 会在文档里花大量篇幅写清楚"哪些参数在显存、哪些在主机内存":部署文档的精度,正在成为模型厂商的第二张技术名片。
见解四:地缘与硬件格局------DRAM 赢了一次
HBM 是 AI 硬件皇冠上的明珠,也是产能与价格最被垄断的环节。Engram 给出的路线图是:模型的边际容量增长可以由 DRAM 承接------DDR5 的每 GB 成本约为 HBM 的几分之一,且服务器内存槽位可以堆到 TB 级。若"20%~25% 参数放记忆表"成为下一代稀疏模型的标配,意味着同样预算下模型可以再大一圈,或者同样模型下省出四分之一以上的 HBM 给 KV cache。
对中国产业这是一个值得标注的信号:大内存 CPU 服务器、PCIe/RDMA 互联、高带宽 NVMe,恰是国内供应链相对自主的环节。用体系结构设计对冲单一器件的依赖------Engram 展示了这条路的可行性。当然要泼一盆冷水:Engram 卸载的是"可查表"的参数,注意力权重、专家权重这些真正的计算主体仍在 HBM 里,DRMA 换 HBM 只是替换了总盘子中的一块,"GPU 无关论"言过其实。
见解五:冷静的边界------Engram 不能做什么
给热情降温的四条边界:
- 哈希冲突是统计学的债。 两个不同的 N-gram 键可能映射到同一行,门控可以学会"少信它",但冲突率随表负载因子上升,表不能无限压缩------哈希表的经典权衡原样搬进了模型。
- 它查不了组合性知识。 "北京 - 上海 - 高铁票价 - 2026 年"这种需要结合多个约束的知识,键空间组合爆炸,任何固定阶数 N-gram 都覆盖不全。Engram 记住的是局部的、高频的、模式化的知识;语义泛化、跨域联想,仍然必须由神经网络完成。RAG 不会因此退场------两者的知识形态不同。
- 门控是训练出来的,不是开关。 把现成模型的权重"外挂"一张 Engram 表再微调几下,大概率得不到论文里的收益------记忆与计算的分工是在预训练全程中共同学出的。这意味着采用该架构的门槛是"从头训练",对多数团队并不现实。
- 数据是自报的。 全部基准数字来自 DeepSeek 自家报告,尚无第三方复现。历史经验(从各大实验室的评测惯例到 Arena 争议)提醒我们:自报数字看方向可以,当结论要谨慎。等 vLLM 上的独立评测出来再下重注,是更稳妥的姿态。
7.6 高频追问:五个尖锐的问题
Q1:既然查表这么便宜,为什么不把所有参数都做成查找表? 因为查表没有泛化能力。神经网络的价值在于对没见过的输入给出合理的输出,这是任何有限表的密钥空间无法覆盖的。U 形定律的右半边(Engram 占比过高、loss 反弹)就是这条边界的实证形态------记忆与计算是互补品,不是替代品。
Q2:Engram 会不会取代 RAG? 短期内不会,两者处理的知识形态不同。RAG 存的是文档------百万字级的显式知识,可更新、可溯源;Engram 存的是预训练中凝固的分布式知识碎片------隐式、不可读、随训练固定。企业知识库的时效性需求(文档三天一换)决定了它只能走 RAG。更可能的未来是并存:模型内部记忆管高频常识,外部检索管长尾与新鲜事实。
Q3:哈希冲突到底有多严重? 表行数 3.84 亿、每头索引约 1600 万条目,负载因子可控,冲突率在经典哈希表的标准范围内。关键是冲突的后果被门控软化了:冲突条目只是被"少信",不会像缓存污染那样产生错误答案。这是把体系结构组件引入神经网络时很典型的"软失效"设计------值得学习。
Q4:门控会不会退化成全开或全关? 这是训练稳定性的真实风险。门控若塌缩到常数,Engram 就退化成普通嵌入偏置或彻底失活。V4.1-Flash 用 Sinkhorn 平衡和按阶分头的多维查找来维持门的多样性------多头冗余本身就是一种抗塌缩机制:8 个头全部同时塌缩的概率远低于单头。
Q5:多机部署时表怎么放? 单机内存装得下(189 GiB)就单机驻留;装不下可以按行分片到多机,用 RDMA 预取------代价是预取路径上多一跳网络。DeepSeek 在推理文档里描述的是主机内存常驻 + 后台 RDMA 预取的混合方案。对推理服务商来说,这意味着内存容量进入容量规划公式:规划一台推理节点时,除了显存卡数,还要算上"模型记忆表的 DRAM 驻留量 × 副本数"。
八、更大的图景:三条扩展路线与 open problem
8.1 记忆表之外:这门技术还能长到哪里
路线一:可学习检索的混合体。 哈希只认精确匹配,可以想象在表前加一层轻量的"语义路由"------先用小模型把变体(复数、时态、别名)归一化到规范键,再查表。代价是失去确定性寻址(预取失效),如何在不破坏可预取性的前提下引入泛化,是该方向最漂亮的 open problem。
路线二:记忆表的持续学习。 嵌入表是可以增量写入的------新知识、新领域术语、用户私有事实,理论上可以"写进表里"而无需重训主干。这与参数化权重的知识更新成本形成鲜明对比。但写入会破坏已训练好的门控平衡,需要配重校准;如果这条路走通,模型的"补丁式升级"(只更新记忆表、主干冻结)将改变整个模型迭代的经济学。
路线三:把检索足迹变成一等公民的推理资源。 既然 lookup 免费,能否让模型学会"主动查表"?例如生成中间特殊 token,触发对记忆表的多跳检索------这接近把 Engram 升级为模型内部的原生 RAG,但保留了 O(1) 与可预取两个关键性质。这条线若成立,"推理即检索"的图灵机式图景就有了硬件友好的实现。
8.2 一个值得记住的类比
回顾历史,N-gram 统计语言模型是深度学习之前的统治技术,Transformer 用"把一切变成计算"淘汰了它;而 Engram 做的事情,是把 N-gram 的存储 从被淘汰的部分里剥出来、重新接回深度模型。技术史一再重演这个剧本:不是新范式全盘取代旧范式,而是旧范式中真正符合物理规律的成分,以新形态归位。统计学的归统计学,计算的归计算------这可能就是下一代稀疏模型的样子。
九、面向实践:如果你要在自己的系统里借鉴 Engram
大多数读者不会从头训练千亿模型,但 Engram 的思想可以降维使用。
9.1 现在就能做的四件事
第一,词表与嵌入的卸载。 大词表模型的输入/输出嵌入矩阵动辄数 GB 且访存稀疏(每 token 只取一行),是最接近 Engram 使用条件的部件。vLLM 已在 V4.1-Flash 上验证了"锁页内存 + UVA + 旁路流预取"的完整配方,同样的手法可迁移到其他大词表模型的部署上。
第二,LoRA 仓库的按需加载。 多租户服务里几十个 LoRA 适配器全部常驻显存是常见浪费。适配器的加载时机由请求的 model 字段决定------同样是"确定性寻址",同样可以预取(提前一个请求得知下一个要用哪个适配器)。Engram 只是把这个思路推到了架构内部。
第三,推理服务的分层缓存设计。 Engram 的 HBM/DRAM/SSD 三级缓存与推理服务的"前缀缓存 → 主机内存 KV → 磁盘会话"三级结构是同构的。为你的缓存体系补上一份访问分布分析(是不是 Zipf?热点比例多少?),缓存的层级划分和容量配比就有了数据依据,而不是拍脑袋。
第四,评测你的"检索足迹"。 对接了 RAG 或外部记忆的系统,把"每请求检索字节数、检索延迟分布、缓存命中率"纳入监控面板。不管你的模型有没有 Engram,记忆访存的成本画像都已经是推理服务成本结构里被普遍忽视的一项。
9.2 一张决策表:什么时候考虑记忆卸载类技术
|------------|-------------|-----------|
| 条件 | 适合 | 不适合 |
| 参数中可查表部分占比 | 高(嵌入/记忆类为主) | 低(计算主体为主) |
| 访问分布 | 强偏斜(Zipf) | 均匀 |
| 寻址确定性 | 键可预计算 | 依赖中间激活 |
| 延迟预算 | 宽(批处理、离线) | 窄(毫秒级交互) |
| 硬件 | 内存充裕的服务器 | 边缘小内存设备 |
这张表本质上在问一个问题:你的参数是"算"出来的还是"查"出来的? 前者留 GPU,后者考虑搬家。
十、结语:把合适的东西放在合适的地方
Engram 的技术清单并不长:N-gram 哈希、多头寻址、门控融合、锁页内存、异步预取、多级缓存------每一件都是旧知识。它的价值在于把这串旧知识串成了一个自洽的架构原语,并用干净的对照实验证明了三件事:性能不塌(<3% 开销)、能力不降反升(全基准正向)、最优配比稳定(75%~80% 给计算,20%~25% 给记忆)。
往大里说,它给出了对"什么是语言模型"的一次修订:模型不只是参数化的函数,还是一个带存储层级的计算系统------有些东西该算,有些东西该查,而区分两者的能力,模型自己通过门控学会了。梁文锋团队在论文结尾的判断------"条件记忆将成为下一代稀疏模型中不可或缺的建模基元"------从 U 形定律的稳定性和 V4.1-Flash 的量产落地看,至少目前是站得住的。
往小里说,它给每一个工程师提了个醒:当我们在抱怨显存不够、HBM 太贵的时候,也许该先问一句------我的负载里,有多少东西其实只需要被记住,而不需要被计算?
最后留一个观察角度给读者:Engram 之于 MoE,颇像当年虚拟内存之于物理内存------都在回答同一个问题,"容量需求与最贵存储之间的缺口,用什么填"。虚拟内存的答案给了操作系统四十年的繁荣,让程序不再为物理内存的上限写代码;条件记忆的答案若能走通,模型也将不再为 HBM 的上限写参数。当然,虚拟内存的代价是缺页中断,Engram 的代价是预取失败与缓存未命中------没有免费的容量,只有被精心管理的延迟。理解这句话,就理解了这门技术全部的工程之美与全部的边界。
把合适的东西放在合适的地方,这句话在计算机科学里灵验了七十年。这一次,它轮到了大模型。
主要参考:DeepSeek《Conditional Memory via Scalable Lookup: A New Axis of Sparsity for Large Language Models》(2026.1,github.com/deepseek-ai/Engram);DeepSeek-V4.1-Flash 技术报告(2026.9);vLLM Engram/DSpark 部署文档。