部分内容可能来自网络或者由AI生成。
如有雷同,纯属巧合,仅供学习参考之用。

Transformer 架构详解:从原理到多模态革命

Transformer 是深度学习领域最具影响力的架构之一,自 2017 年提出以来,不仅彻底改变了自然语言处理(NLP),还迅速扩展到计算机视觉(CV)、语音、多模态等广泛领域。GPT、BERT、ViT 等大模型均以 Transformer 为基石。本文系统解析其核心机制、优势及演进。


一、为什么需要 Transformer?—— Seq2Seq 任务的挑战

1. 什么是 Seq2Seq?

序列到序列(Sequence-to-Sequence, Seq2Seq) 是一类将输入序列映射为输出序列的任务,不要求等长:

  • 机器翻译"Hello world""你好世界"

  • 文本摘要:长文章 → 简短摘要

  • 语音识别:音频波形 → 文字

2. 经典 Seq2Seq 框架

编码器(Encoder) + 解码器(Decoder) 构成:

  • 编码器:将输入序列压缩为上下文向量(Context Vector)

  • 解码器:基于该向量自回归(Autoregressive) 生成输出序列

📌 自回归:每一步生成依赖于之前所有已生成内容 $ P(y) = P(y_1) \cdot P(y_2|y_1) \cdot P(y_3|y_1,y_2) \cdots $


二、RNN/LSTM 的困境

在 Transformer 之前,Seq2Seq 主要依赖 RNN 及其变体(LSTM/GRU),但存在三大瓶颈:

问题原因后果
梯度消失/爆炸反向传播中链式求导导致梯度指数衰减或激增无法有效训练长序列
长距离依赖丢失早期信息在长序列中被“遗忘”如句子开头“北京”在结尾处无法被关联
串行计算每个时间步必须等待前一步完成无法并行化,训练慢,GPU 利用率低

💡 LSTM/GRU 虽缓解梯度问题,但仍无法解决串行计算与长程建模瓶颈


三、Transformer 的核心创新

1. 整体架构:Encoder-Decoder 框架

Input Sequence → [Encoder] → Context Representation → [Decoder] → Output Sequence
  • Encoder:6 层堆叠(原始论文),每层含 多头自注意力 + 前馈网络

  • Decoder:6 层堆叠,每层含 掩码自注意力 + 跨注意力 + 前馈网络

关键突破完全摒弃循环结构,实现全并行计算


2. 位置编码(Positional Encoding)

问题:自注意力对输入顺序不敏感("猫追狗""狗追猫" 会被视为相同)

解决方案:将位置信息注入词嵌入(Word Embedding)

  • 公式(正弦/余弦函数):

    PE_(pos,2i)=sin⁡(pos100002i/d),PE_(pos,2i+1)=cos⁡(pos100002i/d)PE\_{(pos, 2i)} = \sin\left(\frac{pos}{10000^{2i/d}}\right), \quad PE\_{(pos, 2i+1)} = \cos\left(\frac{pos}{10000^{2i/d}}\right)PE_(pos,2i)=sin(100002i/dpos),PE_(pos,2i+1)=cos(100002i/dpos)

  • 特点

    • 每个位置有唯一编码

    • 支持任意长度序列(相对位置可推断)

    • 与词嵌入相加后输入网络

🧠 效果:模型既能理解词义,又能感知词序。


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

核心思想

让序列中每个 token 能“关注”其他所有 token,动态加权聚合信息。

QKV 机制(Query-Key-Value)

对每个输入 token $ x_i $,通过线性变换生成三组向量:

  • Query (Q):当前 token 的“查询”向量(“我想知道什么?”)

  • Key (K):其他 token 的“标签”向量(“我能提供什么信息?”)

  • Value (V):其他 token 的“内容”向量(“实际语义是什么?”)

计算步骤

  1. 计算注意力分数:$ \text{Attention}(Q,K,V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right) V $

  2. 分数表示 token 间相关性(如“它” → “猫”)

  3. 加权求和得到上下文感知表示

🔍 示例: 在句子 "The animal didn't cross the street because it was too tired." 中, “it” 的注意力会高亮 “animal”,而非 “street”。


4. 多头注意力(Multi-Head Attention)

动机:单一注意力头可能只捕获一种关系(如语法),而语言包含多种模式(语义、指代、情感等)

实现

  1. 将 Q、K、V 投影到 h 个子空间(如 h=8)

  2. 每个头独立计算注意力:$ \text{head}_i = \text{Attention}(QW_i^Q, KW_i^K, VW_i^V) $

  3. 拼接所有头输出:$ \text{MultiHead} = \text{Concat}(\text{head}_1, …, \text{head}_h) W^O $

优势

  • ✅ 捕获多样化语义关系

  • 并行计算,提升效率

  • ✅ 增强模型鲁棒性


5. 解码器中的特殊机制

机制作用实现
掩码自注意力(Masked Self-Attention)防止解码器“偷看”未来 token在 softmax 前将未来位置设为 -∞
跨注意力(Cross-Attention)让解码器关注编码器输出Q 来自解码器,K/V 来自编码器

🛑 掩码示例: 生成第 3 个词时,只能看到 [y1, y2, -∞, -∞, ...]


四、Transformer 的核心优势

维度RNN/LSTMTransformer
并行性❌ 串行计算✅ 全序列并行
长程依赖⚠️ 有限记忆✅ 全局直接连接
特征表示单一隐藏状态✅ 多头注意力 → 多视角建模
训练速度慢(GPU 利用率低)快(大规模并行)
可扩展性难以扩展到超长序列支持长上下文(如 32K tokens)

🚀 结果:训练更快、性能更强、更易扩展 → 成为大模型基础。


五、主流 Transformer 变体与应用

1. 架构分类

类型结构代表模型应用场景
Encoder-Only仅编码器BERT, RoBERTa文本分类、问答、NER
Decoder-Only仅解码器GPT, Llama, DeepSeek文本生成、对话、代码
Encoder-Decoder完整结构T5, BART, Transformer机器翻译、摘要、复述

2. 跨模态扩展

领域模型创新
计算机视觉Vision Transformer (ViT)将图像分块为序列,直接套用 Transformer
多模态CLIP, Flamingo, LLaVA联合编码图像+文本,实现图文理解与生成
语音Whisper, Wav2Vec 2.0将音频转为 token 序列,用 Transformer 建模

🌐 ViT 的意义:证明 CNN 并非视觉任务必需,Transformer 可统一多模态。


六、典型模型对比

模型架构预训练目标特点
BERTEncoder-Only掩码语言建模(MLM) + 下一句预测双向上下文,适合理解任务
GPTDecoder-Only自回归语言建模单向生成,适合创作与对话
T5Encoder-Decoder文本到文本(所有任务统一为 Seq2Seq)通用性强,支持多任务
ViTEncoder-Only图像分类(ImageNet)无卷积,纯 Transformer 处理图像

💡 选择建议


七、总结:Transformer 为何如此全能?

  1. 通用序列建模范式:任何可序列化的数据(文本、图像块、音频帧)均可处理

  2. 全局依赖建模:自注意力打破局部限制,捕捉任意距离关系

  3. 高度并行化:充分利用现代硬件(GPU/TPU),支持大规模训练

  4. 可扩展性强:通过增加层数、头数、维度,轻松构建大模型

  5. 统一架构:一套框架通吃 NLP、CV、语音、多模态

更多推荐