语言、语音、股票、DNA——世界大量数据是序列(顺序有意义)。处理序列的老王者是循环神经网络(RNN),新王者是 Transformer(注意力机制)——2017 年论文标题「Attention Is All You Need」宣告换朝,2022 年 ChatGPT 让全世界知道了它。本章讲清 RNN 的贡献与困境,重点讲透注意力:它是大模型(第 10 章)的全部地基,值得用这一章慢慢磨。
序列数据对第 7 章的网络提出三个刁难:
RNN 的答案:给网络加一个隐藏状态(记忆),逐词读入,每步更新:
h 一路滚,历史压缩在里面。它是第一个「能处理任意长度序列」的网络,1990s~2017 年的 NLP 主宰(机器翻译、语音识别)。LSTM/GRU 加「门控」(可学习的遗忘/记忆阀门)缓解长程问题,一度是最强 Seq2Seq。
两个结构性缺陷:其一,串行——必须算完 t−1 才能算 t,无法并行(第 7 章的 GPU 巨兽空转,序列 1000 词就是 1000 步串行);其二,长程遗忘——信息每步被压缩重写,50 词前的关键信息衰减殆尽(LSTM 缓解但没根治,梯度沿时间连乘照样消失,第 7 章的梯度问题在时间维重演)。
2017 年的 Transformer 用一句话判了 RNN 死刑:把循环扔掉,让每个词直接「看」所有词(自注意力)——上下文不再靠逐步压缩,而是一步到位;计算完全并行,长程依赖一步可达。
注意力(attention)的直觉:每个词根据「相关性」从其他词那里取信息。实现成一套查询系统(和数据库课的检索惊人同构):
(√d 是缩放:维度大时点积过大,softmax 饱和,梯度死。)
例句「The animal didn't cross the street because it was too tired」:「it」的 Query 与「animal」的 Key 高度匹配,于是 it 的输出里大量混入 animal 的 Value——指代消解在这一步数学地完成了。注意力权重矩阵可视化,你能直接看到「谁在看谁」(大模型的少数可解释窗口)。
自注意力(self-attention):Q、K、V 全来自同一句(词与词互相看);多头(multi-head):并排 8~96 组独立的 Q/K/V(每组一个「视角」:一组盯语法、一组盯指代……,具体学到什么没人完全知道),各自输出拼接。位置编码:注意力天生无序(集合运算!),要把「位置」信息加进 token 表示(原始用正弦波,现代用 RoPE 等旋转编码)。
完整 Transformer 块 = 自注意力 + 前馈网络(MLP)+ 残差连接 + 层归一化,堆 N 层:
x ──▶ [多头自注意力] ──▶ [+x 残差] ──▶ [MLP(逐词两层网络)] ──▶ [+残差] ──▶ 下一层
残差连接(第 8 章 ResNet 的移民)让梯度走高速通道(几十层可训);层归一化稳定每层的数值分布;MLP 占参数大头(负责「消化」注意力收集来的信息)。GPT-3 有 96 层、1.2 万维、96 个头、1750 亿参数——没有新魔法,全是本章积木的堆料,配上海量数据与算力(缩放定律:模型/数据/算力按比例放大,能力可预测地涨,这是大模型时代的路线图)。
两种用法:BERT 式(只有编码器,双向看全文,适合理解类任务:分类、检索)与 GPT 式(只有解码器,带掩码的注意力只能看左边,自回归生成:预测下一个 token,一次一个,这就是「生成」的机械本质)。今天的所有大模型几乎都是 GPT 式。
自注意力的复杂度是 O(n²)(n 个词互相看,n² 对 QK 点积):序列翻倍,计算翻四倍。这直接造出大模型的两条限制:上下文窗口(模型一次能看的最大 token 数,从 2K 卷到百万级,窗口外的它「失忆」)、长文档成本(整本书喂进去代价惊人)。研究界的长上下文攻关(稀疏注意力、滑动窗口、检索增强)全是围绕这个二次方做文章——「把 O(n²) 压下来」是 2020 年代 AI 系统工程的中央战场(第 10 章的 RAG 就是工程绕行方案)。