Skip to content

Transformer细节

📅 发表于 2025/07/08
🔄 更新于 2025/07/08
👁️ 次访问
📝 0 字
0 分钟
llm
#transformer

旧笔记:大名鼎鼎的Transformer

Transformer 特点

各模块特点及作用

Encoder 模块
  • 包含 6个 Encoder Block
  • Encoder Block:Self-Attention + FFN
    • MHA:比单一Head能提取更丰富的特征,表达能力更强dmodel=512
    • FFNReLU(xW1+b1)Ww+b22个全连接层+1个ReLU激活函数d=2048,和attention是4倍关系。
Decoder 模块
  • 6 个 Decoder Block
  • Decoder Block:MHAEncoder-Decoder AttentionFFN
    • MHA/Self-Attention:和Encoder一样,区别是增加look-ahead-mask,遮掩未来的信息
    • Encoder-Decoder Attention:和Self-Attention区别是QKV不同。
      • Q:上一层Decoder Block输出
      • K、V:Encoder端的输出
    • FFN:和Encoder一样。
  • Decoder 每个时间步的输入
    • 训练:上一个时间的输入 + 真实标签
    • 预测:上一个时间输入 + 预测标签
Add & Norm

残差连接&层归一化

  • 对Encoder/Decoder Block,其中的每一个子模块后面都会接 Add&Norm
  • Add 残差连接:让信息传的更深,减少梯度消失问题,增强拟合能力。Resnet-Residual
  • Norm/LayerNorm:数值标准化操作,防止参数过大过小导致的学习异常
位置编码
  • 使用三角函数计算位置编码 (Transformer)
  • 三角函数:周期函数,不受序列长度限制,对不同位置同等重要看待。

对seq2seq的改进

  • 传统seq2seq两大缺陷
    • Encoder把所有信息压缩成一个固定长度的语义向量,代替全部,造成信息损耗
    • 无法并行
  • Transformer的改进
    • Multi-head-attention:解决Encoder固定编码问题,Decoder解码使用attention关注哪些更重要的信息。
    • MHA的并行计算

并行计算能力

1、Transformer vs RNN

  • 传统RNN:需要逐步计算把历史信息通过hidden state传给后面,无法并行
  • Transformer:在self-attention,不论长度多少,都可以一次性计算所有attention,这部分可以并行。

2、Encoder 并行化

  • Emebedding层:无依赖关系,可以并行
  • Self-Attention层
    • 计算attention需要等待其他位置输入准备完成,具有一定依赖性。b比如需要等待词向量计算完成。
    • Attention计算通过矩阵乘法一次性实现所有计算,也属于并行。
  • FFN 层:没有依赖关系,可以并行。

3、Decoder 并行

  • 训练阶段:Self-Attention、Encoder-Decoder Attention、FFN 都可以并行,attention采用矩阵乘法。
    • 训练过程中,输入是一次性的,可一次性给到Decoder端,做子层并行话。例如20个token一起给。
  • 预测阶段每个step依赖上一个step的输出,没有并行
    • 预测过程中,如20个token,需要循环20次。
    • 每次输入 添加1个token,每次输入序列比上一次多1个token。
总访客数:   ·   总访问量:
PLM's Blog @ 2016 - 2025