预训练进步主要来自数据
多少人工智能的快速进展过去几年我们看到的,是数据与模型的改进吗?答案对Frontier实验室的经济学和未来进展速度有重大影响。
我们在相对较小的规模下,特别是2019年至2025年的预训练阶段进行研究。在这期间,每年都会发布新的开放模型配方,规范当年公开的算法调整(例如架构改进、优化器、初始化、学习率计划、超参数等)。
在这些年份里,还出现了新的公共数据语料库(由更广泛的抓取和新的策划/提取/过滤技术生成)。
我们训练这些年份代表性模型配方和数据语料的组合,跨越不同训练规模(最高可达1e19 FLOP)。
显然,我们不能通过交叉熵损失与固定数据集进行比较,因为我们会改变它们训练的数据集。所以我们会根据终端能力来评估这些模型,测量为奥尔姆斯评估(汇总了10个相对简单的基准测试,主要是多项选择QA)。
不幸的是,评估终端能力而非预训练损失会给结果带来一些杂音,正如下面的图表所示,尽管我们尝试通过运行多个种子来获得更清晰的界限。
我们发现,从2019年到2025年,数据改进带来的计算效率提升是3.24倍,而非模型改进(数据提升为12.0倍,模型为3.7倍),在1e19 FLOP计算预算下.
这里有一个网格,显示我们训练的模型在测试的终端能力上相对于2019年数据+架构基线(3.16e18 FLOP)表现优异。
我们发现数据和模型改进带来的收益大多独立且不相互影响(即实现某些模型改进的收益不需要特定的训练数据堆,反之亦然)。OLMES 评分中 88% 的方差可以用模型和数据改进的加法效应(使用线性模型)来解释。
讨论
作为背景,我们简要总结一下2019年至2025年间数据和模型方面的变化。
在模型方面,我们从GPT-2到OLMo-2包括优化器、位置编码、归一化、激活函数、初始化等关键创新。
在数据方面,我们从以下内容开始OpenWebText2019年,仅包含从Reddit链接并获得足够赞数的网页,然后经过去重和过滤,因此仅有约90亿令牌(这主要是GPT-2训练的基础)。
到2025年,开源数据库如超细网不仅规模更大(通过利用整个互联网的抓取),还采用更复杂的过滤(例如,通过训练分类器预测哪些数据能通过实证提升模型性能)。
对我们结果的一个天真解读是,2019年至2024年间(预训练时代)的大部分人工智能进展只是更好的数据工程(提取、策划等),而那段时间的所有模型工作都不那么重要。
但这可能是理解模型改进价值的错误方式。它们的主要贡献不一定是计算效率——即用更少的FLOP实现相同性能。相反,它首先使得更多计算量变得可用。
随着参数数量、上下文长度、运行时长和集群的增加,各种因素都可能出现故障(梯度爆炸或消失,内存和带宽耗尽,训练变得不可行地缓慢)。
大部分模型研究包括移除或推迟这些约束以扩展.许多最重要的创新,如 MoE、稀疏注意力变体、稳定性创新(范数放置、初始化等)以及系统/内核级优化,如闪光关注属于这一类。
我们这里研究的数据改进对大型模型可能影响不大。小模型(比如我们训练的模型)能从数据质量提升中获得显著收益,因为它们容量不大,所以你必须非常谨慎地放入什么。
而大模型有大量过剩容量,你可能想尽可能多地加入数据,即使大多是垃圾,随机梯度下降的魔法能将信号与噪声分离出来。如果你选择激进过滤,就得做几十个历元分析,且经验上表现更差而不是仅仅拥有较低的平均质量但数据集更大。
事实上,一旦考虑到前沿模型相对于Chinchilla最优模型的过度训练高达100倍,激进的数据管理反而更有害,以最大限度地减少用于强化学习和部署的推理计算。
一个类比可以看作帆船和集装箱船的区别——集装箱船不一定速度更快,但它可以运输数千吨货物(相当于数百万亿个预训练数据),而且不会被波涛汹涌的海水颠覆(类似于在数十万GPU上稳定训练)。
现在我们有了更宽敞、更坚固的集装箱船,不用再纠结到底装了什么——只要有一点点有用就装满它们。而2019年那些小巧脆弱的帆船,你必须非常小心,只装载最有价值的货物。
但如果预训练进展的本质仅仅是把更多货物装进这艘船,我们是不是货物快用完了?这是一个关于数据墙的问题,以及合成数据在多大程度上帮助我们跨越了它。
合成数据显然在实验室中被广泛使用,我们根本没有研究它是否能有效扩展数据语料库而不影响模型性能。如果收益有限,那么预训练进展的主要驱动力将会停滞,因为我们没有产生更多互联网,而且你能策划固定数据集的数量有限。
需要明确的是,我们没有积极的理由去认为这一点。但鉴于数据在推动预训练进展中的重要性,这似乎是一个需要深入研究的关键问题。
瑞安·格林布拉特已记录许多历史上预训练数据语料库的改进看起来像是自动化研究人员可以通过实证测试的进展——比如对不同数据进行训练的烧蚀,看看模型表现如何。
因此,自2019年以来推动预训练的数据进展,如果自动化人工智能研发,这与我们的结果完全一致。
我们想澄清,孤立的预训练进展是加速还是放缓,并不是整体人工智能进步最重要的问题,因为过去两年许多进步都来自强化学习。
未来研究
以下是我们认为非常酷且值得回答的重要未来研究方向:
- 你可以在更大尺度上做这个实验,看看数据还是模型的改进更依赖于规模(因此在前沿影响更大)
- 新颖高质量数据在训练前和训练后,以终端能力衡量的边际价值是多少?
- 我们希望广泛了解合成数据的有效作用。一个具体的问题是:如果你有一个小的高质量数据语料库,那么通过合成数据生成来放大它相比,会有多少好处只是用它训练了好几个时代?
- 你可以通过实验室对数据经纪人、环境生产者等的投入,来推算数据相对于计算和研究人员的支出的隐含价值。
我们想探讨数据在推动人工智能进步中所扮演的角色。还有很多其他方法可以探讨这个问题,有些可能比我们的更聪明、更有信息量。而且我们的实验规模极小。
我们确实认为可能遗漏了什么——我们很期待听听其他人如何研究这个问题,理想情况下也能看到他们的成果!
特别感谢查理·奥尼尔这里有许多有益的讨论。
附录:方法论
我们在这些不同的数据语料中,以不同的计算预算从零开始预训练这些模型配方,并设置多个独立种子。我们的计算预算分别是:1e17、3.16e17、1e18、3.16e18 和 1e19 FLOP。
计算核算惯例是名义计算 C = 6ND(N = 非嵌入参数数,D = 数据标记数)。
在每个计算预算中,我们改变参数数量(以及训练代币数量),以确定每个训练配方与语料库组合的计算最优组合。我们利用语料库的保留损失来确定该计算最优点。
随后我们可以获得每种组合下游性能的计算缩放曲线,最终从中提取计算乘数。
我们在每次运行中强制共享分词器和上下文长度:GPT-2 BPE(tiktoken,50,257 词汇)和 T=2048,批次 = 262,144 个令牌。
我们训练运行的最终能力高度依赖于超参数。显然,没有办法覆盖所有可能的超参数集(超参数调优确实是一门精湛的艺术)!我们尽量控制这一点,并将峰值学习率视为主要的超参数。
有些算法版本确实提供了应调优峰值学习率的规范(作为模型大小、数据预算、批次大小等其他相关变量的函数)。这些数据可以作为我们认为最优学习率的良好先验。
我们首先在5个锚点扫除学习率——3个不同的模型大小和2个不同的D/N比率。我们确定这些锚点的最优学习率,并拟合一个最优的学习率参数形式
对于除 OLMo-2 外的所有模型配方,我们都满足一个共同的指数a以及b,以及模型特定的 lr₀。对于 OLMo-2,我们使用模型配方中指定的最优学习率。
我们这样做的原因是 Ai2 在配方中发布了小模型阶梯,指定了我们研究尺度下的最优超参数。我们还验证了在 3.16e18 FLOP 的计算最优点,我们的生产学习率达到或接近最优。
主要技术成绩
解释我们图表中的一些异常
我们观察到模型和数据轴的计算效率随时间普遍提升,符合预期。我们观察到的一些异常值:
- NeoX在1e19的表现不如GPT-2(尽管在1e17到3.16e18区间表现更好)。这可能源于OLMES评估中的噪声。我们还注意到,在FineWeb-Edu语料库的预训练丢失中,NeoX表现优于GPT-2。
- Piles 的表现似乎远不如 OpenWebText。这并不奇怪,因为 Pile 的主要改进是数据语料库多样性而非过滤。它拥有经过策划的 22 个源代码混合,包括 PubMed 和 arXiv 论文、GitHub 代码、法律意见、专利和议会程序。对于许多这些代币,跨域转移到 OLMES(即英文网页散文多项选择题)的次数可能很少,因此导致计算效率较低。我们注意到,由于其更大的体积,我们预计 Pile 最终在更大规模上应优于(非常小的)OpenWebText。
- 还值得注意的是,NeoX和堆叠的计算乘数是通过外推获得的,这会引入更多的潜在误差。
计算乘数的计算方式及其误差条
- 计算缩放曲线上的每个点都是通过多个独立种子训练运行计算的。这里的误差条是这些种子上OLMES评估的标准差。
- 考虑我们参考模型或数据语料库在某个计算层的某个给定的参考性能水平。
- 然后,我们通过找到候选模型或语料库计算缩放曲线中最左边、最先达到该参考性能水平的点来计算计算乘数。参考所需的计算与候选计算所需的计算的比值是候选人的计算乘数
- 计算乘数的误差条来自整个估计流水线的参数引导,且为1个标准差区间
- 我们想强调的是,我们预期模型配方计算乘数的实际不确定性会高于误差条所示。这是因为我们有限的超参数调优带来了额外的不确定性,而最终能力或长期损失可能对峰值学习率/批次大小等的具体选择非常敏感。
同样重要的是要注意,我们的消融方法未必能完全涵盖计算效率提升的全部范围,原因有很多。事实上,从2019年到2025年,我们观察到模型端计算效率(CEG)同比增长为1.24倍[1.19, 1.29],数据端增长为1.51倍[1.45, 1.57]。
综合测量时,我们观察到同比计算效率(CEG)为1.57倍[1.49, 1.65].这确实远低于Anson Ho等人对3倍的年平均估计,原因如下:
- 许多收益可能取决于规模或者在更长的背景下尤其重要,而我们所处的规模太小,无法实现许多收益。
- 例如,OLMo-2的层和QK范数,NeoX中的并行注意+MLP块
- 推理效率优化(如LLama-3GQA,也就是KV缓存优化)在我们的研究中并未显示为计算乘数。我们也没有研究分词器的改进。
- 我们获得的计算乘数对每年选择的模型配方或数据语料非常敏感。我们选择了我们认为的代表模型配方或数据语料库。但我们绝不会穷尽地断定这些就是祝你好每年。
- 我们关注的是相对于OLMES基准(结合了10种相对简单任务类型)的计算乘数,而不是计算乘数来达到某个困惑度指标。如果我们看其他基准测试(比如编码或问题解决相关的基准测试),数据也会非常不同,这可能会奖励截然不同的数据工程方法。
我们还要指出,我们还没有研究其他数据端改进,比如从新来源收集更多高质量数据、人类专家生成数据、合成数据生成方法等。我们调查的大多数语料库都是同一Common Crawl的策划(子集),而非扩展可用数据集。
这显然是对有限库存的消耗——我们能推动的杠杆有限。
增益与模型配方和数据语料库的独立性
以下是我们为确定模型配方和数据语料带来的收益独立性所做的调查。我们观察了OLMES分数的网格,其3.16e18 FLOPs。线性回归OLMES得分=均值+模型效应+数据效应,得到R平方为0.88,这意味着OLMES分数中88%的方差可以用模型和数据改进的加法效应解释,只有~12%的方差由交互作用或高阶项和评估噪声解释。
这表明复杂的模型-数据交互(例如利用某些模型改进依赖于特定数据工程,或反之亦然)相对较小。
安森·霍等人。预训练软件效率提升估计为每年3倍(95%置信区间:1.5倍至64倍)。正如Ho在文中提到的博客, “大多数软件进步实际上可能归功于数据质量的提升”以及“仅仅是少数几个规模依赖的算法变更”。
我们使用 C = 6ND 名义约定来计算计算。
2019年模型配方是GPT-2,2025年模型配方是OLMo-2。2019年的数据语料库是OpenWebText,2025年的数据语料库是UltraFineWeb。
我们对GPT3的实现在堆叠上遇到了一些训练不稳定性(梯度尖峰)。
这些包括:优化器改进、预热+衰减计划、RoPE替代学习绝对位置、RMSNorm + SwiGLU门控MLP、范数重序、QK范数、Z-损失正则化和更干净的初始化。
对于计算缩放图,我们每个至少使用3个种子。在3.16e18预算下,7x7的模型配方和数据语料组合网格中,我们每个只用了1个种子。
1.57倍的同比倍数是基于2019年模型与语料库到2025年模型与语料库的联合改进计算得出,而非1.24倍模型改进和1.51倍数据改进的乘积。