关于 Engram 与 LLM Memory 方案的一些简单思考
DeepSeek 这两天发了一篇新的有关 LLM Memory 的研究论文 链接,提出了条件记忆(Conditional Memory)的概念,并通过 Engram 这个 Memory 模块开辟了除 MoE(计算稀疏性)之外的新维度:存储稀疏性,其核心逻辑在于通过 复杂度的哈希 -gram 查询,实现了计算架构与存储的工程解耦。
因为对 Memory 领域比较关注,所以这篇文章简单汇总一下个人的一些理解与思考。
第一部分:核心架构与设计逻辑
1. 痛点:用“计算”模拟“存储”的低效性
传统 Transformer 架构在处理静态事实(如长词条、实体、固定搭配)时,需要消耗大量的前层 Attention 和 FFN 算力去反复拼接语义。Engram 的设计初衷是将这类静态记忆检索从动态推理过程中剥离,释放计算资源从而更加高效地专注于真正的逻辑推理。
2. 检索机制:精确匹配 VS 模糊语义
Engram 采用了基于哈希的确定性检索,而非基于向量相似度的模糊语义检索。这一点跟常规的向量检索工程方案存在本质性差异。
- 精确匹配(Exact Match):通过哈希函数将 -gram 映射为唯一索引。这种 查找避开了语义检索在大规模并发下的计算延迟和不可导问题。
- 泛化补足:利用 Tokenizer 压缩(归一化语义相近的 Token)和 海量参数覆盖(100B+ 规模字典)来代偿精确匹配的死板。
- 语义融合:检索出的向量仅作为候选,最终通过 上下文感知门控(Context-aware Gating) 与主干网隐状态 结合。主干网充当“语义钥匙”,决定字典信息的激活与过滤。
精确匹配策略保证了检索的高效,而泛化补足措施一定程度上弥补了泛化性方面的劣势,最终实际的语义删选工作则由门控机制保障。所以总的来说,Engram 的设计哲学是:索引追求极致速度,语义交给门控融合。
第二部分:系统工程与“资源套利”
1. 跨越 PCIe 带宽瓶颈
论文的核心思想非常简洁,但工程化能否落地则面临着很大挑战。将 100B 级别的字典表存放在 Host RAM(内存)而非 GPU 显存,是该方案经济性的基础。DeepSeek 在这方面实现了极高的软硬协同效率:
- 异步预取(Asynchronous Prefetching):由于索引仅依赖输入 Token,系统可以在计算当前层时,提前通过 PCIe 总线将后续层所需的向量从内存搬运至显存。
- 性能表现:实测数据,offload 一个 100B 规模的嵌入表,其吞吐量损耗(Throughput Penalty)小于 3%。这种极细粒度的搬运(每 Token 仅数十 KB)相比 MoE 专家搬运,对带宽的要求极低。
2. 稀疏性分配法则(Sparsity Allocation)
论文同步揭示了一个关键的 U 型缩放定律:在固定 FLOPs 和总参数预算下,最优性能出现在 20%-25% 的参数分配给存储(Engram),其余分配给计算(MoE) 的平衡点。这证明了“条件存储”是“条件计算”不可或缺的补充,并且这一点其实从直觉上来说,也是比较符合认知的。
第三部分:微调范式与“插件化”演进
这篇论文在个人看来,最具价值的点可能还不在论文本身的描述,而是这种全新架构在未来可能带来的范式转移红利。一方面是插件化的记忆存储模块能给微调带来非常大的性价比,另一方面则是这种确定性存储结构在理论上具备抑制灾难性遗忘问题的潜力。
为此我们可以简单畅想下可能的场景。
1. 特征缓存(Feature Caching)带来的微调红利
Engram 为垂直领域知识注入提供了一种极低成本的方案:
- 微调逻辑:冻结主干网,仅更新 Engram 字典权重。
- 经济性:由于前序层冻结,开发者可预先缓存前序层的输出()。在微调阶段,不再需要加载模型的前半部分,计算开销减半且显存压力大幅降低(梯度流在 Engram 层被物理截断,无需为冻结权重存储梯度和优化器状态)。
这一点更多的经济层面的微调平权,对于中小企业乃至个人用户意义重大。
2. 物理级防遗忘
不同于 LoRA 等方案的全局梯度污染,Engram 的哈希槽位具有物理隔离性。
- 精准编辑:更新医学领域的 -gram 知识,其梯度只影响对应的特定槽位,而存放生活常识的槽位在物理上保持不动。
- Plugin 模式:这种架构支持“逻辑底座 + 动态 Plugin”的交付形态。底座共用,知识包可插拔。
相较于微调的经济性,这部分个人觉得才是真正的杀手锏。理论上采用这种架构,我们可以将不同行业的事实性数据做成插件化的存储模块,然后按需使用,虽然实际工程化可能无法做到这么完美地分离操作,但显而易见,Engram 已经是当下极具前景的一种技术路线了。
第四部分:潜在的挑战与限制
虽然 Engram 看起来很有潜力,但不可否认的是,这个简约思路的背后,还存在很多的技术与工程调整,相信这也是阻碍其他团队此前进一步探索这个方向的最主要原因。
- 泛化边界:精确匹配导致其缺乏“举一反三”的能力。如果语料未覆盖特定表述,Engram 将失效,仍需依赖主干网的泛化推理。此外,如何平衡检索与推理的权重,也是个亟待解决的问题,极端的场景就是,精确检索出了错误事实信息,该如何处理。
- 哈希冲突:随着知识密度的增加,不同领域的 -gram 可能会撞到同一个槽位。虽然多头哈希(Multi-head Hashing)能缓解碰撞,让同一个词能在不同的“头”里表达不同的语义分身,但随着知识存储量的不断增加,哈希冲突的概率会越来越高,工程化缓解究竟能做到多高的可用性,也都是需要进一步探索的点。
- 工程复杂度:该方案的红利建立在极致的底层算子优化之上。若异步调度算法不精,GPU 会因等待 PCIe 数据传输带宽问题而产生严重的 Stall。其他的比如内存管理、寻址优化也都是实际落地环节不可避免的技术难题。
第五部分:与现有 Memory 方案的一些对比
最后,我们有必要再探讨一下对 Memory 领域的影响。在 LLM 记忆方案的演进中,Engram 通过对原生架构的“深度侵入”,打破了此前工程外挂派与微调扩展派的局限。
1. 记忆路径的三个层级
根据对模型架构的“改动深度”,主流 Memory 方案大致可分为三个层级:
- 工程外挂派(如 RAG/Vector DB):架构零改动。将模型视为黑盒,通过 Prompt 注入外部知识。本质是数据工程,受限于上下文窗口长度且召回噪声大。
- 微调扩展派(如 Long-Context / RoPE Scaling):架构低改动。通过调整位置编码(RoPE)或显存调度(PagedAttention)来“拉伸”模型对序列长度的耐受度。这在本质上属于基于参数微调的工程方案。它虽然解决了“记得长”的问题,但并未改变事实记忆与逻辑推理在权重中深度耦合的现状,其存储效率仍受限于上下文窗口(Context Window)的线性成本。
- 架构调整派:架构深改动。为了实现原生 Memory 能力对模型架构进行调整,难度与上限都是极高。Engram 就属于这类。值得一提的是,论文的基本思想跟 Google 去年底提出的 Nested Learning 概念不谋而合,Google 团队认为,扁平化架构会浪费大量深度去模拟查表,Engram 通过存算解耦,从物理层面将“记忆”外包给存储模块,从而彻底释放主干网的逻辑潜力。
2. 对 Memory 技术方向的影响
Engram 的落地,从本质上重塑了模型对信息的“索引”与“沉淀”方式,这个技术路线比如会对后续行业发展造成一定的影响:
- 从“隐式权重存储”转向“显式条目检索”:过去事实被揉碎在神经网络权重里(隐式),不可见且难修改。Engram 将其转化为物理上可寻址的哈希条目(显式),使大模型的记忆具备了数据库般的精确性。这种范式调整,让事实的删除、替换和热更新在底层逻辑上成为可能。
- 打破“记忆密度”与“计算规模”的强耦合:传统模型想多记知识必须加神经元(加算力)。Engram 证明了知识容量(Memory Density)可以独立于计算规模进行横向扩展。这意味着未来评价一个模型的“博学程度”,可能不再仅仅看它有多少参数,还需要看它外挂字典的覆盖率。这种“低算力、高容量”的路径,是实现持续学习和长程记忆演进的基石。
总的来说,Engram 的本质是实现了“存算分离”架构。它让大模型从“必须死记硬背每个细节的学者”进化为“掌握逻辑框架、随时检索专业字典的聪明人”。这种以廉价内存容量换取昂贵显存空间、以确定性查找换取推理深度提升的策略,为行业专家模型的大规模落地提供了高性价比的技术路径。这套技术栈也值得持续关注。