要解决的问题
预训练是大语言模型获得通用能力的阶段。核心问题是:在固定的算力预算下,找到模型规模、训练 token 数、学习率调度、batch 大小的最优组合,同时保证整个训练过程可以复现。
核心转变
模型参数量、训练 token 数和数据质量始终相互制约,不能概括成「早期只扩大 token,后来才重视质量」。Chinchilla(2022)在固定算力下研究参数与数据的分配,指出许多此前的大模型训练数据不足;后续工作继续研究数据质量、配比、去重和分阶段数据课程。算力最优的预训练配置,也未必是计入部署成本后的总成本最优配置。
代表工作
- Llama 3(2024):Meta 在《The Llama 3 Herd of Models》中描述了数据处理、规模选择与训练流程等关键细节,但没有公开完整预训练语料与全部生产训练工件,不能把技术报告等同于可完全复现的训练配方。
- OLMo(2024)与 OLMo 2(2024):艾伦人工智能研究所(AI2)发布的完全开放模型,同时开放训练数据、训练代码和中间 checkpoint,抬高了可复现研究的基线。
实现与工具
- OLMo-core:OLMo 系列的训练代码库。
- open_lm:面向中等规模语言模型研究的开源训练框架。
- TorchTitan:PyTorch 官方的原生大模型训练平台。
开放问题
- 数据是否会先于算力成为瓶颈。
- 只用开放数据训练的模型,上限能否逼近闭源模型。
参考资料
- Training Compute-Optimal Large Language Models(Chinchilla)
- The Llama 3 Herd of Models
- FineWeb:与未公开的预训练数据对照
相关专题
- 数据构建与清洗:预训练数据的过滤、去重与配比。
- 分布式训练:大规模预训练依赖的并行策略。
- 优化器、学习率调度与混合精度:预训练中的优化器与数值精度选择。
- 可复现性:训练过程的开放与可追溯。