1. Transformer概述

1.1. 背景

  • 提出时间:2017年,Google团队发表论文《Attention Is All You Need》

  • 替代传统模型:LSTM、GRU、RNN、CNN

1.2. 优势

  • 能捕捉长距离语义关联

  • 支持并行训练,效率更高

2. 整体架构

2.1. 输入部分

2.1.1. 输入组成
  • 源文本嵌入 + 位置编码

  • 目标文本嵌入 + 位置编码

2.1.2. 词嵌入流程
  1. 将文本切分为单词(token)

  2. 对齐不同长度的句子(裁剪或填充)

  3. 使用独热向量表示

  4. 映射为低维稠密向量(如Word2Vec)

2.1.3. 位置编码(Positional Encoding)
  • 问题:同一单词在不同位置含义不同

  • 解决方案:正弦位置编码

编码公式:

  • PE(pos, 2i) = \sin\left(\frac{pos}{10000^{2i/d}}\right)

  • PE(pos, 2i+1) = \cos\left(\frac{pos}{10000^{2i/d}}\right)

2.2. 编码器部分

2.2.1. 结构
  • 由 N 个编码器层堆叠(原论文中 N=6)

  • 每层包含两个子层:

    1. 多头自注意力 + 残差连接 + 层归一化

    2. 前馈全连接网络 + 残差连接 + 层归一化

2.2.2. 自注意力机制
  • 目标:根据上下文动态调整词的表示

计算步骤:

  1. 从输入向量生成 Q、K、V 矩阵

  2. 计算得分:\frac{QK^T}{\sqrt{d_k}}

  3. Softmax 归一化

  4. 加权求和:\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V

2.2.3. 多头注意力
  • 使用多组 Q、K、V 矩阵,每组独立计算

  • 拼接所有头的输出,再通过权重矩阵W^O融合

2.2.4. 残差连接+层归一化
  • 公式:LayerNorm(X + Attention(X))

  • 加速收敛,稳定训练

2.2.5. 前馈网络(FeedForward)
  • 两层全连接:\max(0, XW_1 + b_1)W_2 + b_2

  • 输出维度与输入相同

2.3. 解码器部分

2.3.1. 结构
  • 由 N 个解码器层堆叠

  • 每层包含三个子层:

    1. 带掩码的多头自注意力(Masked Self-Attention)

    2. 编码器-解码器注意力(Cross-Attention)

    3. 前馈全连接网络

2.3.2. 掩码操作(Masking)
  • 保证每个词只能看到它之前的词(防止未来信息泄露)

  • 使用 masked_fill 将未来位置设为负无穷

2.3.3. 交叉注意力
  • Q 来自解码器第一层输出

  • K、V 来自编码器输出

2.4. 输出部分

2.4.1. 组成
  • 线性层:将向量映射到词汇表大小

  • Softmax 层:将输出转为概率分布

2.4.2. 示例任务
  • 机器翻译:逐词预测目标语言

3. 网络训练流程

3.1. 训练步骤(以翻译为例)

  1. 输入源语言句子(如中文)

  2. 编码器编码

  3. 解码器输入开始符,逐步预测目标词

  4. 计算预测与真实值的交叉熵损失

  5. 误差反向传播,更新参数

3.2. 训练数据

  • WMT2014 英-德:450万句子对,37000 token词汇

  • WMT2014 英-法:3600万句子对,32000 token词汇

3.3 硬件配置

  • 8个 NVIDIA P100 GPU

  • 基础模型:10万步,12小时

  • 大模型:30万步,3.5天

4. 训练结果(BLEU分数)

模型 EN-DE EN-FR
Transformer (base) 27.3 38.1
Transformer (big) 28.4 41.0

5. 总结

  • Transformer 是 NLP 领域的里程碑模型

  • 核心是注意力机制(Q、K、V)

  • 广泛应用于机器翻译、文本生成、视觉大模型等领域

更多推荐