本文解读的是Alec Radford等人于2019年发表的突破性论文《Language Models are Unsupervised Multitask Learners》,该论文提出了GPT-2模型,首次证明了足够大的语言模型可以在零样本(zero-shot)设置下执行多种任务,无需任何任务特定的微调。GPT-2的核心发现是:规模本身就是一种能力——当模型参数从1亿扩展到15亿时,涌现出了令人惊讶的零样本学习能力,这一发现为GPT-3的成功和ChatGPT的诞生奠定了关键基础。
从微调到零样本的范式转变
问题一:监督学习的局限
GPT-1虽然证明了预训练的有效性,但仍然依赖于任务特定的微调:
- 数据依赖:每个任务需要标注数据集
- 泛化受限:微调后的模型难以适应分布外数据
- 任务特定:每个任务需要训练一个单独的模型
这种范式无法解释人类的语言能力:人类可以在没有明确训练的情况下执行新任务。
问题二:任务表示的统一
传统NLP将每个任务独立建模,使用不同的输入格式和输出层。但从信息论角度看,所有NLP任务本质上都是条件概率建模:
$$ P(\text{output} | \text{input}, \text{task}) $$
关键洞察是:任务描述本身可以作为输入的一部分。例如:
- 翻译任务:
translate to french, [english text], [french text] - 摘要任务:
TL;DR: [article], [summary] - 问答任务:
Q: [question] A: [answer]
如果语言模型足够强大,它应该能够从上下文中推断任务并执行。
问题三:规模假设
GPT-2的核心假设是:大规模语言模型在足够多样化的数据上训练,将隐式地学习多种任务。
直觉来源于互联网文本的多样性:网页包含各种格式的内容——问答对、翻译样本、摘要、对话等。如果模型能够学习这些自然出现的模式,它就应该能够执行相应的任务。
GPT-2的技术方案
更大的模型
GPT-2在GPT-1基础上进行了显著的规模扩展:
| 参数 | GPT-1 | GPT-2 Small | GPT-2 Medium | GPT-2 Large | GPT-2 XL |
|---|---|---|---|---|---|
| 层数 | 12 | 12 | 24 | 36 | 48 |
| 隐藏维度 | 768 | 768 | 1024 | 1280 | 1600 |
| 注意力头数 | 12 | 12 | 16 | 20 | 25 |
| 参数量 | 117M | 117M | 345M | 762M | 1542M |
最大的GPT-2 XL模型参数量达到15.42亿,是GPT-1的13倍。
更大的数据集
GPT-2使用了专门构建的WebText数据集:
数据收集:
- 从Reddit抓取高质量链接(至少3个karma)
- 排除维基百科(避免与测试集重叠)
- 总计800万篇文档,40GB文本
数据质量:通过社区投票机制(Reddit karma)过滤低质量内容,确保数据的多样性和质量。
Byte Pair Encoding改进
GPT-2使用了改进的BPE(Byte Pair Encoding)分词:
传统BPE的问题:
- 词表可能包含多个版本的同一词(
dog、dog.、dog!) - 浪费词表容量
改进方案:
- 在字节级别而非Unicode级别操作
- 防止BPE合并不同字符类别(字母、数字、标点)
这使得GPT-2可以表示任何文本,同时保持合理的词表大小(50,257个token)。
架构改进
GPT-2在架构上做了一些细微调整:
- Layer Normalization位置:移到每个子层的输入之前(Pre-LN),而非之后(Post-LN)
$$ \text{Pre-LN: } h = x + \text{Sublayer}(\text{LayerNorm}(x)) $$
-
残差连接缩放:在残差路径上添加 $1/\sqrt{N}$ 缩放因子,$N$ 是层数
-
词表大小:扩展到50,257
-
上下文长度:从512扩展到1024
零样本学习能力
语言建模
在标准语言建模基准上,GPT-2取得了SOTA结果:
| 数据集 | 此前SOTA | GPT-2 1.5B |
|---|---|---|
| Penn Treebank | 35.76 PPL | 35.76 PPL |
| WikiText-103 | 18.3 PPL | 17.48 PPL |
| LAMBADA | 99.8 PPL | 8.6 PPL |
| 1BW | 23.7 PPL | 42.16 PPL |
在需要长距离依赖的LAMBADA数据集上,GPT-2表现尤为出色。
阅读理解(零样本)
在CoQA(对话式问答)数据集上:
| 模型 | F1 |
|---|---|
| 人类 | 89.4 |
| BERT(微调) | 82.1 |
| GPT-2(零样本) | 55 |
虽然不及微调模型,但GPT-2无需任何标注数据就达到了55 F1——这是零样本学习能力的有力证明。
翻译(零样本)
在WMT'14法英翻译上:
| 模型 | BLEU |
|---|---|
| 监督SOTA | 45.6 |
| GPT-2(零样本) | 11.5 |
通过在输入前添加= french提示,GPT-2可以执行翻译任务。虽然质量不高,但证明了模型确实学会了翻译的概念。
摘要(零样本)
在CNN/Daily Mail摘要任务上:
| 模型 | ROUGE-1 | ROUGE-2 | ROUGE-L |
|---|---|---|---|
| GPT-2(TL;DR:提示) | 21.58 | 4.03 | 19.47 |
通过在文章后添加TL;DR:提示,GPT-2可以生成摘要。
规模与性能的关系
一个关键发现是:零样本性能随模型规模单调提升
| 模型大小 | LAMBADA准确率 | CoQA F1 |
|---|---|---|
| 117M | 19.3% | 34.8 |
| 345M | 31.6% | 42.5 |
| 762M | 40.3% | 49.2 |
| 1542M | 52.7% | 55.0 |
这一发现预示了后来的Scaling Laws研究。
GPT-2的深远影响
零样本学习范式
GPT-2证明了:语言模型可以作为通用任务求解器,无需任务特定的微调。
这一发现改变了NLP研究的方向:
- 任务表示:任务可以通过自然语言描述
- 提示工程:prompt设计成为新的研究方向
- 规模优先:模型规模成为关键因素
对安全的关注
GPT-2因其强大的文本生成能力而引发安全担忧。OpenAI最初只发布了小型版本,逐步释放更大模型。
担忧包括:
- 虚假信息生成:自动生成令人信服的假新闻
- 垃圾内容:大规模生成评论、帖子
- 身份冒充:模仿特定个人的写作风格
这标志着AI伦理开始受到广泛关注。
通向GPT-3的桥梁
GPT-2的关键发现为GPT-3铺平道路:
- 规模效应:更大的模型 = 更好的零样本能力
- 任务统一:任务可以通过prompt表示
- 数据质量:高质量互联网数据的重要性
GPT-3将这些洞察发挥到极致,将参数量扩展到1750亿。
技术分析:为什么规模有效?
隐式多任务学习
互联网文本天然包含多种"任务"样本:
# 问答格式
Q: What is the capital of France?
A: Paris
# 翻译格式
English: Hello, how are you?
French: Bonjour, comment allez-vous?
# 摘要格式
[长文章]
TL;DR: [摘要]
当模型预测下一个token时,它必须学习这些模式。规模越大,模型能够记忆和泛化的模式越多。
上下文压缩假设
一个理论解释是:语言模型学习了数据的压缩表示。为了准确预测下一个token,模型必须理解:
- 语法规则
- 语义关系
- 世界知识
- 任务结构
这些知识被压缩到模型参数中,在推理时可以被提取和应用。
涌现能力的雏形
GPT-2展示了涌现能力的早期迹象:某些能力只在模型达到一定规模后才出现。
| 能力 | 117M | 345M | 762M | 1542M |
|---|---|---|---|---|
| 基本语言生成 | ✓ | ✓ | ✓ | ✓ |
| 零样本问答 | ✗ | 弱 | 中 | 强 |
| 零样本翻译 | ✗ | ✗ | 弱 | 中 |
这种规模依赖的能力涌现在GPT-3中得到更充分的展示。
阅读研究论文的时间线计划
本文在技术时间线中的位置
Word2Vec(2013) → Seq2Seq(2014) → Attention(2015) → Transformer(2017)
→ GPT-1(2018) → 【当前位置】GPT-2(2019) → Scaling Laws(2020) → GPT-3(2020) → InstructGPT(2022) → ChatGPT
前置知识
在阅读本文之前,建议了解:
- 【ChatGPT时刻06】GPT-1:预训练+微调范式的建立
- 【ChatGPT时刻04】Transformer:理解架构基础
- BPE分词原理
后续论文推荐
完成本文后,建议按顺序阅读:
- 【ChatGPT时刻08】Scaling Laws(下一篇):规模与性能的数学关系
- 【ChatGPT时刻09】GPT-3:上下文学习与涌现能力
- 【ChatGPT时刻10】InstructGPT与RLHF:对齐人类意图
完整技术路线图
规模效应的发现
│
GPT-1 ──────────► GPT-2 ──────────► Scaling Laws ──────────► GPT-3
(2018) (2019) (2020) (2020)
117M 1.5B 理论分析 175B
│ │ │ │
└── 微调范式 └── 零样本学习 └── 幂律规律 └── 上下文学习
任务特定 规模效应 计算最优 涌现能力
数据效率 few-shot
│
▼
ChatGPT
参考文献
- Radford, A., Wu, J., Child, R., Luan, D., Amodei, D., & Sutskever, I. (2019). Language Models are Unsupervised Multitask Learners. OpenAI.
- Radford, A., et al. (2018). Improving Language Understanding by Generative Pre-Training (GPT-1). OpenAI.
- Sennrich, R., Haddow, B., & Birch, A. (2016). Neural Machine Translation of Rare Words with Subword Units (BPE). ACL.
- Vaswani, A., et al. (2017). Attention is All You Need. NeurIPS.
- Brown, T., et al. (2020). Language Models are Few-Shot Learners (GPT-3). NeurIPS.