本文解读的是Alec Radford等人于2018年发表的里程碑论文《Improving Language Understanding by Generative Pre-Training》,该论文提出了GPT(Generative Pre-Training)模型,首次将大规模无监督预训练与有监督微调相结合,在多个NLP基准上取得了突破性成绩。GPT-1是ChatGPT的直系祖先——它确立了"预训练+微调"的范式,证明了通用语言表示可以从海量无标注文本中学习,为后续GPT-2、GPT-3乃至ChatGPT奠定了架构和方法论基础。


NLP的迁移学习困境

问题一:标注数据的稀缺性

深度学习在NLP中的应用面临一个根本挑战:高质量标注数据稀缺。

与计算机视觉不同,NLP任务的标注需要语言专业知识,成本高昂:

  • 情感分析:需要理解语言的细微差别
  • 问答系统:需要专业领域知识
  • 文本蕴含:需要逻辑推理能力

大多数NLP数据集仅有数千到数万条标注样本,远不足以从头训练大型神经网络。

问题二:预训练方法的局限

在GPT之前,NLP领域的预训练主要有两种方式:

词向量预训练(如Word2Vec、GloVe):

  • 只提供词级别的表示
  • 无法捕捉上下文信息
  • 无法处理多义词

语言模型预训练(如ELMo):

  • 使用双向LSTM
  • 表示能力受限于LSTM架构
  • 预训练和微调架构不一致

这些方法虽然有效,但都存在明显局限:预训练的知识无法充分迁移到下游任务

问题三:无监督学习的挑战

无监督学习的核心挑战是找到合适的目标函数。语言建模是一个自然的选择:

$$ \mathcal{L}{\text{LM}} = \sum{i} \log P(u_i | u_1, \ldots, u_{i-1}; \Theta) $$

但如何设计一个既能充分利用预训练知识、又能适应多种下游任务的框架?


GPT的核心设计

Transformer解码器架构

GPT采用Transformer的解码器部分作为基础架构,使用单向自注意力(因果注意力):

$$ \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^\top}{\sqrt{d_k}} + M\right)V $$

其中 $M$ 是掩码矩阵,确保位置 $i$ 只能关注位置 $j \leq i$:

$$ M_{ij} = \begin{cases} 0 & \text{if } j \leq i \ -\infty & \text{if } j > i \end{cases} $$

GPT-1的架构参数:

参数
层数 12
隐藏维度 768
注意力头数 12
前馈网络维度 3072
最大序列长度 512
参数量 117M

两阶段训练框架

GPT的核心创新是两阶段训练框架

阶段一:无监督预训练

在大规模无标注语料上训练语言模型:

$$ \mathcal{L}1(U) = \sum{i} \log P(u_i | u_{i-k}, \ldots, u_{i-1}; \Theta) $$

其中 $U = {u_1, \ldots, u_n}$ 是无标注语料,$k$ 是上下文窗口大小。

预训练数据:BooksCorpus,包含7000+本未发布的书籍,约8亿词。

阶段二:有监督微调

在标注数据上微调预训练模型:

$$ \mathcal{L}2(C) = \sum{(x, y) \in C} \log P(y | x^1, \ldots, x^m) $$

其中 $C$ 是标注数据集,$x^i$ 是输入token,$y$ 是标签。

辅助语言模型损失:微调时添加语言模型损失作为正则化:

$$ \mathcal{L}_3(C) = \mathcal{L}_2(C) + \lambda \cdot \mathcal{L}_1(C) $$

实验表明,辅助损失能够:

  • 提升泛化能力
  • 加速收敛
  • 提供额外监督信号

任务特定输入转换

GPT的另一个关键创新是统一的输入格式,使得同一个模型可以处理多种任务:

分类任务

[Start] 文本 [Extract] → 分类标签

文本蕴含

[Start] 前提 [Delim] 假设 [Extract] → 蕴含/矛盾/中立

问答/阅读理解

[Start] 文档 [Delim] 问题 [Delim] 答案 [Extract] → 答案概率

相似度

[Start] 文本1 [Delim] 文本2 [Extract] +
[Start] 文本2 [Delim] 文本1 [Extract] → 相似度分数

这种设计使得微调时只需最小的架构改动——仅添加一个线性分类层。


实验结果与分析

自然语言推理

在SNLI(Stanford Natural Language Inference)任务上:

模型 准确率
ESIM + ELMo 88.7%
GPT 89.9%

GPT在文本蕴含任务上超越了此前最优模型。

问答与常识推理

在RACE(阅读理解)和Story Cloze(常识推理)任务上:

任务 此前SOTA GPT 提升
RACE-Middle 59.2% 62.9% +3.7%
RACE-High 44.2% 57.4% +13.2%
Story Cloze 77.6% 86.5% +8.9%

GPT在需要推理能力的任务上取得了显著提升。

语义相似度

在STS-B(语义文本相似度)任务上:

模型 Pearson相关系数
此前SOTA 81.0
GPT 82.3

消融实验

论文进行了详细的消融实验:

设置 平均性能
GPT完整版 68.5%
无预训练 59.1%
无辅助损失 67.8%
LSTM代替Transformer 66.4%

关键发现:

  • 预训练贡献约9%的性能提升
  • Transformer优于LSTM约2%
  • 辅助损失贡献约0.7%

预训练的迁移能力

随着预训练轮数增加,下游任务性能持续提升:

预训练数据量 零样本性能
25% 58.2%
50% 63.1%
75% 66.4%
100% 68.5%

这表明预训练数据规模与下游性能正相关——一个在后续GPT-2、GPT-3中得到充分验证的规律。


GPT-1的创新与局限

核心创新

  1. 预训练+微调范式:确立了NLP迁移学习的标准范式,后来被BERT、T5等模型广泛采用

  2. Transformer解码器:证明了单向Transformer足以学习强大的语言表示

  3. 统一输入格式:同一模型可以处理多种任务,为后来的prompt engineering奠定基础

  4. 辅助语言模型损失:微调时保持预训练目标,提升泛化能力

局限性

  1. 单向注意力:无法利用双向上下文,限制了表示能力

  2. 规模较小:117M参数在今天看来很小

  3. 依赖微调:每个下游任务都需要微调,无法零样本迁移

这些局限性推动了后续研究:

  • BERT(2018):双向预训练
  • GPT-2(2019):更大规模,零样本能力
  • GPT-3(2020):1750亿参数,上下文学习

GPT-1的历史地位

从预训练到ChatGPT的演进

GPT-1确立的设计选择在后续所有GPT模型中得到延续:

设计选择 GPT-1 GPT-2 GPT-3 ChatGPT
架构 Transformer解码器
预训练目标 语言模型
单向注意力
参数量 117M 1.5B 175B ~175B

与BERT的对比

GPT-1和BERT是2018年同时出现的两种预训练范式:

特性 GPT-1 BERT
注意力方向 单向 双向
预训练目标 语言模型 掩码语言模型
适合任务 生成 理解
后续发展 GPT-2/3/4, ChatGPT RoBERTa, ALBERT

两种范式都取得了巨大成功,但GPT的生成能力使其成为ChatGPT的基础。

OpenAI的战略选择

回顾历史,GPT-1代表了OpenAI在语言模型上的战略赌注:

  • 2018年GPT-1:证明预训练的有效性
  • 2019年GPT-2:证明规模的重要性
  • 2020年GPT-3:涌现能力的发现
  • 2022年ChatGPT:对话能力的突破

GPT-1是这一旅程的起点。


阅读研究论文的时间线计划

本文在技术时间线中的位置

Word2Vec(2013) → Seq2Seq(2014) → Attention(2015) → Transformer(2017) 
→ 【当前位置】GPT-1(2018) → GPT-2(2019) → Scaling Laws(2020) → GPT-3(2020) → InstructGPT(2022) → ChatGPT

前置知识

在阅读本文之前,建议了解:

  • 【ChatGPT时刻04】Transformer:GPT的基础架构
  • 【ChatGPT时刻05】Transformer代码解析:逐行理解实现细节
  • 自回归语言模型的基本原理

后续论文推荐

完成本文后,建议按顺序阅读:

  1. 【ChatGPT时刻07】GPT-2(下一篇):更大规模,发现零样本能力
  2. 【ChatGPT时刻08】Scaling Laws:规模与性能的幂律关系
  3. 【ChatGPT时刻09】GPT-3:涌现能力与上下文学习

完整技术路线图

GPT系列演进
    │
GPT-1 ──────────► GPT-2 ──────────► GPT-3 ──────────► InstructGPT ──────► ChatGPT
(2018)            (2019)            (2020)            (2022)               (2022)
117M              1.5B              175B              175B                 175B
    │                │                 │                 │                    │
    └── 预训练+微调    └── 零样本学习     └── 上下文学习      └── RLHF              └── 对话优化
        任务特定输入        规模效应          涌现能力           人类对齐              多轮对话

参考文献

  • Radford, A., Narasimhan, K., Salimans, T., & Sutskever, I. (2018). Improving Language Understanding by Generative Pre-Training. OpenAI.
  • Vaswani, A., et al. (2017). Attention is All You Need. NeurIPS.
  • Peters, M. E., et al. (2018). Deep contextualized word representations (ELMo). NAACL.
  • Devlin, J., et al. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. NAACL.
  • Howard, J., & Ruder, S. (2018). Universal Language Model Fine-tuning for Text Classification. ACL.