Transformer 自 2017 年提出后,在自然语言处理(NLP)、计算机视觉(CV)、语音识别等领域引发了范式转变。除了原始 Transformer,以下是一些成熟且广泛应用的 类 Transformer 架构 及其核心改进:
一、NLP 领域的经典扩展
1. BERT(2018)
-
核心改进 :
- 双向预训练:通过掩码语言模型(MLM)和下一句预测(NSP)学习上下文表示。
- 应用:NLP 任务(如文本分类、问答系统)的基础模型。
-
代码示例(Hugging Face) :
python
运行
from transformers import BertTokenizer, BertModel tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') model = BertModel.from_pretrained('bert-base-uncased') inputs = tokenizer("Hello, world!", return_tensors="pt") outputs = model(**inputs)
2. GPT 系列(2018-2023)
- 核心改进 :
- 自回归预训练:单向 Transformer 解码器,适合生成任务(如文本生成、对话)。
- 代表模型:GPT-3、GPT-4、Llama 系列、Chinese-LLaMA 等。
- 特点:参数量巨大(如 GPT-4 达 1.8 万亿),需大规模计算资源。
3. T5(2020)
- 统一框架:将所有 NLP 任务转化为文本到文本的生成问题(如翻译、摘要)。
- 训练方式 :使用 "文本指令"(如
translate English to German: Hello
)引导模型。
4. XLNet(2019)
- 改进:结合自回归和自编码优势,通过排列语言模型(Permutation LM)捕捉双向上下文。
- 优势:在长文本任务(如文档级问答)中表现优于 BERT。
二、计算机视觉(CV)领域的 Transformer
1. ViT(Vision Transformer, 2020)
-
核心思想 :
- 将图像分割为固定大小的 "patch",通过 Transformer 直接处理,替代 CNN。
- 结构:Patch Embedding → Transformer Encoder → 分类头。
-
代码示例(PyTorch) :
python
运行
import torch from torchvision import models model = models.vit_b_16(pretrained=True) outputs = model(torch.randn(1, 3, 224, 224))
2. Swin Transformer(2021)
- 改进 :
- 层次化结构:通过移动窗口(Shifted Window)降低计算复杂度,支持多尺度特征提取。
- 应用:目标检测、语义分割(如 COCO 数据集 SOTA)。
3. DETR(2020)
- 创新点 :
- 将目标检测转化为直接集合预测问题,通过 Transformer 消除传统检测中的锚框和 NMS。
- 结构:CNN 提取特征 → Transformer Encoder-Decoder → 直接预测边界框和类别。
三、多模态与混合架构
1. CLIP(Contrastive Language-Image Pretraining, 2021)
- 核心 :
- 对比学习图像和文本的联合表示空间,支持 "零样本" 图像分类(如输入文本 "一只猫" 识别图片)。
- 应用:图像检索、生成模型(如 DALL-E 的基础)。
2. BART(2020)
- 架构:结合 Transformer 的编码器和解码器,用于文本生成和理解任务。
- 训练:通过 "去噪自编码器"(如随机掩码、打乱句子顺序)学习文本表示。
3. UNetFormer(2022)
- 混合架构:将 Transformer 与 U-Net 结合,用于医学图像分割。
- 改进:通过 Transformer 捕捉全局依赖,同时保留 CNN 的局部特征提取能力。
四、效率优化与轻量级变体
1. Reformer(2020)
- 核心改进 :
- 局部敏感哈希(LSH):将注意力计算复杂度从 O (n²) 降至 O (n log n),适合超长文本。
- 可逆残差层:减少内存占用,支持训练更长序列(如 100k tokens)。
2. Perceiver(2021)
- 架构 :
- 通过 "交叉注意力" 处理任意模态输入(图像、音频、文本),统一多模态建模。
- 特点:参数与输入长度无关,适合处理超长序列或高分辨率数据。
3. EfficientFormer(2022)
- 设计 :
- 结合 CNN 的高效局部特征提取和 Transformer 的全局建模能力,参数量减少 50% 以上。
- 应用:移动端视觉任务(如手机摄像头实时识别)。
五、对比与选择建议
任务类型 | 首选模型 | 理由 |
---|---|---|
文本分类 / 问答 | BERT, RoBERTa, XLNet | 双向预训练,适合理解类任务 |
文本生成 / 对话 | GPT, Llama, T5 | 自回归生成能力强 |
图像分类 / 检测 | ViT, Swin Transformer | 纯 Transformer 或混合架构,精度高 |
多模态任务 | CLIP, Flamingo | 跨模态对齐,支持零样本学习 |
长文本处理 | Reformer, Longformer | 优化注意力机制,降低计算复杂度 |
移动端部署 | MobileViT, EfficientFormer | 轻量级设计,参数量少 |
总结
Transformer 及其变体已成为 AI 各领域的基础架构,选择时需考虑:
- 任务需求:生成任务选 GPT 系列,理解任务选 BERT 系列,多模态选 CLIP。
- 计算资源:大规模模型(如 GPT-4)需云服务支持,轻量级模型适合本地部署。
- 数据规模:长文本任务优先 Reformer/Longformer,短文本可用标准 Transformer。