训练ChatGPT这样的大模型,一口吃多少才是最聪明的?
创始人
2026-01-12 19:23:08

你有没有想过,当科学家们训练那些能写文章、能聊天、能写代码的AI大模型时,他们是怎么决定每次让AI"学习"多少数据的?这个问题听起来简单,实际上却是一个价值数百万美元的难题——因为训练一个大模型可能需要消耗数千张顶级显卡连续运行数周甚至数月,任何一个小决策的偏差都可能造成巨大的资源浪费。

这项由上海人工智能实验室联合上海交通大学和复旦大学的研究团队完成的研究,他们发现了一个令人惊讶的事实:过去十年来,整个AI行业在训练大模型时遵循的一条"金科玉律",在当今最先进的训练方法面前已经失效了。这就好比你一直按照老食谱做菜,突然发现现在的食材和厨具都变了,老食谱做出来的菜味道完全不对。

为了帮助大家理解这项研究,我们可以把训练AI想象成喂养一个正在快速成长的孩子。每天给孩子吃饭,你需要考虑两个问题:一是每顿饭吃多少,二是总共要喂多少天。如果每顿吃太少,虽然每顿都能消化得很好,但孩子成长太慢,你得喂很久;如果每顿吃太多,虽然喂的次数少了,但孩子可能消化不良,营养吸收效率反而下降。在AI训练中,"每顿饭吃多少"就是所谓的"批量大小"(Batch Size),而"总共喂多少"就是训练消耗的总数据量。找到那个最佳的"食量",让孩子既能快速成长又不浪费食物,这正是这项研究要解决的核心问题。

老食谱为何不再灵验:临界批量大小理论的困境

故事要从2018年说起。那一年,OpenAI的研究团队提出了一个叫做"临界批量大小"(Critical Batch Size)的概念,并推导出了一个优雅的数学公式,用来描述训练AI时"每顿饭吃多少"和"总共要喂多少顿"之间的关系。这个公式在当时被广泛接受,成为了整个行业训练大模型的理论基础。

回到我们喂孩子的比喻。OpenAI的公式本质上是在说:如果你想让孩子长到某个特定的身高体重,那么每顿饭吃得越多,需要喂的总饭量就越大。这听起来很符合直觉,对吧?每顿吃多了可能会浪费一些,所以总量自然要增加。

然而,时过境迁,AI训练的"烹饪方式"发生了巨大变化。最显著的变化是学习率调度器(可以理解为"火候控制方式")的演进。以前大家普遍使用一种叫做"余弦学习率"的方式,就像炒菜时火力从大到小平滑过渡。但现在,包括深度求索(DeepSeek)、Kimi、通义千问(Qwen)在内的顶尖AI公司,都转向了一种叫做WSD(预热-稳定-衰减)的新方式。这种新方式就像先用小火预热锅子,然后保持中火长时间烹饪,最后再小火收汁。

研究团队在实验中发现了一个奇怪的现象:当使用WSD这种新的"火候控制方式"时,OpenAI那个经典公式预测的结果和实际情况完全对不上号。具体来说,按照老公式,用更大的批量训练应该总是需要更多数据,但实际上,当目标设定得足够高(比如要把AI训练到非常聪明的程度)时,反而是大批量训练消耗的数据更少!

这就好比按照老食谱的说法,孩子每顿吃得越多就越浪费食物,但你却发现,当你希望孩子长得特别高时,让他每顿多吃一点反而比少吃多餐更节省粮食。这完全颠覆了之前的认知。

研究团队用图表清晰地展示了这个现象。当训练目标设定得比较低(比如只要AI达到"及格"水平)时,小批量确实比大批量消耗更少的数据,老公式是对的。但随着训练深入,当目标提高到"优秀"甚至"顶尖"水平时,不同批量大小的训练曲线会出现交叉——在交叉点之后,大批量训练反而变得更高效了。这种"交叉现象"直接证明了老理论在新时代的局限性。

新食谱的诞生:重新理解数据消耗与训练步数的关系

既然老公式不管用了,研究团队决定从头推导一个适合新时代的公式。他们借鉴了OpenAI分析SGD(随机梯度下降)优化动力学的方法,但针对WSD学习率调度器的特性进行了全新的分析。

为了让大家更好地理解新公式,我们继续用喂孩子的比喻。假设你想知道,为了让孩子达到某个特定的发育目标,不同的"每顿食量"对应需要喂多少顿饭。研究团队发现,这个关系不是简单的一条直线或曲线,而是可以分成三个明显不同的阶段。

第一阶段是"反比例阶段"。在这个阶段,你发现喂的次数越多,需要的总食量反而急剧下降。这就像刚开始喂养时,少量多餐特别有效,因为孩子的消化系统还在适应,大量进食会造成很多浪费。用数学语言说,数据消耗E和步数S之间呈现反比例关系,也就是说增加一点点步数,就能大幅减少需要的总数据量。

第二阶段是"过渡阶段"。随着步数继续增加,那种"增加步数就能大幅节省数据"的效果开始减弱。这个阶段的关系变成了一条向上开口的抛物线,在某个特定的步数值处,数据消耗会达到一个最低点。这个最低点非常重要,它代表着"最省粮食"的喂养方案。

第三阶段是"线性阶段"。过了那个最低点之后,再继续增加喂养次数,需要的总食量就开始线性增长了。这时候,多喂一次饭就得多准备一份食物,再也没有"批量优惠"可言。

研究团队把这三个阶段用一个分段函数精确地表达出来。在第一阶段,E等于某个常数除以(S减去最小步数)再加上另一个常数。在第二阶段,E等于某个系数乘以(S减去最优步数)的平方,再加上最小数据消耗。在第三阶段,E就是简单的线性函数,等于某个斜率乘以S再加上截距。

为了验证这个新公式是否正确,研究团队进行了大量实验。他们使用InternLM2架构,训练了从1.22亿参数到10亿参数共5种不同规模的模型,每种模型都尝试了从6.4万到750万的多种批量大小。通过收集实验数据并与新公式进行拟合,他们获得了高达0.992的R²值(这是一个衡量拟合程度的统计指标,1代表完美拟合),证明新公式确实能够精确描述实际的训练动态。

两个关键发现:最小批量与最优批量

基于新公式,研究团队发现了两个至关重要的指标,它们彻底改变了我们对大规模预训练的理解。

第一个指标叫做Bmin,也就是"最小批量大小"。回到我们的比喻,这就是说如果你想让孩子长到某个特定的身高,存在一个"每顿最少得吃这么多"的门槛。如果每顿饭吃的量低于这个门槛,无论你喂多少顿,孩子都不可能达到那个身高目标。

这个发现非常反直觉。以前我们认为,只要有足够的耐心和时间,用很小的批量慢慢训练,总能把AI训练到任意高的水平。但新理论告诉我们,在WSD训练范式下,批量大小存在物理上的下限——如果批量太小,AI的"学习能力"会受到本质性的限制,有些高度它永远也达不到。

从数学上说,Bmin等于新公式中线性阶段的斜率A₁。从几何上理解,它是E(S)曲线渐近线的斜率。这意味着当步数趋向无穷大时,每增加一步所需的额外数据量就是Bmin——如果你的批量大小小于这个值,曲线根本不会收敛到目标损失,因为每一步的学习效果都被梯度噪声淹没了。

第二个指标叫做Bopt,也就是"最优批量大小"。这代表着能够用最少总数据量达到目标的那个"黄金食量"。在我们的比喻中,这就是既不浪费食物又能让孩子最高效成长的每顿饭量。

Bopt的计算方式是最小数据消耗Emin除以达到这个消耗的最优步数Sopt。从几何上看,它是从原点到E(S)曲线最低点的连线的斜率。使用这个批量大小进行训练,你能够以最小的数据成本达到目标——这对于那些训练数据稀缺或者需要严格控制训练成本的场景来说极为重要。

更关键的发现是,无论是Bmin还是Bopt,它们都会随着训练目标的提高(即目标损失的降低)而单调增长。这就像说,如果你只想让孩子长到普通身高,每顿吃一碗饭就够了;但如果你希望孩子长成篮球运动员的身材,每顿的饭量门槛和最佳饭量都得相应提高。

研究团队在从1.22亿到10亿参数的多种模型规模上验证了这一规律。实验数据清晰地显示,当目标损失从3.4降低到3.0(数值越低代表AI越聪明)时,Bmin和Bopt都呈现出明显的上升趋势。这个发现为后续提出的动态批量调度策略奠定了理论基础。

聪明的喂养计划:动态批量大小调度器

既然Bopt会随着训练进展而不断增加,一个自然的想法就是:为什么要一直用固定的批量大小呢?为什么不随着训练的深入,逐步增大批量呢?

研究团队正是基于这个洞察,提出了一种全新的动态批量大小调度策略。这就好比制定了一个随孩子年龄增长而调整的喂养计划:婴儿期每顿少吃,童年期适量增加,青少年期加到最多。

在技术层面,研究团队还证明了一个重要的等价定理:在固定模型大小的前提下,"给定数据预算求最优批量以最小化损失"和"给定目标损失求最优批量以最小化数据消耗"这两个问题在数学上是完全等价的。这个定理意味着,我们可以根据已消耗的数据量来决定当前的最优批量,而不需要预先知道训练会达到什么损失水平。

具体的调度算法非常直观。给定模型规模N和学习率η,以及通过小规模实验拟合出的最优批量曲线f(N,D)(这个曲线告诉我们在数据量为D时的最优批量),调度器以固定的数据间隔(比如每消耗125B token)重新计算当前的目标批量。在切换时,新批量不是直接跳变到目标值,而是在上一个批量的基础上,按照某个动量因子平滑过渡。这种平滑过渡有助于避免训练过程中的突然扰动。

算法的核心循环可以这样理解:每当训练消耗了一定量的数据,就查表看看现在的最优批量应该是多少,然后根据与上次批量的差值,按比例调整到新的批量大小。整个过程就像一个智能恒温器,持续监控训练状态并自动调整"火候"。

真刀真枪的验证:大规模实验结果

理论说得再好,也得经得起实践检验。研究团队在两个主流的大模型架构——Qwen3 MoE(混合专家模型)和Qwen3 Dense(稠密模型)——上进行了全面的实验验证。

实验使用了InternLM2语料库,包含网页、学术文献、书籍、专利、代码等多种数据类型。对于MoE模型,总参数量为40亿,但由于混合专家机制,每次推理只激活其中5.38亿参数。对于Dense模型,参数量约为20亿。

在基线实验中,两种模型都使用固定的400万批量大小,配合WSD学习率调度器的"稳定"阶段进行训练。作为对照,动态调度策略则在每消耗125B token时调整一次批量,按照200万、400万、500万、600万的顺序逐步增大。

实验结果令人印象深刻。对于MoE模型,在训练了500B token之后,动态调度策略相比固定批量基线,训练损失降低了约0.04。别小看这个数字,在大模型训练的语境下,0.04的损失差距意味着显著的性能提升——通常需要额外训练数百亿token才能通过固定策略达到同等水平。

在下游任务评测上,效果同样显著。研究团队使用了MMLU(大规模多任务语言理解)和CMMLU(中文版MMLU)两个权威基准进行评估。在MoE模型上,动态调度策略在MMLU上的得分从约42分提升到48分左右,在CMMLU上从约42分提升到52分左右。Dense模型也展现了类似的提升趋势,MMLU从约45分提升到50分,CMMLU从约47分提升到54分。

从训练曲线来看,动态调度策略的损失曲线始终位于固定批量策略的下方,而且随着训练的进行,两者之间的差距逐渐拉大。这正好印证了理论分析的预测:随着训练深入,使用更大批量带来的优势会越来越明显。

打破常规的发现:学习率不需要随批量调整

在深度学习领域,有一条被广泛接受的经验法则:当你增大批量时,应该相应地调大学习率。最常见的做法是让学习率与批量的平方根成正比增长。但研究团队的实验结果挑战了这一传统观念。

他们在Qwen3 MoE模型上进行了对比实验:一组在增大批量时保持学习率不变,另一组则按照平方根法则同步调大学习率。结果出人意料——两组的性能几乎没有区别,在某些阶段,调整学习率的方案甚至略逊一筹。

这个结果背后的机理其实很好理解。调大学习率会增加梯度噪声的影响,而增大批量的主要好处之一就是降低梯度噪声。如果你在增大批量的同时也调大学习率,就相当于一边灭火一边浇油,两个效果互相抵消了。因此,在动态调整批量时,保持学习率稳定反而是更明智的选择。

不是所有的"多吃"都有效:序列长度扩展的陷阱

除了增加micro-batch的数量,还有一种方式可以增大有效批量,那就是增加每个样本的序列长度。理论上,把序列从4K扩展到6K,处理的token总量就增加了50%,相当于批量变大了。但实验结果表明,这种做法存在明显的副作用。

研究团队在MoE模型上测试了序列长度扩展策略。当在训练中途将序列长度从4K切换到6K时,模型性能立即出现了明显下降。虽然经过一段时间的适应后性能会逐渐恢复,但整个过程不仅浪费了训练资源,还存在让模型"学歪"的风险——长序列样本的数据分布与短序列不同,可能导致模型对长文本产生过度偏好。

相比之下,通过增加micro-batch数量来扩大批量就没有这个问题。每个样本的内部结构保持不变,只是同时处理更多样本,数据分布的稳定性得以保持。这个发现为工程实践提供了明确的指导:在调整批量大小时,优先选择调整micro-batch数量,而非序列长度。

权重衰减的隐藏影响

权重衰减是深度学习中一种常用的正则化技术,可以防止模型过拟合。研究团队发现,权重衰减的设置会显著影响动态批量调度策略的效果。

在实验中,当权重衰减系数设为较低的0.01时,动态调度策略相对于固定批量的优势明显减弱,几乎可以忽略不计。而当权重衰减系数设为0.1时,动态调度的优势就非常显著了。这意味着动态批量调度和适当的正则化强度是相辅相成的——要想充分发挥动态调度的威力,必须配合足够强的权重衰减。

从机理上理解,适当的权重衰减能够防止模型在大批量训练时"走捷径"学到一些泛化性差的特征。当正则化太弱时,大批量带来的稳定梯度反而可能导致模型过早收敛到次优解。

九、持续训练阶段的表现:衰减期验证

现代大模型的训练通常分为多个阶段。在WSD调度器的框架下,主要的"稳定"阶段之后还有一个"衰减"阶段,在这个阶段学习率会逐渐降低,同时使用更高质量的数据进行精细化训练。

研究团队特别验证了动态批量调度策略在衰减阶段的表现。他们在完成500B token的稳定阶段训练后,继续进行了100B token的衰减阶段训练。在这个阶段,学习率线性衰减到原来的10%。对于基线,批量大小固定在400万;对于动态策略,则保持之前达到的600万批量不变。

结果显示,动态策略的优势在衰减阶段得以保持甚至进一步扩大。在MMLU上,动态策略的最终得分达到约50分,而基线只有约44分;在CMMLU上,动态策略达到约52分,基线约为46分。这说明动态批量调度策略具有良好的鲁棒性,即使在数据分布发生变化的精细化训练阶段也能持续发挥作用。

余弦学习率调度下的表现

虽然研究的重点是WSD调度器,但研究团队也测试了动态批量策略在传统余弦学习率调度下的效果。在这种设置下,学习率从零逐渐升高到峰值,然后按余弦曲线平滑下降。

实验结果同样正向。相比于固定400万批量的基线,动态调度策略在MMLU上从约42分提升到约49分,在CMMLU上从约42分提升到约52分。这个结果可以用经典的临界批量大小理论来解释:随着训练进行,梯度噪声会逐渐累积,此时扩大批量能够有效抑制噪声,帮助模型找到更深的损失谷底。

这一发现具有重要的实践意义:动态批量调度并非只适用于WSD调度器,在其他学习率调度策略下同样有效,只是背后的机制有所不同。

至顶AI实验室洞见

这项研究告诉我们一个简单而深刻的道理:训练AI就像培养一个孩子,不能一成不变地按照老办法来,而要根据成长阶段灵活调整策略。

当然,这项研究也存在一些局限。新公式的拟合只在特定学习率(6×10⁻⁴)下进行,其他学习率下的表现还有待探索。动态调度策略虽然在实验中表现优异,但目前还缺乏严格的理论证明。序列长度切换带来的训练不稳定问题也尚未完全解决。这些都是未来研究的方向。

对于AI从业者来说,这项研究的实践意义非常明确:在训练大模型时,不要拘泥于固定的批量大小,而应该随着训练的深入逐步增大批量。具体的增长曲线可以通过小规模实验来确定。同时,在调整批量时保持学习率稳定,配合适当的权重衰减,能够获得最佳效果。

对于普通读者来说,这项研究展示了现代AI科学的一个缩影:那些看似简单的训练决策背后,隐藏着深刻的数学规律。而发现和利用这些规律,正是推动AI不断进步的动力之源。

论文地址:

https://arxiv.org/pdf/2601.05034v1

END

本文来自至顶AI实验室,一个专注于探索生成式AI前沿技术及其应用的实验室。致力于推动生成式AI在各个领域的创新与突破,挖掘其潜在的应用场景,为企业和个人提供切实可行的解决方案。

Q&A

Q1:什么是批量大小,为什么大模型训练中批量大小很重要?

A:批量大小指的是AI模型每次学习时同时处理的数据样本数量。批量大小很重要是因为它直接影响训练效率和最终模型质量。太小的批量会导致训练不稳定且耗时过长,太大的批量可能浪费计算资源或影响模型性能。找到合适的批量大小能够在有限的计算预算下训练出更好的模型。

Q2:WSD学习率调度器和传统余弦学习率调度器有什么区别?

A:WSD学习率调度器分为预热、稳定、衰减三个阶段,在稳定阶段保持学习率恒定,这种方式被DeepSeek、Kimi、Qwen等主流大模型采用。传统余弦学习率调度器则让学习率从峰值按余弦曲线平滑下降。两种调度方式下,批量大小与训练效率的关系存在本质差异,需要不同的理论框架来指导批量选择。

Q3:动态批量调度策略在实际训练中能带来多大的性能提升?

A:根据论文实验数据,在Qwen3 MoE模型上,动态批量调度相比固定批量策略,训练损失降低约0.04,在MMLU基准上得分从约42分提升到48分,在CMMLU基准上从约42分提升到52分。这意味着使用相同的训练数据量,动态调度能够训练出明显更强的模型。

相关内容

热门资讯

春节出境游全面超往年!“最长春... 2026年春节9天连休,促成“史上最长春节假期”,直接刺激出境游需求的爆发。同程旅行数据显示,截至1...
湖北旅游公司哪家好:专业测评与... 面对湖北旅游公司哪家好这一核心疑问,不少游客陷入选择困境:在数量众多的市场主体中难以甄别实力高低,多...
为筹3万欧,横跨半个地球!23... 在这个世界上,总有一些人选择用最“硬核”的方式去回馈家乡。 最近,23岁的科克小伙达拉·克罗宁刷屏了...
桑科草原:甘南草原上的明珠,感... 桑科草原位于甘肃省甘南藏族自治州夏河县境内,距离夏河县城约18公里,平均海拔在3000米以上,总面积...
任贤齐演唱会、文博联票……马年... 1月12日,“旅选上海,超级新春”2026春节上海文旅场景精彩大放送暨第一届上海旅游攻略超级大赛(第...