跳转至

Transformer 架构

Transformer 架构

2017 年,Google 一篇《Attention Is All You Need》提出 Transformer,最初只是机器翻译的一个新架构。到 2026 年,它仍是 AI 产业的主干:GPT、Claude、Gemini 的语言能力,ViT 的视觉能力,以及图像、视频、音频生成模型,骨干都是 Transformer。把 Transformer 拆开讲透:它为什么诞生、自注意力怎么算、完整结构长什么样、三种主流形态怎么分工,最后落到产品视角。前置知识:神经网络与 RNN 见 深度学习基础,大模型侧的整体图景见 大模型基础。

从 RNN 到 Transformer

RNN 的三个痛点

在 Transformer 之前,序列建模(文本、语音)由 RNN/LSTM 统治(见 深度学习基础「循环神经网络」一节)。RNN 处理序列有三大先天痛点:

  1. 串行计算:第 t 步必须等第 t−1 步算完,一个一个词地读:序列越长,训练越慢;GPU 的并行能力完全使不上劲。
  2. 长距离依赖衰减:信息靠隐状态一步步接力传递,传得越远损耗越大;LSTM 的门控只是缓解,没有根治:隔 50 个词的指代关系依旧容易丢。
  3. 梯度消失/爆炸:误差沿时间步连乘,深(长)序列训练不稳定。

Transformer 的三个突破

Transformer 对这三个痛点做了「掀桌子式」的回应:

  1. 并行:整个序列同时进入模型,一步算出所有位置的表示:时间维可并行,GPU 利用率远高于 RNN 的逐步接力;标准注意力的计算量仍约 O(n²),长序列并不更便宜。
  2. 全序列直接关注:任何两个位置之间都有一条直连的注意力通路,距离不再是问题:第 1 个词和第 1000 个词之间的信息传递,和相邻词一样直接。
  3. 规模化友好:并行 + 直连,让「堆更大数据、更大模型」这条路第一次变得可行:这正是后来 Scaling Law 与基础模型时代的架构前提。

一句话概括:RNN 靠接力传递,Transformer 靠全员直连:直连取代接力,是这场架构革命的全部秘密。

RNN 与 Transformer 对比

维度RNN / LSTMTransformer
计算方式逐 token 串行全序列并行
长距离依赖逐级接力,随距离衰减任意两位置直连,O(1) 步可达
信息通道唯一的隐状态向量(瓶颈)注意力加权汇总(无瓶颈)
计算复杂度逐步串行,逐步累加Prefill 并行但注意力 O(n²);Decode 每步读已有 KV
梯度沿时间连乘,易消失/爆炸残差 + 直连,深网络稳定
规模化增大模型收益递减数据 + 参数 + 算力同步增长,收益持续

复杂度栏不要拿 RNN 的「逐步 O(n)」和 Transformer Prefill 的「并行 O(n²)」直接比快慢。RNN 训练仍随序列展开(BPTT),只是每步局部计算小;Transformer Prefill 一次看完全文,注意力随长度平方增长。产品上要分清:训练/首 token 吃的是 Prefill,出字之后吃的是 Decode 与 KV Cache。

Transformer 不是终局

O(n²) 复杂度催生了后 Transformer 探索:Mamba 等状态空间模型(SSM)把序列建模复杂度压到线性,长序列上成本优势明显,2024 年起进入工业试用;但注意力任意位置直连的表达力与成熟生态仍难撼动,主流大模型至今仍以 Transformer 为主干。

产品选型不用追逐架构新闻:关注的是模型的能力与成本,架构是模型厂商的战场。

自注意力机制

Q/K/V 的直觉:检索类比

自注意力让每个 token 从全序列所有 token 里按相关性取信息。三个角色用图书馆检索类比最好懂:

  • Q(Query,查询):我在找什么——我这个词需要什么信息。
  • K(Key,键):我是谁——每个词的标签/身份。
  • V(Value,值):我有什么——每个词携带的内容。

计算流程:我的问题(Q)去匹配每个词的标签(K),匹配度高的,就把它的内容(V)多取一些过来:你的问题匹配我的标签,就取我的内容。每个位置都做这件事,输出的新表示就是按相关性加权汇总的全体信息。

缩放点积注意力公式

把上面的过程写成公式(文字表述):

  1. 每个 token 的输入向量分别乘三个可学习矩阵 W_Q、W_K、W_V,得到该 token 的 Q、K、V;
  2. 算所有 Q 与所有 K 的点积,得到注意力分数矩阵(分数越高=越相关);
  3. 分数除以 √dₖ(dₖ 是 K 的维度),做缩放;
  4. 对每一行做 Softmax,把分数归一化成权重之和为 1 的概率分布;
  5. 用权重对 V 做加权求和,得到注意力输出。

即:Attention(Q, K, V) = Softmax(QKᵀ / √dₖ) · V。整条公式都是矩阵运算,GPU 一次算完:这也是它快的原因。

flowchart LR
    tokens["输入 token 表示"] --> projections["线性投影"]
    projections --> q["Q:查询"]
    projections --> k["K:键"]
    projections --> v["V:值"]
    q --> scores["QKᵀ / √dₖ"]
    k --> scores
    scores --> weights["Softmax:注意力权重"]
    weights --> weighted["按权重汇总 V"]
    v --> weighted
    weighted --> output["注意力输出"]

核心关系:Query 用来提问、Key 用来匹配、Value 提供内容,Softmax 把匹配结果变成信息汇总权重。

一个具体例子:三句话的句子

拿「猫 追 狗」三个 token 走一遍(忽略位置编码):

  1. 三个 token 的输入向量分别乘 W_Q/W_K/W_V,得到各自的 Q/K/V;
  2. 算「猫」的 Q 与「猫」「追」「狗」三个 K 的点积,得到三个原始分数:假设分别是 3.0、1.5、−0.5(「猫」最关注自己,其次「追」,和「狗」关系弱);
  3. 除以 √dₖ 后过 Softmax,得到权重,比如 0.62、0.28、0.10;
  4. 「猫」的新表示 = 0.62 × 猫的 V + 0.28 × 追的 V + 0.10 × 狗的 V。

关键观察:每个 token 的新表示都是全句信息的加权混合,权重由相关性决定。把「猫」换成「狗」的位置,权重分布随之变化:这就是自注意力能建模谁和谁有关的方式。把所有 token 的分数画成一张矩阵,就是著名的注意力热力图:它是常用的启发式可视化,能提示模型在这一层看了哪些位置,但不能当成合规级解释——注意力权重大不等于因果贡献。

两个关键设计:为什么缩放、为什么 Softmax

  • 为什么除以 √dₖ:Q 和 K 的维度越高,点积的数值越大(高维向量点积的方差随维度增长),Softmax 输入一大,输出就滑向一个 1、其余 0 的极端分布,梯度趋近 0,训练失效。除以 √dₖ 把点积尺度拉回稳定区间,Softmax 才能保持软的区分度。
  • Softmax 的作用:把原始匹配度变成注意力分布:权重非负、和为 1,模型被迫在重点看谁之间做权衡,而不是简单相加。这里的温度作用在注意力分数上;大模型基础 里的采样温度作用在输出 logits 上,概念同源、位置不同,不要混用。
为什么点积而不是别的匹配方式

直觉上匹配度可以定义成加法、余弦、神经网络打分等。选点积的理由:矩阵乘法有高度优化的硬件实现(GPU/TPU 的强项),且配合缩放后效果足够好:论文作者在附录里实测,点积注意力在维度大时显著优于加法注意力,而速度更快。

多头注意力

一组 Q/K/V 权重,代表的是一种关注视角:比如有的头关注代词指代谁,有的头关注修饰关系,有的头关注是否定句。但具体是什么,模型自己学,人说不清。

多头注意力就是把 Q/K/V 拆成 H 组(如 8 组或 32 组),每组在降维后的子空间里独立算一遍注意力,再把 H 个结果拼接、过一次线性变换,得到最终输出:

  • 多视角并行:每个头是一组不同的 Q/K/V 投影,相当于 H 个关注视角同时工作:一个头看语法,一个头看语义,一个头看位置关系。
  • 计算成本不增:每个头在降维后的子空间算(维度 = 总维度 ÷ 头数),总计算量与单头一致:同样的钱,买 H 份不同角度的分析。
  • 为什么有效:单头只能学一种相关性;真实语言里相关性是多重的(同一个词,对语法相关、对指代相关、对情感相关),多头让模型并行建模多重关系。

直觉:单头注意力是一把尺子量所有关系,多头是 H 把不同刻度的尺子一起量。

自注意力与交叉注意力

注意力按 Q/K/V 来自哪里分两种,别混:

  • 自注意力(Self-Attention):Q、K、V 都来自同一个序列:序列内部互相看,建模谁和谁相关。Encoder/Decoder 里的掩码自注意力都属于它。
  • 交叉注意力(Cross-Attention):Q 来自一个序列,K/V 来自另一个序列:两个序列之间的信息交互。Transformer 里是「解码器 Q × 编码器 K/V」;多模态模型里是「文本 Q × 图像 K/V」(如文生图模型的文本条件注入)。

一句话:自注意力是内省,交叉注意力是外联。两者的组合给了模型先读懂自己、再看别人的完整能力,这也是 Encoder-Decoder 形态信息流动的骨架。

与 CNN 多通道的类比

多头注意力与 CNN 的多卷积核(见 深度学习基础)是同一个设计哲学的两次独立实现:与其让一个组件学所有特征,不如让多个组件各学一种特征,再拼接。CNN 的多个卷积核各识别一种边缘/纹理;Transformer 的多个头各关注一种关系。区别在于:CNN 的头是空间局部、固定位置的,Transformer 的头是全局的、可随内容变化的:所以多头注意力被叫作动态的多视角。

为什么每个头要降维

如果 H 个头各在完整维度上算注意力,参数量和计算量直接乘 H,模型立刻膨胀。降维(每个头用 1/H 的维度)后,拼接起来正好回到原始维度:总参数与单头持平,但获得了 H 个视角。这是花一份钱买 H 份分析的关键工程细节。

位置编码

为什么需要:自注意力没有顺序感

自注意力对 token 的处理是集合式的:交换两个 token 的位置,注意力计算完全不变(点积与顺序无关)。但语言里顺序就是意义:「猫追狗」和「狗追猫」完全不同。Transformer 必须把位置信息显式地塞进输入,否则它读到的只是一堆词的袋子。

三种主流方案

方案做法特点
正弦/余弦编码(原始)用不同频率的正弦波给每个位置生成固定向量,加到词向量上不学习、可外推到训练时未见过的长度;原始论文的选择
可学习位置编码位置向量随模型一起训练灵活,但长度被训练范围锁死(如 BERT 的 512)
RoPE(旋转位置编码)把位置信息编码进 Q/K 的旋转角度,相对位置关系体现在向量夹角上相对位置语义清晰、支持长外推,当前大模型的主流(LLaMA、Qwen、DeepSeek 等)

三者的共同目标:让模型知道谁在谁前面、隔了多远。区别在于是把位置做成绝对坐标(前两种)还是相对角度(RoPE),以及能不能处理训练时没见过的超长序列。长上下文话题见 大模型基础。

正弦编码为什么行:不同频率 = 不同粒度

原始论文的正弦位置编码,直觉值得展开:不同维度的正弦波频率不同:低频维度(变化慢)编码绝对的大致位置,高频维度(变化快)编码精确的相对位置。任意两个位置之间的相对偏移,可以由它们编码向量的线性关系表达(三角恒等式),所以模型虽然拿到的是绝对位置,却能自然学会位置差的概念。

更本质的观察:位置编码是加进词向量的,而不是拼在后面:这让模型在注意力计算时,词义相似度 + 位置相似度可以同时参与匹配(点积展开后两者自然相加)。位置与语义在同一空间里协同,是 Transformer 能同时处理说什么和在哪儿说的原因。

Transformer 的完整结构

Encoder:双向自注意力

编码器(Encoder) 负责读懂输入,由 N 层(原始论文 6 层)堆叠,每层两个子层:

  1. 多头自注意力:每个 token 关注整句所有 token:双向:任何一个位置都能看全句(含未来的 token),因为理解不需要因果限制;
  2. 前馈网络(FFN):每个 token 独立过一个两层的全连接 + 非线性激活:位置上的信息加工站,先扩维(如 512 → 2048)再压回,给注意力结果做逐位置的非线性变换。

Decoder:掩码自注意力 + 交叉注意力

解码器(Decoder) 负责生成输出,每层三个子层:

  1. 掩码自注意力:和编码器的自注意力一样,但加了一层因果掩码(mask):计算位置 t 时,把未来位置的注意力分数设为负无穷,Softmax 后权重为 0。解码器生成第 t 个词时只能看到已生成的词,不能偷看未来:这是自回归的纪律;
  2. 交叉注意力:Q 来自解码器、K/V 来自编码器:解码器生成每个词时,回头查编码器读懂的输入信息,这是 Encoder 与 Decoder 之间唯一的交互通道(机器翻译里:解码器生成译文时,每一步都要回头看原文);
  3. 前馈网络:同编码器。

Encoder-Decoder 的信息流可以压缩成一张图:

flowchart LR
    source["源序列"] --> encoder["Encoder stack<br/>双向自注意力"]
    encoder --> memory[("编码表示")]
    target["已生成目标 token"] --> decoder["Decoder stack<br/>掩码自注意力"]
    decoder --> cross["交叉注意力<br/>Q × 编码表示 K/V"]
    memory --> cross
    cross --> output["输出 token"]

核心关系:Encoder 先把源序列编码成上下文表示,Decoder 只能看已生成内容,并通过交叉注意力按需读取源序列信息。经典 RNN Encoder-Decoder 的 S/T、BOS/EOS、padding、Teacher Forcing 与自回归解码见深度学习基础;Transformer 保留相同的输入输出分工,但用注意力和 mask 替代循环状态。

残差连接与层归一化

每个子层外面都套着「残差连接 + 层归一化」:

  • 残差连接:输出 = 子层输出 + 原始输入,给梯度一条直通路径,几十层的 Transformer 才能稳定训练(思想源自 ResNet,见 深度学习基础);
  • 层归一化:按每个样本的所有特征维度归一化,与 batch 无关、训练推理一致:序列长度多变、小 batch 训练的场景下比批归一化稳(两者对比见 深度学习基础)。

以现代常见的 Pre-LN Transformer Block 为例,单层内部是两次子层计算与两次残差相加:

flowchart LR
    input["输入表示 x"] --> norm1["LayerNorm"]
    norm1 --> attention["多头自注意力"]
    attention --> add1["残差相加<br/>x + Attention(x)"]
    input --> add1
    add1 --> norm2["LayerNorm"]
    norm2 --> ffn["前馈网络 FFN<br/>GELU / SwiGLU"]
    ffn --> add2["残差相加"]
    add1 --> add2
    add2 --> output["输出表示"]

核心关系:LayerNorm 稳定每个子层的输入,注意力负责 token 间信息交互,FFN 负责逐位置的非线性加工,残差把输入直接接到输出以稳定深层训练。

输入表示:嵌入、缩放与掩码

进入 Encoder/Decoder 之前,输入还要过三关:

  • token 化与嵌入:文本按词表切成 token(子词粒度,如 BPE,见 大模型基础),每个 token 查嵌入表得到向量:嵌入 + 位置编码 = 模型看到的输入。
  • 嵌入缩放:原始论文把嵌入向量乘以 √d(嵌入维度开根号),让嵌入的数值尺度与位置编码相当(后者是固定幅度),避免位置信号被词向量淹没:细节工程,但体现了每个分量尺度都要可控的调参哲学。
  • Padding 掩码:一个 batch 里句子长度不一,短的句子要补齐到同一长度;补位(Padding)的 token 不是真实内容,要在注意力计算时把它们的分数设成负无穷(Softmax 后权重为 0),防止模型关注空白。区分:这是防看空白的 Padding 掩码,解码器里还有防看未来的因果掩码,两回事。

训练配方:原文里的实用细节

原始论文的训练设置里有几个沿用至今的工程细节:

  • 学习率预热 + 衰减:前若干步学习率线性爬升(稳定早期训练),之后按步数平方根衰减:先小步探路,再大步快跑,最后稳步收敛;
  • Dropout:注意力层与前馈层都加,防过拟合(原理见 深度学习基础);
  • 标签平滑:把正确答案的 one-hot 标签改成「0.9 给正确类 + 0.1 均分给其他类」,防止模型对训练标签过度自信。这是 2017 原文翻译任务的配方;当代 LLM 预训练目标是 next-token 交叉熵,通常不用标签平滑,Dropout 在 LLaMA 类配方里也常为 0。

原始配置:两个尺寸,看懂论文里的数字

原始论文给了两个配置,所有超参一目了然:

超参basebig
层数(Encoder/Decoder 各)66
嵌入/隐藏维度 d_model5121024
注意力头数816
每头维度 d_k = d_v6464
FFN 中间维度20484096
参数量约 6500 万约 2.13 亿

几个比例关系:每头维度 = 总维度 ÷ 头数(512 ÷ 8 = 64);FFN 中间维度 ≈ 4 倍 d_model;层数 6 在当时很深,今天的大模型动辄几十上百层、千亿参数:规模变了,骨架没变。看懂这张表,再去看任何大模型的技术报告,第一眼就能定位它多深、多头、多宽。

「Attention Is All You Need」的贡献

这篇论文的贡献不是某个组件是全新的:注意力机制来自机器翻译(见 深度学习基础「序列到序列与注意力的起源」),残差与归一化来自既有工作。它的贡献在于:把注意力从辅助组件升级为唯一的骨干,其他一切(循环、卷积)全部去掉,用纯注意力搭出整个序列模型,并在机器翻译上以更低的训练成本刷新 SOTA。它证明了一件事:序列建模根本不需要顺序的骨架,只需要直连 + 位置标记:这个洞见开启了此后所有大模型。

三种主流形态

Encoder-only:BERT 与理解型模型

  • 结构:只有编码器,双向注意力,输入完整句子、输出每个 token 的稠密表示。
  • 代表:BERT 及家族。
  • 擅长:理解型任务:文本分类、命名实体识别、情感分析、语义相似度;预训练用「掩码语言建模」(挖掉一些词让模型猜),天然适合读。
  • 局限:不能生成文本;要做生成任务得外挂解码器,不自然。

Decoder-only:GPT 与生成型模型

  • 结构:只有解码器,掩码自注意力,逐 token 预测下一个词。
  • 代表:GPT 系列及当今几乎所有大语言模型(GPT、Claude、Gemini、LLaMA、Qwen、DeepSeek……)。
  • 擅长:自回归生成:写文章、写代码、对话、推理,一切往下接的任务。
  • 预训练目标极简:预测下一个词,不需要标注数据,整个互联网的文本都是训练语料:这是它能规模化的关键。

Encoder-Decoder:T5 与转换型模型

  • 结构:编码器读输入 + 解码器生成输出,经典翻译架构。
  • 代表:T5、BART、Flan-T5 等。
  • 擅长:输入输出都是文本的转换任务:翻译、摘要、改写;T5 的激进做法是「什么任务都写成『前缀 + 输入 → 输出』的文本到文本」,统一框架。
  • 现状:新一代模型里 Encoder-Decoder 已不主流(部分多模态/翻译场景仍用),但它解释了读 + 写分工的原型。

三种形态对比速查

Encoder-only(BERT)Decoder-only(GPT)Encoder-Decoder(T5)
注意力双向自注意力掩码(因果)自注意力双向编码 + 因果解码 + 交叉注意力
预训练任务掩码语言建模(猜被挖的词)下一个词预测文本到文本(填空/翻译等)
擅长理解:分类、抽取、匹配生成:写作、对话、代码、推理转换:翻译、摘要、改写
能不能生成不能(需要外挂)能,且是核心能
代表产品时代2018-2021 搜索/分类2022 至今大模型主流翻译与专用转换场景

flowchart TB
    input["输入文本"] --> encoder["Encoder-only:双向理解"]
    input --> decoder["Decoder-only:因果生成"]
    input --> encdec["Encoder-Decoder:读入再转换"]
    encoder --> understanding["分类 / 抽取 / 匹配"]
    decoder --> generation["写作 / 对话 / 代码 / 推理"]
    encdec --> transform["翻译 / 摘要 / 改写"]

核心关系:Encoder-only 擅长理解,Decoder-only 擅长自回归生成,Encoder-Decoder 将双向理解与条件生成组合成转换链路。

为什么 LLM 最终选了 Decoder-only

BERT 时代是 Encoder-only 的天下,GPT 时代是 Decoder-only 的天下,转折不是偶然:

  1. 自回归生成是通用接口:对话、写作、代码、工具调用,全都可以表达成给定上文、预测下文:一个统一的生成接口覆盖所有任务,而理解任务也可以通过生成答案来完成(分类任务可以写成「这段文本的情感是:[正面/负面]」)。
  2. 训练数据取之不尽:下一个词预测不需要标注,预训练语料规模只受算力限制;BERT 式掩码预测需要处理挖词的工程复杂度,且双向信息泄露让它的损失函数更别扭。
  3. 扩展性最好:Decoder-only 结构规整(单一 stack)、训练稳定,Scale 到千亿参数的经验最成熟:行业用脚投票,把算力全部押在这条路上。
  4. 推理可以流式:逐 token 生成天然支持边想边说的流式输出,产品体验(打字机效果)与交互范式更顺。

一句话:理解是手段,生成才是目的;Decoder-only 用最简的结构把生成做到极致。三种形态的对比见上文「三种形态」,大模型基础 只展开 Decoder-only 的工作流。

训练与推理的不同

训练:Teacher Forcing 全并行

训练时,目标句子的正确答案是已知的。Teacher Forcing(教师强制) 的做法:输入侧把正确答案整体放进掩码自注意力,每一步的预测都和正确 token 比较算损失:因为正确答案已给出,所有位置的预测可以同时算,一次前向传播更新整个序列的梯度。所以训练是高度并行的,这也是 Transformer 训练效率远超 RNN 的第二个来源(第一是架构本身可并行)。

推理:逐 token 自回归

推理(生成)时没有正确答案:输出第 1 个 token,把它接回输入,生成第 2 个,再接回……每一步都依赖上一步的输出,只能串行:边生成边看到自己刚写的话。这就是 LLM 推理慢、首 token 之后逐字蹦的原因,也引出了缓存(KV Cache)、批量调度等一整门推理优化学问(详见 模型推理与部署)。

产品经理要记住这个不对称:训练可以并行所以便宜的是并行,推理天生串行所以贵的是时间:同样一个模型,生成 2000 token 的耗时是首 token 的几十倍,产品里的加载态、流式展示、预生成策略都围绕这个特性设计。

另一个产品相关的推论:生成内容的长度要当成显式成本来管:默认截断、按需展开、摘要先行,都是把每多一个 token 都花钱花时间这一事实翻译成产品策略。

推理加速的钥匙:KV Cache

推理的逐 token 串行有一个巨大的浪费:生成第 5 个 token 时,前 4 个 token 的注意力计算(尤其它们的 K、V)与生成第 1 个 token 时完全一样,却每次重算。KV Cache 的思路很简单:把已生成 token 的 K、V 缓存下来,新 token 只算自己的 Q,直接与缓存做注意力:把每步的注意力计算从重算全部历史降到只算新位置,这是 LLM 推理速度的量级提升,也是推理成本优化的第一课(详见 模型推理与部署)。

代价是显存换速度:缓存随序列长度线性增长,长上下文时 KV Cache 可能吃掉大半显存。这催生了注意力头组织上的压缩:MHA 每个 Q 头一组 K/V;MQA 全体 Q 共享 1 组 K/V(H_kv=1);GQA 把 Q 头分组、组内共享(1 < H_kv < H_q);MLA 再把 K/V 压进潜空间。变体对照见 模型推理与部署 与 注意力与 KV Cache。理解推理贵在 KV 与显存,就理解了长上下文产品定价与并发设计的底层逻辑。

从 Transformer 到视觉与多模态

ViT:图像切成 patch 当 token

Transformer 不挑数据形态,只要能把数据切成 token 序列。ViT(视觉 Transformer,2020) 的思路:把图像切成固定大小的 patch(如 16×16 像素),每个 patch 线性投影成一个向量(相当于像素块的嵌入),再加位置编码,扔进标准 Transformer:CNN 十年来靠卷积堆出来的图像表示,Transformer 用切块 + 注意力直接对标甚至超越,并且同样吃规模化红利(数据越多优势越大)。

多模态模型以 Transformer 为主干

Transformer 的「token 化 + 注意力」框架天然是跨模态的:

  • 文本是 token 序列,图像可以是 patch 序列,音频可以是帧序列,视频是帧×patch 序列;
  • 多模态模型把不同模态各自 token 化,映射进同一个表示空间,再用同一套注意力/FFN 主干统一处理:GPT-4o / GPT-5.6、Gemini、Claude 的看图说话,以及文生图模型的文本条件注入,都是这个套路。

这也是为什么 Transformer 是 AI 的水电煤:它不绑定任何模态,只提供任意序列 → 注意力建模 → 输出序列的通用引擎。多模态的完整展开见 多模态理解。

各模态的 token 化方式

模态token 是什么序列构成
文本子词(token)一维序列
图像patch(像素块)二维网格按行展开成一维
音频帧/频谱片段按时间切帧,一维序列
视频帧 × patch时间 × 空间展开,超长序列
多模态输入混合 token不同模态 token 拼接,靠注意力互相指涉

超长序列的代价:视频 token 化后序列极长,自注意力的 O(n²) 很快爆预算:所以多模态模型普遍做视觉压缩(把相邻 patch 合并、池化),以及训练与推理时的降采样。模态越多,序列越长,注意力越贵:这是多模态产品成本结构的根源之一。

产品视角:理解注意力,就是理解模型行为

对提示词设计的意义

自注意力机制直接解释了提示词工程的几个核心规律:

  • 上下文 = 临时记忆:模型能看到的全部信息 = 上下文窗口内的 token(见 模型推理与部署 与 提示词工程);注意力只在窗口内取信息,窗口之外一概不记得:记忆是提示词给的,不是模型自带的。
  • 注意力决定看哪里:相关性(注意力分数)由 Q/K 匹配决定,所以表述越明确、与任务越相关的内容,越容易被模型看到并采信;无关信息、噪音、互相矛盾的指令会稀释注意力:这就是提示词要结构化、要少而精的机制根源。
  • 位置效应:Softmax 让注意力在多个候选之间权衡,长上下文里中间内容容易被两头挤掉(迷失在中间现象):关键指令放开头或结尾更稳,这也是长提示词工程的经验法则。
  • 交叉注意力的隐喻:Decoder 生成时回头看输入的机制,和 RAG 检索相关段落再作答是同一哲学:先想清楚需要什么,再按相关性取用,见 RAG 与知识检索。

对架构选型的意义

  • 理解型需求(分类、抽取、语义匹配)与生成型需求(对话、写作)对应不同的模型形态,选型先分清任务类型(见 模型能力与边界);
  • 长上下文场景要关注位置编码与注意力复杂度的演进:RoPE、稀疏注意力、长上下文优化见 大模型基础 与 大模型前沿论文;
  • 推理成本由「Prefill 随输入近似平方、Decode 逐步读 KV」决定,产品设计要分别算首 token 延迟与生成长度(详见 模型推理与部署)。

上下文窗口管理的实操清单

理解「上下文 = 临时记忆 + 注意力取用」后,产品设计就有了具体抓手:

  1. 关键信息放两头:开头(模型立规矩的地方)与结尾(最近注意力最强的位置)放最重要内容,中间放参考资料与细节;
  2. 控制总量:上下文塞得越满,单条信息分到的注意力越稀:什么都放等于什么都没放,超出需要就做检索与压缩(见 RAG 与知识检索);
  3. 显式指令引用:要求模型先引用原文再作答,把取用变成显式过程,漏看与幻觉都会下降;
  4. 按长度设计成本:输入按 token 计费、输出按 token 计费且更贵,长上下文的每一次放大都要换算成成本(详见 模型推理与部署)。

注意力与幻觉:为什么模型会「编」

幻觉(模型一本正经说瞎话)的机制也能从注意力角度理解:注意力只在上下文窗口内取信息。当问题的答案不在上下文里,模型没有检索可做,只能靠训练时学到的相关模式硬接:下一个最可能的词拼出来的答案,自然可能是编的。推论:

  • 把答案放进上下文,幻觉大幅下降:这就是 RAG 有效的机制解释(见 RAG 与知识检索);
  • 上下文里的错误信息同样会被注意力采信:模型分不清用户贴的假资料和自己的知识,给模型的资料必须经过筛选;
  • 长上下文里信息被挤在中间时,模型更容易漏看:关键事实放开头/结尾,或显式要求模型先引用再回答。
给产品经理的一句话

注意力机制是理解一切大模型行为的钥匙:上下文是临时记忆,注意力决定模型看哪里,掩码决定它能看什么。提示词工程、RAG、长上下文优化、多模态,全部是这三个机制的产品化表达。

面试被问「大模型为什么这么强」,从这个三件套答起,再补一句规模化,就是完整的故事线。

一张图总结:Transformer 的五张名片

  1. 自注意力:每个 token 按相关性加权取用全序列信息:你的问题匹配我的标签,取我的内容;
  2. 多头:H 个关注视角并行,再拼接融合:一份计算量,多份分析;
  3. 位置编码:给没有顺序感的注意力补上顺序:让模型知道谁在前谁在后;
  4. 残差 + 归一化 + FFN:稳定训练、逐位置加工:深了不散,每个位置都过一遍脑子;
  5. 掩码分工:Encoder 双向读懂,Decoder 因果生成:读的人看全篇,写的人只看过去。

把这五张名片组合起来,再乘上数据 + 算力的规模,就是今天所有大模型的底牌。

来源说明

本文为原创整理,写作时参考以下来源(引用日期:2026-08-23),概念与结论以所列权威来源为准。

经典论文 - Vaswani A, et al. Attention Is All You Need, 2017(https://arxiv.org/abs/1706.03762)——Transformer 原始论文,本文 Q/K/V、缩放点积、多头、位置编码、Encoder-Decoder 结构均以此为准 - Devlin J, et al. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding, 2018(https://arxiv.org/abs/1810.04805)——Encoder-only 代表 - Radford A, et al. Improving Language Understanding by Generative Pre-Training (GPT), 2018;Language Models are Unsupervised Multitask Learners (GPT-2), 2019——Decoder-only 路线的奠基工作 - Raffel C, et al. Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer (T5), 2019(https://arxiv.org/abs/1910.10683)——Encoder-Decoder 统一框架 - Dosovitskiy A, et al. An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale (ViT), 2020(https://arxiv.org/abs/2010.11929)——Transformer 到视觉 - Su J, et al. RoFormer: Enhanced Transformer with Rotary Position Embedding (RoPE), 2021(https://arxiv.org/abs/2104.09864)——旋转位置编码

AIGC-Interview-Book(仅供维护者交叉验证,读者以公开论文与官方文档为准) - 注意力机制、Transformer、深度网络架构等考点提纲(微信读书《AIGC 面试指南》,WeThinkIn 团队;本地预取,非公开链接)

课程笔记(结构参考,未照抄) - 地球科学大数据课程笔记:2026-05-22(Transformer,第 1-2 节);2026-04-17(RNN/LSTM/GRU,注意力机制起源背景)