通俗易懂的 Transformers
Transformers 是 ChatGPT、BERT 和几乎所有现代 AI 模型背后的技术。让我们在不涉及数学的情况下理解它们是什么。核心思想
想象您正在阅读一个句子。要理解每个单词,您需要考虑它周围的所有其他单词。单词”bank”在”river bank”和”savings bank”中的含义是不同的。 Transformers 正是这样做的 - 它们同时查看所有单词以理解上下文。这是它们的超能力。Transformers 之前
旧方式 (RNNs)
以前的 AI 模型像人类一样阅读文本 - 一次一个单词,从左到右:- 慢(无法并行读取单词)
- 健忘(在长文本中丢失上下文)
- 难以训练(信息丢失)
Transformer 革命 (2017)
Transformers 通过同时读取所有单词改变了一切:- 快(并行处理)
- 更好的上下文理解
- 很好地处理长文本
- 更容易训练
Transformers 如何工作
将 transformers 视为具有三个主要组件:1. Attention Mechanism
“attention”部分就像在阅读时突出显示重要单词。 示例句子:“The animal didn’t cross the street because it was too tired” Transformer 找出:- “it”指的是”animal”(不是”street”)
- “tired”与”animal”相关
- 这决定了含义
2. Positional Encoding
由于 transformers 同时看到所有单词,它们需要知道单词顺序。 没有位置信息:- “Dog bites man” = “Man bites dog”(非常不同!)
- Word 1: “Dog” + [position 1]
- Word 2: “bites” + [position 2]
- Word 3: “man” + [position 3]
3. Feed-Forward Networks
在理解关系(attention)之后,模型通过神经网络处理这些信息以:- 提取含义
- 做出预测
- 生成响应
Encoder vs Decoder
Transformers 有三种类型:Encoder-Only (BERT)
功能:深入理解文本 像:仔细分析每个单词的细心读者 适合:- Classification
- 理解上下文
- 提取信息
- 情感分析
Decoder-Only (GPT)
功能:生成文本 像:逐字创建内容的作家 适合:- 文本生成
- 聊天机器人
- 代码补全
- 创意写作
Encoder-Decoder (T5)
功能:转换文本 像:阅读一种语言并编写另一种语言的翻译器 适合:- 翻译
- 摘要
- 问答
- 文本转换
Self-Attention 详解
Transformers 的关键创新是”self-attention” - 将每个单词与所有其他单词关联的能力。简单示例
句子:“The cat sat on the mat” Self-attention 创建一个网格,显示每个单词与其他单词的关系程度:Multi-Head Attention
Transformers 使用多个 attention “heads” - 就像有多个专家,每个专家都在寻找不同的模式:- Head 1:寻找语法关系
- Head 2:寻找语义含义
- Head 3:寻找实体关系
- Head 4:寻找时间连接
- (还有更多…)
Layers and Depth
Transformers 堆叠多个层,每一层都增加更多理解: Layer 1:基本模式(语法、简单关系) Layer 2:短语和简单概念 Layer 3:句子和上下文 Layer 4:段落和主题 … Layer N:深入、抽象的理解 更多层 = 更深入的理解(但也需要更多计算)为什么 Transformers 占主导地位
Parallelization
旧模型:顺序处理单词(慢) Transformers:同时处理所有单词(快) 这使得在现代 GPU 上训练快得多。Long-Range Dependencies
可以连接长距离的信息:- 文档的开头和结尾
- 被段落分隔的问题和答案
- 来自更早的上下文
Transfer Learning
在通用文本上训练的 Transformers 可以针对特定任务进行微调:- 在 Wikipedia 上预训练(通用知识)
- 在医学文本上微调(专业化)
Scalability
Transformers 随着以下因素变得更好:- 更多数据
- 更多参数
- 更多计算
常见的 Transformer 模型
BERT 系列
- BERT:双向理解
- RoBERTa:稳健优化的 BERT
- DistilBERT:更小、更快的 BERT
- ALBERT:更轻的 BERT
GPT 系列
- GPT-2:早期文本生成
- GPT-3:大规模生成
- GPT-4:多模态能力
T5/BART 系列
- T5:文本到文本统一框架
- BART:去噪自编码器
- mT5:多语言 T5
专门化
- CLIP:视觉和语言
- Whisper:语音识别
- LayoutLM:文档理解
Transformer 大小
| 大小 | 参数 | 层数 | 用例 |
|---|---|---|---|
| Tiny | 100M 以下 | 4-6 | 移动、边缘设备 |
| Small | 100-500M | 6-12 | 标准应用 |
| Base | 500M-1B | 12-24 | 生产系统 |
| Large | 1B-10B | 24-48 | 高性能 |
| XL | 10B+ | 48+ | 最先进 |
计算要求
训练
- 小模型:在单个 GPU 上数小时
- 中等模型:在多个 GPU 上数天
- 大模型:在 GPU 集群上数周
推理
- 小模型:CPU 可用
- 中等模型:单个 GPU
- 大模型:多个 GPU
内存公式(粗略)
- Parameters × 4 bytes = 模型大小
- 训练时增加 2-3 倍(gradients、optimizer)
- 示例:1B 参数 ≈ 4GB 模型,训练时 12GB
优化和变体
Flash Attention
通过重新组织内存访问使 attention 计算快得多。Sparse Attention
只关注重要的 tokens,而不是所有 tokens。Efficient Transformers
- Linformer:线性复杂度 attention
- Performer:使用随机特征
- Reformer:可逆层
Mixture of Experts (MoE)
为不同的输入使用不同的”expert”网络,只激活需要的部分。限制
Quadratic Complexity
Attention 成本随序列长度呈二次增长:- 100 tokens: 10,000 次比较
- 1,000 tokens: 1,000,000 次比较
Context Windows
有限的输入长度:- BERT: 512 tokens
- GPT-3: 4,096 tokens
- GPT-4: 32,000 tokens
- Claude: 100,000+ tokens
Computational Cost
大型模型的训练和运行成本很高。Lack of True Understanding
尽管能力令人印象深刻,transformers 并不真正”理解” - 它们找到模式。未来方向
效率改进
- 更好的 attention 机制
- 稀疏模型
- Quantization
- Distillation
更长上下文
- 扩展 context windows
- 高效的长距离 attention
- 分层处理
Multimodal
- 组合文本、图像、音频、视频
- 统一架构
- 跨模态理解
实际影响
对于训练
- 从预训练的 transformers 开始
- 在您的特定任务上微调
- 为您的数据使用适当的模型大小
对于部署
- 考虑用于生产的蒸馏版本
- 使用 quantization 减少大小
- 实现缓存以提高效率
对于选择
- Encoder 用于理解任务
- Decoder 用于生成任务
- Encoder-decoder 用于转换任务