目录

1. 引言:一个奇怪的观察

如果你去翻看 GPT-4、Claude、文心一言、通义千问、Llama、Gemini 的技术报告,你会发现一个有趣的现象:它们的架构图长得都差不多——一堆 Attention 层叠在一起,中间夹着前馈网络,外加点残差连接和层归一化。

这不是巧合。

从 2017 年 Google 提出 Transformer,到如今遍地开花的大语言模型,底层架构几乎没有发生过实质性的变革。GPT 系列用的是 Transformer 的 Decoder,BERT 用的是 Encoder,T5 把 Encoder-Decoder 完整搬了过来,而视觉领域的 ViT、语音领域的 Whisper、多模态的 GPT-4V,底层全部是同一个配方:Attention Is All You Need

那么问题来了:

  • 为什么所有看起来千差万别的大模型,本质上都是同一套架构?
  • Attention 到底有什么魔力,让它能成为一个“万能胶水”,把 NLP、CV、语音、多模态全部粘合在一起?

这篇文章的目标是:把 Transformer 和 Attention 的底层逻辑彻底讲透。我们不追求公式堆砌,而是用直觉和“第一性原理”的方式,让你明白这套架构为什么是必然选择,而不只是一个偶然的工程发现。

2. 从 Seq2Seq 到 Transformer:一个时代的终结

要理解 Transformer 为什么诞生,必须先理解它“杀死”了什么。

2.1 RNN 的诅咒:无法并行

在大模型时代之前,序列建模几乎是 RNN(及其变体 LSTM、GRU)的天下。它们的核心思路很朴素:把序列按时间步一个一个喂进去

输入: [x₁, x₂, x₃, ..., xₙ]
RNN:  h₁ = f(x₁, h₀)
      h₂ = f(x₂, h₁)
      h₃ = f(x₃, h₂)
      ...

每一步都依赖上一步的隐藏状态。这意味着:

  • 无法并行计算:GPU 有几千个核,但你只能一步步算,大部分核在“围观”。
  • 长程遗忘:第 100 个词想和第一个词“握手”,信息得穿过 99 步的路径,早被梯度消失/爆炸淹没得差不多了。
  • 双向信息难以融合:Bi-RNN 是两条独立方向的拼接,不是真正的同时“看见”上下文。

2.2 CNN 在序列建模中的尝试:感受野的代价

有人尝试用一维卷积处理序列,可以并行,但为了让第 100 个位置能看到第 1 个位置的信息,你需要堆叠几十层卷积,或者用膨胀卷积一点点放大感受野。这事儿不优雅。

2.3 Transformer 的“一纸判决”

2017 年,Vaswani 等人的论文《Attention Is All You Need》直接扔掉了 RNN 和 CNN。核心思想简单到令人不安:

让序列中任意两个位置之间,都建立起一条直接的信息通路。

怎么做到?Self-Attention(自注意力)

传统 RNN: token₁ → token₂ → token₃ → ... → tokenₙ
Transformer: token₁ ↔ token₂ ↔ token₃ ↔ ... ↔ tokenₙ  (所有 token 两两连接)

每一步的距离从 O(n) 变成了 O(1)。这就是 Attention 的第一个核心价值:全局视野,一次到位

3. Self-Attention 的本质:它到底在“注意”什么?

很多教程一上来就抛公式:Attention(Q, K, V) = softmax(QK^T / √d_k)V。我们不这么做。我们先建立直觉。

3.1 直觉类比:人类阅读时的大脑

读下面这句话:

“小明昨天在图书馆看的那本关于量子力学的书,非常难懂。”

当你的眼睛扫到“它”这个字时,你的大脑几乎瞬间回溯到前文,把“它”和“那本关于量子力学的书”绑定在一起。你并没有把整句话重新读一遍,而是“拉”了一条线,把相关的信息直接拽过来。

Self-Attention 做的,就是这件事。

对于序列中的每一个 token,它会在整个序列中“搜索”与它相关的 token,然后按照相关程度加权聚合信息。

3.2 三个关键角色:Query、Key、Value

让我们用一种便于记忆的方式来理解这三个矩阵:

角色直觉含义类比
Query (Q)“我要找什么”你在搜索引擎输入的查询词
Key (K)“我是什么”每篇网页的标题和关键词标签
Value (V)“我实际包含什么内容”每篇网页的正文内容

计算过程分三步:

第一步:计算相似度(注意力分数)

把“我要找什么”(Q) 和“这篇文章是什么”(K) 做点积,得到一个分数。分数越高,说明越相关。

score[i][j] = Q_i · K_j

第二步:归一化成注意力权重

用 Softmax 把所有分数转化成 0-1 之间的权重,总和为 1。

α[i][j] = softmax(score[i])[j]

第三步:加权聚合信息

用这些权重去对 Value 做加权求和。也就是说,当前 token 最终的输出,是所有 token 的 Value 向量,按照“与我相关程度”加权后的结果。

output[i] = Σⱼ α[i][j] · V_j

3.3 为什么叫“胶水”?因为它把离散的 token 粘合成上下文

在 Attention 之前,每个 token 的表示基本是独立计算或单向依赖的。有了 Self-Attention,每个 token 的表示都融合了整个序列的上下文信息

“它”不再是孤零零的一个代词向量,而是和“量子力学的书”强相关后产生的语义向量。“bank”在“river bank”和“bank account”中虽然 input embedding 相同,但经过 Self-Attention 后会变得完全不同。

这就是“胶水”的第一层含义:把孤立符号粘合成语义整体。

3.4 Multi-Head Attention:不止一张“注意力的网”

如果只做一次 Self-Attention,你只建立了一套“相关关系”的网络。但语言是复杂的:一个词可能同时和主语、谓语、修饰语、远处的前置词都相关。一套关系矩阵不够用。

Multi-Head Attention 的做法是:并行地做多次 Self-Attention(比如 8 次或 16 次),每一次用不同的 Q/K/V 投影矩阵。

直觉类比:

  • Head 1 可能学会关注 句法依赖(主谓宾关系)
  • Head 2 可能学会关注 邻近语境(周围几个词)
  • Head 3 可能学会关注 指代关系(代词 → 先行词)
  • Head 4 可能学会关注 长程语义(段落中心思想)

最后把所有 head 的结果拼在一起,再过一层线性变换。

MultiHead = Concat(head₁, head₂, ..., head_h) × W_O

每个头在不同子空间中工作,模型于是可以同时建立多张“注意力的网”。这是“胶水”的第二层含义:多维度、多层次的上下文粘合。

4. Transformer 架构解剖:为什么所有模型都是同一个骨架?

现在我们来拆解 Transformer 的标准架构,并揭示一个核心洞察:所有大模型,本质上都是在这套骨架上做“减法”或“微调”,而不是另起炉灶。

4.1 标准 Transformer:Encoder-Decoder

最初为机器翻译设计的完整架构:

          ┌─────────┐         ┌─────────┐
输入 x  → │ Encoder │ → 中间表示 → │ Decoder │ → 输出 y
          └─────────┘         └─────────┘

Encoder(编码器)

  • 把输入序列“理解”成一个高维语义表示。
  • 由 N 层相同的层堆叠而成,每层包含:
    • Multi-Head Self-Attention(看全句)
    • Feed-Forward Network(逐位置的非线性变换)
    • 两个残差连接 + LayerNorm

Decoder(解码器)

  • 基于 Encoder 的输出和已生成的部分序列,逐个 token 地生成输出。
  • 同样 N 层,每层包含:
    • Masked Multi-Head Self-Attention(只看当前位置之前的内容,防止“偷看”答案)
    • Cross-Attention(用 Decoder 的 Q,去查 Encoder 的 K 和 V,建立输入到输出的对齐)
    • Feed-Forward Network
    • 三个残差连接 + LayerNorm

4.2 GPT 系列:只留 Decoder

GPT 的做法极其“粗暴”:直接把 Encoder 扔掉,只留 Decoder。

更准确地说,GPT 用的是去掉 Cross-Attention 后的 Decoder。因为没有 Encoder,自然不存在输入-输出的对齐。剩下的只有:

  • Masked Multi-Head Self-Attention
  • Feed-Forward Network
  • 残差 + LayerNorm

这就是一个自回归语言模型:给定上文,预测下一个 token。

GPT = Transformer 的 Decoder 部分 - Cross-Attention 层

GPT-1 到 GPT-4,无论参数规模从 1.17 亿涨到万亿级别,这个骨架纹丝未动。

4.3 BERT 系列:只留 Encoder

BERT 走的是另一条路:把 Decoder 扔掉,只留 Encoder。

因为 BERT 的目标不是“生成”,而是“理解”。它随机 mask 掉一些 token,让 Encoder 去预测这些被遮住的内容。Encoder 中的 Self-Attention 是双向的(没有 mask),所以每个 token 可以自由地关注上下文中的任何位置。

BERT = Transformer 的 Encoder 部分

4.4 T5:完整保留,统一为 Text-to-Text

Google 的 T5 发现,所有 NLP 任务都可以统一成“输入文本 → 输出文本”的格式。于是它完整保留了 Encoder-Decoder 架构,把翻译、摘要、问答、分类全部塞进同一个框架。

4.5 视觉 Transformer (ViT):把图片切成“词”

ViT 的做法是:把一张图片切分成 16×16 的小块(patch),把每个小块拉平成一个向量,加上位置编码,直接当成 token 序列喂给 Transformer Encoder

没有卷积,没有池化,没有感受野的限制。结果呢?在大数据量预训练下,ViT 吊打传统 CNN。

ViT = Transformer Encoder + 图片 patch 化 = “图片 token”

4.6 多模态模型:一个序列塞天下

GPT-4V、LLaVA 等多模态模型的思路更统一:

  • 图片用 ViT 编码成一串特征向量
  • 文本用 tokenizer 编码成 token 序列
  • 把二者拼接成一个长序列
  • 全部扔进同一个 Transformer 骨架

文本 token 可以和图片特征 token 在同一层里彼此做 Attention。这就是多模态融合的最简形态。

4.7 本质洞察:我们只是在调整“三件事”

回顾以上所有变体,你会发现,所谓的“不同架构”,其实只是在调整三个变量:

变量含义
注意力掩码 (Attention Mask)控制 token 之间能否互相看见(双向/单向/局部/稀疏)
输入编码方式如何把文字/图片/音频/视频变成向量序列
输出头 (Head)最终拿来做什么任务(分类/生成/检测)

核心骨架——Multi-Head Self-Attention + FFN + Residual + LayerNorm——从未改变。

这就是为什么所有大模型本质上都是同一套架构。它们共享同一个底层语言,只是在表层的掩码策略和编码方式上做了差异化选择。

5. Attention 凭什么成为“万能胶水”?——三个不可替代的优势

现在我们来回答第二个核心问题:为什么是 Attention,而不是别的什么机制?

5.1 优势一:与生俱来的并行性

RNN 的串行依赖是写在基因里的,而 Attention 的计算公式里没有任何时间步依赖。Q、K、V 三个矩阵的计算完全并行。

对于一个长度为 n 的序列,Attention 的时间复杂度是 O(n²),但因为 GPU 的矩阵乘法引擎极度擅长做这件事,在实际工程中,即使是几千 token 的序列,Self-Attention 的计算时间也可以控制在合理范围内。

更重要的是,它的 O(n²) 是并行化的 O(n²),而 RNN 的 O(n) 是串行的 O(n)。在 GPU 上,前者反而可能更快。

5.2 优势二:可微分的“信息路由”

这里有一个更深层的视角:Attention 本质上是一个可微分的字典查找(dictionary lookup)机制。

  • 普通字典:你用“key”去精确匹配,返回“value”。
  • Soft 字典(Attention):你用“query”去模糊匹配所有“key”,按相似度给权重,返回所有“value”的加权和。

关键在于可微分。这意味着整个“查找”过程可以通过梯度反向传播进行端到端优化。模型自己学会了“什么时候该查什么信息”,不需要人类预先定义规则。

这是 Attention 能和深度学习完美耦合的根本原因。它不是一种硬编码的启发式规则,而是一个端到端可训练的信息聚合算子

5.3 优势三:统一的输入格式——向量序列

Attention 只要求输入是一个“向量序列”。它不在乎这些向量来自哪里:

  • 来自 Tokenizer → 文本理解
  • 来自 CNN Backbone → 视觉理解
  • 来自 Mel Spectrogram → 语音理解
  • 来自上面所有 → 多模态理解

只要你把任何模态的数据变成一堆向量,Attention 就能在它们之间建立关联。

这就好比 USB-C 接口:你不在乎设备的内部原理是什么,只要它输出的是标准协议信号,连接器就能让你把它和任何其他设备连在一起。

Attention 是深度学习世界里的 USB-C。这是“胶水”第三层,也是最深层的含义:模态无关的统一接口。

6. 尾声:从 Attention 到 AGI?

我们正站在一个奇怪的历史节点上。

2017 年 Attention 刚提出时,大家觉得这只是一个更好的机器翻译方案。但随后发生的事情远远超出了所有人的预期:

  • 2020 年 GPT-3 证明了一个足够大的 Decoder 可以涌现出零样本推理能力
  • 2022 年 ChatGPT 证明了这套架构加上 RLHF 能产生对话智能
  • 2023-2024 年 GPT-4、Claude、Gemini 证明了它不仅能处理文本,还能处理图像、代码、音频
  • 2025-2026 年,推理模型(o1/o3/DeepSeek-R1 等)证明了同一套架构加上思维链搜索就能处理复杂的数学和编程问题

没有换架构,没有革命性的新组件。依然是那套 Multi-Head Attention + FFN + Residual 的骨架。变的只是数据规模、算力规模,以及训练范式。

这是否意味着 Attention 就是通往通用人工智能的“最终形态”?我们不知道。但至少目前,它仍然是整个 AI 大厦唯一的地基。

而只要地基不变,所有大模型,就永远是同一棵树干上,长出的不同枝叶。

更多推荐