mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
659 字
2 分钟
GPT 系列论文解读:从 GPT-1 到 GPT-4 的演进之路
2025-06-03

如果说 Transformer 奠定了架构基础,那么 GPT 系列则证明了规模化预训练的力量。

从 2018 年的 GPT-1 到 2023 年的 GPT-4,OpenAI 用五年时间展示了「大力出奇迹」的真理。

本文将带你回顾 GPT 系列的技术演进之路。

本文要点#

  • GPT-1:生成式预训练的开端
  • GPT-2:无监督多任务学习
  • GPT-3:Few-Shot Learning 的突破
  • InstructGPT:人类对齐的关键
  • GPT-4:多模态与推理能力

一、GPT-1:生成式预训练的开端#

1.1 论文信息#

论文:Improving Language Understanding by Generative Pre-Training
作者:Alec Radford, Karthik Narasimhan, Tim Salimans, Ilya Sutskever
机构:OpenAI
发表:2018 年

1.2 核心思想#

flowchart LR A[大量无标注文本] --> B[生成式预训练] B --> C[少量标注数据] C --> D[任务微调] D --> E[下游任务] style B fill:#4caf50,color:#fff
flowchart TB subgraph GPT-1核心贡献 A[两阶段训练范式] A --> A1[预训练:在大规模无标注文本上学习] A --> A2[微调:在特定任务上用少量标注数据适应] B[生成式预训练目标] B --> B1[语言模型:预测下一个词] B --> B2["L = Σ log P(w_t | w_1, ..., w_{t-1})"] B --> B3[简单但有效] C[统一的任务处理] C --> C1[将不同任务转换为文本生成] C --> C2[分类 → 生成类别词] C --> C3[问答 → 生成答案] D[模型规格] D --> D1[参数量:117M] D --> D2[层数:12] D --> D3[训练数据:BookCorpus(约 7000 本书)] end

1.3 架构设计#

class GPT1(nn.Module):
"""GPT-1 架构"""
def __init__(self, vocab_size, d_model=768, n_layers=12, n_heads=12):
super().__init__()
# Token 嵌入 + 位置嵌入
self.token_embedding = nn.Embedding(vocab_size, d_model)
self.position_embedding = nn.Embedding(512, d_model)
# Transformer Decoder 层
self.layers = nn.ModuleList([
TransformerDecoderLayer(d_model, n_heads)
for _ in range(n_layers)
])
# 输出层
self.ln_f = nn.LayerNorm(d_model)
self.lm_head = nn.Linear(d_model, vocab_size, bias=False)
def forward(self, input_ids):
# 嵌入
positions = torch.arange(0, input_ids.size(1)).unsqueeze(0)
x = self.token_embedding(input_ids) + self.position_embedding(positions)
# Transformer 层(带因果掩码)
for layer in self.layers:
x = layer(x, causal_mask=True)
# 输出
x = self.ln_f(x)
logits = self.lm_head(x)
return logits

1.4 实验结果#

GPT-1 在 12 个任务中的 9 个取得了 SOTA:
自然语言推理:
• SNLI:89.3%(+1.5%)
• MNLI:82.1%(+1.5%)
问答:
• RACE:62.9%(+5.7%)
文本分类:
• SST-2:91.3%(+1.5%)
证明:无监督预训练 + 有监督微调是有效的

二、GPT-2:无监督多任务学习#

2.1 论文信息#

论文:Language Models are Unsupervised Multitask Learners
作者:Alec Radford, Jeffrey Wu, Rewon Child, David Luan,
Dario Amodei, Ilya Sutskever
机构:OpenAI
发表:2019 年

2.2 核心思想#

flowchart TB A["GPT-1: 预训练 + 微调"] --> B["GPT-2: 预训练即任务"] C["核心假设"] --> D["语言模型在足够大的数据上训练"] D --> E["自然学会执行各种任务"] E --> F["无需显式微调"] style B fill:#f44336,color:#fff
flowchart TB subgraph GPT-2核心贡献 A[零样本任务迁移] A --> A1[不需要微调,直接用预训练模型] A --> A2[通过自然语言描述任务] A --> A3["「翻译这段文字到英文:...」"] B[大规模数据] B --> B1[WebText:800 万网页,40GB 文本] B --> B2[强调数据质量和多样性] C[模型规模化] C --> C1[GPT-2 Small:117M(同 GPT-1)] C --> C2[GPT-2 Medium:345M] C --> C3[GPT-2 Large:762M] C --> C4[GPT-2 XL:1.5B] D[架构微调] D --> D1[LayerNorm 移到子层之前(Pre-LN)] D --> D2[更大的词表(50,257)] D --> D3[更大的上下文(1024 tokens)] end

2.3 零样本学习能力#

# GPT-2 的零样本提示示例
# 任务:翻译
prompt = "Translate to French: Hello, how are you?"
# GPT-2 输出: "Bonjour, comment allez-vous?"
# 任务:摘要
prompt = "Summarize: [长文本]...\n\nSummary:"
# GPT-2 输出: 生成的摘要
# 任务:问答
prompt = "Q: What is the capital of France?\nA:"
# GPT-2 输出: "Paris"

2.4 实验结果#

零样本性能(关键发现):
• CoQA 对话问答:55 F1(SOTA 89,但无训练)
• SQuAD 阅读理解:~5 EM(SOTA 91,但无训练)
• CNN/DM 摘要:~15 ROUGE(SOTA 43,但无训练)
虽然与有监督方法差距大,但证明了:
• 大规模预训练可以学到任务能力
• 零样本学习是可行的
• 更大的模型表现更好

三、GPT-3:Few-Shot Learning 的突破#

3.1 论文信息#

论文:Language Models are Few-Shot Learners
作者:Tom Brown, Benjamin Mann, Nick Ryder, Melanie Subbiah,
Jared Kaplan, ... (OpenAI 团队)
机构:OpenAI
发表:NeurIPS 2020

3.2 核心思想#

flowchart LR subgraph 零样本 Zero-Shot A1[任务描述] --> B1[模型输出] end subgraph 单样本 One-Shot A2[任务描述 + 1个示例] --> B2[模型输出] end subgraph 少样本 Few-Shot A3[任务描述 + N个示例] --> B3[模型输出] end style B3 fill:#4caf50,color:#fff
flowchart TB subgraph GPT-3核心贡献 A[Few-Shot Learning] A --> A1[不更新权重,通过上下文学习] A --> A2[给几个示例,模型学会任务] A --> A3[上下文学习能力的证明] B[超大规模模型] B --> B1[1750 亿参数(175B)] B --> B2[96 层,12288 维度] B --> B3[96 个注意力头] C[涌现能力] C --> C1[小模型不具备,大模型突然出现] C --> C2[算术、推理、编程等] D[Scaling Law 验证] D --> D1[性能随规模平滑提升] D --> D2[数据、算力、模型规模的协调] E[模型系列] E --> E1[GPT-3 Small:125M] E --> E2[GPT-3 Medium:350M] E --> E3[GPT-3 Large:760M] E --> E4[GPT-3 XL:1.3B] E --> E5[GPT-3 2.7B] E --> E6[GPT-3 6.7B] E --> E7[GPT-3 13B] E --> E8[GPT-3 175B(最大)] end

3.3 Few-Shot Prompting 示例#

# GPT-3 Few-Shot 示例
# 任务:情感分类
prompt = """
Review: This movie was amazing!
Sentiment: Positive
Review: Terrible experience, would not recommend.
Sentiment: Negative
Review: The food was okay, nothing special.
Sentiment: Neutral
Review: I loved the new phone, great battery life!
Sentiment:
"""
# GPT-3 输出: "Positive"
# 任务:翻译
prompt = """
English: Hello
Chinese: 你好
English: Good morning
Chinese: 早上好
English: Thank you very much
Chinese:
"""
# GPT-3 输出: "非常感谢"

3.4 涌现能力#

xychart-beta title "GPT-3 不同规模在算术任务的表现" x-axis ["125M", "1.3B", "13B", "175B"] y-axis "准确率 %" 0 --> 100 bar [1, 5, 20, 55]
涌现能力的特点:
• 非线性增长:小模型接近随机,大模型突然变强
• 任务特异性:不同任务的涌现规模不同
• 难以预测:无法从小模型外推
典型涌现任务:
• 算术运算(~10B 开始涌现)
• 多步推理(~100B)
• 代码生成(~10B)
• 机器翻译(~1B)

四、InstructGPT:人类对齐的关键#

4.1 论文信息#

论文:Training Language Models to Follow Instructions
with Human Feedback
作者:Long Ouyang, Jeffrey Wu, Xu Jiang, Diogo Almeida,
Carroll Wainwright, ... (OpenAI 团队)
机构:OpenAI
发表:2022 年

4.2 RLHF 训练流程#

flowchart TB subgraph 步骤1: SFT A1[提示词] --> B1[人类编写回答] B1 --> C1[监督微调] end subgraph 步骤2: 奖励模型 A2[提示词] --> B2[模型生成多个回答] B2 --> C2[人类排序] C2 --> D2[训练奖励模型] end subgraph 步骤3: PPO A3[提示词] --> B3[模型生成回答] B3 --> C3[奖励模型评分] C3 --> D3[PPO 更新] end C1 --> A2 D2 --> A3
flowchart TB subgraph InstructGPT核心贡献 A[RLHF(人类反馈强化学习)] A --> A1[让模型输出符合人类期望] A --> A2[三阶段训练:SFT → RM → PPO] B[指令遵循能力] B --> B1[理解并执行用户指令] B --> B2[减少幻觉和不相关输出] C[安全性提升] C --> C1[减少有害输出] C --> C2[拒绝不当请求] D[偏好学习] D --> D1[从人类偏好中学习] D --> D2[比单纯监督更有效] E[模型规模] E --> E1[基座:GPT-3 175B] E --> E2[奖励模型:6B] end

4.3 效果对比#

人类评估结果:
真实性:
• GPT-3:0.22
• InstructGPT:0.73
无害性:
• GPT-3:0.21
• InstructGPT:0.69
指令遵循:
• GPT-3:经常跑题
• InstructGPT:准确执行
关键发现:
• 参数量更小的 InstructGPT 优于更大的 GPT-3
• 人类对齐比规模化更重要

五、GPT-4:多模态与推理#

5.1 技术特点#

flowchart TB subgraph GPT-4核心能力 A[多模态理解] A --> A1[图像 + 文本输入] A --> A2[图表分析、图像描述] B[强大推理能力] B --> B1[复杂逻辑推理] B --> B2[数学问题求解] B --> B3[代码生成与调试] C[长上下文支持] C --> C1[32K tokens(后扩展到 128K)] C --> C2[处理长文档] D[可控性增强] D --> D1[System Prompt 支持] D --> D2[输出格式控制] E[安全性改进] E --> E1[更少的幻觉] E --> E2[更好的拒绝不当请求] F[注意] F --> F1[GPT-4 技术报告未公开架构细节] end

5.2 性能对比#

xychart-beta title "GPT-4 在专业考试中的表现" x-axis ["律师考试", "SAT 数学", "GRE 写作", "医学执照"] y-axis "百分位" 0 --> 100 bar [90, 89, 99, 86]
GPT-4 vs GPT-3.5 对比:
MMLU(多任务语言理解):
• GPT-3.5:70.0%
• GPT-4:86.4%
HumanEval(代码生成):
• GPT-3.5:48.1%
• GPT-4:67.0%
数学竞赛(AIME):
• GPT-3.5:~10%
• GPT-4:~40%

六、演进总结#

6.1 GPT 系列发展时间线#

timeline title GPT 系列发展历程 section 2018 GPT-1 : 117M 参数 : 生成式预训练范式 section 2019 GPT-2 : 1.5B 参数 : 零样本任务学习 section 2020 GPT-3 : 175B 参数 : Few-Shot Learning section 2022 InstructGPT : RLHF 对齐 : 指令遵循 section 2023 GPT-4 : 多模态 : 推理能力飞跃

6.2 核心演进规律#

flowchart TB subgraph GPT系列演进规律 A[规模化] A --> A1[117M → 1.5B → 175B → 更多] A --> A2[参数量指数级增长,能力持续提升] B[数据规模化] B --> B1[7K 书籍 → 40GB 网页 → 500B tokens → 更多] B --> B2[数据规模和质量同步提升] C[学习范式演进] C --> C1[预训练+微调 → 零样本 → Few-Shot → RLHF] C --> C2[人类对齐成为关键] D[能力扩展] D --> D1[文本生成 → 多任务 → 推理 → 多模态] D --> D2[从单点到全能] E[应用形态] E --> E1[研究 API → 商业 API → ChatGPT → 生态] E --> E2[从实验室到产品] end

常见问题 FAQ#

Q1:GPT 为什么只用 Decoder?

A:GPT 的目标是生成文本,Decoder 的因果掩码天然适合自回归生成。相比 Encoder-Decoder,纯 Decoder 结构更简单,规模化更容易。

Q2:GPT-3 的 Few-Shot 和微调有什么区别?

A:Few-Shot 不更新模型权重,通过上下文学习完成任务。微调会更新权重,需要反向传播。Few-Shot 更灵活但需要更大的模型。

Q3:为什么 GPT-2 最初被「延迟发布」?

A:OpenAI 担心 GPT-2 可能被用于生成虚假信息,采取了分阶段发布策略。这也引发了对 AI 安全的广泛讨论。

Q4:InstructGPT 和 ChatGPT 是什么关系?

A:ChatGPT 基于 InstructGPT 的技术,针对对话场景进行了优化。InstructGPT 是技术核心,ChatGPT 是产品形态。

Q5:GPT-4 的技术细节为什么保密?

A:OpenAI 从开放转向封闭,原因是竞争加剧和商业化考虑。这引发了 AI 社区对开放性的讨论。


小结#

GPT 系列展示了规模化预训练的力量,从 117M 到 175B,从文本生成到多模态推理。

核心演进:

flowchart TB subgraph GPT系列核心总结 A[GPT-1] --> A1[生成式预训练范式] B[GPT-2] --> B1[零样本多任务学习] C[GPT-3] --> C1[Few-Shot 涌现能力] D[InstructGPT] --> D1[人类对齐(RLHF)] E[GPT-4] --> E1[多模态 + 强推理] end

参考资料#

支持与分享

如果这篇文章对你有帮助,欢迎支持作者或分享给更多人

GPT 系列论文解读:从 GPT-1 到 GPT-4 的演进之路
https://blog.souloss.com/posts/machine-learning/llm-paper-history/gpt-series-papers/
作者
Souloss
发布于
2025-06-03
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时