Files
myWiki/concepts/engram.md

71 lines
2.4 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 Module)"
created: 2026-06-25
updated: 2026-06-25
type: concept
tags: ["architecture", "memory", "transformer", "sparsity"]
sources:
- "[[engram-conditional-memory-2026]]"
---
# Engram (Conditional Memory Module)
Engram 是 DeepSeek-AI 提出的条件记忆模块,将经典 N-gram 嵌入现代化为 Transformer 的静态知识查找原语。
## 架构:两阶段流水线
### 阶段 1Sparse Retrieval稀疏检索
**Tokenizer Compression**
- 预计算满射函数 P: V → V',基于 NFKC 归一化 + 小写化
- 将语义等价但 token ID 不同的词(如 "Apple" vs " apple")映射到同一规范 ID
- 对 128k tokenizer 实现 23% 有效词表缩减
**Multi-Head Hashing**
- 每个 N-gram 阶数 n ∈ {2,3,...N} 用 K 个独立哈希头
- 乘性 XOR 哈希 𝜑_{n,k} 将压缩 N-gram 映射到嵌入表 E_{n,k}[z](素数大小 M_{n,k}
- 所有检索向量拼接为记忆向量 e_t ∈ R^{d_mem}
- 碰撞通过上下文门控消解
### 阶段 2Context-aware Fusion上下文感知融合
**Gating**
- h_t隐藏状态含全局上下文→ Query
- e_t静态记忆→ Key, Value经可学习投影 W_K, W_V
- 标量门 α_t = σ(RMSNorm(h_t)^T · RMSNorm(k_t) / √d)
- 输出 ṽ_t = α_t · v_t若记忆与上下文矛盾门控趋近于 0
**Depthwise Causal Convolution**
- Kernel=4, dilation=max N-gram order, SiLU 激活
- 扩展感受野,增强非线性
- 残差连接Y = SiLU(Conv1D(RMSNorm(Ṽ))) + Ṽ
### 集成到 Transformer
```
H() ← H() + Y (残差)
→ Attention
→ MoE
```
**非全层应用**Engram 只插入特定层,具体位置由系统延迟约束决定。
## 基础设施感知设计
- **确定性寻址**:不同于 MoE 的动态路由Engram 使用确定性哈希 → 支持运行时预取
- **内存层次**:大嵌入表可卸载到主机内存,通过预取重叠通信与计算
- **开销**100B 参数嵌入表卸载到主机内存的开销 <3%
## 关键设计要点
1. **静态 vs 动态分离**记忆是静态的N-gram 嵌入但通过上下文门控获得动态适应性
2. **哈希碰撞不是 bug**Multi-head hashing + 上下文门控共同消解碰撞噪声
3. **深度而非宽度**Engram 的价值不在存更多事实在释放计算深度用于推理
## 参考
- [[engram-conditional-memory-2026]]
- [[conditional-memory]]
- [[mixture-of-experts]]
- [[ngram-embedding]]
- [[sparsity-allocation]]