← 返回 Transformer 专题 2018 · OpenAI

GPT-1 原理:预训练 + 微调的诞生

GPT-1(Generative Pre-Training)是第一个把「大规模无监督预训练」与「有监督微调」结合的 Transformer 解码器模型。它使用 BookCorpus(7,000 多本未出版小说)预训练,然后通过任务特定头在 GLUE 等任务上微调,展示了语言模型可迁移的潜力。

重点:两阶段训练、12 层 Decoder、任务特化线性头

1. 为什么要预训练?

2018 年之前,NLP 常常为每个任务单独训练模型,数据依赖大、泛化差。GPT-1 认为语言建模就是一个通用的「自监督」目标:预测下一个 token 的概率。当模型学会语言结构后,只需少量有标签数据就能微调到具体任务。

核心公式

预训练目标是最大化 ∑ log P(w_t | context_t; θ)。微调阶段在 Transformer 顶部添加任务层,最小化对应的 cross-entropy。

2. 两阶段训练流程

GPT-1 训练流水线 阶段 1:无监督 数据:BookCorpus 目标:语言建模 结果:预训练参数 θ 阶段 2:有监督微调 添加任务头(分类、蕴含、问答) 冻结/微调底座权重 多任务联合训练,提升泛化 θ 迁移
预训练 + 微调的二阶段 pipeline 是后续 GPT/BERT/T5 的共同底座。

3. 模型解剖

GPT-1 解码器堆叠 Token Embedding + Learned Positional Embedding Masked Self Attention Add + LN FFN GELU Add + LN × 12 层
12 层解码器,每层包含 Masked Self-Attention + 前馈网络 + 残差层归一化。

4. 多任务适配技巧

5. 局限与启发

虽然 GPT-1 在多个 GLUE 任务上领先于同年代模型,但仍存在如下限制:

即便如此,GPT-1 证明了「先学语言,再学任务」的可行性,并为 GPT-2 的扩大规模与 zero-shot 实验铺平道路。