作者的话 :在前面的文章中,我们学习了BERT模型。如果说BERT开启了预训练语言模型的理解时代,那么GPT系列则开启了生成式AI的新纪元。从GPT-1到GPT-4,OpenAI的GPT系列模型展示了强大的文本生成能力和涌现能力。本文将深入讲解GPT的原理、演进历程和应用,帮助你理解生成式AI的核心技术!
一、GPT概述
1.1 什么是GPT?
GPT(Generative Pre-trained Transformer)是OpenAI提出的一系列生成式预训练语言模型。
核心特点:
| 特点 | 说明 | 优势 |
|---|---|---|
| 生成式建模 | 自回归预测下一个词 | 自然流畅的文本生成 |
| 单向注意力 | 只关注上文,不看未来 | 适合生成任务 |
| Transformer Decoder | 使用解码器架构 | 强大的建模能力 |
| 大规模预训练 | 海量无监督文本 | 丰富的语言知识 |
| 涌现能力 | 大模型展现新能力 | 上下文学习、推理 |
1.2 GPT发展历程
| 模型 | 年份 | 参数量 | 核心突破 | 影响 |
|---|---|---|---|---|
| GPT-1 | 2018年6月 | 1.17亿 | 生成式预训练 | 概念验证 |
| GPT-2 | 2019年2月 | 15亿 | Zero-shot能力 | 展示涌现能力 |
| GPT-3 | 2020年5月 | 1750亿 | In-context Learning | 大模型时代 |
| GPT-3.5 | 2022年3月 | 约2000亿 | Instruct微调 | ChatGPT基础 |
| GPT-4 | 2023年3月 | 估计万亿级 | 多模态+推理 | AGI曙光 |
| GPT-4o | 2024年5月 | 未公开 | 原生多模态 | 全能助手 |
1.3 GPT vs BERT
| 特性 | GPT | BERT |
|---|---|---|
| 架构 | Transformer Decoder | Transformer Encoder |
| 注意力方向 | 单向(左到右) | 双向 |
| 预训练任务 | 语言模型(LM) | MLM + NSP |
| 主要能力 | 文本生成 | 文本理解 |
| 应用场景 | 写作、对话、代码 | 分类、NER、问答 |
| 典型应用 | ChatGPT | 搜索引擎、分类器 |
二、GPT架构详解
2.1 GPT-1架构
GPT-1使用标准的Transformer Decoder架构:
| 参数 | GPT-1 Small | GPT-1 Medium | GPT-1 Large |
|---|---|---|---|
| 层数 | 12 | 24 | 36 |
| 注意力头数 | 12 | 16 | 20 |
| 嵌入维度 | 768 | 1024 | 1280 |
| 参数量 | 1.17亿 | 3.45亿 | 7.62亿 |
2.2 GPT-2/GPT-3规模对比
| 模型 | 层数 | 维度 | 头数 | 参数量 |
|---|---|---|---|---|
| GPT-2 Small | 12 | 768 | 12 | 1.24亿 |
| GPT-2 Medium | 24 | 1024 | 16 | 3.55亿 |
| GPT-2 Large | 36 | 1280 | 20 | 7.74亿 |
| GPT-2 XL | 48 | 1600 | 25 | 15.42亿 |
| GPT-3 Small | 12 | 768 | 12 | 1.25亿 |
| GPT-3 Medium | 24 | 1024 | 16 | 3.50亿 |
| GPT-3 Large | 24 | 1536 | 16 | 7.60亿 |
| GPT-3 XL | 24 | 2048 | 24 | 13亿 |
| GPT-3 2.7B | 32 | 2560 | 32 | 27亿 |
| GPT-3 6.7B | 32 | 4096 | 32 | 67亿 |
| GPT-3 13B | 40 | 5140 | 40 | 130亿 |
| GPT-3 175B (davinci) | 96 | 12288 | 96 | 1750亿 |
2.3 架构特点
Masked Self-Attention:GPT使用Masked Self-Attention确保每个位置只能关注之前的位置:
位置1: 可以看自己
位置2: 可以看位置1和2
位置3: 可以看位置1、2、3
...
位置n: 可以看位置1到n
这种设计保证生成的自回归特性。
三、预训练与微调
3.1 语言模型预训练
GPT使用标准的语言模型目标:
目标函数:最大化似然概率
L(U) = Σ log P(u_i | u_{i-k}, ..., u_{i-1}; Θ)
即给定前k个词,预测下一个词。
3.2 微调策略
| 任务类型 | 输入格式 | 说明 |
|---|---|---|
| 分类 | [Start] 文本 [Extract] | 使用最后一个token的表示 |
| 蕴含 | [Start] 前提 [Delim] 假设 [Extract] | 判断逻辑关系 |
| 相似度 | [Start] 句子A [Delim] 句子B [Extract] | 判断语义相似度 |
| 多选 | [Start] 上下文 [Delim] 答案 [Extract] | 选择正确答案 |
3.3 Zero-shot和Few-shot能力
GPT-2/GPT-3展示了强大的Zero-shot和Few-shot能力:
| 能力 | 定义 | 示例 |
|---|---|---|
| Zero-shot | 无需微调,直接通过提示完成任务 | 直接问"翻译:Hello" |
| One-shot | 给一个示例,模型学习后完成 | 给1个翻译示例 |
| Few-shot | 给几个示例,模型学习后完成 | 给3-5个翻译示例 |
四、GPT的涌现能力
4.1 上下文学习(In-context Learning)
GPT-3发现:模型可以通过上下文示例学习新任务,无需更新参数。
示例:
将中文翻译成英文:
中文:你好
英文:Hello
中文:谢谢
英文:Thank you
中文:机器学习
英文:
模型根据前面两个示例,自动理解翻译任务并完成。
4.2 思维链(Chain-of-Thought)
通过引导模型展示推理过程,可以显著提升复杂任务的表现:
标准提示:
Q: 一个农场有5只鸡,每只鸡每天下2个蛋,3天一共下多少蛋?
A: 30
思维链提示:
Q: 一个农场有5只鸡,每只鸡每天下2个蛋,3天一共下多少蛋?
A: 让我们一步步思考。
首先,5只鸡每天下蛋:5 × 2 = 10个
然后,3天总共下蛋:10 × 3 = 30个
所以答案是30。
4.3 不同规模模型的能力
| 能力 | 小模型 | 大模型 |
|---|---|---|
| 语法正确性 | 有 | 有 |
| 事实知识 | 少 | 丰富 |
| 推理能力 | 弱 | 强 |
| 上下文学习 | 无 | 强 |
| 代码生成 | 简单 | 复杂 |
五、代码实现
5.1 使用Hugging Face库
from transformers import GPT2Tokenizer, GPT2LMHeadModel
import torch
# 加载模型和分词器
tokenizer = GPT2Tokenizer.from_pretrained('gpt2')
model = GPT2LMHeadModel.from_pretrained('gpt2')
# 生成文本
text = "Once upon a time"
inputs = tokenizer(text, return_tensors='pt')
# 生成
outputs = model.generate(
**inputs,
max_length=50,
num_return_sequences=1,
temperature=0.7,
top_k=50,
top_p=0.95
)
generated_text = tokenizer.decode(outputs[0])
print(generated_text)
5.2 文本生成参数
| 参数 | 作用 | 常用值 |
|---|---|---|
| max_length | 最大生成长度 | 50-500 |
| temperature | 控制随机性 | 0.7-1.0 |
| top_k | 只从top k个词采样 | 40-50 |
| top_p | nucleus sampling | 0.9-0.95 |
| repetition_penalty | 重复惩罚 | 1.0-1.2 |
六、GPT应用
6.1 典型应用场景
| 应用 | 描述 | 代表产品 |
|---|---|---|
| 聊天机器人 | 自然对话,回答问题 | ChatGPT |
| 代码生成 | 自动生成代码 | GitHub Copilot |
| 写作助手 | 辅助写作、润色 | Jasper, Copy.ai |
| 翻译 | 多语言翻译 | DeepL |
| 摘要 | 文本摘要 | SummarizeBot |
| 创意写作 | 小说、诗歌创作 | NovelAI |
6.2 ChatGPT的训练过程
ChatGPT基于GPT-3.5,经过三步训练:
| 步骤 | 方法 | 数据 | 目的 |
|---|---|---|---|
| 1. 预训练 | 语言模型 | 海量互联网文本 | 学习语言和世界知识 |
| 2. 监督微调 | 有监督学习 | 人工标注对话 | 学习对话格式 |
| 3. RLHF | 人类反馈强化学习 | 人类偏好排序 | 对齐人类价值观 |
七、总结与学习建议
7.1 核心要点
- GPT使用单向Transformer Decoder
- 自回归语言建模
- 大模型展现涌现能力
- 上下文学习是GPT的重要能力
7.2 模型对比总结
| 模型 | 架构 | 方向 | 优势 |
|---|---|---|---|
| GPT | Decoder | 单向 | 生成能力强 |
| BERT | Encoder | 双向 | 理解能力强 |
| T5 | Encoder-Decoder | 双向 | 统一框架 |
7.3 学习路径
Transformer → GPT → 大模型应用 → 提示工程 → 微调技术
下一篇预告:【第26篇】大模型应用实战:Prompt工程与微调技巧
本文为系列第25篇,详细讲解了GPT模型。有任何问题欢迎在评论区交流!
标签:GPT、生成式AI、Transformer、ChatGPT、自然语言处理、深度学习、大模型