详细摘要 摘要
生成:2025-05-17 22:02摘要详情
- 音频文件
- Stanford CS336 Language Modeling from Scratch | Spring 2025 | Scaling laws
- 摘要类型
- 详细摘要
- LLM 提供商
- openai
- LLM 模型
- gemini-2.5-pro-exp-03-25
- 已创建
- 2025-05-17 22:02:32
摘要内容
概览/核心摘要 (Executive Summary)
本讲座深入探讨了大型语言模型(LLMs)的伸缩法则(Scaling Laws),旨在建立简单、可预测的模型行为规律,以便通过小模型实验指导大模型的工程优化。讲座回顾了伸缩法则的历史背景,从统计机器学习理论(如VC维)到早期经验性研究(如Bell Labs 1993年的工作、Banko & Brill 2001年关于数据量的研究),强调了其并非仅是对数坐标系下的直线拟合。核心内容分为数据伸缩(Data Scaling)和模型伸缩(Model Scaling)。数据伸缩方面,讲座论证了模型性能(如测试损失)随数据量增加呈幂律下降的自然性,并通过均值估计和非参数回归的例子解释了多项式衰减的合理性,指出斜率与数据内在维度相关。模型伸缩则关注架构(如Transformer优于LSTM)、优化器、以及关键超参数(如模型宽高比、批次大小、学习率)如何影响模型性能随计算资源的变化。特别讨论了Chinchilla法则,即在固定计算预算下,如何平衡模型大小与训练数据量以达到最优性能,并介绍了其三种推导方法(最小包络线法、IsoFLOP分析、联合拟合)。讲座还提及了μP(Maximal Update Parametrization),一种使学习率等超参数在模型宽度变化时保持稳定的参数化方法。最后,总结了基于伸缩法则的设计流程:通过小规模实验建立伸缩关系,预测并优化大规模模型的超参数和资源分配,但同时提醒伸缩法则在下游任务上的预测性可能不如在损失函数上那么稳定。
引言与伸缩法则的动机
- 核心问题:如何在有限的计算资源(例如,
100,000个H100 GPU使用一个月)下构建最优秀的开源大语言模型? - 挑战:直接训练和调优大型模型成本极高。传统的深度学习方法是“训练大量大模型,调整超参数”,这非常消耗计算资源。
- 伸缩法则的目标:
- 建立简单、可预测的语言模型行为规律。
- 通过训练小模型,学习其行为规律,然后外推到大模型,从而优化工程实践。
- 实现“在小模型上学习,一次性成功构建大模型”。
- 讲座内容:
- 回顾伸缩法则的历史和背景,强调其不仅是对数-对数坐标图上的直线拟合。
- 论证数据伸缩的自然性。
- 探讨模型大小伸缩及其他相关因素。
伸缩法则的历史背景与早期工作
- 统计机器学习的根源:
- 伸缩法则的概念类似于机器学习理论中的泛化界,如VC维和Rademacher复杂度的分析,这些理论预测误差如何随样本量
n变化(例如,1/√n的衰减率)。 - 非参数率(Non-parametric rates)也研究样本大小与误差的关系,例如密度估计误差的上界为
n^(β/(2β+1))。 - 理论研究主要提供误差上界,而伸缩法则是从理论思考(数据/模型大小与性能关系)到经验拟合(实际损失值)的飞跃。
- 伸缩法则的概念类似于机器学习理论中的泛化界,如VC维和Rademacher复杂度的分析,这些理论预测误差如何随样本量
- 早期经验性研究:
- Bell Labs (1993, Vapnik, Cortes et al.):被认为是“第一个伸缩法则论文”。
- 提出预测模型性能而无需完整训练的方法,以应对大型数据库上分类器训练的计算密集问题。
- 其函数形式(测试错误 = 不可约错误 + 多项式衰减项)与现代伸缩法则相似。
- 通过训练小模型拟合曲线,预测大模型行为。
- Banko & Brill (2001):研究NLP系统性能如何随数据量伸缩。
- 展示了数据量(x轴,对数)与性能(y轴)的现代伸缩法则图表。
- 提出观点:“也许我们应该考虑在算法开发上花费时间和金钱与仅仅收集更多数据之间的权衡。”
- 早期关于函数形式的思考 (约2012年):探讨幂律(如三次方、四次方)是否是预测模型行为的正确函数形式。
- Bell Labs (1993, Vapnik, Cortes et al.):被认为是“第一个伸缩法则论文”。
- 大规模神经伸缩法则的早期工作:
- Hessness et al. (2017, 当时在百度):
- 展示了在机器翻译、语音等多种任务中,错误率随数据量增加呈幂律下降。
- 提出了模型行为的三个区域:初始猜测区、可预测伸缩区(幂律区)、渐近区(接近不可约错误)。
- 强调了早期工作已涵盖现代观念:随机性能区域预测困难、计算限制的重要性、量化等技术(用计算换取模型精度)。
- Hessness et al. (2017, 当时在百度):
- 核心观点:通过可预测的资源投入,可以获得可预测的能力提升。
数据伸缩法则 (Data Scaling Laws)
- 定义:数据伸缩法则是指将数据集大小
N映射到超出误差(Excess error,即超出不可约误差部分)的简单公式。 - 经验观察:
- 在x轴为数据集大小(对数),y轴为测试损失(对数)的图上,模型性能呈线性关系(幂律关系或无标度现象)。
- 此现象在多种变量下均成立,如计算量、数据集大小、参数量(假设其他变量足够大以避免饱和)。
- Kaplan的伸缩法则论文中展示了这些关系,包括在下游任务和分布外数据上也成立。
- 为何是多项式衰减?
- 单调性:训练数据越多,误差越低,这很直观。
- 函数形式:幂律关系意味着误差与数据量之间存在多项式关系。
- 简单例子:均值估计
- 任务:估计高斯分布数据的均值。
- 误差:均值估计的期望平方误差为
σ²/N。 - 取对数后:
log(Error) = -log(N) + 2log(σ),斜率为-1。
- 实际观察到的斜率:
- Hessness et al. (机器翻译): -0.13
- Hessness et al. (语音): -0.3
- Kaplan et al. (语言建模): -0.095
- 这些斜率远小于理论上的-1或-0.5(如agnostic learning),表明衰减更慢。
- 原因:非参数回归与内在维度
- 神经网络能拟合任意函数,类似于非参数回归。
- 例子:2D空间中的非参数回归
- 将2D空间划分为
√M个小盒子,每个盒子分配√N个样本。 - 误差近似为
1/√N。推广到D维空间,误差为N^(-1/D),对数-对数图上的斜率为-1/D。
- 将2D空间划分为
- 结论:对于灵活的函数类别(非参数函数类),伸缩法则的斜率依赖于数据的内在维度(intrinsic dimensionality)。斜率越平缓,可能意味着内在维度越高或学习任务越难。
- 有研究试图将学习速率与数据内在维度联系起来,但内在维度估计本身非常困难。
- 数据伸缩法则的实际应用:
- 数据组成(Data Composition):
- Kaplan et al. 的研究表明,数据组成主要影响伸缩曲线的偏移量(offset)而非斜率(slope)。
- 这意味着可以在较小模型规模上进行数据选择实验,以挑选优质数据集。
- 可以通过回归等技术,利用伸缩法则估计最优数据混合比例。
- 多周期训练(Multi-epoch Training):
- 解决“数据是否耗尽”以及“重复训练相同数据收益递减”的问题。
- 研究表明存在“有效样本量”,大约4个周期后,重复数据的收益迅速递减。
- 可以通过修改标准伸缩法则,引入有效数据量和唯一Token量的概念来建模。
- 大规模数据选择:
- 权衡是重复高质量数据源(如维基百科)还是包含新的、可能质量较低的数据。
- CMU的研究工作利用数据伸缩法则来权衡重复数据与选择低质量新数据。
- 数据组成(Data Composition):
- 总结:数据与误差之间的对数-对数线性关系具有鲁棒性,并且有较清晰的理论解释,可用于优化数据混合等实际问题。当讨论数据规模伸缩时,通常假设模型规模足够大,以避免模型容量成为瓶颈。
模型伸缩法则 (Model Scaling Laws)
- 核心问题:在构建大型语言模型时,如何选择架构、优化器、超参数,以及如何在计算、数据和模型大小之间分配资源?
- Kaplan et al. 的经典工作:提供了大量关于模型伸缩的观察。
- 架构选择:
- Transformers vs. LSTMs:
- 通过在不同计算水平上训练一系列LSTMs和Transformers,比较其伸缩行为。
- 结果显示,无论层数多少,Transformers 相对于 LSTMs 存在一个显著的常数因子计算效率优势(例如,LSTMs 可能比 Transformers 计算效率低15倍)。
- 其他架构比较 (Eikema & Aziz, 2023):
- 比较多种架构(x轴为计算量,红线为各架构,绿线为Transformer基线)能否匹配或超越Transformer。
- 结论:门控线性单元(Gated Linear Units, GLU)和混合专家模型(Mixture of Experts, MoE) 是少数能可靠匹敌Transformer的架构。这与当前SOTA模型的趋势一致。
- Transformers vs. LSTMs:
- 优化器选择 (Hessness et al.):
- 比较 SGD 和 Adam。
- 发现 Adam 相对于 SGD 在有效性上存在类似的常数因子差距。
- 模型宽高比 (Depth vs. Width):
- Kaplan 的分析显示,虽然单层模型表现很差,但其他层数选择表现相对稳定。
- 存在一个较宽的近似最优区间(例如,宽高比在4到16之间),与架构讲座中的结论相似。
- 参数的非均等性:
- 嵌入层参数 (Embedding Parameters):与非嵌入参数相比,嵌入层参数的伸缩行为不同,不显示清晰的对数线性关系。进行参数伸缩分析时,通常只考虑非嵌入参数。
- MoE模型的参数:稀疏激活参数的计数方式也需要特殊处理,例如推导等效的稠密参数量。
- 超参数调优的规模感知 (Scale-aware Hyperparameter Tuning):
- Kaplan 的研究表明,许多超参数的最优选择(如宽高比、前馈网络比例、注意力头维度)在不同模型规模下保持相似的“形状”或趋势。
- 这意味着可以在较小规模上进行超参数调优,其结果在很大程度上可以迁移到更大规模。
- 重要例外:学习率和批次大小通常需要随模型规模调整。
- 批次大小 (Batch Size) 伸缩:
- 临界批次大小 (Critical Batch Size):批次大小增加到某一点后,收益递减。临界批次大小是完美伸缩到强递减收益的转折点。
- 目标损失与批次大小:当目标损失更低时(模型更好),临界批次大小会变小,意味着可以使用更大的批次。Llama 3的训练报告中提到在训练中途增加批次大小。
- 计算量与最优批次大小:Kaplan 的分析显示,随着计算量的增加,最优批次大小可以相应增大,而总步数可以保持相对稳定。
- 学习率 (Learning Rate) 伸缩:
- 标准实践 (Standard Practice):
- 最优学习率随模型规模变化。模型越宽,最优学习率越小;模型越小,最优学习率越大。
- 经验法则:学习率与模型宽度成反比(
1/width)。 - 更高级的做法是拟合最优学习率随模型规模变化的伸缩法则。
- μP (Maximal Update Parametrization):
- 通过重新参数化模型(如根据宽度调整初始化、各层学习率、输出等),使得最优学习率在不同模型宽度下保持(理论上)完全稳定。
- 调优一次学习率,即可直接应用于不同规模的模型。
- Meta的Llama (Llama 3/4 [原文为Lamafour,应为Llama 3或后续版本]) 声称使用了类似的 MetaP。
- 这是一个重要的研究方向,因为它简化了学习率调优。
- 标准实践 (Standard Practice):
- 对下游任务的警示:
- 伸缩法则在对数损失(如交叉熵)上表现良好且可预测。
- 但在下游任务的性能(如SuperGLUE准确率)上,行为可能远不那么可预测。
- Eikema & Aziz 的研究显示,尽管不同超参数设置的模型在负对数困惑度上与参数量(计算量)呈良好线性关系,但在下游任务上,这种关系瓦解,某些模型和架构表现显著优于其他。
- 例如,状态空间模型(State Space Models)在困惑度上伸缩良好,但在上下文学习或问答等能力上可能表现较差。
- 结论:不应将困惑度的伸缩等同于下游任务性能的伸缩。
基于伸缩法则的设计流程
- 训练少量小模型:这些小模型应跨越几个数量级的计算量。
- 建立伸缩法则:确认在训练的小模型上存在清晰的对数-对数线性关系。
- 设置最优超参数:
- 基于预测设定最优超参数。
- 在许多情况下,伸缩法则的斜率保持不变,这意味着小模型的调优结果可以很好地迁移到大模型。
- 重要例外:学习率等。
联合数据-模型伸缩 (Chinchilla法则)
- 核心问题:在固定的总计算预算下,应该分配更多资源给数据还是更大的模型?
- 早期(2021-2023年),数据相对计算更充裕,计算是主要限制因素。
- 极端情况(小模型+海量数据 或 巨模型+少量数据)均效率低下。
- 联合数据-模型伸缩法则的函数形式:
- Rosenfeld et al.:
Error = A/N^α + B/M^β + C_irreducible(N为数据量,M为模型大小) - Kaplan et al.:类似形式,但关注可约误差,无常数项。
- 这些函数形式虽有些随意,但能很好地拟合数据和模型的联合误差。
- Rosenfeld 的研究显示,在小模型和小数据上训练拟合的曲线,可以很好地外推到大模型和大数据的情况。
- Rosenfeld et al.:
- Chinchilla 论文 (Hoffmann et al., Google):旨在精确确定在以最小训练FLOPs获得最佳模型的目标下,Token数量与模型大小的最佳权衡。
- Chinchilla比例:大约是
每个参数20个Token。 - 与Kaplan估计的差异原因:部分由于学习率调度。Kaplan的早期估计与Chinchilla有较大出入。
- 余弦学习率调度 (Cosine Learning Rate Schedule):必须完整运行才能获得有效模型,不能提前截断。提前截断不等同于用较短的余弦周期从头训练。这是导致Kaplan估计偏差的因素之一。
- Chinchilla的三种估计方法:
- 方法一:最小包络线法 (Minimum over curves / Lower envelope)
- 叠加不同大小模型的训练曲线(x轴FLOPs,y轴训练损失)。
- 取所有计算预算下最优的检查点(形成下包络线)。
- 这些最优模型的参数大小和对应Token数与总计算量之间形成良好的伸缩法则。
- 此方法基于“在所有模型尺寸上优化的最小训练损失在FLOPs上是最优的”这一观察。
- 方法二:IsoFLOP分析 (IsoFLOP analysis)
- 选取一系列固定的计算预算(IsoFLOP线,每条线代表一种颜色)。
- 对于每个计算预算,通过改变模型参数量(同时反向改变数据量以保持总计算不变)来扫描模型。
- 找到每条IsoFLOP曲线上损失最小的点(可以通过显式选择或拟合二次曲线)。
- 这些最小点本身应遵循可预测的伸缩法则,从而提取出每FLOP的最优参数和Token数。
- 这是最典型、概念最直接的Chinchilla分析方法。
- 方法三:联合拟合 (Joint fit)
- 类似于Rosenfeld的方法,训练一系列不同N和M的模型,然后拟合一个3D的损失函数表面。
- Chinchilla论文中,此方法得到的模型大小和Token数估计与其他两种方法有显著差异。
- 后续研究 (Epoch AI):通过从原论文图表中“法医式”提取数据点并重新拟合,发现原始Chinchilla论文中方法三的曲线拟合存在问题(残差非零均值)。修正拟合后,其结果与方法一和方法二高度一致。
- 方法一:最小包络线法 (Minimum over curves / Lower envelope)
- Chinchilla比例:大约是
- Token与参数比例的演变:
- 早期(如GPT-3)可能是每个参数2个Token。
- Chinchilla将此推向每个参数20个Token。
- 当前趋势:由于推理成本的重要性日益增加(模型已成为产品,需考虑运营成本),研究者倾向于用更多的Token训练参数相对较小的模型,以获得在较小模型尺寸下的高智能。例如,最新的Qwen模型据称用了30万亿Token训练。
- 目标从“训练最优”转向“推理最优”。
伸缩法则的鲁棒性与可复现性
- 案例研究:文本扩散模型 (Diffusion Models for Text)
- 讲者学生Ishan的研究工作,试图将扩散模型应用于文本生成。
- 面临新模型类型,不知其最优Token/参数比例,也不知其是否可靠伸缩。
- 应用与自回归模型类似的IsoFLOP分析方法。
- 结果:扩散模型也显示出与Chinchilla类似的、可预测的伸缩曲线,尽管其生成机制完全不同。两种模型(自回归与扩散)的伸缩曲线平行,仅存在常数偏移。
- 结论:伸缩法则并非只适用于特定精选案例,它们在研究新模型或新环境时似乎能自然出现。
结论与回顾
- 核心思想:
- 数据伸缩和模型伸缩(参数、总计算量)均呈现对数线性关系。
- 这使得我们可以在训练大规模模型之前做出许多超参数和架构决策。
- 伸缩法则允许我们进行智能的资源权衡,例如在模型大小和数据量之间(如Chinchilla分析)。
- 主要成就:通过小规模实验优化模型各方面,而无需进行完整的大规模训练运行。
- 本次讲座回顾了Kaplan和Chinchilla的工作,强调了数据伸缩、模型伸缩以及利用伸缩法则优化模型的重要性。