从 RNN 到 Transformer,再到 RWKV:语言模型到底在学什么?
最近这一串问题,其实核心都围绕一个东西:
模型怎么处理“历史信息”。
语言模型要做的事看起来很简单:给它一段前文,让它预测下一个 token。但不同架构的区别就在于:它们到底怎么保存、读取、压缩和利用前面的内容。
1. RNN:带记忆的函数
普通神经网络一般是:
| |
RNN 不一样。它多了一个隐藏状态,也就是 memory:
| |
公式上可以写成:
| |
这个 h_t 就是 RNN 的核心。
它不是保存完整历史文本,而是把前面读过的内容压缩成一个向量。
比如一句话:
| |
RNN 会一个 token 一个 token 地读:
| |
所以 RNN 的本质是:
| |
它强在省。无论前面有多少 token,它理论上只需要保留一个 state。
但问题也在这里:压缩会丢信息。
如果开头说:
| |
中间隔了很多内容,最后问:
| |
普通 RNN 只能指望那个 h_t 还记得“香菜”。但如果前面内容太长,它很容易忘。
这就是 RNN 的老问题:
| |
后来 LSTM 和 GRU 出现,本质上就是给 RNN 加了门控机制,让它学会:
| |
所以 LSTM / GRU 不是推翻 RNN,而是改良 RNN 的记忆机制。
2. Transformer:用显存换“可回看历史”
Transformer 和 RNN 最大的区别是:
它不把所有历史压缩成一个 state,而是让当前位置可以直接看历史 token。
RNN 是:
| |
Transformer 是:
| |
所以 Transformer 更像随身带完整笔记本,需要的时候可以翻前文。
这也是它强的地方。
比如:
| |
Transformer 可以通过 attention 直接关注到前面的“香菜”。
RNN 只能靠压缩 state 记住。
但是 Transformer 的代价也很明显:推理时要保存 KV Cache。
每输入一个 token,Transformer 会为它算出:
| |
然后把这些 K/V 缓存起来。
所以推理时的状态大概是:
| |
上下文越长,KV Cache 越大。
RNN / RWKV 则更像:
| |
这就是区别。
所以你说“Transformer 保留了历史状态,模型更大”,大方向对,但要拆开:
Transformer 不一定参数更多,真正贵的是推理时保存每个历史 token 的 KV Cache。
也就是说:
| |
3. Transformer 怎么变成语言模型?
Transformer 本身只是一个序列特征处理器。它变成语言模型,需要接上几个东西:
| |
假设训练句子是:
| |
训练时会错开一位:
| |
模型每个位置都要预测下一个 token:
| |
GPT 类模型用的是 causal mask,也就是每个位置只能看自己和前面的 token,不能偷看未来。
比如:
| |
没有 causal mask,模型训练时就会直接看到答案,推理就废了。
所以 GPT 可以理解成:
| |
最终,模型输出的是词表上每个 token 的概率。
比如上下文是:
| |
模型可能输出:
| |
然后通过采样或贪心选择一个 token,再把它接回上下文,继续预测下一个。
这就是自回归生成。
4. 训练目标:不是背训练集,而是学条件概率分布
语言模型的训练目标通常是:
| |
也就是:
| |
训练时用交叉熵 loss:
| |
关键点是:
训练目标不是“输出和训练集最像的完整句子”,而是在每个上下文后面,给正确下一个 token 更高概率。
这就是为什么模型能输出训练集中没有的句子。
因为它不是从训练集里抽一整句出来,而是逐 token 生成。
训练集中可能有:
| |
模型可以生成训练集中未必出现过的:
| |
因为它学到了组合规律:
| |
语言是组合系统。有限 token 可以组合出无限句子。
所以 LLM 更像:
| |
而不是:
| |
当然,实话说,模型也会记忆一部分训练数据。尤其是:
| |
所以它不是完全不记忆,而是:
| |
5. 内插和外推:泛化是有范围的
模型能生成训练集之外的内容,是因为它学会了模式重组。
但这个能力不是无限的。
大概可以分三层:
| |
内插 interpolation 是在训练数据覆盖过的区域之间组合。
比如模型见过:
| |
你让它写一个:
| |
这通常比较稳。因为这些东西都在它熟悉的分布附近。
外推 extrapolation 是把学过的规律往未知区域延伸。
比如:
| |
这种模型就容易把旧模式硬套上去。
幻觉很多时候就是这样来的:
| |
它不会天然知道自己不知道。因为底层训练目标是预测下一个 token,不是严格判断真伪。
所以:
| |
这也是为什么 LLM 解释经典概念、写常见代码、改文案很强;但查最新 API、判断冷门事实、做医疗法律金融决策时,需要工具、数据和验证。
6. RWKV:把 attention 的思想压进 RNN 形式
RWKV 可以理解成:
| |
它全称是:
| |
它想解决的问题是:
| |
所以 RWKV 走中间路线。
普通 RNN 是:
| |
它把当前输入和旧记忆混在一起,更新成新状态。
RWKV 更像:
| |
几个核心组件:
| |
所以 RWKV 不是老式 RNN 复活,而是:
| |
普通 RNN 的历史是:
| |
RWKV 的历史更像:
| |
这比普通 RNN 更细。
它能让不同通道学习不同的记忆长度:
| |
这就像一堆不同半衰期的记忆槽。
所以 RWKV 比普通 RNN 强,主要不是因为“循环”变厉害了,而是因为它的 state 更新方式更像 attention。
7. RWKV 和 Transformer / RNN 的位置
可以这么对比:
| |
RWKV 的卖点是:
| |
但也别神化。
RWKV 没有 Transformer 那种 full attention 的精确回看能力。对于需要精确检索某个很早 token 的任务,纯 RWKV 可能不如 Transformer 稳。
所以本质取舍是:
| |
8. 最终心智模型
可以把这几类模型放在一张图里:
| |
训练目标在 LLM 里基本都一样:
| |
差别不是目标,而是:
| |
一句话总结:
RNN 是状态压缩,Transformer 是历史直连,RWKV 是 attention 化的状态压缩。语言模型不是在复印训练集,而是在学习训练数据里的 token 条件概率分布;它能组合出新内容,但内插强、外推弱,越出训练分布越需要验证。