预训练
/priː ˈtreɪnɪŋ/
Also known as: pretraining, foundation model training, base model training
什么是预训练?
预训练是训练大型语言模型的第一阶段,模型从大量文本中学习一般语言理解。可以将其想象为阅读数十亿本书籍、文章和网站以学习语法、事实和语言模式。
在预训练期间,模型处理数十亿个单词并重复预测序列中的下一个标记。这种自监督方法——从数据本身的结构中学习而不是人类标签——是使大语言模型能够发展广泛能力的原因。
预训练流程
1. 数据收集 从书籍、文章、网站、代码库和其他来源收集多样化的文本。例如,Hugging Face 的 FineWeb 数据集包含来自 96 个 CommonCrawl 快照的 15 万亿个标记(44TB)。
2. 数据清洗 删除重复项、非文本元素、格式问题和低质量内容。数据质量极大地影响模型质量。
3. 标记化 将文本转换为模型可以处理的数字标记。文本被分解为子词或字符,并映射到唯一的数字。
4. 训练 核心任务:预测序列中的下一个标记。模型看到”The cat sat on the”并学会预测”mat”(或类似的)。重复数十亿次,这构建了深厚的语言理解。
所需资源
预训练需要大量资源:
- 时间:数周到数月的持续训练
- 计算:数千个 GPU 并行运行
- 数据:数万亿个标记
- 成本:前沿模型数百万美元
这就是为什么大多数组织微调现有模型而不是从头开始预训练。
预训练与微调
| 方面 | 预训练 | 微调 |
|---|---|---|
| 目标 | 一般语言理解 | 特定任务或行为 |
| 数据 | 数万亿个标记,多样化 | 数千到数百万,有针对性 |
| 时间 | 数周到数月 | 数小时到数天 |
| 成本 | 数百万美元 | 数百到数千美元 |
| 谁做 | 基础模型实验室 | 任何有用例的人 |
两阶段范式
现代大语言模型开发分为两个阶段:
- 预训练:构建通用语言能力
- 后训练:精炼和对齐这些能力(包括微调、RLHF、DPO)
正如 Andrej Karpathy 所描述的,预训练是”一种糟糕的进化形式”——选择能很好地预测互联网文本的模型。然后,后训练将这种原始能力塑造成有用和安全的东西。
2025 年发展
强化预训练(RPT):Microsoft 研究人员将下一个标记预测重新框架为顺序决策问题,可能改善模型在预训练期间的学习方式。
数据稀缺:高质量的文本数据正在变得稀缺。实验室正在探索合成数据、多模态数据和更高效的训练方法。
缩放限制:纯粹的预训练缩放显示出收益递减,将重点转向后训练创新。
相关阅读
- 缩放法则 - 预训练计算与性能之间的关系
- Andrej Karpathy - 称预训练为”糟糕的进化”
- John Schulman - 后训练技术先驱