Transformer架构概述

Transformer是深度学习领域的里程碑架构,2017年由Vaswani等人提出。它完全基于注意力机制,摒弃了传统的RNN和CNN结构。

共 3 篇文章·阅读时间:约35分钟

01背景与动机

Transformer的提出解决了传统序列建模方法的根本问题,开启了深度学习的新时代。

序列建模的演进

在Transformer出现之前,序列建模主要依赖RNN及其变体(LSTM、GRU):

RNN的局限性

  • 顺序计算:无法并行化,训练速度慢
  • 梯度消失/爆炸:难以处理长序列
  • 长距离依赖:虽然LSTM有所改善,但仍不理想
  • 信息瓶颈:压缩到固定大小的隐状态

CNN试图解决部分问题

  • 可以并行计算
  • 但感受野有限,需要多层堆叠才能捕获长距离依赖

Transformer的提出

2017年,Google的论文《Attention Is All You Need》提出了Transformer, 完全基于注意力机制,无需RNN或CNN。

Transformer的核心创新

  • 自注意力机制:直接建模任意位置之间的关系
  • 并行计算:摆脱序列依赖,大幅提升训练效率
  • 可扩展性:架构简单,易于扩展到大规模
  • 迁移学习:预训练+微调范式成为可能

02编码器架构

Transformer编码器将输入序列转换为连续的表示,适合理解类任务如文本分类、命名实体识别。

编码器结构

编码器由N个相同的层堆叠而成,每层包含两个子层:

编码器层结构

  • 多头自注意力层:捕捉输入序列内部的关系
  • 前馈神经网络层:逐位置非线性变换
  • 残差连接:每个子层都有残差连接
  • 层归一化:每个子层输出都进行归一化

公式

LayerNorm(x + MultiHeadAttention(x))

LayerNorm(x + FeedForward(x))

编码器工作流程

Step 1: 输入嵌入

输入词元经过Embedding层转换为向量,加上位置编码。

Step 2: 多头自注意力

每个位置 attend 到所有位置,捕捉词与词之间的关系。

Step 3: 前馈网络

对每个位置独立应用相同的两层全连接网络。

Step 4: 堆叠

重复N次(原始论文N=6),每一层的输出作为下一层的输入。

03解码器架构

解码器用于生成序列,采用自回归方式逐个预测输出词元,是GPT等语言模型的基础。

解码器结构

解码器同样由N个相同的层堆叠而成,但每层包含三个子层:

解码器层结构

  • 掩码多头自注意力:防止看到未来位置
  • 交叉注意力:Query来自解码器,Key/Value来自编码器
  • 前馈神经网络:与编码器相同
  • 残差连接 + 层归一化

与编码器的区别

特性编码器解码器
自注意力完全注意力掩码注意力
交叉注意力
典型应用BERT、RoBERTaGPT系列
任务类型理解任务生成任务

掩码机制(Masks)

  • Padding Mask:忽略padding位置
  • Sequence Mask:防止看到未来词元

解码器在训练时使用掩码,确保每个位置只能看到当前位置及之前的输出。

----