DeepSeek 开源新作 Engram:大语言模型的条件记忆模块

凌晨时分,DeepSeek 又放出一个重磅开源项目——Engram,专为大语言模型设计的条件记忆模块。通过外挂一个高效的词典结构,它实现局部知识的快速查表,帮助模型更快、更准地理解和调用知识内容。

这个设计让人立刻联想到 BERT 时代打比赛时的经典魔改:在 Bert 每层额外拼接 Word Embedding 或词性 Embedding 来注入外部信息。Engram 的核心思路类似,却更进一步——在特定层前加入 N-Gram Embedding,让模型更容易捕捉真实短语、实体名词和固定搭配的语义。

Engram 的结构简洁高效(如论文图所示):对输入先做 2-gram 和 3-gram 分词。为了提升语义密度并压缩词表规模,它对 Token 进行规范化(NFKC 标准化、小写化等),成功将原始 128k 词表压缩约 23%。

由于 N-Gram 组合数量巨大,直接存完整 Embedding 表不现实,Engram 采用哈希映射 + 多头机制(mHC,M=4)来缓解冲突。所有分支共享同一稀疏 Embedding 表和 Value 投影矩阵,但使用不同 Key 投影矩阵,让每个分支根据当前隐藏状态独立计算门控信号。

静态记忆缺乏上下文适应性,因此引入类似 Attention 的上下文感知门控:以当前隐藏状态作为 Query,哈希检索的静态记忆映射为 Key/Value,经过 RMSNorm 后计算门控权重。门控后输出再经过卷积层扩大感受野并增强非线性,最终接入标准 Attention 与 MoE 层。

值得注意的是,Engram 并非每层都加:单层时第 2 层效果最佳;多层模型则在中间层插入(如 12 层放第 6 层,30 层放第 15 层)。残差连接采用多分支集成(mHC)。

这套设计很可能就是 DeepSeek 春节前即将发布的 V4 或 R2 模型的核心架构。N-Gram Embedding 只依赖输入 Token,可在计算前异步预取,高频条目还能缓存到 GPU,推理延迟极低。

Deep Hash Embedding: Solving Recommender Systems’ Memory Bottleneck

论文还深入分析了 Engram(条件记忆)与 MoE(条件计算)的互补性:在总参数和训练算力固定时,二者分配存在 U 型曲线,最优区间是将 20%–25% 非激活参数转给 Engram。Engram 查找开销不随规模增长,符合 Power Law——更大显存持续带来收益,且无额外计算负担。

实验对比四种模型(激活参数统一 3.8B,训练 262B Tokens):Dense-4B、MoE-27B、Engram-27B、Engram-40B。结果显示,同参数量下 Engram-27B 明显优于 MoE-27B,且继续扩大 Engram 参数仍有增益。

进一步分析发现:

  • Engram 模型各层 KL 散度更低、下降更陡,特征组合更快;
  • Engram 第 5 层表征已接近 MoE 第 12 层,浅层获得深层能力,等效增加模型深度;
  • 单层最佳位置是第 2 层,消融显示多分支、上下文门控、Tokenizer 压缩最关键,卷积与 4-gram 贡献较小;
  • 多层优于单层大模块(如 1.6B 参数拆分到第 2 与第 6 层更好);
  • 定性实验:移除 Engram 输出后,知识类任务大幅下降(仅剩 29%–44%),推理类影响较小(保留 81%–93%),证明 Engram 主要增强世界知识存储。

当今 Tokenizer 已基本丧失“词”概念,Engram 用 N-gram 重新注入连续语义信息,工程与创新兼备。DeepSeek 再次展现神级实力,令人期待春节开源新模型能继续遥遥领先。

Engram有点东西

Engram 的设计真巧妙,期待新模型的表现

这技术看着挺厉害啊