2026/4/18 7:23:51
网站建设
项目流程
做企业网站需要招标公告上面的技术参数写什么,定制网站设计公司,邮箱如何注册企业邮箱,微信开发商是谁当 MoE 通过条件计算扩展模型容量时#xff0c;Transformer 却缺少原生的知识查找原语。Engram 提出 条件记忆 作为稀疏性的新轴#xff0c;让模型以 O(1) 的时间直接检索静态知识#xff0c;而非通过计算模拟检索。
1. 背景与核心问题
在当前的 大规模语言模型#xff0…当 MoE 通过条件计算扩展模型容量时Transformer 却缺少原生的知识查找原语。Engram 提出条件记忆作为稀疏性的新轴让模型以 O(1) 的时间直接检索静态知识而非通过计算模拟检索。1. 背景与核心问题在当前的大规模语言模型LLM设计中稀疏性Sparsity是提升模型容量且不显著增加计算成本的关键策略。当前主流实现是通过混合专家Mixture-of-Experts, MoE即每个 token 只激活部分专家从而在参数量大幅增加的同时保持计算量基本不变。然而语言建模中存在两类本质不同的任务组合推理Compositional Reasoning需要深层的动态计算知识检索Knowledge Retrieval如命名实体、固定短语等局部静态模式现有 Transformer 缺乏原生的知识查找原语不得不通过多层注意力与前馈网络来“重建”静态知识如中国首都模型总是低效推理中国是个国家国家有首都所以中国的首都是...这本质上是用昂贵的计算模拟廉价的查表操作。Engram 的核心贡献提出条件记忆Conditional Memory作为条件计算MoE的互补稀疏轴通过 O(1) 查找直接检索静态嵌入释放模型深度用于更复杂的推理。2. Engram 架构详解2.1 整体设计Engram 是一个条件记忆模块结构上与 Transformer 主干分离仅在特定层插入用于检索静态的 N-gram 记忆并与动态隐藏状态融合。图1Engram 架构概览对应论文 Figure 12.2 关键组件1)稀疏检索哈希 N-gram使用Tokenizer 压缩归一化文本NFKC、小写化等将语义相似的 token 映射到同一 ID词表减少约 23%多头哈希每个 N-gram 阶使用 K 个独立的哈希头减少冲突公式最终拼接所有检索到的嵌入得到 et2)上下文感知门控检索到的嵌入 et是静态的可能包含噪声或多义性。Engram 使用一个类 Attention 的门控机制Query当前隐藏状态 ht已聚合全局上下文Key/Value检索到的记忆 et 的投影门控值当记忆与上下文冲突时门控趋于零抑制噪声3)轻量卷积增强使用深度可分离因果卷积kernel4, dilation最大 N-gram 阶扩大感受野并增强非线性最后通过残差连接输出。4)与多分支架构集成在多分支主干中Engram 共享 embedding 表和 Value 投影但为每个分支使用独立的 Key 投影以实现分支特异性门控。3. 核心图表解读3.1 稀疏分配 U 型曲线图3左稀疏容量在 MoE 专家与 Engram 记忆之间的分配验证损失曲线横轴分配比例 ρρ表示稀疏参数中分配给 MoE 的比例纵轴验证损失结论纯 MoEρ1ρ1并非最优将 20-25% 的稀疏预算分配给 Engram 可获得最佳性能形成明显的U 型曲线3.2 无限记忆缩放定律*图3右在无限记忆机制下Engram 的验证损失随记忆槽数量增加的 log-线性下降*Engram 的记忆扩展遵循幂律缩放更多记忆槽持续带来收益且不增加计算开销相比 OverEncoding 等基线Engram 在相同记忆预算下具有更大扩展潜力3.3 长上下文性能表2 显示在Iso-Loss和Iso-FLOPs设置下Engram 在长上下文任务如 Multi-Query NIAH、Variable Tracking上显著优于 MoE 基线最高提升超过 10 个百分点。3.4 表示对齐与有效深度图4LogitLens 和 CKA 分析显示 Engram 的早期层对齐到 MoE 的更深层LogitLens 显示 Engram 早期层 KL 散度更低预测收敛更快CKA 相似性热图显示对角线明显上移说明 Engram 的浅层表示对应 MoE 的深层表示等效增加了网络深度4. 代码实现精读以下基于engram_demo_v1.py解析关键实现4.1 压缩分词器class CompressedTokenizer: def _build_lookup_table(self): # 归一化文本合并语义相似的 token norm self.normalizer.normalize_str(text) key norm if norm else text使用 Unicode 规范化NFKC、转小写、去重音等操作减少词表冗余4.2 NN-gram 哈希映射class NgramHashMapping: def _get_ngram_hashes(self, input_ids, layer_id): # 基于乘法与异或的轻量哈希 mix (tokens[0] * multipliers[0]) for k in range(1, n): mix np.bitwise_xor(mix, tokens[k] * multipliers[k]) head_hash mix % mod每个 N-gram 通过确定性哈希函数映射到 embedding 表索引不同层使用不同的乘数种子增强多样性4.3 Engram 模块前向传播class Engram(nn.Module): def forward(self, hidden_states, input_ids): hash_ids self.hash_mapping.hash(input_ids)[self.layer_id] embeddings self.multi_head_embedding(hash_ids).flatten() # 多分支门控 gates [] for hc_idx in range(hc_mult): key self.key_projs[hc_idx](embeddings) query hidden_states[:,:,hc_idx,:] gate (norm(key) * norm(query)).sum(dim-1) / sqrt(d) gates.append(gate.sigmoid()) value gates * self.value_proj(embeddings) output value self.short_conv(value) return output4.4 系统级优化计算与存储解耦论文图2 展示了训练与推理时的系统设计训练时embedding 表分片到多 GPU使用 All-to-All 通信收集活跃行推理时embedding 表卸载到主机内存利用确定性哈希预取通过计算掩盖通信延迟表4 显示即使将 100B 参数的 embedding 表完全卸载到 CPU 内存推理吞吐量仅下降 3%。5. 关键实验结果5.1 多任务性能提升表1 显示在相同参数量和 FLOPs下Engram-27B 相比 MoE-27B知识任务MMLU (3.0), CMMLU (4.0)推理任务BBH (5.0), ARC-Challenge (3.7)代码数学HumanEval (3.0), MATH (2.4)5.2 长上下文优势Multi-Query NIAH84.2 → 97.0Variable Tracking77.0 → 87.2归因于Engram 将局部依赖委托给查找释放注意力容量处理全局上下文5.3 模块消融分析图5 显示最佳插入层第2层单层或第26层双层关键组件多分支融合 上下文门控 Tokenizer 压缩卷积和更高阶 N-gram影响较小6. 创新总结维度贡献架构创新提出“条件记忆”作为 MoE 的互补稀疏轴实现 O(1) 静态知识检索算法-系统协同确定性哈希支持预取与计算-存储解耦实现百亿参数表近零开销卸载理论指导通过稀疏分配问题发现 U 型缩放律指导混合分配策略长上下文优化将局部模式卸载给记忆释放注意力聚焦全局依赖7. 未来展望Engram 为下一代稀疏模型提供了一个可扩展、系统友好的记忆原语。未来可能方向多模态扩展将 NN-gram 检索扩展到视觉、音频的局部模式动态记忆更新支持在推理时编辑或扩展记忆表跨层记忆共享设计跨层共享的压缩记忆表示硬件定制加速为确定性哈希检索设计专用硬件单元论文链接Engram: Conditional Memory as a Sparse Axis for Scalable LLMs代码仓库https://github.com/deepseek-ai/Engram通过 Engram我们看到了一个重要的设计范式转变不是所有稀疏性都应该通过条件计算实现将静态知识委托给条件记忆能让模型更专注地“思考”而非“回忆”。