GPT-2 是 OpenAI 于 2019 年推出的一个基于 Transformer 的 解码器(Decoder)架构的自然语言处理模型。它通过无监督学习大规模文本数据进行预训练,并可用于多种自然语言任务,如文本生成、翻译、摘要和问答等。其主要特点包括:
- 自注意力机制(Self-Attention):使用多头自注意力(Multi-Head Attention)来捕捉长距离依赖关系。
- 因果掩码(Causal Masking):确保生成时只能关注当前及之前的词,而不能看到未来的词,符合自回归(autoregressive)特性。
- 层归一化(Layer Normalization):在残差连接后使用层归一化来稳定训练。
- 位置编码(Positional Encoding):由于 Transformer 结构本身不具备序列顺序信息,GPT-2 使用可学习的绝对位置编码来引入序列顺序。
GPT-2 采用 无监督预训练(Unsupervised Pretraining)+ 任务微调(Fine-tuning) 的方式:
- 无监督预训练
- 训练目标是 最大化文本数据的对数似然(Log-Likelihood)
- 训练数据来自大规模文本(如网络文章、书籍、新闻等)。
- 训练方式采用 自回归语言建模(Autoregressive Language Modeling, ALM),即只使用前面已生成的词预测下一个词。
- 任务微调
- 通过 少量任务特定数据 对 GPT-2 进行微调,使其适用于特定任务,如问答、翻译、代码生成等。
- 由于 GPT-2 是一个强大的通用文本生成模型,很多任务可以通过 零样本学习(Zero-shot Learning) 或 少样本学习(Few-shot Learning) 来实现。
OpenAI 发布了多个不同大小的 GPT-2 版本,参数规模分别为:
- GPT-2 Small:1.17 亿(117M)参数
- GPT-2 Medium:3.45 亿(345M)参数
- GPT-2 Large:7.74 亿(774M)参数
- GPT-2 XL:15 亿(1.5B)参数
参数规模越大,模型的生成能力越强,但计算资源需求也越高。
GPT-3 相对于 GPT2 :
特性 | GPT-2 | GPT-3 |
---|---|---|
参数量 | 最高 15 亿 | 1750 亿 |
训练数据 | 40GB+ 文本 | 570GB+ 文本 |
任务能力 | 主要用于生成 | 生成能力更强,支持更广泛的任务 |
Few-shot 能力 | 较弱 | 通过 Prompt 更易适配任务 |
GPT-3 的主要提升:
- 更大的参数规模 → 使得模型更具通用性
- 更强的 Few-shot Learning → 仅通过少量示例即可适应任务
- 更丰富的训练数据 → 使其具备更强的事实性和理解能力