Transformer 是一种神经网络架构,2017 年由 Google 的一篇论文《Attention Is All You Need》提出。名字里的 transform 是「变换」的意思:它把一串输入(一段文字、一串图像块、一段音频帧)反复变换,最后变成能用于预测的表示。
它重要的原因很朴素:今天你用到的几乎每个大模型——ChatGPT、Claude、Gemini、通义、DeepSeek,以及大部分图像和视频生成模型——骨架都是 Transformer 或它的变体。理解这一个架构,就能理解为什么大模型有上下文窗口、为什么变长会变贵、为什么它能并行训练得这么大。
先用一句话抓住它
Transformer 用注意力机制替代了逐词顺序处理,让模型一次看完整段输入、并行算出每个位置该关注谁。
打个比方。旧的循环网络像一个人从头到尾读一份长合同,读到第 80 条时,第 3 条的细节已经模糊了,而且他必须一句一句读,快不起来。Transformer 像把整份合同摊在会议桌上,每一条都能直接抬头看向任何其他条款,谁跟谁有关系当场就能连线——所有条款还可以同时开工。
为什么它取代了循环网络
2017 年之前,处理序列的主流是 RNN、LSTM 这类循环结构:信息沿着时间步一格一格往前传。这带来两个硬伤。一是长距离依赖会衰减,隔得太远的两个词很难建立联系;二是没法并行,第 t 步必须等第 t-1 步算完,训练规模上不去。
Transformer 把「顺序」这个约束拆掉了。序列里任意两个位置之间是一步直连,不用经过中间所有位置转手;而且整段输入可以在一次矩阵运算里同时处理。这两点合起来,才让后来把模型堆到几千亿参数、在上万张显卡上训练成为工程上可行的事。这也是缩放定律得以被验证的前提——你得先有一个能吃下超大算力的架构。
它由哪几块组成
分词与嵌入:文本先被切成 Token,每个 Token 查表变成一个向量。因为注意力本身不区分先后,还要额外加上位置编码,告诉模型谁在前谁在后。
多头自注意力:这是核心,也是注意力机制在架构里的落点。每个位置都会算出「我该从其他哪些位置取信息、各取多少」,然后把这些信息加权汇总进来。「多头」是指同时跑好几套这样的关注方式,有的头盯语法结构,有的头盯指代关系,互不干扰。
前馈网络:注意力负责在位置之间搬运信息,前馈网络负责在每个位置内部做加工。今天很多大模型把这一层换成了混合专家,同样的参数量下只激活一小部分,推理更省。
残差连接与归一化:每一层的输出都会加回输入。这看起来是小细节,但没有它,几十上百层是训不动的。
编码器、解码器和今天的主流
原始论文里 Transformer 有两半:编码器读输入,解码器写输出,用于机器翻译。后来分化成三条路线。只用编码器的(BERT 一类)擅长理解和分类,今天更多出现在向量嵌入和检索环节。只用解码器的(GPT 一类)擅长逐个 Token 往下续写,是今天大语言模型的绝对主流。编码器加解码器的(T5 一类)仍用在翻译、摘要这类明确的「输入进、输出出」任务上。
图像和视频这边也在收敛到同一套架构:把图片切成小块当作 Token,就是 Vision Transformer;把扩散模型的骨干网络从卷积换成 Transformer,就是当下视频生成里常说的 DiT。
它的代价:注意力是平方级的
标准自注意力要算「每个位置对每个位置」的关系,输入长度翻倍,计算量大约变成四倍。这就是上下文窗口不能无限放大的直接原因,也是长文档处理为什么明显更慢更贵。
工程上有一堆缓解办法:FlashAttention 之类的高效实现优化了显存读写,滑动窗口、稀疏注意力限制每个位置只看一部分,KV 缓存让已经算过的部分不用重算(这也是提示词缓存能省钱的底层机制)。但平方这个基本形状还在,所以上下文工程和上下文压缩才有存在的必要。
容易误解的地方
「Transformer 就是大模型」——不是。Transformer 只是架构,相当于房子的结构设计;大模型还需要海量数据、预训练目标、对齐调优才能成型。同一个架构,参数量和训练数据差一百倍,能力就完全不是一回事。
「注意力就是在理解语义」——注意力算的是位置之间的相关权重,是一种信息路由机制。它确实经常和人类直觉里的语法、指代对得上,但这是训练出来的统计结果,不能反过来当成模型「知道」自己在做什么的证据,这也是幻觉存在的原因之一。
「架构没变过」——骨架没变,细节改了很多:位置编码从绝对位置换成了旋转位置编码(RoPE),归一化位置前移,注意力头做了分组共享,前馈层被 MoE 替换。这些改动没有换掉 Transformer,但它们才是近几年长上下文和低成本推理的实际来源。
学到什么程度够用
如果你只是用 AI 工具,知道三件事就够了:模型是按 Token 工作的,所以长度直接等于成本;注意力是平方级的,所以长上下文会明显变慢;上下文窗口是硬边界,超出的部分不是被压缩就是被丢掉。
如果你要做 AI 应用开发,值得再往前一步:搞清楚 KV 缓存怎么影响首 Token 延迟和多轮对话成本,理解为什么把稳定的系统提示放在前面能被缓存命中,以及 MoE 模型的「总参数量」和「激活参数量」为什么不能混着比。