Transformer 架构
Transformer 架构
2017 年,Google 一篇《Attention Is All You Need》提出 Transformer,最初只是机器翻译的一个新架构;七年后,它成为整个 AI 产业的「水电煤」——GPT、Claude、Gemini 的语言能力,ViT 的视觉能力,乃至图像/视频/音频生成模型,主干全是 Transformer。这篇文章把 Transformer 拆开讲透:它为什么诞生、自注意力怎么算、完整结构长什么样、三种主流形态怎么分工,最后落到产品视角。前置知识:神经网络与 RNN 见深度学习基础,大模型侧的整体图景见大模型基础。
从 RNN 到 Transformer
RNN 的三个痛点
在 Transformer 之前,序列建模(文本、语音)由 RNN/LSTM 统治(见深度学习基础「循环神经网络」一节)。RNN 处理序列有三大先天痛点:
- 串行计算:第 t 步必须等第 t−1 步算完,「一个一个词地读」——序列越长,训练越慢;GPU 的并行能力完全使不上劲。
- 长距离依赖衰减:信息靠隐状态一步步接力传递,传得越远损耗越大;LSTM 的门控只是「缓解」,没有根治——隔 50 个词的指代关系依旧容易丢。
- 梯度消失/爆炸:误差沿时间步连乘,深(长)序列训练不稳定。
Transformer 的三个突破
Transformer 对这三个痛点做了「掀桌子式」的回应:
- 并行:整个序列同时进入模型,一步算出所有位置的表示——训练时间从「随序列长度线性增长」变成「一次并行计算」。
- 全序列直接关注:任何两个位置之间都有一条「直连」的注意力通路,距离不再是问题——第 1 个词和第 1000 个词之间的信息传递,和相邻词一样直接。
- 规模化友好:并行 + 直连,让「堆更大数据、更大模型」这条路第一次变得可行——这正是后来 Scaling Law 与基础模型时代的架构前提。
一句话概括:RNN 靠「接力传递」,Transformer 靠「全员直连」——直连取代接力,是这场架构革命的全部秘密。
RNN 与 Transformer 对比
| 维度 | RNN / LSTM | Transformer |
|---|---|---|
| 计算方式 | 逐 token 串行 | 全序列并行 |
| 长距离依赖 | 逐级接力,随距离衰减 | 任意两位置直连,O(1) 步可达 |
| 信息通道 | 唯一的隐状态向量(瓶颈) | 注意力加权汇总(无瓶颈) |
| 计算复杂度 | 训练 O(n)(但串行)、推理 O(n) | 训练 O(n²)(但并行)、推理每步 O(n) |
| 梯度 | 沿时间连乘,易消失/爆炸 | 残差 + 直连,深网络稳定 |
| 规模化 | 增大模型收益递减 | 数据 + 参数 + 算力同步增长,收益持续 |
注意复杂度栏的陷阱:Transformer 的 O(n²) 是「计算量随序列长度平方增长」(每一对 token 都要算注意力),n 小的时候无所谓,n 大(如 10 万 token 上下文)就成主要瓶颈——这催生了 FlashAttention、稀疏注意力、KV Cache 等一整条优化线(见模型推理与部署)。
Transformer 不是终局
O(n²) 复杂度催生了「后 Transformer」探索:Mamba 等状态空间模型(SSM)把序列建模复杂度压到线性,长序列上成本优势明显,2024 年起进入工业试用;但注意力「任意位置直连」的表达力与成熟生态仍难撼动,主流大模型至今仍以 Transformer 为主干。产品选型不用追逐架构新闻——关注的是模型的能力与成本,架构是模型厂商的战场。
自注意力机制
Q/K/V 的直觉:检索类比
自注意力让每个 token 从「全序列所有 token」里按相关性取信息。三个角色用图书馆检索类比最好懂:
- Q(Query,查询):我在找什么——「我这个词需要什么信息」。
- K(Key,键):我是谁——「每个词的标签/身份」。
- V(Value,值):我有什么——「每个词携带的内容」。
计算流程:我的问题(Q)去匹配每个词的标签(K),匹配度高的,就把它的内容(V)多取一些过来——「你的问题匹配我的标签,就取我的内容」。每个位置都做这件事,输出的新表示就是「按相关性加权汇总的全体信息」。
缩放点积注意力公式
把上面的过程写成公式(文字表述):
- 每个 token 的输入向量分别乘三个可学习矩阵 W_Q、W_K、W_V,得到该 token 的 Q、K、V;
- 算所有 Q 与所有 K 的点积,得到注意力分数矩阵(分数越高=越相关);
- 分数除以 √dₖ(dₖ 是 K 的维度),做缩放;
- 对每一行做 Softmax,把分数归一化成「权重之和为 1 的概率分布」;
- 用权重对 V 做加权求和,得到注意力输出。
即:Attention(Q, K, V) = Softmax(QKᵀ / √dₖ) · V。整条公式都是矩阵运算,GPU 一次算完——这也是它快的原因。
一个具体例子:三句话的句子
拿「猫 追 狗」三个 token 走一遍(忽略位置编码):
- 三个 token 的输入向量分别乘 W_Q/W_K/W_V,得到各自的 Q/K/V;
- 算「猫」的 Q 与「猫」「追」「狗」三个 K 的点积,得到三个原始分数——假设分别是 3.0、1.5、−0.5(「猫」最关注自己,其次「追」,和「狗」关系弱);
- 除以 √dₖ 后过 Softmax,得到权重,比如 0.62、0.28、0.10;
- 「猫」的新表示 = 0.62 × 猫的 V + 0.28 × 追的 V + 0.10 × 狗的 V。
关键观察:每个 token 的新表示都是「全句信息的加权混合」,权重由相关性决定。把「猫」换成「狗」的位置,权重分布随之变化——这就是自注意力能建模「谁和谁有关」的方式。把所有 token 的分数画成一张矩阵,就是著名的注意力热力图:模型「看哪里」一目了然,这也是解释大模型行为最常用的可视化工具。
两个关键设计:为什么缩放、为什么 Softmax
- 为什么除以 √dₖ:Q 和 K 的维度越高,点积的数值越大(高维向量点积的方差随维度增长),Softmax 输入一大,输出就滑向「一个 1、其余 0」的极端分布,梯度趋近 0,训练失效。除以 √dₖ 把点积尺度拉回稳定区间,Softmax 才能保持「软」的区分度。
- Softmax 的作用:把「原始匹配度」变成「注意力分布」——权重非负、和为 1,模型被迫在「重点看谁」之间做权衡,而不是简单相加。Softmax 的温度越高越平均、越低越集中,这一点在推理采样里还有后续(见大模型基础)。
为什么点积而不是别的匹配方式
直觉上匹配度可以定义成加法、余弦、神经网络打分等。选点积的理由:矩阵乘法有高度优化的硬件实现(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 层)堆叠,每层两个子层:
- 多头自注意力:每个 token 关注整句所有 token——双向:任何一个位置都能看全句(含「未来」的 token),因为理解不需要因果限制;
- 前馈网络(FFN):每个 token 独立过一个「两层的全连接 + 非线性激活」——位置上的信息加工站,先扩维(如 512 → 2048)再压回,给注意力结果做逐位置的非线性变换。
Decoder:掩码自注意力 + 交叉注意力
解码器(Decoder) 负责「生成输出」,每层三个子层:
- 掩码自注意力:和编码器的自注意力一样,但加了一层因果掩码(mask)——计算位置 t 时,把「未来位置」的注意力分数设为负无穷,Softmax 后权重为 0。解码器生成第 t 个词时只能看到已生成的词,不能偷看未来——这是「自回归」的纪律;
- 交叉注意力:Q 来自解码器、K/V 来自编码器——解码器生成每个词时,回头「查」编码器读懂的输入信息,这是 Encoder 与 Decoder 之间唯一的交互通道(机器翻译里:解码器生成译文时,每一步都要回头看原文);
- 前馈网络:同编码器。
残差连接与层归一化
每个子层外面都套着「残差连接 + 层归一化」:
- 残差连接:输出 = 子层输出 + 原始输入,给梯度一条直通路径,几十层的 Transformer 才能稳定训练(思想源自 ResNet,见深度学习基础);
- 层归一化:按每个样本的所有特征维度归一化,与 batch 无关、训练推理一致——序列长度多变、小 batch 训练的场景下比批归一化稳(两者对比见深度学习基础)。
输入表示:嵌入、缩放与掩码
进入 Encoder/Decoder 之前,输入还要过三关:
- token 化与嵌入:文本按词表切成 token(子词粒度,如 BPE,见大模型基础),每个 token 查嵌入表得到向量——嵌入 + 位置编码 = 模型看到的输入。
- 嵌入缩放:原始论文把嵌入向量乘以 √d(嵌入维度开根号),让嵌入的数值尺度与位置编码相当(后者是固定幅度),避免位置信号被词向量淹没——细节工程,但体现了「每个分量尺度都要可控」的调参哲学。
- Padding 掩码:一个 batch 里句子长度不一,短的句子要补齐到同一长度;补位(Padding)的 token 不是真实内容,要在注意力计算时把它们的分数设成负无穷(Softmax 后权重为 0),防止模型「关注空白」。注意区分:这是「防看空白」的 Padding 掩码,解码器里还有「防看未来」的因果掩码,两回事。
训练配方:原文里的实用细节
原始论文的训练设置里有几个沿用至今的工程细节:
- 学习率预热 + 衰减:前若干步学习率线性爬升(稳定早期训练),之后按步数平方根衰减——「先小步探路,再大步快跑,最后稳步收敛」;
- Dropout:注意力层与前馈层都加,防过拟合(原理见深度学习基础);
- 标签平滑:把「正确答案」的 one-hot 标签改成「0.9 给正确类 + 0.1 均分给其他类」,防止模型对训练标签过度自信、提升泛化——大模型训练至今仍在用。
原始配置:两个尺寸,看懂论文里的数字
原始论文给了两个配置,所有超参一目了然:
| 超参 | base | big |
|---|---|---|
| 层数(Encoder/Decoder 各) | 6 | 6 |
| 嵌入/隐藏维度 d_model | 512 | 1024 |
| 注意力头数 | 8 | 16 |
| 每头维度 d_k = d_v | 64 | 64 |
| FFN 中间维度 | 2048 | 4096 |
| 参数量 | 约 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 已不主流(部分多模态/翻译场景仍用),但它解释了「读 + 写」分工的原型。
一句话:理解是手段,生成才是目的;Decoder-only 用最简的结构把「生成」做到极致。三种形态的更完整对比见大模型基础。
三种形态对比速查
| Encoder-only(BERT) | Decoder-only(GPT) | Encoder-Decoder(T5) | |
|---|---|---|---|
| 注意力 | 双向自注意力 | 掩码(因果)自注意力 | 双向编码 + 因果解码 + 交叉注意力 |
| 预训练任务 | 掩码语言建模(猜被挖的词) | 下一个词预测 | 文本到文本(填空/翻译等) |
| 擅长 | 理解:分类、抽取、匹配 | 生成:写作、对话、代码、推理 | 转换:翻译、摘要、改写 |
| 能不能生成 | 不能(需要外挂) | 能,且是核心 | 能 |
| 代表产品时代 | 2018-2021 搜索/分类 | 2022 至今大模型主流 | 翻译与专用转换场景 |
为什么 LLM 最终选了 Decoder-only
BERT 时代是 Encoder-only 的天下,GPT 时代是 Decoder-only 的天下,转折不是偶然:
- 自回归生成是通用接口:对话、写作、代码、工具调用,全都可以表达成「给定上文,预测下文」——一个统一的生成接口覆盖所有任务,而理解任务也可以通过「生成答案」来完成(分类任务可以写成「这段文本的情感是:[正面/负面]」)。
- 训练数据取之不尽:下一个词预测不需要标注,预训练语料规模只受算力限制;BERT 式掩码预测需要处理「挖词」的工程复杂度,且双向信息泄露让它的损失函数更别扭。
- 扩展性最好:Decoder-only 结构规整(单一 stack)、训练稳定,Scale 到千亿参数的经验最成熟——行业用脚投票,把算力全部押在这条路上。
- 推理可以流式:逐 token 生成天然支持「边想边说」的流式输出,产品体验(打字机效果)与交互范式更顺。
一句话:理解是手段,生成才是目的;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 可能吃掉大半显存——这又催生了 GQA(分组查询注意力,多个头共享一组 K/V)、量化缓存等工程优化。理解「推理贵在 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-4V、Gemini、Claude 的「看图说话」、文生图模型的文本条件注入,都是这个套路。
这也是为什么「Transformer 是 AI 的水电煤」:它不绑定任何模态,只提供「任意序列 → 注意力建模 → 输出序列」的通用引擎。多模态的完整展开见多模态理解。
各模态的 token 化方式
| 模态 | token 是什么 | 序列构成 |
|---|---|---|
| 文本 | 子词(token) | 一维序列 |
| 图像 | patch(像素块) | 二维网格按行展开成一维 |
| 音频 | 帧/频谱片段 | 按时间切帧,一维序列 |
| 视频 | 帧 × patch | 时间 × 空间展开,超长序列 |
| 多模态输入 | 混合 token | 不同模态 token 拼接,靠注意力互相指涉 |
注意「超长序列」的代价:视频 token 化后序列极长,自注意力的 O(n²) 很快爆预算——所以多模态模型普遍做「视觉压缩」(把相邻 patch 合并、池化),以及训练与推理时的降采样。模态越多,序列越长,注意力越贵——这是多模态产品成本结构的根源之一。
产品视角:理解注意力,就是理解模型行为
对提示词设计的意义
自注意力机制直接解释了提示词工程的几个核心规律:
- 上下文 = 临时记忆:模型能看到的全部信息 = 上下文窗口内的 token(见模型推理与部署与提示词工程);注意力只在窗口内取信息,窗口之外一概不记得——「记忆」是提示词给的,不是模型自带的。
- 注意力决定「看哪里」:相关性(注意力分数)由 Q/K 匹配决定,所以表述越明确、与任务越相关的内容,越容易被模型「看到并采信」;无关信息、噪音、互相矛盾的指令会稀释注意力——这就是「提示词要结构化、要少而精」的机制根源。
- 位置效应:Softmax 让注意力在「多个候选」之间权衡,长上下文里中间内容容易被两头挤掉(「迷失在中间」现象)——关键指令放开头或结尾更稳,这也是长提示词工程的经验法则。
- 交叉注意力的隐喻:Decoder 生成时「回头看输入」的机制,和 RAG「检索相关段落再作答」是同一哲学——先想清楚需要什么,再按相关性取用,见RAG 与知识检索。
对架构选型的意义
- 理解型需求(分类、抽取、语义匹配)与生成型需求(对话、写作)对应不同的模型形态,选型先分清任务类型(见模型能力与边界);
- 长上下文场景要关注位置编码与注意力复杂度的演进——RoPE、稀疏注意力、长上下文优化的现状见大模型基础;
- 推理成本由「逐 token 自回归 + 平方级注意力」决定,产品设计要算生成长度的账(详见模型推理与部署)。
上下文窗口管理的实操清单
理解「上下文 = 临时记忆 + 注意力取用」后,产品设计就有了具体抓手:
- 关键信息放两头:开头(模型「立规矩」的地方)与结尾(最近注意力最强的位置)放最重要内容,中间放参考资料与细节;
- 控制总量:上下文塞得越满,单条信息分到的注意力越稀——「什么都放」等于「什么都没放」,超出需要就做检索与压缩(见RAG 与知识检索);
- 显式指令引用:要求模型「先引用原文再作答」,把「取用」变成「显式过程」,漏看与幻觉都会下降;
- 按长度设计成本:输入按 token 计费、输出按 token 计费且更贵,长上下文的每一次放大都要换算成成本(详见模型推理与部署)。
注意力与幻觉:为什么模型会「编」
幻觉(模型一本正经说瞎话)的机制也能从注意力角度理解:注意力只在上下文窗口内取信息。当问题的答案不在上下文里,模型没有「检索」可做,只能靠训练时学到的「相关模式」硬接——「下一个最可能的词」拼出来的答案,自然可能是编的。推论:
- 把答案放进上下文,幻觉大幅下降——这就是 RAG 有效的机制解释(见RAG 与知识检索);
- 上下文里的错误信息同样会被注意力采信——模型分不清「用户贴的假资料」和「自己的知识」,给模型的资料必须经过筛选;
- 长上下文里信息被「挤在中间」时,模型更容易漏看——关键事实放开头/结尾,或显式要求模型「先引用再回答」。
给产品经理的一句话
注意力机制是理解一切大模型行为的钥匙:上下文是临时记忆,注意力决定模型看哪里,掩码决定它能看什么。提示词工程、RAG、长上下文优化、多模态,全部是这三个机制的产品化表达。面试被问「大模型为什么这么强」,从这个三件套答起,再补一句「规模化」,就是完整的故事线。
一张图总结:Transformer 的五张名片
- 自注意力:每个 token 按相关性加权取用全序列信息——「你的问题匹配我的标签,取我的内容」;
- 多头:H 个关注视角并行,再拼接融合——「一份计算量,多份分析」;
- 位置编码:给「没有顺序感」的注意力补上顺序——「让模型知道谁在前谁在后」;
- 残差 + 归一化 + FFN:稳定训练、逐位置加工——「深了不散,每个位置都过一遍脑子」;
- 掩码分工: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,注意力机制起源背景)
发现错误?想一起完善? 在 GitHub 上编辑此页!
本页面贡献者:AI-PM Wiki Team
本页面的全部内容在 CC BY-SA 4.0 和 SATA 协议之条款下提供,附加条款亦可能应用