Transformer 模型详解:从输入到输出的全流程剖析
Transformer 模型详解:从输入到输出的全流程剖析
一句话总结:
Transformer 是一种完全基于注意力机制(Attention)的深度学习架构,它让模型不再依赖循环结构(RNN),通过全局依赖捕获实现高效并行。
一、整体结构
Transformer 的整体流程如下:
输入 → Encoder(编码器) → Decoder(解码器) → 输出
虽然 Encoder 和 Decoder 的层数对称,但:
- 结构相似,参数不同
- Encoder 负责理解输入
- Decoder 负责生成输出
🧩 Transformer 总体架构图
二、输入部分
Transformer 不直接处理原始文本,而是先将文本转换为向量形式。
1. Embedding:词向量嵌入
将每个词映射到一个高维向量空间,例如 512 或 768 维:
"apple" → [0.13, 0.59, 0.02, ...]
"orange" → [0.12, 0.56, 0.01, ...]
作用:把离散的文本转为连续的数值向量,便于计算语义距离。
2. 位置编码(Positional Encoding)
Transformer 不像 RNN 那样有序处理序列,它是并行计算的,因此必须额外注入位置信息。
位置编码采用正弦和余弦函数形式:
[
PE_{(pos, 2i)} = sin(pos / 10000^{2i/d})
]
[
PE_{(pos, 2i+1)} = cos(pos / 10000^{2i/d})
]
简单说:它给每个词加上一个独特的“位置标签”,让模型能区分“我爱你”和“你爱我”。
三、注意力机制的本质
1. 直觉理解
注意力机制的核心思想是:
模型在处理某个词时,会自动关注和它最相关的其他词。
例如:
“我喜欢吃苹果,因为它很甜。”
在预测“甜”时,模型会把注意力集中在“苹果”上。
2. 数学表达
核心计算公式如下:
[
Attention(Q, K, V) = softmax\left(\frac{QK^T}{\sqrt{d_k}}\right)V
]
- Q(Query):查询向量
- K(Key):键向量
- V(Value):值向量
Softmax 的结果代表“每个词被关注的权重”。
3. 多头注意力(Multi-Head Attention)
Transformer 不止计算一次注意力,而是计算多个“头”:
Head₁: 注意语义关系
Head₂: 注意句法结构
Head₃: 注意情感线索
...
最后拼接多个头的输出再进行线性变换,让模型能从多个角度理解上下文。
四、Encoder 与 Decoder 的结构差异
虽然 Encoder 和 Decoder 看似对称,但用途完全不同。
| 模块 | 主要组成 | 功能 |
|---|---|---|
| Encoder | 自注意力 + 前馈网络 | 理解输入序列 |
| Decoder | Masked 自注意力 + 跨注意力 + 前馈网络 | 基于输入生成输出 |
🧱 Encoder 内部结构
Encoder 的任务是提取语义特征,即“理解句子在说什么”。
🧱 Decoder 内部结构
Decoder 有两个注意力机制:
- Masked Self-Attention:掩盖未来词,防止“偷看答案”;
- Encoder-Decoder Attention:融合 Encoder 提取的上下文信息。
五、输出部分
Decoder 最后的输出经过线性变换与 Softmax:
Linear → Softmax → 概率分布
例如模型要预测下一个词:
P("I") = 0.05
P("love") = 0.89
P("apple") = 0.04
概率最高的词被选为输出,然后进入下一轮生成,直到遇到
<EOS>结束符。
六、整体流程总结
| 阶段 | 模块 | 关键操作 | 结果 |
|---|---|---|---|
| 输入层 | Embedding + 位置编码 | 文本 → 向量 | 含顺序信息的词向量 |
| Encoder | 多头自注意力 + 前馈网络 | 捕捉输入全局关系 | 输入语义特征 |
| Decoder | Masked 注意力 + Encoder-Decoder 注意力 | 结合输入与上下文 | 生成输出序列 |
| 输出层 | Linear + Softmax | 转为词概率分布 | 输出结果 |
七、总结一句话
Transformer 是一种“全局思考、并行计算”的神经网络,
它用注意力机制取代循环,使模型能高效理解和生成语言。
八、参考资料
- Vaswani et al. (2017). Attention is All You Need.
- Jay Alammar — The Illustrated Transformer
- 《动手学深度学习》第十章 Transformer 模型
- Transformers for NLP (HuggingFace 文档)
