Transformer 原理通俗讲解

从一句话的指代消解出发,拆解注意力机制、多头结构与整体架构,理解支撑 GPT、BERT、Claude 的核心引擎。

核心思想:词与词的对话

想象你在读这句话:"坐在垫子上,很舒适。"

当你理解"它"指的是"猫"时,你的大脑其实在做一件事:把当前词和句子里所有其他词建立联系,判断哪些最相关。这就是 Transformer 的核心机制——注意力(Attention)

Transformer 的革命性在于:并行地、对每个词都做这件事,而不是像 RNN 一样一个词一个词地读。

三个核心组件

1. 注意力机制(Self-Attention)

每个词生成三个向量:

每个词的 Q 和所有词的 K 做点积,算出相关度分数,经过 Softmax 归一化后,再对所有词的 V 做加权求和,得到这个词更新后的表示。

2. 多头注意力(Multi-Head Attention)

模型不只跑一次注意力,而是同时跑 8 个、16 个甚至更多"头",每个头捕捉不同的语言关系,比如语法结构、指代关系、语义相关性等,最后把所有头的结果拼接起来,融合成更丰富的表示。

3. 前馈网络(FFN)

注意力完成"词间交流"之后,每个词的向量会独立通过一个两层神经网络,做非线性变换,进一步增强模型的表达能力。这一步是逐词进行的,词与词之间不再交互。

这三步组成一个完整的 Transformer 层:Self-Attention → 残差连接 → Layer Norm → FFN → 残差连接 → Layer Norm。实际模型会把这样的层叠加 12、32、甚至 96 次,层数越深,捕捉到的语义就越抽象。

动手试一试:注意力是如何分配的

下面以"猫坐在垫子上,它很舒适"为例,点击任意一个词,观察它在不同层会把"注意力"投向哪些词——连线越粗、颜色越深,代表关联越强。

点击一个词,查看它在注意力层中关注哪些词
强注意力
中等注意力
弱注意力
每层学习不同的语言关系 — 尝试切换层

完整流程:从输入到输出

① 词嵌入 + 位置编码

每个词先被转换成一个向量(比如 512 维),再加入位置信息(这个词是句子中第几个)。因为 Transformer 本身不感知顺序,必须手动把位置信息编码进去。

② N 个 Transformer 层叠加

输入向量依次通过多个 Transformer 层,每一层都让词与词之间充分"交流",并不断提炼出更高层次的语义特征。

③ 输出

最后一层输出的向量,经过一个线性层加 Softmax,转换成对下一个词的概率分布,从而完成预测。

注意力机制的数学表达

整个机制的核心公式其实只有一行:

$$ \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right) V $$

其中除以 $\sqrt{d_k}$ 是为了防止点积数值过大,导致 Softmax 后梯度过小、训练不稳定。就是这样一个看似简单的公式,支撑起了 GPT、BERT、Claude 等模型的整个核心运算。

为什么 Transformer 这么强?

问题 RNN 的做法 Transformer 的做法
处理长文本 顺序逐词读取,早期信息容易丢失 所有词直接互相注意,距离无障碍
训练速度 必须串行计算,无法并行 全部并行,GPU 利用率极高
捕捉关系 难以处理长距离依赖 任意两词之间一步直达

正是这种"全词并行 + 任意距离直接关联"的设计,让 Transformer 在长文本理解、训练效率和可扩展性上全面超越了此前的循环神经网络架构,也成为了如今几乎所有大语言模型的基石。

← 返回文章列表