乐闻世界logo
搜索文章和话题

Transformer 架构的核心原理是什么?

2月18日 17:08

Transformer 是一种基于自注意力机制的深度学习架构,由 Google 在 2017 年提出,彻底改变了 NLP 领域。

核心组件

1. 自注意力机制(Self-Attention)

自注意力机制允许模型在处理每个词时,同时关注输入序列中的所有其他词,从而捕捉长距离依赖关系。

计算步骤:

  • 生成 Query(Q)、Key(K)、Value(V)三个向量
  • 计算注意力分数:Attention(Q, K, V) = softmax(QK^T / √d_k)V
  • d_k 是缩放因子,防止梯度消失

多头注意力(Multi-Head Attention):

  • 将 Q、K、V 分割成多个头
  • 每个头独立学习不同的注意力模式
  • 最后将所有头的输出拼接并通过线性变换

2. 位置编码(Positional Encoding)

由于 Transformer 不使用循环结构,无法捕捉序列顺序信息,因此需要显式注入位置信息。

方法:

  • 使用正弦和余弦函数生成位置编码
  • 位置编码与词嵌入相加作为最终输入
  • 允许模型学习相对位置关系

3. 编码器-解码器结构

编码器:

  • 由多个相同的层堆叠而成
  • 每层包含多头自注意力和前馈神经网络
  • 使用残差连接和层归一化

解码器:

  • 包含编码器-解码器注意力层
  • 掩码自注意力防止看到未来信息
  • 生成序列时使用自回归方式

关键优势

1. 并行计算

  • 不像 RNN 需要按顺序处理,可以并行计算
  • 大幅提升训练和推理速度

2. 长距离依赖

  • 自注意力机制直接连接任意两个位置
  • 不受序列长度限制

3. 可解释性

  • 注意力权重可视化展示模型关注点
  • 便于理解和调试

应用场景

  • 机器翻译
  • 文本摘要
  • 问答系统
  • 语言模型预训练(BERT、GPT)
  • 图像处理(Vision Transformer)

变体和改进

BERT(Bidirectional Encoder Representations from Transformers)

  • 仅使用编码器部分
  • 双向上下文理解
  • 掩码语言模型预训练

GPT(Generative Pre-trained Transformer)

  • 仅使用解码器部分
  • 自回归生成
  • 大规模预训练

T5(Text-to-Text Transfer Transformer)

  • 统一所有 NLP 任务为文本到文本格式
  • 编码器-解码器架构

实践要点

超参数调优

  • 注意力头数:通常 8-16
  • 隐藏层维度:512-2048
  • 前馈网络维度:隐藏层维度的 4 倍
  • 层数:6-24 层

优化技巧

  • 学习率预热(Warm-up)
  • 标签平滑
  • Dropout 正则化
  • 梯度裁剪

计算优化

  • 混合精度训练
  • 梯度累积
  • 模型并行化
  • Flash Attention
标签:NLP