从 GPT-2 到 Kimi K3:大模型记忆系统演进(小白版)
从 GPT-2 到 Kimi K3:大模型记忆系统演进(小白版)
[!summary] 一句话理解
从 GPT-2 到 Kimi K3,变化不只是模型参数越来越多,更重要的是:AI 逐渐学会了如何保存信息、修改旧信息、忘掉无关信息,以及在需要时找回细节。
一、先把大模型想象成“超级秘书”
假设有一名秘书,负责记录一场持续很久的会议。
会议刚开始时,内容不多,秘书可以把每句话都完整保存下来。可是会议越来越长,记录可能达到几万页。此时会出现几个问题:
- 记录占用的空间越来越大;
- 每回答一个新问题,都要翻阅大量旧资料;
- 重要内容和无关内容混在一起;
- 新信息出现后,旧信息可能已经过时;
- 只做摘要又可能丢失关键细节。
大模型架构的演进,很大一部分就是在解决这些问题。
二、GPT-2:所有聊天记录都保留下来
GPT-2 使用经典的 Transformer 注意力机制。
可以把它理解成:
回答当前问题时,回头查看前面说过的内容,判断哪些信息最重要。
后来,大模型通常会使用 KV Cache。它像一个“聊天记录缓存区”,把已经计算过的信息保存下来,避免每生成一个新词都从头计算。
举个例子
用户依次告诉 AI:
1 | 我叫小明。 |
传统注意力会保留这些历史信息。以后用户询问“我最近在做什么”,模型就能回头查找。
优点
- 历史信息保留得比较完整;
- 能够较准确地找到某个具体细节。
问题
聊天越长,KV Cache 越大:
1 | 聊 10 句话 → 保存较少记录 |
它像一名什么都不敢扔的秘书,办公桌上的文件越堆越高。最终,内存占用和读取速度都会成为瓶颈。
三、线性注意力:不保存全部原文,只维护一块白板
研究人员想到了一种更省空间的方式:
不再分别保存每一条历史记录,而是把历史信息不断压缩进一块固定大小的“记忆白板”。
前面的四句话,可能被压缩成:
1 | 小明:软件工程师,负责移动端架构和三端统一重构。 |
无论聊天多长,白板大小基本保持不变。
优点
- 记忆空间不会随着聊天长度持续增长;
- 生成长文本时更加省内存;
- 每一步读取的状态大小相对稳定。
问题
一块固定大小的白板,容量终究有限。
当越来越多的信息被写到同一块白板上时,不同内容会互相干扰。模型可能还记得“这个人在做架构”,但忘记具体涉及 Android、iOS 还是 HarmonyOS。
[!important] 核心矛盾
保存完整原文,细节准确但成本高;压缩成固定记忆,成本低但容易丢细节。
四、DeltaNet:先看看旧内容,再进行修改
普通线性注意力更像不断向白板上追加内容:
1 | 小明负责 Android。 |
白板会越来越乱,新旧内容也可能互相冲突。
DeltaNet 的思路是:
- 先读取当前位置原来保存的内容;
- 比较旧内容和新内容的差异;
- 只写入发生变化的部分。
例如白板原来写着:
1 | 小明负责 Android。 |
后来获得了更完整的信息:
1 | 小明负责 Android、iOS 和 HarmonyOS。 |
DeltaNet 不会简单地再追加一行,而是尽量把旧内容更新为新内容。
“Delta”可以理解为差值或变化量。因此,它的核心是:
先读取旧记忆,再根据差异更新记忆。
它解决了什么问题?
它让固定大小的记忆不再只能“不断叠加”,而是具备了类似“擦掉旧内容、写入新内容”的能力。
五、Gated DeltaNet:给记忆增加一个遗忘开关
DeltaNet 可以更新某条信息,但还有一个问题:
没有新内容来替换时,旧的无关信息怎样清理?
例如,聊天已经从“今天早餐吃什么”转到了“移动端架构设计”。早餐信息通常不值得长期占据宝贵记忆。
Gated DeltaNet 加入了一个“门控”,可以把它想象成一个控制旧记忆保留比例的开关:
1 | 重要内容 → 多保留一些 |
它不只是会写入和修改,还开始具备主动遗忘的能力。
为什么必须遗忘?
固定容量的记忆就像手机存储空间。如果永远只增加、不删除,最终一定会被无关信息占满。
因此,遗忘并不一定是缺点。合理遗忘其实是一种记忆管理能力。
六、KDA:不同信息采用不同的遗忘速度
早期门控仍然比较粗糙,类似于:
每隔一段时间,把整块白板上的字统一擦淡一点。
但不同信息的重要程度显然不同:
1 | 用户的身份信息 → 应该保留更久 |
Kimi Linear 中的 **KDA(Kimi Delta Attention)**进一步把控制做细:
不再只用一个统一的遗忘比例,而是允许不同信息通道拥有不同的遗忘速度。
可以把它想象成多个文件夹:
- 核心信息文件夹:清理得慢;
- 临时信息文件夹:清理得快;
- 无关信息文件夹:很快释放空间。
这样,固定大小的记忆可以被管理得更精细。
七、Kimi K3:不是一种记忆,而是一套协作系统
Kimi K3 并没有只依赖一种机制,而是把多种能力组合在一起。
7.1 KDA:负责高效维护长期摘要
KDA 像秘书手中的固定白板:
- 大小相对固定;
- 更新速度快;
- 可以修改旧信息;
- 可以选择性遗忘;
- 适合保存对当前任务有用的主要内容。
但白板毕竟是压缩记忆,不可能完整保存所有细节。
7.2 MLA:需要细节时,回到完整档案中查找
为了弥补压缩记忆可能丢失细节的问题,Kimi K3 会周期性穿插 MLA(Multi-head Latent Attention)。
可以把它理解成:
平时看白板摘要;遇到需要精确细节的问题,再去档案柜翻原始记录。
因此:
1 | KDA → 快速、低成本地维护摘要记忆 |
两者组合,试图在效率和准确性之间取得平衡。
7.3 MoE:不同问题交给不同专家
**MoE(Mixture of Experts,混合专家)**可以理解为一家大型咨询公司。
公司里有很多专家:
1 | 代码问题 → 编程专家 |
普通模型更像每遇到一个问题,都让全部员工参与处理;MoE 则会根据当前内容,只选择少量最相关的专家工作。
这样做的好处是:
- 模型可以拥有很大的总容量;
- 每次计算却不必调用全部参数;
- 能力增加的同时,计算成本得到控制。
原始材料中提到,Kimi K3 具有大量专家,但每个 Token 只会激活其中一小部分。
7.4 AttnRes:不仅回看文字,还能回看早期处理结果
大模型内部有很多层。信息会一层一层向后传递,类似于:
1 | 第 1 层 → 第 2 层 → 第 3 层 → …… → 更深的层 |
普通残差结构会把前面各层的结果不断累加。随着层数增加,一些早期细节可能被稀释。
**AttnRes(Attention Residuals)**允许后面的层选择性查看更早的处理结果:
1 | 当前层发现需要原始语义 |
它解决的不是“聊天历史有多长”,而是“模型内部处理得很深以后,早期信息怎样保留”。
可以这样区分:
- MLA:从前面的文字上下文中找信息;
- AttnRes:从前面的网络层处理结果中找信息。
八、完整演进路线
1 | GPT-2 |
九、用一张表快速记忆
| 技术 | 通俗比喻 | 主要解决的问题 | 仍存在的问题 |
|---|---|---|---|
| GPT-2 / 标准注意力 | 保存全部会议记录 | 可以精确查看历史内容 | 记录越长,占用越大 |
| KV Cache | 保存已经处理过的记录 | 避免每次从头计算 | 缓存仍随上下文增长 |
| 线性注意力 | 固定大小的摘要白板 | 让记忆成本不再随长度持续增长 | 摘要会混乱、丢细节 |
| DeltaNet | 擦掉旧内容再修改 | 减少新旧信息冲突 | 不擅长整体清理旧记忆 |
| Gated DeltaNet | 给白板加遗忘开关 | 主动释放有限记忆空间 | 不同信息可能被统一淡化 |
| KDA | 每类信息独立设置遗忘速度 | 更精细地管理记忆 | 压缩记忆仍无法保存全部细节 |
| MLA | 从档案柜查原始资料 | 找回压缩过程中丢失的细节 | 完整检索成本较高 |
| MoE | 按问题选择相关专家 | 增大能力但控制单次计算量 | 路由和专家协作更复杂 |
| AttnRes | 回看早期思考草稿 | 防止深层处理中早期信息被稀释 | 会增加一定计算复杂度 |
十、最容易产生的三个误解
误解一:Kimi K3 只是参数更多
参数规模确实明显增加,但架构改进并非简单堆参数。新增能力被放在了具体位置,用来解决记忆、检索、专家分工和深层信息传递等问题。
误解二:模型只要什么都记住就最好
不是。完整保存所有内容会带来巨大的存储和读取成本。
真正重要的是:
重要信息记得久,过时信息及时更新,无关信息合理忘记,需要细节时能够重新查找。
误解三:线性注意力一定比标准注意力好
两者是在不同方向上取舍:
- 标准注意力更擅长精确检索历史细节;
- 线性注意力更擅长用固定状态高效处理长序列;
- 混合架构试图同时利用两者的优势。
十一、最终应该记住什么
不需要死记 KDA、MLA、MoE、AttnRes 的公式,只要记住下面四件事:
- 完整保存历史很准确,但成本会越来越高。
- 把历史压缩成固定记忆很省资源,但容易丢失细节。
- 好的记忆系统必须会更新、会遗忘,也能在需要时重新检索。
- Kimi K3 通过多种机制协作,在效率、容量和准确性之间做平衡。
[!quote] 核心结论
大模型的发展过程,很像从“只会保存聊天记录”,进化到“拥有一套成熟的记忆管理系统”。
十二、自测题
- 为什么 KV Cache 会随着聊天长度增加而变大?
- 固定大小的记忆白板为什么容易丢失细节?
- DeltaNet 与普通线性注意力最大的区别是什么?
- 为什么合理遗忘也是一种重要能力?
- KDA 和 MLA 在 Kimi K3 中分别承担什么角色?
- MLA 和 AttnRes 分别从哪里找回信息?
[!check]- 参考答案
- 因为它需要保存越来越多历史 Token 的 Key 和 Value。
- 因为大量信息被压缩进有限容量,不同内容会相互干扰。
- DeltaNet 会先读取旧内容,再根据新旧差异进行更新,而不是只做累加。
- 固定记忆容量有限,若不清理过时和无关信息,最终会被占满。
- KDA 负责高效维护固定大小的摘要记忆;MLA 负责从完整上下文中精确检索细节。
- MLA 从 Token 上下文中找信息;AttnRes 从较早网络层的表示中找信息。
相关资料
- 原始材料:[[Raws/22580 From GPT2 to Kimi3, Explained]]
- 主题索引:[[Wikis/Index#AI 基础概念]]