13 Scaling Law 入门:模型规模、数据规模和计算量是什么关系?

13 Scaling Law 入门:模型规模、数据规模和计算量是什么关系? 在前几篇文章中我们沿着 GPT 路线依次讲了 GPT-1、GPT-2、GPT-3、In-Context Learning 和 Prompt Engineering。这条路线可以简单概括为GPT-1生成式预训练 下游任务微调 GPT-2大规模语言模型开始表现出 zero-shot 能力 GPT-3模型扩大到 175Bfew-shot / in-context learning 能力显著增强到 GPT-3 之后一个非常重要的问题出现了大语言模型是不是只要不断增大参数量就会持续变强最直观的想法是模型越大能力越强。但实际情况并没有这么简单。大语言模型的性能不只取决于参数量还取决于训练数据规模、训练计算量、数据质量、训练步数和优化策略。如果模型很大但训练数据不够它可能没有被充分训练。如果数据很多但模型太小它可能没有足够容量吸收数据中的规律。如果计算预算有限就需要在模型大小和数据规模之间做取舍。这就引出了本章的主题Scaling Law。Scaling Law 可以翻译为规模化规律在大语言模型中它主要研究模型性能如何随着参数量、训练数据量和计算量的增加而变化这一章我们先做入门解释不急着推导复杂公式而是把几个核心概念讲清楚模型规模是什么 数据规模是什么 计算量是什么 为什么三者需要平衡 为什么 GPT-3 之后 Chinchilla 改变了大家对大模型训练的理解一、为什么需要 Scaling Law训练大语言模型非常昂贵。当模型规模达到几十亿、几百亿甚至上千亿参数时训练一次模型需要大量 GPU、海量数据和很长训练时间。因此研究者和工程团队必须回答一个现实问题在有限计算预算下应该训练多大的模型用多少数据训练多久例如现在有一笔固定训练预算。你可以选择方案 A训练一个很大的模型但只看较少数据 方案 B训练一个较小模型但看更多数据 方案 C训练一个中等模型同时使用中等规模数据哪个方案更好如果没有 Scaling Law只能靠经验反复试错。但大模型训练成本太高不可能随便训练几十个几百亿参数模型来试。Scaling Law 的意义就在于通过小规模实验总结规律预测更大规模模型在不同参数量、数据量和计算量下的表现。它的作用有点像工程设计中的经验公式。虽然不能完美预测所有细节但可以给出重要方向模型继续变大是否值得 数据是否不够 计算预算应该分给参数量还是训练 token 数 当前模型是不是 undertrained这也是 GPT-3、Chinchilla、PaLM、LLaMA、DeepSeek 等模型背后都非常关注的问题。二、Scaling Law 中的三个核心变量在语言模型 Scaling Law 中最常见的三个变量是N模型参数量 D训练数据量 C训练计算量这三个变量决定了大模型训练的基本规模。1. 模型参数量 N模型参数量通常记为N它表示模型中可训练参数的数量。例如GPT-2 最大模型约 1.5B 参数 GPT-3 最大模型175B 参数 Chinchilla70B 参数参数越多模型容量越大。可以简单理解为参数量决定模型能够存储和表达多少复杂模式。更大的模型通常可以学习更复杂的语言结构、更丰富的知识、更强的上下文关系和更复杂的任务模式。但参数量不是越大越好。如果模型很大但训练数据不足模型可能没有被充分训练。这就像一个容量很大的学生只看了很少的书虽然脑容量很大但知识仍然不够。2. 训练数据量 D训练数据量通常记为D在大语言模型中数据量一般用 token 数表示。例如300B tokens 1T tokens 2T tokens 10T tokens这里的 token 不是字数也不完全等于单词数而是 tokenizer 切分后的基本单位。训练数据越多模型能看到的语言模式越丰富。它可以学习语法结构 事实知识 代码模式 数学表达 问答格式 推理过程 多语言表达 领域术语但数据也不是越多越好。如果数据质量很差大量重复、噪声、垃圾文本会降低训练效率。如果模型太小即使给它很多数据它也未必能充分吸收。所以数据规模必须和模型规模匹配。3. 训练计算量 C训练计算量通常记为C它表示训练模型消耗的计算资源常用 FLOPs 衡量。在 Transformer 语言模型中一个常见近似是其中C 是训练计算量N是模型参数量D是训练 token 数系数 6 来自 Transformer 前向和反向传播中的经验近似。这个公式不用死记理解它的含义更重要训练计算量大致和模型参数量、训练 token 数都成正比。也就是说如果模型参数量翻倍在训练 token 数不变时计算量大约也会翻倍。如果训练 token 数翻倍在模型大小不变时计算量也大约翻倍。所以在固定计算预算下模型大小和训练数据量之间存在取舍模型更大 → 每个 token 训练更贵 → 能训练的 token 数可能减少 数据更多 → 训练 token 数增加 → 模型可能不能做得太大这正是 Scaling Law 要研究的问题。三、早期 Scaling Law模型越大数据越多计算越多损失越低2020 年OpenAI 的 Kaplan 等人提出了著名的Scaling Laws for Neural Language Models。这篇论文研究了语言模型性能和模型参数量、数据集大小、训练计算量之间的关系。它的一个核心结论是语言模型的交叉熵损失会随着模型规模、数据规模和计算量的增加呈现可预测的幂律下降趋势。通俗来说就是模型更大loss 通常会下降 数据更多loss 通常会下降 计算更多loss 通常会下降所谓 loss可以简单理解为模型预测下一个 token 的错误程度。loss 越低说明模型越能准确预测文本分布。早期 Scaling Law 的直观意义是大模型不是靠运气变强而是存在相对稳定的规模化趋势。这给 GPT-3 这样的模型提供了重要背景。如果模型性能随着规模增加可以预测性提升那么训练更大模型就有了理论和经验依据。四、GPT-3 与“大模型路线”GPT-3 可以看作早期 Scaling Law 思路下的重要实践。GPT-3 最大模型达到 175B 参数远大于 GPT-2 的 1.5B。GPT-3 论文展示了一个重要现象随着模型规模扩大语言模型的 few-shot 能力显著增强。GPT-3 并没有针对每个任务微调而是通过 prompt 中的任务说明和少量示例完成任务。例如English: cat Chinese: 猫 English: dog Chinese: 狗 English: book Chinese:模型可以根据上下文继续输出书这说明模型规模扩大后不只是语言建模 loss 下降还会带来更强的上下文任务适应能力。因此在 GPT-3 之后很多人形成了一个直觉只要模型继续变大能力就会继续增强。这个直觉并不完全错但它不完整。因为它忽略了另一个关键变量训练数据量如果模型非常大但训练 token 数不够那么它可能是 undertrained也就是训练不足。这正是 Chinchilla 后来指出的问题。五、Chinchilla大模型不能只堆参数2022 年DeepMind 提出了Training Compute-Optimal Large Language Models也就是常说的 Chinchilla 论文。这篇论文对大模型训练规律产生了很大影响。它指出当时许多大语言模型过度重视扩大参数量但训练 token 数不足。换句话说很多模型是参数很多 但看过的数据不够多这类模型可以称为 undertrained。Chinchilla 的核心观点是在固定计算预算下模型参数量和训练 token 数应该同时增长而不是只增大模型参数。更具体地说Chinchilla 论文发现如果模型参数量翻倍训练 token 数也应该大致翻倍。这和早期一些实践中“把模型做得特别大但训练数据相对不足”的做法不同。Chinchilla 的实验非常有代表性。DeepMind 训练了一个 70B 参数的 Chinchilla 模型。虽然它比 Gopher 的 280B 参数小很多但使用了更多训练数据并在相同计算预算下取得了更好效果。这说明一个参数更小但训练更充分的模型可能比一个参数更大但训练不足的模型更强。这也是为什么 Chinchilla 之后大家越来越重视参数量和 token 数的配比而不是只看模型参数量。六、什么是 Compute-Optimal TrainingCompute-Optimal Training 可以翻译为计算最优训练它要解决的问题是给定固定计算预算如何选择模型参数量和训练 token 数使最终模型效果最好假设训练预算固定为C我们知道训练计算量大致满足其中N 是模型参数量D是训练 token 数。如果C固定那么 N 和 D 不能同时无限增大。例如选择更大的 N就要减少 D 选择更大的 D就要减小 NCompute-Optimal Training 研究的就是在固定 C 下N 和 D 应该如何分配早期很多模型更偏向选择较大的 (N)也就是更大的参数量。Chinchilla 则强调很多模型的数据量不够应该使用更小的模型训练更多 token。这就是 Chinchilla scaling law 带来的训练范式变化。七、为什么“大模型 少数据”不一定最优直观上参数越多模型越强。但这只说对了一半。模型参数可以看作容量数据可以看作学习材料。如果一个模型参数很多但训练数据很少就像一个容量很大的学生只读了少量书。它虽然有很大潜力但没有足够材料学习。这会导致训练不充分 数据利用不足 模型能力没有完全释放 推理成本却很高反过来如果模型比较小但训练数据很多也可能遇到另一个问题模型容量不够 无法充分吸收数据中的复杂规律所以最优状态不是简单地模型越大越好也不是简单地数据越多越好而是模型规模和数据规模要匹配这就是 Scaling Law 的核心价值。八、从 GPT-3 到 Chinchilla理解训练范式变化我们可以用一个简单表格比较 GPT-3 和 Chinchilla 的思路。对比维度GPT-3 路线Chinchilla 路线重点扩大模型参数量参数量和数据量平衡代表模型GPT-3 175BChinchilla 70B核心问题大模型能否 few-shot固定计算预算下怎么训练最优训练理解模型越大能力越强只堆参数可能 undertrained启发扩大模型带来能力提升更小模型 更多数据可能更优GPT-3 证明了大模型规模化会带来强大的 few-shot 能力。Chinchilla 则进一步提醒我们在计算预算有限时不应该只问模型有多大还要问模型训练了多少 token。所以今天讨论一个大语言模型时不能只看参数量。还要看训练 token 数 数据质量 上下文长度 模型结构 训练计算量 是否 compute-optimal这也是为什么很多新模型虽然参数量不是最大但效果却很强。九、Scaling Law 对今天大模型训练的影响Scaling Law 对大模型训练影响非常大。1. 不再只看参数量过去很多人评价模型第一反应是这个模型多少 B 参数例如7B 13B 70B 175B 405B但现在我们知道参数量只是一个维度。一个 70B 模型如果训练 token 数充足、数据质量高、训练策略好可能超过更大的 undertrained 模型。所以更合理的问题是这个模型多少参数 用了多少 token 训练 数据质量如何 训练是否充分 推理成本是多少2. 更重视数据质量和数据规模Chinchilla 之后训练 token 数变得更加重要。很多模型开始使用数万亿 token 进行训练。但数据越多并不代表越好。如果数据充满重复、低质量网页、垃圾文本、错误代码和污染样本模型效果可能受影响。因此现代大模型训练非常重视数据清洗 去重 质量过滤 领域混合 代码数据比例 数学数据比例 多语言比例 安全过滤数据工程逐渐成为大模型训练的核心环节。3. 更重视小模型训练充分Chinchilla 的启发之一是充分训练的小模型可能非常强。这对开源模型尤其重要。因为不是所有团队都有能力训练几百 B 参数模型。如果能在 7B、13B、70B 这类规模上使用更高质量数据和更充分训练也可以得到非常有竞争力的模型。这也是 LLaMA、Mistral、Qwen、DeepSeek 等开源模型路线的重要基础。4. 更重视推理成本参数越大推理成本通常越高。一个 175B 模型即使效果很好部署和推理也非常昂贵。如果一个 70B 模型通过更多数据训练可以达到类似甚至更好效果那么它在实际应用中更有优势。所以 Scaling Law 不只是训练问题也影响部署成本。十、Scaling Law 不是万能规律Scaling Law 很重要但不能过度神化。它主要描述的是在一定条件下语言模型 loss 和规模变量之间的经验关系但实际模型能力还受到很多其他因素影响。1. 数据质量会改变结果同样是 1T tokens高质量书籍、代码、数学和问答数据与低质量重复网页数据训练效果差异很大。Scaling Law 中的 token 数量不能完全代表数据质量。2. 任务能力不只由 loss 决定语言建模 loss 下降通常有助于模型能力提升。但某些能力例如复杂推理、工具调用、长程规划、安全对齐不一定只靠降低预训练 loss 就能解决。这也是为什么后面还需要指令微调 RLHF DPO Chain-of-Thought RAG 工具调用 强化学习推理3. 架构变化也会影响规律不同模型架构可能有不同效率。例如Dense Transformer MoE Transformer GQA / MQA / MLA 不同 FFN 结构 不同位置编码 不同上下文长度扩展方式这些都会影响训练和推理效率。4. 评测可能存在数据污染大模型训练数据来自互联网评测集也可能出现在互联网中。如果训练数据中包含评测题模型表现可能被高估。所以 Scaling Law 之外还需要认真处理数据污染和评测可靠性问题。十一、如何用 Scaling Law 理解后续模型理解 Scaling Law 后我们看后续大模型会更清楚。例如为什么 LLaMA 系列强调用更多 token 训练 为什么 Chinchilla 70B 能超过更大的 Gopher 为什么很多 7B / 13B 模型效果越来越强 为什么 MoE 模型可以增加总参数但控制激活计算 为什么大模型训练越来越重视数据配比这些问题背后都和规模化规律有关。我们可以用三个问题分析一个模型模型有多大 训练了多少 token 用了多少计算量再进一步问数据质量如何 模型结构是否高效 推理成本是否可接受 是否做了指令对齐 是否支持长上下文这样就不会只看参数量而能更全面理解模型。十二、本文小结本文介绍了 Scaling Law也就是大语言模型中的规模化规律。Scaling Law 主要研究模型性能如何随着参数量、训练数据量和计算量的增加而变化。在大语言模型中最核心的三个变量是N模型参数量 D训练 token 数 C训练计算量训练计算量可以粗略理解为这说明训练成本和模型参数量、训练 token 数都密切相关。早期 Scaling Law 研究发现语言模型 loss 会随着模型规模、数据规模和计算量增加而呈现可预测的下降趋势。GPT-3 是大模型规模化路线的重要代表。它将模型扩大到 175B 参数并展示了显著的 zero-shot、one-shot 和 few-shot 能力。但 Chinchilla 进一步指出大模型不能只堆参数。在固定计算预算下模型参数量和训练 token 数应该平衡增长。很多早期大模型可能参数很大但训练数据不足属于 undertrained。Chinchilla 的重要启发是更大模型不一定最优 训练更充分的较小模型可能更强 参数量和数据量需要匹配因此今天理解大语言模型时不能只看模型参数量还要同时关注训练 token 数 数据质量 训练计算量 模型结构 推理成本 对齐方式如果用一句话总结Scaling Law 告诉我们大语言模型能力的提升不是单纯依赖参数变大而是模型规模、数据规模和计算预算共同作用的结果。下一章我们可以继续写