LLM 学习笔记 Day 3:Transformer Block 详解与 RNN 对比

一、RNN 的两个缺陷

1. 串行计算:无法并行

RNN 的计算依赖于上一个时刻的隐藏状态(Hidden State):h_t = f(W * x_t + U * h_{t-1})

复制代码
什么是 Hidden State?
是 RNN 在当前位置输出的"记忆向量",压缩了从开头到当前位置的全部信息,就像一个读完半句话后大脑里的"语义摘要"

2. 梯度消失与长距离遗忘

RNN 在反向传播时,梯度经过多次连乘会趋近于 0(梯度消失),导致模型无法学习远距离的依赖关系。同时,Hidden State 容量有限,早期信息在长序列中逐渐被"冲淡",造成遗忘。

二、Transformer 如何解决这两个问题

1. 并行计算能力(Attention + Multi-Head)

  • Self-Attention 让每个 token 直接与整个序列中所有 token 计算相似度,这些计算互不依赖,可以完全并行。

  • Multi-Head Attention 的进一步优化:

    • 随机初始化多个不同的参数矩阵(W_Q、W_K、W_V)
    • 每个"头"独立训练,模型在训练中自动学会关注不同维度的关系(如语法、语义、指代等)
    • 最后将所有头的输出拼接,用一个线性层融合
  • Multi-Head Attention 允许模型从多个表示子空间同时关注不同位置的信息,不同的头可以捕捉不同类型的关系。

2. 直接建立长距离依赖(Attention)

RNN 的 token 之间路径长度为 O(n),信息需要一步步传递;而 Attention 让任意两个 token 直接相连,路径长度恒为 O(1)。所以"遗忘前面信息"的问题从根本上被解决。

3. 残差连接(Residual Connection)解决梯度消失

公式:输出 = 模块(输入) + 输入

反向传播时,梯度可以通过"+ 输入"这条高速通道直接传到前层,有效缓解了深层网络的梯度消失。同时,每一层学习的只是对输入的"修正增量",原始信息一直保留。

4. LayerNorm 稳定训练

LayerNorm 对单个样本的所有特征维度做标准化(均值 0,方差 1),让每一层输入的数据分布保持稳定。这加速了收敛,也让训练更稳定。

三、Transformer Block 完整结构

输入 → Multi-Head Self-Attention → 残差连接 → LayerNorm → FFN → 残差连接 → LayerNorm → 输出

  • 残差连接:保留原始输入,防止梯度消失
  • LayerNorm:标准化数据分布,稳定训练
  • FFN:对聚合后的信息做非线性深度加工(知识存储和推理)

四、Transformer vs RNN 对比总结

维度 RNN Transformer
计算方式 串行 并行
长距离依赖 弱(梯度消失 + 信息遗忘) 强(Attention 直接连接)
训练效率
位置信息 天然有序 需要 Positional Encoding 显式注入
并行能力
核心机制 循环 Hidden State Self-Attention + FFN
稳定性 梯度易消失 残差 + LayerNorm 保证稳定