大语言模型训练中的自监督学习和其他训练方式
大语言模型训练中的自监督学习和其他训练方式。
自监督学习(Self-Supervised Learning)
1. 什么是自监督学习?
自监督学习是一种不需要人工标注数据的训练方式,模型从数据本身学习特征和模式。
在语言模型中的具体实现:
# 示例:掩码语言模型(Masked Language Model, MLM)
原始文本: "北京是中国的首都"
↓
训练输入: "北京是[MASK]的首都"
训练目标: 预测 [MASK] = "中国"# 示例:自回归语言模型(Autoregressive LM)
原始文本: "今天天气很好"
↓
训练输入: "今天" → 预测: "天气"
训练输入: "今天天气" → 预测: "很"
训练输入: "今天天气很" → 预测: "好"
2. 主要的自监督学习方式
a) 自回归预训练(GPT系列)
# Next Token Prediction
# 给定前文,预测下一个词
输入: "The capital of China is"
目标: "Beijing"# 这是目前最主流的方式!
b) 掩码语言建模(BERT系列)
# Masked Language Modeling
# 随机遮盖部分词,预测被遮盖的词
输入: "The [MASK] of China is [MASK]"
目标: [MASK1] = "capital", [MASK2] = "Beijing"
c) 去噪自编码(T5系列)
# Denoising Autoencoding
# 对文本添加噪声,然后恢复原文
原始: "北京是中国的首都"
加噪: "北京[X]中国[Y]首都"
目标: 还原成原始文本
其他训练方式对比
1. 监督学习(Supervised Learning)
需要人工标注的数据:
# 情感分析任务
输入: "这部电影太棒了!"
标签: "正面" # 人工标注# 问答任务
问题: "中国的首都是哪里?"
答案: "北京" # 人工标注
缺点:
- 标注成本高
- 数据量有限
- 难以扩展到大规模
2. 强化学习(Reinforcement Learning)
通过奖励信号学习:
# RLHF (Reinforcement Learning from Human Feedback)
模型输出: "这是一个很好的回答..."
人类反馈: 👍 (奖励) 或 👎 (惩罚)
模型调整: 根据反馈优化
3. 半监督学习(Semi-Supervised Learning)
结合少量标注数据和大量无标注数据:
# 先自监督预训练
大量无标注文本 → 预训练模型# 再监督微调
少量标注数据 → 微调模型
目前主流的训练范式
现代大模型训练的标准流程:
具体实现:
1. 预训练阶段(自监督)
# 使用数万亿 tokens 的文本
# 目标:Next Token Prediction
model = GPT(config)
for batch in massive_text_data:loss = model.compute_loss(batch) # 预测下一个词optimizer.step()
2. 指令微调阶段(监督)
# 使用高质量的问答对
instruction_data = [{"instruction": "解释什么是机器学习", "response": "机器学习是..."},{"instruction": "写一首关于春天的诗", "response": "春风送暖..."}
]
3. 偏好对齐阶段(强化学习)
# 使用人类偏好数据
preference_data = [{"prompt": "如何学习编程?","chosen": "循序渐进的好答案...","rejected": "敷衍的差答案..."}
]
为什么自监督学习是基础?
1. 数据规模优势
监督学习:需要人工标注 → 最多百万级样本
自监督学习:自动从文本学习 → 可达万亿级 tokens
2. 成本效益
- 无需人工标注
- 可以利用互联网上所有文本
- 训练数据几乎无限
3. 通用性强
- 学到通用的语言理解能力
- 可迁移到各种下游任务
实际案例
GPT-3 训练数据规模:
- Common Crawl: 410B tokens (60%)
- WebText2: 19B tokens (22%)
- Books: 12B tokens (8%)
- Wikipedia: 3B tokens (3%)
总计: 约 500B tokens
LLaMA-2 训练过程:
1. 预训练: 2万亿 tokens,自监督学习
2. SFT: 约10万条高质量指令
3. RLHF: 约100万条人类偏好比较
总结
- 自监督学习是基座模型训练的核心,因为它能利用海量无标注数据
- 目前主流是三阶段训练:
- 自监督预训练(基础能力)
- 监督微调(任务能力)
- 强化学习对齐(符合人类偏好)
- 未来趋势:
- 更大规模的自监督预训练
- 更高质量的监督数据
- 更高效的对齐方法(如 DPO)
这种组合训练方式让模型既有广泛的知识基础,又能很好地完成特定任务!