如果你关注AI领域,一定听过 Transformer 这个词——GPT、BERT、T5、LLaMA……几乎所有今天你能叫得上名字的大模型,底层都是 Transformer。但 Transformer 到底是什么?它为什么能取代之前所有的架构?这篇文章,我们从最根本的问题出发。
一切的起点:序列问题
AI 要处理很多「序列」数据——一句话是一串词组成的序列、一段音频是一串采样点组成的序列、一段视频是一串帧组成的序列。传统的做法是用 RNN(循环神经网络)或者它的变体 LSTM,让网络一步一步地「读」这个序列,把前面看到的东西记在记忆里,然后用这个记忆来理解后面的内容。
但 RNN 有两个致命问题:
- 不能并行——必须等前一个字处理完了才能处理下一个字,训练速度极慢
- 长距离遗忘——如果句子太长,读到后面早就忘了前面说了什么
2017 年 Google 的论文 "Attention Is All You Need" 用一套全新的思路解决了这两个问题。这个新架构就叫 Transformer。
核心思想:注意力机制
Transformer 的核心概念叫 自注意力(Self-Attention)。说白了就是一句话里的每个词,都去「看」其他所有词,然后决定哪些词跟自己关系最大。
举个例子,「小明把球传给小李,然后他跑向球门。」这里的「他」指的是小明还是小李?人理解这句话的时候,会回头看——「跑向球门」这件事和前一句的「传给」之间,是传球的人(小明)会跑向球门。注意力机制做的就是这件事:让模型在处理每个词的时候,动态地计算它和其他所有词的关联强度,然后把关联强的那些词的信息融合进来。
注意力计算有三个要素:
- Query(查询)——当前词「想问什么」
- Key(键)——其他词「有什么」
- Value(值)——其他词「给什么」
当前词用自己的 Query 去匹配其他所有词的 Key,匹配得分越高,说明越相关,然后把对应 Value 的加权和作为最终输出。
并行与位置编码
Transformer 之所以能并行,是因为它不做逐步处理——所有词同时输入,同时计算注意力。但这样一来它就失去了序列信息——RNN 天然知道词的前后顺序,但 Transformer 在一开始并不知道。
解决方案是 位置编码(Positional Encoding):给每个词加上一个表示其位置的信息。这个编码是用正弦和余弦函数生成的,确保相邻位置的编码差异小,远距离位置的编码差异大。
Encoder-Decoder 结构
原始 Transformer 由两部分组成:
- Encoder(编码器)——把输入序列转换成一组表示(representation),每个位置的表示都「看」了整个序列
- Decoder(解码器)——根据编码器的输出和已经生成的内容,一步步生成目标序列
GPT 系列模型去掉了 Encoder,只用 Decoder(自回归),通过不断预测下一个词来生成文本。BERT 去掉了 Decoder,只用 Encoder,通过理解上下文来填补被遮住的词。后来绝大多数大语言模型都走 GPT 的 Decoder-only 路线。
为什么 Transformer 赢了
Transformer 的胜利来自三个优势:
- 并行计算——训练时间从几周缩到几天甚至几小时
- 长程依赖——每个词直接连接所有词,距离再远也能互相看见
- 规模可扩展——更多层、更多参数、更多数据,效果持续提升,RNN 做不到这个
今天所有的主流大模型(GPT-4、Claude、Gemini、LLaMA、Qwen、DeepSeek……)本质上都是经过改进的 Transformer Decoder 架构。区别在于加了什么改进——旋转位置编码(RoPE)、分组查询注意力(GQA)、混合专家(MoE)等等,但底子的核心仍然是那个 2017 年的直觉:让每个词去看所有其他词。
下一篇预告
Transformer 解决了「并行」和「长距离遗忘」,但代价是计算量爆炸——每个词要和所有词做计算,序列长度翻倍,计算量翻四倍。下一篇我们讲 如何给 Transformer 减肥:稀疏注意力、知识蒸馏、模型剪枝。
