12 KiB
title, draft, tags
| title | draft | tags | ||||
|---|---|---|---|---|---|---|
| 1-架构讲解 | false |
|
![[Pasted image 20260512212750.png]
!
1. 架构总览与图形化解构
【原理描述】输入流转与位置编码
在 Transformer 抛弃了 RNN/CNN 结构后,模型本身丧失了对序列顺序的感知能力。因此,输入张量在进入主体网络前,必须完成两步:Input Embedding(将离散 Token 映射为连续稠密向量)与 Positional Encoding(注入绝对与相对位置信息)。
【数学推导】Positional Encoding (PE)
Transformer 采用正余弦交替函数生成固定的位置编码,公式如下:
PE_{(pos, 2i)} = \sin\left(\frac{pos}{10000^{2i/d_{model}}}\right)
PE_{(pos, 2i+1)} = \cos\left(\frac{pos}{10000^{2i/d_{model}}}\right)
数学优越性:
- 有界性:正余弦函数将值域限制在 [-1, 1],保证了位置向量与词嵌入相加时不会导致数值爆炸。
- 相对位置线性表达:借助三角函数和角公式
\sin(\alpha+\beta)和 $\cos(\alpha+\beta)$,任意位置pos+k的编码都可以表示为位置pos编码的线性组合。这使得模型能够轻易学习到 Token 之间的相对距离。
【图形化表格】QKV 维度流转
设定序列长度为 $L$,模型维度为 $d_{model}$,单个 Attention Head 的维度为 $d_k = d_v = d_{model} / h$。
| 张量/操作 | 数学表达 | 维度变化 | 物理意义 |
|---|---|---|---|
| 输入张量 | X |
L \times d_{model} |
包含了语义和位置信息的 Token 序列表示 |
| Query 权重 | W^Q |
d_{model} \times d_k |
将输入投影到“寻址”空间的变换矩阵 |
| Key 权重 | W^K |
d_{model} \times d_k |
将输入投影到“被寻址”空间的变换矩阵 |
| Value 权重 | W^V |
d_{model} \times d_v |
将输入投影到“内容”空间的变换矩阵 |
| Query (Q) | Q = X W^Q |
L \times d_k |
当前 Token 的“查询意图” |
| Key (K) | K = X W^K |
L \times d_k |
序列中各 Token 的“身份标签/索引” |
| Value (V) | V = X W^V |
L \times d_v |
序列中各 Token 的“实际内容特征” |
【图形化表格】Scaled Dot-Product Attention 步进模拟
| 步进 | 操作环节 | 数学推导 | 张量维度 | 数值/物理意义 |
|---|---|---|---|---|
| 1 | 计算点积评分 | S = Q \cdot K^T |
(L \times d_k) \times (d_k \times L) \rightarrow L \times L |
计算序列中每个 Token 对其他所有 Token 的原始相关性得分。 |
| 2 | 缩放 (Scale) | S' = \frac{S}{\sqrt{d_k}} |
L \times L |
关键! 防止维度过大导致点积结果爆炸,使 Softmax 落入梯度饱和区(梯度消失)。 |
| 3 | 归一化 (Softmax) | A = \text{Softmax}(S') |
L \times L |
将得分转化为概率分布(每行和为1),明确当前 Token 应该分配多少注意力给其他 Token。 |
| 4 | 加权求和 | O = A \cdot V |
(L \times L) \times (L \times d_v) \rightarrow L \times d_v |
根据注意力权重 $A$,按比例混合所有 Token 的 Value 信息,输出聚合后的上下文向量。 |
2. 多头注意力机制 (Multi-Head Attention - 深度解剖)
【原理描述】维度拆解与拼接
Transformer 并没有使用单个巨大的 Attention 矩阵,而是将其拆分。假设 $d_{model} = 512$,头数 $h = 8$,则每个头处理的维度 $d_k = 512 / 8 = 64$。
计算过程:
- 独立投影:每个头
i都有自己独立的W_i^Q, W_i^K, W_i^V矩阵,对输入进行降维投影。 - 并行计算:8个头同时执行 Scaled Dot-Product Attention,产生 8 个
L \times 64的输出特征矩阵。 - 拼接还原:将这 8 个矩阵在最后一个维度上拼接(Concat),重新得到
L \times 512的张量。 - 线性映射:最后通过一个全连接层
W^O融合多头信息。
【数学推导】本质探究
\text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, \dots, \text{head}_h)W^O
\text{其中 } \text{head}_i = \text{Attention}(Q W_i^Q, K W_i^K, V W_i^V)
为什么多头比单头好?
单头 Attention 容易将全部权重集中在某一个强相关的特征上。多头机制本质上是将 d_{model} 切分到不同的低维特征子空间 (Low-dimensional Representation Subspaces) 中。这允许模型同时在不同的表示空间中捕捉信息的不同侧面:例如,Head 1 可能专门寻找主谓宾的句法依赖(Syntax),Head 2 可能捕捉代词指代关系(Coreference),Head 3 可能聚焦情感词汇(Semantics)。
3. 三大 Attention 的本质区别与痛点(必答项)
3.1 Encoder Self-Attention (全局感知)
- 机制:Q, K, V 全部来源于 Encoder 前一层的输出。
- 本质:完全的无向图,每个 Token 都可以毫无限制地“看”到序列的前后所有 Token,借此消除长距离依赖问题,构建完美的全局上下文感知。
3.2 Masked Self-Attention (Decoder)
- Look-ahead Mask 形态:为了保证自回归生成的因果性(Causality),必须将矩阵的主对角线以上的元素遮蔽。
M = \begin{bmatrix}
0 & -\infty & -\infty & \cdots & -\infty \\
0 & 0 & -\infty & \cdots & -\infty \\
0 & 0 & 0 & \cdots & -\infty \\
\vdots & \vdots & \vdots & \ddots & \vdots \\
0 & 0 & 0 & \cdots & 0
\end{bmatrix}
- Preventing Information Leakage:在训练阶段,我们是一次性输入整个目标序列进行并行计算的。通过在
Q \cdot K^T的结果上加上 Mask 矩阵 $M$,经过 Softmax 时,$e^{-\infty} \rightarrow 0$。这强行截断了当前词对未来词的注意力权重,完美模拟了推理阶段“只能看到已生成内容”的物理现实,防止了“答案泄露”。
3.3 Encoder-Decoder Cross-Attention(重难点)
-
原理:K 和 V 来自 Encoder 的最高层输出,而 Q 来源于 Decoder 中 Masked Self-Attention 层的输出。
-
直观逻辑(意图寻找语境):在机器翻译中,Decoder 当前正在生成的词(隐含在 Q 中)代表当前的翻译意图 ;Encoder 提取的原句信息(封装在 K, V 中)代表全局语境。Q 拿着意图去遍历原句的标签 K,找到最匹配的部分后,提取出对应的真实内容 V 来指导下一个词的生成。
-
维度匹配: 假设 Encoder 输入序列长度为 $n$(源语言长度),Decoder 当前序列长度为 $m$(目标语言长度)。
-
注意力权重:$Q \cdot K^T \in \mathbb{R}^{m \times n}$。(这
m \times n的矩阵完美地代表了m个目标词与n个源词的对齐关系矩阵)。 -
最终输出:$\text{Softmax}(\dots) \cdot V \in \mathbb{R}^{m \times n} \times \mathbb{R}^{n \times d_v} \rightarrow \mathbb{R}^{m \times d_v}$。完美对齐输出维度!
4. 残差、归一化与前馈网络(细节填补)
【数学推导】Add & Norm
Layer Normalization 公式:
\text{LN}(x) = \gamma \frac{x - \mu}{\sqrt{\sigma^2 + \epsilon}} + \beta
其中 \mu 和 \sigma 是在 d_{model} 这个特征维度上计算的均值和方差,\gamma 和 \beta 是可学习的仿射变换参数。
对比 BN:Batch Normalization 在 Batch 维度上做归一化,这对 NLP 中长度参差不齐的序列极为不友好(Pad 符会导致严重的统计噪声)。LN 在单个 Token 的特征维度上进行,不受序列长度和 Batch 维度的影响,极其稳定。
【原理描述】Residual Connection (残差连接)
- 公式:$\text{Output} = x + \text{Sublayer}(x)$。
- 机制:提供了恒等映射的高速公路。在深层网络中,梯度可以通过
x这条路径无损地反向传播回底层,极大地缓解了梯度消失问题,使得训练极深(如百层以上)的大语言模型成为可能。
【工程细节】FFN (Position-wise Feed-Forward Networks) 设计
- 公式:
\text{FFN}(x) = \max(0, xW_1 + b_1)W_2 + b_2 - 升降维逻辑:输入为 $d_{model}$,首先通过
W_1升维到 $4 \times d_{model}$(即 2048),经过激活函数后,再通过W_2降维回 $d_{model}$。 - 作用:Attention 层本质上只做特征的“线性加权混合”,缺乏非线性表达能力。FFN 的非线性激活函数(ReLU/GELU)和宽阔的中间层($4 \times d_{model}$)充当了**“记忆网络”或“局部特征加工厂”**的作用,对 Attention 提取出的上下文信息进行深度的非线性变换。
5. 训练全流程、优化与工程实践
【原理描述】Teacher Forcing 与并行加速
如果像 RNN 那样等待前一个词生成再预测下一个词,训练速度将极其缓慢。Transformer 在 Decoder 端采用 Teacher Forcing:直接将 Ground Truth(真实标签序列)整体右移一位(Shifted Right),一次性输入 Decoder。借助 Mask 机制的遮挡,网络可以高度并行地在同一个 Batch 内计算整个序列的所有损失,效率得到了颠覆性提升。
【工程细节】Weight Sharing (权重共享)
在标准的 Transformer 中,Input Embedding 矩阵和最后 Softmax 前的 Linear 层通常共享同一个权重矩阵 $W \in \mathbb{R}^{\text{vocab_size} \times d_{model}}$。
动机:Embedding 是将离散 Token 编码到连续空间,最后的 Linear 是将连续空间解码回离散 Token 概率。两者是互逆过程,共享权重不仅可以大幅减少模型参数量(防止过拟合),还能迫使模型学习到具有高度语义一致性的向量空间。
【数学推导】Noam Scheduler 与 Warmup
由于 Transformer 的结构特性,初始阶段梯度极其不稳定。直接使用高学习率会导致模型崩溃。Noam 学习率调度策略结合了线性预热(Warmup)与衰减:
lrate = d_{model}^{-0.5} \cdot \min(step\_num^{-0.5}, step\_num \cdot warmup\_steps^{-1.5})
解析:在最初的 warmup\_steps 步内,学习率随着 step\_num 线性急剧上升;到达峰值后,按 step\_num^{-0.5} 的轨迹缓慢衰减。这犹如给引擎“预热”后再平稳加速,是 Transformer 能够收敛的核心 Trick 之一。
【优化细节】Label Smoothing
传统的 Hard Label(如 $[0, 0, 1, 0]$)会鼓励模型产生极端的概率分布,导致模型过于自信(Overconfidence),陷入死记硬背。Label Smoothing 将真实分布软化:
\boldsymbol{y}_{\text{true}}^{ls} = (1-\alpha)\cdot \boldsymbol{y}_{\text{onehot}} + \frac{\alpha}{V}\boldsymbol{1}
通常 $\alpha = 0.1$。这相当于告诉模型:“你不仅要关注正确答案,还要分一点点注意力给其他词汇”。这种机制有效增加了不确定性,极大提升了模型在未知测试集上的泛化能力。
【工程实践】软硬件极限与算力刚需
Transformer 的核心痛点在于 Scaled Dot-Product Attention 的计算复杂度是 $\mathcal{O}(L^2 \cdot d_{model})$,空间复杂度(显存)同样随序列长度 L 呈平方级增长。
- 物理极限:当上下文长度扩展到 128k 甚至百万级别时,
L^2的矩阵乘加(MACs)和显存读写带宽(Memory Bandwidth)将压垮普通计算架构。 - GPU 算力支持:这正是为何大模型训练和推理需要具备庞大显存、超高显存带宽(如 HBM3)以及专门优化矩阵乘法的 Tensor Cores 的硬件。以 RTX 5070 等现代 GPU 为例,其微架构针对大规模并行矩阵运算进行了极致优化,支持 FP8/BF16 混合精度计算,这正是支撑 Transformer 从纸面走向工业神坛的底层算力引擎。
相关视频:常看常新
