Skip to content

Transformer 基础

1. Transformer 的基本出发点

序列模型需要使一个位置的表示能够利用其他位置的信息。

传统 RNN 按时间顺序递归更新 hidden state:

ht=f(xt,ht1)

因此第 t 个位置依赖前一个位置的计算结果。

这种递归依赖使不同时间位置之间难以完全并行计算,同时较远位置之间的信息需要经过多次状态传递。

Transformer 不再主要依靠递归状态传播上下文,而使用 Attention 直接建立序列不同位置之间的信息交互。

其核心思想可以概括为:

对当前 token,计算其他 token 对它的重要程度,并据此聚合上下文信息。

因此 Transformer 在训练阶段能够将大量序列位置组织为矩阵运算,具有较好的并行计算能力。


2. 训练并行与自回归生成的区别

Decoder-only Transformer 即使使用 Causal Mask,训练阶段仍然能够同时计算一个训练序列中的大量位置。

原因是训练时完整真实序列已经存在。

例如:

text
I love artificial intelligence

模型可以同时构造多个训练目标:

text
I                    → love
I love               → artificial
I love artificial    → intelligence

Causal Mask 保证每个位置只能访问自身及之前的位置,但这些位置的计算可以通过一次矩阵运算并行完成。

生成阶段不同。

如果当前只有:

text
I love

模型首先需要生成第三个 token。

第三个 token 生成以后,才能将它作为新的上下文生成第四个 token。

因此自回归生成存在:

text
生成 token t

把 token t 加入上下文

生成 token t+1

的顺序依赖。

所以需要区分:

Causal Mask 限制的是信息可见范围。

自回归生成的串行性来自未来 token 尚未产生。


3. Token 与 Token ID

语言模型首先通过 tokenizer 将文本转换为 token。

例如:

text
原始文本

Tokenizer

Token Sequence

Token IDs

Token ID 本质上只是词表中的离散编号。

例如:

text
173

只表示:

词表中的第 173 个 token。

它本身不存在合理的连续数值关系。

不能因为:

text
Token A → 173
Token B → 174

就认为两个 token 在语义上十分接近。

同样:

text
346 = 2 × 173

也不存在对应的语义意义。

因此 Token ID 主要用于索引,而不是直接作为具有大小关系的数值特征。


4. Embedding

设词表大小为:

V

模型隐藏维度为:

dmodel

Embedding Matrix:

ERV×dmodel

对于某个 token ID,可以从 Embedding Matrix 中取得对应向量:

xi=E[tokeni]

得到:

xiRdmodel

因此 Embedding 完成:

离散 Token连续向量表示

Embedding Matrix 属于模型的可学习参数。

在训练过程中,其参数通过反向传播不断更新,使不同 token 能够在连续表示空间中形成可学习的特征结构。

需要区分:

Token ID 是离散索引。

Embedding 是 token 的可学习连续表示。


5. Hidden Representation 与 dmodel

设序列长度为:

n

则一个 Transformer 层的输入通常可以表示为:

XRn×dmodel

例如:

XR100×512

表示:

  • 当前序列包含 100 个 token;
  • 每个 token 当前具有一个 512 维 hidden representation。

其中:

dmodel

是 Transformer residual stream / hidden representation 的主要维度。

它不应简单理解为“Q/K/V 的维度”。

在经典 Multi-Head Attention 中,如果:

h=8

且:

dhead=64

通常:

dmodel=h×dhead=512

此时单个 Attention Head 中:

Qi,Ki,Vi

每个 token 都是 64 维。

多个 Head 拼接后重新形成 512 维表示。


6. 为什么需要位置信息

Attention 主要根据 token representation 之间的匹配关系进行信息交互。

如果完全没有位置信息,模型无法仅依靠 token 集合充分区分不同排列顺序。

例如:

text
dog bites man

和:

text
man bites dog

包含高度相似的 token,但顺序变化导致语义发生明显改变。

因此 Transformer 需要额外引入位置信息,使模型能够感知:

  • token 的先后关系;
  • 相对或绝对位置;
  • 不同位置之间的距离关系。

可以粗略理解为:

text
Token Embedding
→ 当前 token 是什么

Position Information
→ 当前 token 位于哪里

原始 Transformer 使用 Sinusoidal Positional Encoding。

现代大语言模型中常见 RoPE 等位置表示方法,后续单独学习。


7. Encoder 与 Decoder

Encoder

Encoder 的 Self-Attention 通常允许每个位置访问整个输入序列。

因此一个 token 可以利用:

  • 前方 token;
  • 后方 token;

共同形成上下文化表示。

典型代表包括 Encoder-only 架构。


Decoder

自回归 Decoder 在当前位置预测后续 token,因此不能访问未来真实 token。

它使用 Causal Mask 限制:

tokeni

只能访问:

token1,,tokeni

不能访问:

tokeni+1,

这样可以使训练阶段的可见信息范围与实际自回归生成保持一致。


8. Decoder-only 大语言模型

现代生成式大语言模型大量采用 Decoder-only Transformer。

基本流程为:

text
Token IDs

Embedding

Transformer Blocks

Final Hidden Representation

LM Head

Vocabulary Logits

下一个 Token 的概率分布

经过多层 Transformer Block 后,每个 token 的 hidden representation 已经不再只是初始 Embedding。

它逐层融合了:

  • 可访问上下文中的其他 token 信息;
  • 多层 Attention 产生的上下文关系;
  • FFN 产生的非线性特征变换;
  • Residual Stream 中持续保留与累积的信息。

最终 hidden representation 被用于预测下一个 token。


9. 核心理解

Transformer 不应该只记忆为一组固定模块:

text
Embedding
Attention
FFN

更重要的是理解数据表示如何逐层变化:

text
离散 Token

连续 Embedding

加入位置信息

上下文信息交互

Token Representation 加工

逐层形成更丰富的 Hidden Representation

用于最终任务

其中:

Attention 主要解决跨 token 信息通信。

FFN 主要解决每个位置内部的特征计算。

这两类操作共同构成 Transformer Block 的核心。


Interview QA:

06_Interview/AI_QA/Transformer.md

Mistakes:

05_Mistakes/AI.md