Files
myWiki/papers/engram-conditional-memory-2026.md

90 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: "Engram: Conditional Memory via Scalable Lookup (Cheng et al., PKU/DeepSeek-AI, 2026)"
created: 2026-06-25
updated: 2026-06-25
type: paper
tags: ["conditional-memory", "sparsity", "ngram", "mixture-of-experts", "scaling-law"]
sources:
- "https://arxiv.org/abs/2601.07372"
code: "https://github.com/deepseek-ai/Engram"
---
# Engram: Conditional Memory via Scalable Lookup
> Cheng et al. | Peking University / DeepSeek-AI | arXiv:2601.07372 | Jan 2026
## 问题
[[mixture-of-experts|MoE]] 通过条件计算扩展容量,但 Transformer **缺少原生的知识查找原语**——它被迫用计算来模拟检索。语言建模包含两类性质不同的子任务:组合推理(需要深层动态计算)和知识检索(大量文本模式是局部的、静态的、高度模板化的)。经典 N-gram 模型在捕获局部依赖上的有效性说明这些规律天然适合廉价查找,但现有 LLM 用昂贵的 Transformer 层去重建静态查找表。
## 核心思想:[[conditional-memory|Conditional Memory]]
提出 **条件记忆** 作为条件计算MoE的互补稀疏轴
| 维度 | Conditional Computation (MoE) | Conditional Memory (Engram) |
|------|------|------|
| 激活方式 | 稀疏激活参数处理动态逻辑 | 稀疏查找检索静态嵌入 |
| 开销 | 随专家数增长 | O(1) 常数查找 |
| 适用 | 组合推理、动态上下文 | 命名实体、公式化模式、局部依赖 |
## [[engram|Engram 模块]]
Engram 将经典 [[ngram-embedding|N-gram 嵌入]] 现代化为 Transformer 的条件记忆模块:
### 1. Tokenizer Compression词表压缩
预计算满射函数 P: V → V',基于 NFKC 归一化+小写化将原始 token ID 映射到规范 ID实现 23% 的有效词表缩减。
### 2. Multi-Head Hashing多头哈希
每个 N-gram 阶数 n 用 K 个独立哈希头,通过乘性 XOR 哈希将压缩上下文映射到嵌入表 E_{n,k}(素数大小),拼接所有检索向量为最终记忆向量 e_t。
### 3. Context-aware Gating上下文感知门控
检索到的静态嵌入 e_t 缺乏上下文适应性。用当前隐藏状态 h_t 作为动态 Querye_t 为 Key/Value通过标量门控 α_t = σ(Q·K^T/√d) 抑制与上下文矛盾的记忆噪声。
### 4. Depthwise Causal Convolution
对门控后的值序列应用短深度可分离因果卷积kernel=4, dilation=max N-gram order, SiLU扩展感受野。
### 集成方式
Engram 以残差连接插入特定 Transformer 层H ← H + Y后跟标准 Attention 和 MoE。**并非所有层都加**——由系统延迟约束决定。
## [[sparsity-allocation|Sparsity Allocation]]U 形缩放律
定义分配比 ρ ∈ [0,1]MoE 占非活动参数的比例。实验结果:
- **U 形关系**:纯 MoE (ρ=1) 和纯 Engram (ρ=0) 都不如混合
- **最优 ρ ≈ 75-80%**:将约 20-25% 的稀疏参数预算重分配给 Engram 效果最佳
- **稳定性**:最优分配比在不同计算规模下保持一致
- **无限内存扩展**Engram 槽数扩大遵循严格幂律,提供可预测的扩展旋钮
## 关键结果
**全部 iso-parameter & iso-FLOPs**Engram-27B vs MoE-27B vs Dense-4B激活参数均为 3.8B。
| 领域 | 基准 | Engram 增益 |
|------|------|-----------|
| 知识 | MMLU | +3.4 |
| 知识 | CMMLU | +4.0 |
| 推理 | BBH | **+5.0** |
| 推理 | ARC-Challenge | +3.7 |
| 推理 | DROP | +3.3 |
| 代码 | HumanEval | +3.0 |
| 数学 | MATH | +2.4 |
**长上下文**Multi-Query NIAH 97.0 vs 84.2 (MoE)Variable Tracking 89.0 vs 77.0。
## 机理解释
1. **释放早期层**LogitLens + CKA 分析表明 Engram 解脱了 backbone 早期层对静态知识的重建负担,有效加深了可用于复杂推理的网络深度
2. **释放注意力容量**:局部依赖被委托给查找,注意力聚焦全局上下文,长上下文检索大幅提升
3. **基础设施感知效率**[[memory-compute-decoupling|确定性寻址]] 支持运行时从主机内存预取100B 嵌入表卸载开销 <3%
## 核心洞察
1. **条件记忆是 MoE 的必然互补**——语言信号的异质性意味着单一稀疏轴不够N-gram 嵌入这个看似简单的静态机制当被当作一等建模原语对待时能产生超越纯 MoE 的增益
2. **内存≠冗余**——Engram 的最大收益不在知识密集型任务那只是直觉预期而在推理和编码任务因为它不是"存更多事实"而是"释放计算深度用于推理"。
3. **U 形律揭示了一个深层结构事实**在给定的总参数预算下计算和记忆之间存在一个确定的最优比例该比例在不同规模下稳定
## 来源
[原始存档](raw/papers/engram-conditional-memory-2026.md) | [arXiv](https://arxiv.org/abs/2601.07372) | [GitHub](https://github.com/deepseek-ai/Engram)