90 lines
4.7 KiB
Markdown
90 lines
4.7 KiB
Markdown
---
|
||
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 作为动态 Query,e_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)
|