Skip to content

M3 · Transformer 如何处理和生成信息? - Transformer Architecture ​

所属知识库:Agent 全栈技术地图
所属领域:01 · AI
所属章节:02 · AI 模型是如何构建和工作的? - Model Architecture
文档类型:模型架构与技术机制研究
版本:v1.0
更新日期:2026 年 10 月 27 日
核心问题:Transformer 是什么?它为什么被提出?Token、Embedding、位置编码和注意力机制如何协同工作?Transformer Block 由哪些组件构成?Encoder、Decoder 和 Encoder–Decoder 有什么区别?现代大语言模型如何利用 Transformer 处理上下文并生成文本?

专题导读 ​

M2 已经解释了神经网络的基本计算与学习机制。M3 将进一步研究 Transformer 的内部结构,重点回答:Transformer 为什么被提出?注意力机制如何工作?Token 如何在不同网络层之间传递信息?Encoder、Decoder 和现代大语言模型之间是什么关系?

本篇会重点区分 Transformer 的架构设计、信息处理机制与文本生成过程。模型训练和推理优化的深入内容仍分别留给 M6、M7。

一、研究概述 ​

Transformer 是现代深度学习中具有重要影响力的神经网络架构之一,也是当前大量大语言模型的技术基础。

2017 年,Ashish Vaswani 等人在论文《Attention Is All You Need》中提出 Transformer 架构。[1]

在此之前,序列建模任务广泛使用循环神经网络(RNN)、长短期记忆网络(LSTM)以及其他相关结构。这些方法能够处理语言、时间序列等具有顺序关系的数据,但在长距离依赖建模和训练并行化方面存在一定限制。

Transformer 采用注意力机制(Attention Mechanism)作为处理序列信息的核心方法,使模型能够直接建立序列中不同位置之间的信息联系。

例如,在句子:

小明把书放进书包,因为他准备去学校。

中,模型处理“他”时,需要利用前文信息判断这个代词可能指向谁。

传统序列模型通常需要通过逐步更新的隐藏状态传递信息,而 Transformer 的自注意力机制允许一个位置直接聚合其他相关位置的信息。

这种计算方式为大规模并行训练和复杂上下文建模提供了重要基础。

但 Transformer 的意义并不只是引入注意力机制。

它实际上建立了一套完整的信息处理架构,将 Token 表示、位置编码、多头注意力、前馈神经网络、残差连接和归一化等组件组织为可以重复堆叠的计算模块。

这些模块共同完成信息表示、上下文交互和特征转换。

本篇将从 Transformer 的设计背景出发,逐步研究其核心组件、计算过程、主要架构类型,以及它与现代大语言模型之间的关系。

二、Transformer 为什么被提出? ​

2.1 序列建模需要解决什么问题? ​

许多 AI 任务需要处理具有顺序关系的数据。

例如:

  • 自然语言文本;
  • 语音信号;
  • 时间序列;
  • 视频帧;
  • 程序代码。

这类数据的特点是:不同位置的信息可能相互依赖。

例如:

这本书虽然内容复杂,但它非常值得阅读。

理解“它”所指代的对象,需要利用前文信息。

在机器翻译中,模型还需要根据源语言的整体语义生成目标语言。

因此,序列模型不仅需要处理单个元素,还需要建立不同元素之间的关系。

2.2 RNN 如何处理序列? ​

循环神经网络(Recurrent Neural Network,RNN)通过隐藏状态逐步处理序列。

一个简化的 RNN 可以表示为:

ht=f(xt,ht−1)

其中:

  • xt:当前输入;
  • ht−1:上一时间步的隐藏状态;
  • ht:当前隐藏状态。

其处理过程可以表示为:

text
Token 1 → RNN → 状态 1
                  │
Token 2 → RNN → 状态 2
                  │
Token 3 → RNN → 状态 3
                  │
Token 4 → RNN → 状态 4

由于当前状态依赖上一状态,标准 RNN 的序列计算具有较强的顺序依赖。

这会限制训练阶段沿序列维度进行并行计算的能力。

此外,较长序列中的信息需要经过多次状态传递,可能面临梯度传播和长期依赖建模等问题。

LSTM、GRU 等结构改善了部分问题,但没有完全消除顺序计算的限制。

2.3 注意力机制如何改变序列处理方式? ​

注意力机制允许模型根据当前任务或当前位置的需要,从一组信息中选择并聚合相关内容。

在神经机器翻译领域,Bahdanau 等人在 2014 年提出了具有代表性的神经注意力方法。[2]

Transformer 进一步采用自注意力机制,使序列中的不同位置能够直接进行信息交互。

例如:

text
输入序列:

Token 1    Token 2    Token 3    Token 4
   │          │          │          │
   └──────────┼──────────┼──────────┘
              │
         Self-Attention
              │
   ┌──────────┼──────────┼──────────┐
   │          │          │          │
输出 1      输出 2      输出 3      输出 4

这个示意图表达的是:每个输出位置都可以根据允许访问的输入位置计算新的表示。

具体能够访问哪些位置,取决于注意力掩码和模型架构。

例如,双向 Encoder 可以允许位置访问整个输入序列,而自回归 Decoder 通常使用因果掩码,禁止当前位置访问未来 Token。

2.4 Transformer 的核心改进是什么? ​

Transformer 的重要贡献可以概括为三个方面。

第一,使用注意力机制建立序列位置之间的联系。 模型不必完全依赖循环状态逐步传递信息。

第二,采用适合并行计算的网络结构。 在训练阶段,许多序列位置的计算可以通过矩阵运算并行完成。

第三,形成可以重复堆叠的模块化架构。 注意力、前馈网络、残差连接和归一化共同构成 Transformer Block,使模型能够扩展到更大的网络规模。

需要注意,Transformer 并没有消除所有计算成本。

标准全注意力机制的计算和内存开销通常随序列长度呈二次增长,因此长序列处理仍然面临效率问题。

三、Transformer 的整体架构是什么? ​

3.1 原始 Transformer 的结构 ​

2017 年提出的原始 Transformer 是一种 Encoder–Decoder 架构。

它主要面向机器翻译等序列到序列任务。

整体结构如下:

text
                输入序列
                   │
                   ▼
            Token Embedding
                   │
                   ▼
             位置编码
                   │
                   ▼
          ┌─────────────────┐
          │ Encoder Block 1 │
          ├─────────────────┤
          │ Encoder Block 2 │
          ├─────────────────┤
          │       ...       │
          ├─────────────────┤
          │ Encoder Block N │
          └─────────────────┘
                   │
                   │ Encoder 输出
                   │
                   ▼
             Cross-Attention ◄──── Decoder
                   │
                   ▼
                输出序列

原始 Transformer 包含两个主要部分:

  • Encoder:将输入序列转换为上下文相关的表示;
  • Decoder:结合已经生成的目标序列和 Encoder 输出,预测后续输出。

3.2 Encoder 的作用 ​

Encoder 负责处理输入序列。

例如,在机器翻译任务中:

I love learning.

Encoder 将输入文本转换为一组包含上下文信息的向量表示。

这些表示可以被 Decoder 使用。

3.3 Decoder 的作用 ​

Decoder 负责生成输出序列。

例如:

我喜欢学习。

Decoder 可以根据已经生成的内容以及 Encoder 提供的信息,逐步预测后续 Token。

3.4 Transformer 不只有一种架构 ​

随着技术发展,Transformer 形成了多种重要架构形式。

架构类型主要特点代表模型
Encoder-only主要通过双向注意力理解输入BERT
Decoder-only通常通过因果注意力进行自回归生成GPT 系列
Encoder–Decoder分别处理输入编码与输出生成T5、原始 Transformer

这些架构具有不同的计算方式和适用任务。

现代大语言模型中,Decoder-only 是一种广泛采用的架构,但并不是唯一选择。

四、什么是 Token?Transformer 如何接收文本? ​

Transformer 本身处理的是数值张量,而不是直接处理人类阅读的字符串。

因此,文本需要经过一定的表示转换。

4.1 Token 的基本概念 ​

Token 是模型处理文本时使用的离散单位。

一个 Token 可能对应:

  • 一个词;
  • 一个词的一部分;
  • 一个字符;
  • 标点符号;
  • 其他文本片段。

Token 的具体划分取决于 Tokenizer。

例如:

Transformers are powerful.

可能被转换为若干 Token。

不同 Tokenizer 可能产生不同结果。

4.2 Tokenization ​

Tokenization 是将文本转换为 Token 序列的过程。

随后,Tokenizer 将 Token 映射为对应的 Token ID。

text
原始文本
   │
   ▼
Tokenizer
   │
   ▼
Token 序列
   │
   ▼
Token ID 序列

Token ID 是离散整数,便于模型查找对应的向量表示。

4.3 Embedding ​

Embedding 将离散 Token ID 映射为连续向量。

假设词表大小为:

V

模型隐藏维度为:

d

那么 Token Embedding 矩阵可以表示为:

E∈RV×d

每个 Token ID 对应矩阵中的一个向量。

例如:

ei=E[ti]

其中:

  • ti:第 i 个 Token ID;
  • ei:对应的向量表示。

这些向量是模型后续计算的基础。

4.4 Token Embedding 与语义表示 ​

Embedding 向量通常通过训练学习得到。

它们可以承载与语言统计规律相关的信息。

但需要区分初始 Token Embedding 和 Transformer 计算后的上下文表示。

同一个 Token 的初始 Embedding 通常是固定的参数向量,而经过不同上下文中的 Transformer 计算后,它可以获得不同的上下文相关表示。

例如,“苹果”在水果和科技产品相关语境中,可能形成不同的上下文表示。

五、为什么 Transformer 需要位置信息? ​

5.1 注意力计算本身不直接编码顺序 ​

标准自注意力机制根据输入向量之间的关系进行计算。

如果不加入位置相关信息,模型就难以仅凭自注意力计算区分某些不同顺序的输入。

例如:

小明喜欢小红。

与:

小红喜欢小明。

两句话包含相似的词语,但语义关系不同。

因此,Transformer 需要能够表示 Token 在序列中的位置或相对位置关系。

5.2 什么是位置编码? ​

位置编码(Positional Encoding)用于向模型提供位置信息。

原始 Transformer 使用正弦和余弦函数构造位置编码。

其典型形式为:

PE(pos,2i)=sin⁡(pos100002i/d)PE(pos,2i+1)=cos⁡(pos100002i/d)

其中:

  • pos:Token 的位置;
  • i:向量维度索引;
  • d:模型隐藏维度。

位置编码与 Token Embedding 结合后,模型可以同时利用内容和位置信息。

5.3 现代模型有哪些位置表示方法? ​

Transformer 的位置表示方法已经形成多种技术路线。

方法基本思想
Sinusoidal Position Encoding使用固定正弦、余弦函数表示位置
Learned Position Embedding通过训练学习位置向量
Relative Position Encoding建模不同 Token 之间的相对位置
RoPE通过旋转变换将位置信息引入注意力计算
ALiBi在注意力分数中引入与位置距离相关的偏置

其中,RoPE(Rotary Position Embedding)在现代语言模型中具有重要应用。[3]

不同方法对长上下文处理、位置泛化和计算实现可能产生不同影响。

但位置编码并不是越复杂越好,具体选择需要结合模型架构与训练目标。

六、什么是注意力机制? ​

注意力机制(Attention Mechanism)是 Transformer 的核心技术之一。

它允许模型根据输入之间的相关性,为不同信息分配不同权重,并聚合相应内容。

6.1 从一个简单例子理解注意力 ​

假设输入句子为:

小明把雨伞借给小红,因为她忘记带伞。

在处理“她”时,模型可能需要重点利用“小红”等相关上下文信息。

注意力机制可以让当前位置根据其他位置的信息计算权重。

例如:

text
当前处理:
她

可能参考:
小明
雨伞
借给
小红
忘记带伞

模型会根据训练得到的参数和当前输入表示计算注意力权重。

这些权重用于聚合信息。

需要注意,注意力权重不等同于人类可解释的语义关系,也不能简单将最高注意力权重理解为模型真正的推理依据。

6.2 Query、Key 和 Value ​

Transformer 注意力机制通常使用三个重要概念:

  • Query(查询向量,Q);
  • Key(键向量,K);
  • Value(值向量,V)。

可以将其理解为一种信息匹配与聚合机制。

Query 表示当前位置需要检索什么信息。

Key 用于与 Query 进行匹配。

Value 则提供被聚合的具体信息。

例如:

text
当前位置表示
      │
      ▼
生成 Query
      │
      ▼
与其他位置的 Key 匹配
      │
      ▼
计算注意力权重
      │
      ▼
加权聚合 Value
      │
      ▼
得到新的位置表示

这是帮助理解的功能性描述。

在实际模型中,Q、K、V 都是通过数学变换得到的向量,并不是显式的自然语言查询、索引和数据库记录。

6.3 Q、K、V 如何产生? ​

假设输入表示矩阵为:

X∈Rn×d

其中:

  • n:序列长度;
  • d:隐藏维度。

模型通过可学习的投影矩阵计算:

Q=XWQK=XWKV=XWV

其中:

  • WQ:Query 投影矩阵;
  • WK:Key 投影矩阵;
  • WV:Value 投影矩阵。

这些投影矩阵属于模型参数,会在训练过程中被调整。

因此,注意力机制并不是固定的规则匹配系统,而是一种可学习的计算结构。

七、Self-Attention 如何计算? ​

Self-Attention(自注意力)是 Transformer 的核心机制。

它允许一个序列中的不同位置根据彼此的信息更新表示。

7.1 Scaled Dot-Product Attention ​

Transformer 使用的经典注意力计算形式为:

Attention(Q,K,V)=softmax(QKTdk)V

其中:

  • Q:Query 矩阵;
  • K:Key 矩阵;
  • V:Value 矩阵;
  • dk:Key 向量维度;
  • softmax:将分数转换为归一化权重。

这个公式可以分为四个步骤。

7.2 第一步:计算相关性分数 ​

首先计算:

S=QKT

这一步通过向量点积计算不同位置之间的匹配分数。

如果序列长度为 n,那么在标准全注意力机制中,分数矩阵通常具有:

S∈Rn×n

的形状。

矩阵中的每个元素,表示一个 Query 位置与一个 Key 位置之间的匹配分数。

7.3 第二步:缩放分数 ​

接下来计算:

S′=Sdk

缩放操作用于控制点积分数的数值尺度。

在一定统计假设下,向量维度增加可能使点积的数值幅度增大。

通过除以 dk,可以改善 Softmax 输入的数值尺度和训练稳定性。

7.4 第三步:计算注意力权重 ​

使用 Softmax:

A=softmax(S′)

Softmax 通常沿 Key 维度计算,使每个 Query 对允许访问的 Key 位置形成归一化权重。

例如:

Ai=[0.1,0.2,0.6,0.1]

表示当前位置对四个信息位置分配了不同权重。

这些数值只是示意。

7.5 第四步:聚合 Value ​

最后计算:

O=AV

模型根据注意力权重,对 Value 向量进行加权求和。

得到的输出包含从相关位置聚合的信息。

7.6 完整计算流程 ​

text
输入表示 X
    │
    ├─────────┬─────────┐
    ▼         ▼         ▼
    Q         K         V
    │         │         │
    └────┬────┘         │
         ▼              │
        QKᵀ             │
         │              │
         ▼              │
      缩放分数          │
         │              │
         ▼              │
       Softmax          │
         │              │
         ▼              │
      注意力权重        │
         │              │
         └──────┬───────┘
                ▼
          加权聚合 Value
                │
                ▼
             输出表示

这个过程解释了 Self-Attention 如何根据不同位置之间的关系更新信息表示。

八、什么是 Multi-Head Attention? ​

单个注意力计算可以学习一种信息匹配与聚合方式。

Multi-Head Attention(多头注意力)则通过多个注意力头并行计算,使模型能够在不同投影子空间中处理信息。

8.1 为什么需要多个注意力头? ​

不同注意力头具有不同的投影参数。

因此,它们可以学习不同的信息交互模式。

例如,在语言任务中,不同注意力头可能对局部上下文、长距离依赖或其他统计关系表现出不同敏感性。

但不能简单认为每个注意力头都具有固定且清晰的人类语义功能。

注意力头的具体行为由训练形成,并可能存在冗余。

8.2 多头注意力的计算 ​

第 i 个注意力头可以表示为:

headi=Attention(QWiQ,KWiK,VWiV)

多个注意力头的输出进行拼接:

H=Concat(head1,…,headh)

然后通过输出投影:

MultiHead(Q,K,V)=HWO

其中:

  • h:注意力头数量;
  • WiQ,WiK,WiV:各注意力头的投影参数;
  • WO:输出投影矩阵。

8.3 多头注意力结构 ​

text
输入表示
    │
    ├───────────┬───────────┬───────────┐
    ▼           ▼           ▼           ▼
Attention 1  Attention 2  Attention 3  Attention N
    │           │           │           │
    └───────────┴───────────┴───────────┘
                        │
                        ▼
                      Concat
                        │
                        ▼
                   输出投影
                        │
                        ▼
                     最终输出

多头注意力是 Transformer Block 的重要组成部分。

现代模型还可能采用 Multi-Query Attention(MQA)、Grouped-Query Attention(GQA)等变体,以改善推理阶段的缓存和内存效率。

这些变体主要调整 Query、Key 和 Value 的头部组织方式,而不是改变注意力计算的基本思想。

九、什么是注意力掩码? ​

注意力掩码(Attention Mask)用于控制模型在注意力计算中能够访问哪些位置。

不同架构需要不同的注意力访问规则。

9.1 双向注意力 ​

在典型的双向 Encoder 中,一个 Token 可以访问输入序列中的其他位置。

例如:

text
Token 1 ── 可访问 ── Token 2
Token 1 ── 可访问 ── Token 3
Token 2 ── 可访问 ── Token 1

这种方式适合需要综合利用完整输入上下文的任务。

9.2 因果注意力 ​

自回归语言模型通常使用因果注意力(Causal Attention)。

它要求当前位置不能访问未来 Token。

例如:

text
位置 1:可以访问 1
位置 2:可以访问 1、2
位置 3:可以访问 1、2、3
位置 4:可以访问 1、2、3、4

对应的注意力访问矩阵可以表示为:

text
       K1  K2  K3  K4

Q1     ✓   ×   ×   ×
Q2     ✓   ✓   ×   ×
Q3     ✓   ✓   ✓   ×
Q4     ✓   ✓   ✓   ✓

这里的 ✓ 表示允许访问,× 表示禁止访问。

9.3 掩码如何参与计算? ​

注意力公式可以扩展为:

Attention(Q,K,V)=softmax(QKTdk+M)V

其中 M 为注意力掩码。

对于禁止访问的位置,可以在 Softmax 之前加入负无穷或足够大的负值,使其归一化权重趋近于零。

9.4 为什么因果掩码重要? ​

自回归语言模型需要根据已有上下文预测后续 Token。

如果训练时允许当前位置直接访问未来 Token,就可能破坏下一 Token 预测任务所要求的信息约束。

因此,因果掩码是典型 Decoder-only 自回归语言模型的重要机制。

需要注意,因果掩码控制的是注意力信息访问范围,不等同于模型的安全策略或应用权限控制。

十、Transformer Block 由什么构成? ​

Transformer 并不是只有注意力机制。

一个典型 Transformer Block 还包含前馈网络、残差连接和归一化等组件。

10.1 Transformer Block 的基本结构 ​

以一种常见的 Pre-Norm Decoder Block 为例:

text
输入 X
   │
   ├──────────────────────────────┐
   │                              │
   ▼                              │
Layer Normalization               │
   │                              │
   ▼                              │
Causal Self-Attention             │
   │                              │
   ▼                              │
相加 ◄────────────────────────────┘
   │
   │ X'
   ├──────────────────────────────┐
   │                              │
   ▼                              │
Layer Normalization               │
   │                              │
   ▼                              │
Feed-Forward Network             │
   │                              │
   ▼                              │
相加 ◄────────────────────────────┘
   │
   ▼
输出

这是现代语言模型中常见的一种组织方式。

原始 Transformer 使用的归一化位置与部分现代模型不同,因此不能将这个结构视为所有 Transformer 的统一实现。

10.2 Self-Attention ​

Self-Attention 负责根据序列中不同位置之间的关系聚合信息。

它主要解决的是:

当前位置应该从其他允许访问的位置获取哪些信息?

10.3 Feed-Forward Network ​

前馈网络(Feed-Forward Network,FFN)负责对每个位置的表示进行进一步变换。

经典 Transformer 中的前馈网络通常包含两次线性变换和一次非线性激活:

FFN(x)=W2σ(W1x+b1)+b2

其中:

  • W1,W2:权重矩阵;
  • b1,b2:偏置;
  • σ:非线性激活函数。

FFN 通常对各序列位置分别应用相同的参数化变换。

因此,可以将注意力与 FFN 的作用进行区分:

  • 注意力主要负责不同位置之间的信息交互;
  • FFN 主要负责每个位置内部的特征变换。

这是理解 Transformer Block 的一个重要视角。

10.4 Residual Connection ​

残差连接(Residual Connection)将模块输入与模块输出相加。

例如:

y=x+F(x)

其中:

  • x:模块输入;
  • F(x):模块计算结果。

残差连接可以改善深层网络中的信息和梯度传播。

它是训练深层 Transformer 的重要结构之一。

10.5 Layer Normalization ​

Layer Normalization 用于对中间表示进行归一化处理。

其作用包括改善数值尺度和训练稳定性。

现代 Transformer 还可能使用 RMSNorm 等归一化方法。

不同归一化方式会影响模型实现和训练特征。

10.6 一个 Block 的计算 ​

以简化的 Pre-Norm 结构为例:

H=X+Attention(Norm(X))Y=H+FFN(Norm(H))

其中:

  • X:输入;
  • H:注意力模块后的表示;
  • Y:Block 输出。

实际模型还可能包含位置相关操作、注意力掩码、Dropout 或其他组件。

十一、多个 Transformer Block 如何形成完整模型? ​

单个 Transformer Block 可以完成一次上下文信息交互和特征变换。

实际 Transformer 模型通常将多个 Block 堆叠。

11.1 堆叠结构 ​

text
输入 Token
    │
    ▼
Token Embedding
    │
    ▼
位置信息
    │
    ▼
Transformer Block 1
    │
    ▼
Transformer Block 2
    │
    ▼
Transformer Block 3
    │
    ▼
       ...
    │
    ▼
Transformer Block N
    │
    ▼
输出层

每个 Block 接收上一层的输出,并进一步更新表示。

11.2 为什么要堆叠多个 Block? ​

多个 Block 允许模型进行多轮信息交互和非线性变换。

例如,一个位置的表示可以在不同层中不断结合新的上下文信息。

这种层级计算机制,有助于模型学习复杂的序列关系。

但并不意味着层数越多,模型一定越好。

模型表现还受到隐藏维度、注意力结构、训练数据、训练方法和计算资源等因素影响。

11.3 模型参数主要来自哪里? ​

Transformer 的可学习参数通常包括:

  • Token Embedding;
  • 注意力投影矩阵;
  • FFN 权重;
  • 归一化相关参数;
  • 输出投影;
  • 其他架构相关参数。

因此,Transformer 的参数规模与网络层数、隐藏维度、FFN 维度和其他架构设置有关。

十二、Encoder、Decoder 和 Encoder–Decoder 有什么区别? ​

Transformer 的三类主要架构,在注意力访问方式和任务组织方面存在差异。

12.1 Encoder-only ​

Encoder-only 模型主要使用 Encoder Block 处理输入。

典型模型包括 BERT。[4]

其特点是可以利用输入序列中双向的上下文信息。

例如:

text
输入文本
   │
   ▼
Embedding
   │
   ▼
Encoder Blocks
   │
   ▼
上下文表示
   │
   ▼
分类、抽取或其他任务

这类架构适合多种文本理解任务。

12.2 Decoder-only ​

Decoder-only 模型主要使用具有因果注意力的 Decoder 风格网络。

典型代表包括 GPT 系列。[5]

其核心任务通常是根据已有 Token 预测后续 Token。

text
已有 Token
   │
   ▼
Embedding
   │
   ▼
Causal Transformer Blocks
   │
   ▼
输出层
   │
   ▼
下一个 Token 的分数

需要注意,现代 Decoder-only 模型中的 Decoder Block 通常不包含原始 Encoder–Decoder Transformer 中用于读取独立 Encoder 输出的 Cross-Attention 子层。

因此,现代语言模型中使用的“Decoder-only”与原始 Transformer Decoder 的完整结构并不完全相同。

12.3 Encoder–Decoder ​

Encoder–Decoder 模型分别处理输入编码和输出生成。

例如:

text
输入序列
   │
   ▼
Encoder
   │
   ▼
输入表示
   │
   ▼
Cross-Attention ◄── Decoder 当前状态
   │
   ▼
Decoder
   │
   ▼
输出序列

典型模型包括 T5。[6]

这类架构适合机器翻译、文本摘要和其他序列到序列任务。

12.4 三种架构比较 ​

维度Encoder-onlyDecoder-onlyEncoder–Decoder
主要结构Encoder因果 Decoder 风格网络Encoder + Decoder
注意力方式通常双向通常因果Encoder 双向、Decoder 因果
典型任务理解、分类、抽取自回归生成序列到序列
代表模型BERTGPTT5
输出特点上下文表示或任务预测逐步生成 Token根据编码输入生成序列

这是一种典型分类。

实际模型可能通过特殊注意力机制或其他结构形成混合架构。

十三、Transformer 如何生成文本? ​

Transformer 的文本生成机制,可以通过典型 Decoder-only 自回归语言模型理解。

13.1 什么是自回归生成? ​

自回归生成(Autoregressive Generation)是根据已有序列逐步预测后续元素的方法。

对于 Token 序列:

x1,x2,…,xn

其联合概率可以分解为:

p(x1,…,xn)=∏t=1np(xt∣x1,…,xt−1)

也就是说,模型通过已有 Token 预测下一个 Token。

13.2 第一步:输入 Prompt ​

例如:

人工智能是一种

模型首先将文本转换为 Token 序列。

13.3 第二步:执行 Transformer 计算 ​

Token 经过 Embedding 和多层 Transformer Block。

模型根据已有上下文计算当前位置的输出表示。

13.4 第三步:计算 Token 分数 ​

输出层将隐藏表示映射为词表上的分数。

这些分数通常称为 Logits。

假设词表大小为:

V

那么输出可以表示为:

z∈RV

13.5 第四步:转换为概率分布 ​

通过 Softmax,可以将 Logits 转换为概率分布:

pi=ezi∑j=1Vezj

不同 Token 获得不同概率。

13.6 第五步:选择下一个 Token ​

模型可以根据解码策略选择 Token。

例如:

  • Greedy Decoding;
  • Temperature Sampling;
  • Top-k Sampling;
  • Top-p Sampling。

这些策略可能产生不同结果。

13.7 第六步:重复生成 ​

新生成的 Token 加入已有上下文。

模型继续预测后续 Token。

text
输入 Prompt
    │
    ▼
Transformer
    │
    ▼
预测 Token 1
    │
    ▼
加入上下文
    │
    ▼
Transformer
    │
    ▼
预测 Token 2
    │
    ▼
加入上下文
    │
    ▼
继续生成

生成过程通常在遇到停止标记、达到长度限制或满足其他停止条件时结束。

需要注意,Transformer 的训练阶段可以并行计算多个位置的预测,而典型自回归推理阶段需要按顺序生成后续 Token。

这是理解 Transformer 训练效率与生成延迟差异的重要基础。

十四、什么是 KV Cache? ​

KV Cache(Key-Value Cache)是现代自回归 Transformer 推理中的重要优化机制。

14.1 为什么需要缓存? ​

在自回归生成过程中,模型每次生成新 Token,都需要利用已有上下文。

如果每一步都重新计算所有历史 Token 的 Key 和 Value,会产生大量重复计算。

14.2 KV Cache 的基本思想 ​

模型可以缓存历史 Token 在各注意力层中的 Key 和 Value。

生成新 Token 时,只需要计算新 Token 对应的相关表示,并结合历史缓存完成注意力计算。

text
已有 Token
   │
   ▼
计算 K、V
   │
   ▼
保存到 KV Cache
   │
   ▼
生成新 Token
   │
   ▼
计算新 Token 的 Q、K、V
   │
   ▼
结合历史 K、V
   │
   ▼
计算注意力

14.3 KV Cache 的价值 ​

KV Cache 可以减少重复计算,提高自回归生成效率。

但缓存需要占用内存或显存。

上下文越长,缓存通常越大。

因此,KV Cache 也是现代语言模型推理系统需要管理的重要资源。

具体的缓存布局、分页管理和推理优化方法,将在 M7 中深入研究。

十五、Transformer 的优势与局限是什么? ​

15.1 主要优势 ​

第一,能够直接建模序列中不同位置之间的关系。 注意力机制允许模型根据内容聚合相关信息。

第二,适合大规模并行训练。 与标准循环网络相比,Transformer 在训练阶段具有较好的序列并行计算特征。

第三,具有模块化和可扩展性。 Transformer Block 可以通过堆叠和调整维度扩展模型规模。

第四,能够适配不同任务和模态。 Transformer 已经广泛应用于文本、图像、音频和多模态建模。

第五,形成了丰富的工程生态。 现代深度学习框架和推理引擎广泛支持 Transformer 相关结构。

15.2 主要局限 ​

第一,标准全注意力机制具有较高的长序列计算成本。

对于序列长度 n,标准全注意力的分数矩阵包含约 n2 个元素。

因此,长上下文处理可能面临较高的计算和内存开销。

需要注意,完整注意力计算复杂度还受到隐藏维度等因素影响。

第二,自回归生成存在顺序依赖。

即使训练可以并行计算多个位置,逐 Token 生成仍然需要依次完成。

这会影响输出延迟。

第三,长上下文并不保证有效利用全部信息。

模型即使能够接收较长输入,也可能在信息定位、长距离推理和内容保持方面出现性能下降。

第四,Transformer 的计算能力不等同于可靠推理。

注意力机制能够组织信息交互,但并不保证模型输出事实正确或逻辑严密。

第五,模型规模扩大带来资源需求。

大型 Transformer 模型可能需要大量训练计算、显存和推理资源。

因此,Transformer 的实际使用仍然需要结合任务需求、模型质量和系统成本进行设计。

十六、Transformer 与现代大语言模型有什么关系? ​

Transformer 是现代大语言模型的重要架构基础。

但 Transformer 本身并不等同于大语言模型。

16.1 Transformer 是架构 ​

Transformer 定义了一套神经网络计算结构。

它可以用于不同任务和模型类型。

例如:

  • 文本理解;
  • 文本生成;
  • 图像处理;
  • 语音处理;
  • 多模态建模。

16.2 大语言模型是具体的模型系统 ​

大语言模型通常结合:

  • Transformer 相关架构;
  • 大规模训练数据;
  • 语言建模目标;
  • 大规模参数训练;
  • 后训练方法;
  • 推理与解码机制。

因此,Transformer 只是现代 LLM 的重要组成部分之一。

16.3 Transformer 为什么适合大语言模型? ​

Transformer 具有适合大规模并行训练的计算结构。

注意力机制能够处理复杂上下文关系。

模块化设计也便于通过增加网络层数、隐藏维度和训练计算资源扩展模型规模。

这些特点共同推动了 Transformer 在大语言模型中的广泛应用。

16.4 从 Transformer 到 Agent ​

在现代 LLM Agent 中,Transformer 模型通常负责理解输入、生成内容、辅助推理和提出行动建议。

例如:

text
用户任务
   │
   ▼
Agent
   │
   ▼
调用 LLM
   │
   ▼
Transformer 模型计算
   │
   ▼
生成回答或工具调用意图
   │
   ▼
Agent 执行相应操作

需要注意,Transformer 负责模型内部计算。

工具执行、任务状态管理、权限控制和工作流编排通常由模型之外的 Agent 运行机制完成。

因此,理解 Transformer 可以帮助我们理解 Agent 所使用的模型如何处理信息,但不能直接解释完整 Agent 系统的运行方式。

十七、核心结论 ​

Transformer 是现代深度学习的重要神经网络架构,也是大量现代大语言模型的技术基础。

它通过注意力机制、多层计算模块和位置表示等技术,实现复杂序列信息的处理。

理解 Transformer,需要建立以下认识。

第一,Transformer 的核心创新是以注意力机制为主要序列交互方式。 它减少了对循环结构的依赖,并改善了训练阶段的并行计算能力。

第二,Transformer 处理的是数值表示,而不是直接处理自然语言字符串。 文本通常需要经过 Tokenization 和 Embedding 转换。

第三,位置信息是 Transformer 处理有序序列的重要组成部分。 不同模型可以采用不同的位置编码或位置表示方法。

第四,Self-Attention 通过 Query、Key 和 Value 计算信息匹配与聚合。 其经典形式为缩放点积注意力。

第五,Multi-Head Attention 允许模型在不同投影子空间中并行处理信息。

第六,注意力掩码决定不同位置之间的信息访问范围。 双向注意力与因果注意力适用于不同任务。

第七,Transformer Block 不只有注意力机制。 前馈网络、残差连接和归一化同样是重要组成部分。

第八,多个 Transformer Block 可以堆叠形成深层网络。 通过多层计算,模型逐步更新上下文表示。

第九,Encoder-only、Decoder-only 和 Encoder–Decoder 是三类重要架构形式。 它们在注意力方式和任务组织上存在差异。

第十,典型 Decoder-only 语言模型通过自回归方式生成文本。 模型根据已有上下文预测后续 Token,并重复这一过程。

第十一,KV Cache 是提高自回归推理效率的重要机制。 它通过缓存历史 Key 和 Value 减少重复计算。

第十二,Transformer 具有明显的扩展优势,但仍然受到计算成本、上下文处理和生成效率等限制。

从技术体系角度看,Transformer 将神经网络的基础计算机制组织为适合大规模序列建模的架构,为现代大语言模型的发展提供了重要基础。

理解 Transformer 之后,下一步需要研究:一个真正的大语言模型如何在 Transformer 架构基础上完成整体设计、规模化训练和能力构建。

十八、参考文献与延伸阅读 ​

18.1 Transformer 原始研究 ​

[1] Vaswani, A., et al. (2017). Attention Is All You Need. Advances in Neural Information Processing Systems, 30.
提出 Transformer 架构,系统介绍多头注意力、位置编码和 Encoder–Decoder 结构。
论文:Attention Is All You Need

[2] Bahdanau, D., Cho, K., & Bengio, Y. (2014). Neural Machine Translation by Jointly Learning to Align and Translate.
神经机器翻译注意力机制的重要早期研究。
论文:Neural Machine Translation by Jointly Learning to Align and Translate

18.2 位置编码与注意力机制 ​

[3] Su, J., et al. (2021). RoFormer: Enhanced Transformer with Rotary Position Embedding.
提出 Rotary Position Embedding(RoPE)。
论文:RoFormer

[4] Devlin, J., et al. (2018). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding.
提出 BERT,展示双向 Transformer Encoder 在语言理解任务中的应用。
论文:BERT

18.3 语言模型架构 ​

[5] Brown, T. B., et al. (2020). Language Models Are Few-Shot Learners. Advances in Neural Information Processing Systems, 33.
介绍 GPT-3 及其语言建模能力。
论文:Language Models Are Few-Shot Learners

[6] Raffel, C., et al. (2020). Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. Journal of Machine Learning Research, 21(140), 1–67.
介绍 T5 及统一文本到文本的 Encoder–Decoder 建模方法。
论文:Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer

18.4 Transformer 推理优化 ​

[7] Dao, T., et al. (2022). FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness.
提出通过 IO 感知优化提高注意力计算效率的方法。
论文:FlashAttention

[8] Shazeer, N. (2019). Fast Transformer Decoding: One Write-Head is All You Need.
介绍 Multi-Query Attention 及其推理效率优势。
论文:Fast Transformer Decoding

[9] Ainslie, J., et al. (2023). GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints.
介绍 Grouped-Query Attention。
论文:GQA

18.5 官方工程文档 ​

[10] PyTorch. MultiheadAttention Documentation.
介绍多头注意力模块及其工程实现。
官方文档:PyTorch MultiheadAttention

[11] Hugging Face. Transformers Documentation.
提供 Transformer 模型架构、配置、加载与推理的工程文档。
官方文档:Transformers Documentation

十九、关联研究 ​

关联文档研究内容
M1 · AI 模型是什么?它由什么构成?模型架构、参数与基本计算机制
M2 · 神经网络如何学习和处理信息?神经网络、前向传播与参数优化
M4 · 大语言模型是如何构建的?Transformer 在 LLM 中的整体应用
M5 · AI 模型如何理解和处理不同模态?Transformer 与多模态建模
M6 · AI 模型如何通过训练获得能力?预训练、后训练和参数优化
M7 · AI 模型如何生成输出?自回归推理、解码与 KV Cache
M8 · 如何评估 AI 模型的能力与局限?模型能力与性能评估
E3 · 如何管理模型的上下文窗口?Token、上下文长度与上下文管理
E8 · 如何优化模型调用的成本与性能?推理效率与资源优化
A2 · Agent 如何获得认知与推理能力?Agent 的模型组件