迁移学习的标度律(Scaling Laws for Transfer)
† 工作完成于 OpenAI ‡ 约翰·霍普金斯大学(Johns Hopkins University)
摘要(Abstract)
我们在一种无监督的微调(fine-tuning)设置中研究分布之间迁移学习(transfer learning)的经验标度律(scaling laws)。当我们在固定大小的数据集上从头训练越来越大的神经网络时,它们最终会受限于数据而停止在性能(交叉熵损失)上的提升。当我们对在大型语言数据集上预训练(pre-trained)的模型做同样的事情时,性能增益的斜率只是减小而不会变为零。我们通过确定相同大小的 Transformer 在从头训练时需要多少数据才能达到同样的损失来计算从预训练中"迁移"的有效数据量。换句话说,我们关注数据单位,同时固定其他一切。我们发现,在低数据范围内,迁移的有效数据可以通过参数数量和微调数据集大小的幂律(power-law)得到很好的描述。我们相信这些幂律中的指数对应于模型的一般性(generality),以及分布之间(有向而非对称意义上的)接近度的度量。我们发现预训练实际上有效地倍增了微调数据集的大小。迁移和整体性能一样,在参数、数据和算力方面都是可预测地标度的。
1 引言(Introduction)
推动人工智能进步的有三大要素:算法创新 [HB20]、算力(compute) [AH18] 和数据。OpenAI Five 进行了超过一万年的 Dota 游戏,AlphaZero 进行了 1.4 亿局围棋,而 GPT-3 阅读了相当大一部分互联网内容 [OBB+19, SSS+17, BMR+20]。这些机器学习系统都是从零开始训练的(trained from-scratch),而人类则会"迁移"(transfer)过往的理解和经验,这也是我们能够以少得多的直接任务经验取得出色表现的部分原因。神经网络通常需要的直接经验量超过一个人一生所能经历的,这表明迁移所带来的样本效率(sample efficiency)提升或许是从数据角度进行刻画的重要途径。
最近在无监督和微调语言模型方面的进展使它们成为一个特别有趣的研究领域。无监督预训练在 [DL15] 中提升了下游任务的性能,并在 [PNI+18, HR18] 中带来了数据效率的提升。GPT-1 [RNSS18] 这一 Transformer 模型 [VSP+17] 的性能因预训练而得到提升。后续在小数据集上进行微调的工作不断刷新最先进的结果 [PNI+18, DCLT18, RSR+20]。这一系列成功表明,语言模型微调可以提供一个简单而有趣的设置来研究数据分布之间的迁移。
我们认为在低数据范围内刻画微调尤其重要,因为许多感兴趣的任务不会有足够大的、现成的数据集来从头训练大型模型(无论是数十亿数据点 [HNA+17, KMH+20, HKK+20],还是围棋那样的完美模拟器 [SHM+16])。在代码生成任务上微调语言模型对我们来说尤其有趣,因为文本和代码虽然有一些重叠,但是相当不同的分布。
我们的分析聚焦于在固定性能和模型大小时的数据单位。这种新颖的视角使我们能够用简单的方程 (1.1) 生成异常干净的拟合。在我们的低数据实验中,我们使用了从 40 万到 4 亿参数不等的模型规模,以及从约 105 到 5×109 字符(character)的微调数据集大小。
1.1 主要结果(Key Results)
我们训练了一系列不同规模的 Transformer 语言模型,使用 3 种不同的数据集训练方式:
- 从零开始在 Python 代码上训练;
- 先在自然语言上预训练,再在 Python 代码上微调;
- 先在自然语言和非 Python 代码的等比例混合上预训练,再在 Python 上微调。
我们变化网络规模和微调数据集的大小,并在留出的 Python 代码测试集上衡量性能。我们观察到以下关键结果:
有效迁移数据在低数据范围内很好地由幂律描述1:我们使用 DT 表示有效迁移数据(effective data transferred),即相同大小的、仅在 Python 上训练的模型,要达到在语言上预训练模型在 Python 上相同损失所需要的额外 Python 数据量。我们的符号在图 1 中以可视方式标示。方程 (1.1) 中的迁移标度律是本研究中许多关键见解和预测的核心。我们认为这个结果的简洁性非常耐人寻味:
其中 N 是非嵌入(non-embedding)模型参数的数量,DF 是微调数据分布的大小。k 是一个常数,α 和 β 是幂律指数。通过固定性能来测量预训练带来的"额外数据量",我们剥离了损失函数的具体形式,得到一个关于迁移的清晰、可解释的标度关系。
在本研究中,对于文本预训练后微调到 Python 的情形,我们拟合得到的指数约为 α ≈ 0.5、β ≈ 0.5 左右(具体数值取决于拟合方式,详见原文附录)。这意味着参数数量每翻一倍,迁移的有效数据就会按一个简单幂律增长;而微调数据每增加十倍,迁移的有效数据则按 α 比例放大。
当数据成为限制因素时,预训练模型具有更好的标度律,因为斜率小于零: 图 3 显示,当我们以固定的 Python 数据量 DF 进行微调而增大模型规模时,从头训练的模型会遭遇瓶颈,而已经在语言上预训练的模型则继续改进。方程 (1.1) 和 (1.2) 将这一现象量化。这一观察对实际部署有重要意义:在一个迁移目标数据集规模受限的场景下,模型规模的扩展在预训练存在时比没有预训练时更有价值。
忽略预训练成本,在低数据范围内微调模型在算力上更高效(图 4)。在利用已有的预训练模型(如 BERT 或 GPT-3 [DCLT18, BMR+20])时,忽略预训练成本是合理的。这是因为预训练模型可以重复用于多个下游任务,从而摊销预训练成本。
1.2 符号说明(Notation)
为方便阅读,我们列出本文使用的主要符号及其含义:
- DE — 总有效数据(total effective data),即相同大小的、从头在 Python 上训练的模型,要达到预训练模型在 Python 上相同损失所需的 Python 字符数。它是迁移数据与微调数据的总和,即 DE = DT + DF。
- DF — 微调数据集大小(fine-tuning dataset size),以字符数为单位。这是直接用于微调目标分布的数据量。
- DT — 有效迁移数据(effective data transferred),即相同大小的、从头在 Python 上训练的模型,要达到预训练模型在 Python 上相同损失所需的额外 Python 字符数。它是预训练"贡献"的有效数据量。
- N — 模型参数的数量,不包括词表(vocabulary)和位置嵌入(positional embeddings)。这些嵌入参数通常很大但与模型表达能力的核心规律相关性较弱。
- α, β — 有效迁移数据标度的幂律指数,分别对应 DF 和 N 的依赖性。
- k — 有效迁移数据标度的常数,整体反映了预训练分布相对于目标分布的"接近度"或"信息含量"。
- L — 上下文内每个 token 的交叉熵损失(cross-entropy loss),以 nat(自然对数底 e 为底的信息量单位)为单位,在 token 上平均。这是衡量语言模型性能的标准指标。
- C — 整篇论文中的算力(compute)单位是浮点运算数(FLOP)。算力是衡量训练成本的关键指标。
- D(N) — 给定模型大小,要达到无限 Python 数据所能达到的性能的 99% 所需的数据量。这是刻画"无限数据范围"的关键阈值。
- αN, αD — 来自 [KMH+20] 的损失 L 的幂律指数,分别对应参数和数据依赖。
- DC, NC — 来自 [KMH+20] 的损失方程中的常数项。
2 实验设置(Experimental Setup)
在语言上预训练、在代码上微调、以及从零开始在代码上训练的模型,都训练至收敛到最优的早停止(early stopping)点,学习率(learning rate)和优化(optimization)参数与 [KMH+20] 中的类似。模型规模和数据集大小各跨越 4 个数量级。我们使用了 Adam 优化器 [KB14],批大小(batch size)为 256,序列长度为 2048 个 token,3000 步学习率预热(warmup),词表大小(vocabulary size)为 50257。所有模型均从头训练,不加载预训练权重——预训练和微调之间的区别仅在于训练数据的来源与组合方式。
预训练的文本模型在来自 [KMH+20] 的 WebText2、Common Crawl4 [RSR+20]、英文维基百科以及公开可用的 Internet Books 的混合数据上训练。文本使用 [RWC+19] 中描述的可逆分词器(reversible tokenizer)编码,总共 240 亿(2.4×1010)个字符。这一规模的数据量保证了预训练模型能够学习到丰富的语言统计规律。在 Python 上训练或微调的模型利用了来自公开 GitHub5 仓库的 220 亿(2.2×1010)字符数据集(31GB),其中 3% 的数据集被留出用于评估(held out for evaluation)。
模型架构方面,我们使用了标准的 Transformer decoder(即仅解码器、自回归)架构。模型规模通过变化层数、维度以及注意力头数进行缩放,从 40 万(400K)参数到 4 亿(400M)参数不等。所有训练运行使用相同的词表分词器,保证不同模型之间的一致性。
3 实验结果(Results)
在本节中,我们详细分析两类主要实验现象:模型规模标度(model size scaling)、数据标度(data scaling)和迁移(transfer)。这些是支撑我们标度律的核心数据。
3.1 僵化——预训练是否会损害性能?
预训练是否会损害微调模型的性能?我们将这种现象称为"僵化"(ossification),意指预训练可能会使模型权重僵化,以致在高数据范围内不能很好地适应微调分布。我们考察这个问题的原因是直觉上,当拥有大量下游数据时,从零训练可能反而比微调更优——因为微调模型可能受限于预训练学到的先验,无法完全适应下游分布。
下图展示了图 3 的一个变体,将数据集大小放在 x 轴上而不是作为线条颜色。为了建立直觉,从多个角度观察主要结果会很有帮助。在这幅图上更容易观察到,最小的从零开始训练的模型在大数据集上比微调模型在大数据集上的性能更好(紫色曲线)。这一现象表明,在高数据范围内僵化效应确实存在。
我们将 D(N) 定义为对于给定模型大小,达到无限数据所能产生性能的 99% 所需的数据量6。也就是说,0.99 × L(D(N)) = L(D → ∞),其中 L 是损失函数。然后我们使用 D(N) 的比例来参数化数据范围。我们将 D/D(N)<0.10 定义为低数据范围(low-data regime)。
在整项工作中,我们聚焦于数据受限范围,因为这是预训练最有实际用途的时候。当 D/D(N) 趋近 1.0 时,我们观察到预训练会减少我们的有效数据,而我们的小型微调模型即使在 10 倍或 100 倍 D(N) 的数据上训练,也无法达到从头训练模型的性能。这意味着对于小型模型,预训练权重中的某些特征可能阻碍它们对目标分布进行充分的"重新学习"。
我们将这种现象称为僵化,因为可以认为预训练是一种特别糟糕的初始化(initialization),模型难以从中恢复。可能通过充分的调整/调参可以摆脱这种糟糕的初始化,但我们没有深入研究这个问题。完全有可能大型模型在此范围内会表现出不同的行为——具体来说,我们推测大型模型可能更擅长在保留预训练知识的同时吸收新数据,因此僵化效应可能会减弱或消失。
3.2 微调通常在算力上更高效(不计预训练算力)
当我们拥有的数据大约是图 4 中数据的 30 倍时,微调的算力高效前沿(compute-efficient frontier)与从头训练模型类似。然而,在微调时更容易落在算力高效前沿上。如图 7 所示,微调的训练曲线在训练的大部分时间内都与前沿相切,而从头训练的曲线只在一个相对狭窄的窗口内与前沿相切。这意味着微调对算力的利用在更广泛的训练阶段内都是高效的。
然而,如第 3.1 节中最小模型所示,一旦我们拥有的数据达到或超过从头训练所需的数据量,微调的收敛性能就会显著变差,因此在算力上也更低效。这一观察强调了一个重要观点:在决定是否使用微调时,必须考虑数据范围的判断。
许多模型训练至收敛(持续使用算力直到性能增益停止),而不是按算力高效前沿(性能和算力的 Pareto 前沿)训练 [KMH+20]。在图 8 中,我们用单点(收敛算力)总结每条曲线,从而能够同时查看我们在不同大小数据集上训练的所有模型。这种"快照"视图让我们能够直接比较不同实验条件下的总成本。
训练至收敛时:
- 在小数据集下,预训练模型比从头训练模型在算力上更高效。这意味着微调可以让小模型在保持甚至超过从头训练性能的同时,使用显著更少的算力。
- 对于任何给定的数据集大小,与从头训练相比,微调时更容易落在算力高效前沿上。这一特性使得微调在实际工程中更具吸引力,因为它减少了对算力精确调度(schedule)的依赖。
4 神经标度律(Neural Scaling Laws)
幂律可能源于多种多样的来源 [THK18]——复杂系统中广泛存在的尺度不变性、临界现象、以及数据流形的内在维度等,都可能产生幂律依赖。神经网络中可预测的标度趋势最早在 [HNA+17] 中得到研究,他们发现语言识别、机器翻译等任务上的损失与模型大小、数据量呈可预测的幂律关系。最接近我们方法的工作是 [RRBS19, KMH+20, HKK+20]。我们的关注点是迁移如何随算力、数据和参数标度,而不是从头训练时性能如何基于这些因素标度。
从历史脉络看,神经标度律的研究始于对训练损失与训练数据量之间关系的经验观察。当我们将模型大小、数据量和算力视为三个独立变量时,损失可以分解为两部分:一部分仅依赖于模型与数据的"信息瓶颈",另一部分则反映计算量的限制。[KMH+20] 给出了一个简洁的参数化形式,他们发现幂律指数在多个数量级范围内都成立。这一发现引发了后续大量的研究,将标度律推广到不同的模态(视觉、音频等)和不同的任务设置中。
我们的工作扩展了这一框架,首次系统地研究预训练带来的迁移如何参与标度律。核心发现是,迁移本身是可测量的(以有效数据 DT 为单位),且其大小以简单幂律依赖于模型规模和微调数据集。这一结果不仅在理论上统一了迁移与标度律的视角,也在实践上提供了一种原则性的方法来预测微调模型的表现。
5 相关工作(Related Work)
幂律可能源于多种多样的来源 [THK18]。神经网络中可预测的标度趋势最早在 [HNA+17] 中得到研究。最接近我们方法的工作是 [RRBS19, KMH+20, HKK+20]。我们的关注点是迁移如何随算力、数据和参数标度,而不是从头训练时性能如何基于这些因素标度。
迁移学习和元学习(meta-learning)在研究界众多模态下都得到了大量关注。我们将回顾一些启发我们的工作,但不会做全面的文献综述。以下是该领域的两篇最新文献综述:[TSK+18, Wen18]。迁移学习的发展可以分为三个主要阶段:第一阶段以特征迁移为代表(如预训练的视觉特征),第二阶段以参数迁移为代表(如微调预训练网络),第三阶段则关注分布之间的可量化关系——这正是本研究所在的位置。
我们在引言中讨论了语言模型的预训练。在图像数据集(如 Instagram 和 ImageNet)上的预训练同样在整体性能和数据效率上取得了提升 [MGR+18, HGD19]。CLIP 通过从带字幕图像的迁移展示了令人印象深刻的能力,在 ImageNet 等数据集上的零样本准确率可与 ResNet-50 相比 [RKH+21, DDS+09, HBB+21]。这些工作表明,跨模态和跨任务的迁移在现代深度学习中扮演着核心角色。
过去在小样本学习(few-shot learning)方面的工作是我们研究迁移的部分动机。[LST15] 通过概率程序归纳展示了生成手写字符的小样本学习,与人类在该任务上的小样本学习能力相当——这一对比说明人类在迁移方面相对于早期机器学习系统有压倒性优势。[FAL17] 表明设计易于微调的模型(MAML)可以提升小样本性能。[BMR+20] 利用现有基准表明,大型模型可以在 SuperGLUE [WPN+19] 等任务上产生有意义的迁移/小样本学习。
另一项激发我们研究迁移的重要工作是用于机械手解魔方的仿真到真实(sim-to-real)迁移训练 [OAA+19],在这种设置中微调数据远贵于预训练数据——这与自然语言处理中的情形类似,但在机器人领域更极端,因为真实机器人数据非常昂贵。我们感兴趣的另一种衡量泛化的方法是不断提出越来越困难的语言基准 [HBB+21],这有助于追踪模型泛化能力的边界。
6 局限性(Limitations)
尽管我们的结果在多个数量级上表现出惊人的可预测性,本研究仍有以下重要局限性:
- 模型未针对微调或代码进行调参。我们使用了为在自然语言上从头训练而调好的超参数 [KMH+20]。我们对较大模型在小数据集上微调进行了少量学习率扫描,没有看到使用其他学习率带来的改善。但我们的扫描并不全面。更系统的微调超参数搜索可能进一步改善微调性能,从而影响迁移系数的具体数值。
- 模型未针对小数据集进行调参。对于小数据集,训练在预热(warmup)阶段结束之前就停止了,因此学习率调度可能会干扰结果。这意味着我们报告的小数据集迁移效果可能是学习率调度不匹配造成的下界。
- 我们只在 Python 上微调时测量了迁移。尚不清楚对于广泛的分布对是否能观察到类似的幂律拟合。我们的方法是否对其他下游任务(如问答、摘要、翻译)同样有效,是未来工作的关键问题。
- 我们只在无监督设置中测量了分布之间的迁移。这些发现在多大程度上能推广到监督或强化学习设置尚不清楚。监督学习中的标签信息可能改变迁移的本质;强化学习中的奖励信号则可能引入不同的迁移模式。
- 我们没有像 [KMH+20] 中那样为从头训练的结果找到一个好的封闭形式模型。尽管我们相信更仔细的调参可以产生与他们的结果一致的此类模型。如果我们有这样的结果,我们预期可以为微调模型的整体性能生成一个封闭形式方程,而不是依赖我们定义中的相对性能。
- 我们只在 Transformer 上测量了性能。这些标度律是否同样适用于其他架构(如 LSTM、状态空间模型、卷积网络)是一个悬而未决的问题。架构变化可能影响幂律指数的具体数值。
- 方程 3.1 和 3.2 不能处理零样本情况。除非我们对零样本情况使用近似(即在 1 个字符上微调)。这一近似在数学上略显粗糙,但在实践中与零样本性能相当接近。
- 我们没有探索以更廉价的方式进行测量的可能性。无论是通过上下文(in-context)学习还是通过 KL 散度(KL divergence)等代理度量,我们都未尝试。这些替代方法可能让标度律的测量变得更加廉价和易于推广到更多场景。
7 结论(Conclusion)
我们已经证明迁移可以在广泛规模范围内的语言模型内被度量,并且它是可预测地标度的。我们用来度量迁移的单位——数据——是直观的,给定预训练模型,我们的方法可以在低数据范围内廉价地进行这样的测量。我们相信我们的方法是一种新颖且有用的方式来理解作为机器学习要素之一的数据以及 AI 系统的通用性。我们已经为微调生成了标度律,这最近成为一个广泛关注的课题。这些结果有助于预测规模化微调模型的性能、算力和数据需求。
更广泛地说,我们的工作展示了"以数据为单位思考"是一种有价值的分析视角。它将原本模糊的"迁移"概念转化为可测量的标度关系,使得我们可以像处理数据本身一样处理迁移。这为未来研究开辟了几个方向:
- 将类似的标度律推广到监督学习、强化学习、多模态设置;
- 利用这些标度律来设计更高效的预训练数据组合方案;
- 研究模型架构变化对迁移系数的影响;
- 探索大模型少样本学习能力与迁移标度律之间的理论联系。
我们相信,理解数据(包括迁移带来的"虚拟数据")如何与模型规模和算力共同作用,是构建更强大 AI 系统的关键一步。
附录 A 数据范围(Data Regime)
为清晰定义实验中的"低数据范围",我们需要估计 D(N),即达到无限 Python 数据所能产生的性能 99% 所需的数据量。D(N) 大致定义了"无限数据范围"作为模型大小的函数。我们将 DF ≤ 10% 的 D(N) 视为低数据范围。
D(N) 是通过确定图 3 中具有数据集特定比例的曲线与完整数据集曲线相交的位置来计算的。相交定义为从头训练达到 99% 性能,微调达到 95% 性能。差异是基于最终拟合和微调相交看起来相对更嘈杂的主观判断做出的。这一阈值的设定反映了对微调模型性能上限的更保守估计。
附录 B 补充方程(Supplementary equations)
总有效数据 DE、迁移有效数据 DT 和微调数据集 DF 之间的关系在图 1 中可视化展示。为清晰起见,下面也以方程形式给出:
在图 2 中,纵轴是迁移有效数据的占比(fraction)。基于方程 (1.1) 和 (B.1),我们给出其显式方程:
这一方程在形式上是一个 logistic 函数:当 N 较大时(分子远大于 1),占比趋近 1;当 N 较小时(分子远小于 1),占比趋近 0。中间过渡区由常数 k 和指数 α、β 共同决定。
附录 C 为方程 1.2 生成拟合(Generating fit for Equation 1.2)
我们按 DF 分组的数据的良好拟合显示在图 10 的左侧。
我们寻求为我们的实验找到一个全局拟合,目标是产生更多见解并增强预测能力。最终起作用的方法是对拟合进行再拟合。我们注意到图 10 右侧的 logit 拟合都具有大致相同的指数。因此我们尝试将以下方程拟合到这些拟合上:
对 N* 的拟合随后被用来生成图 2 左侧所示的全局拟合,对应方程 (1.1)。此拟合对每个我们微调过的数据集大小 DF 给予相同权重。类似的方法用于生成方程右侧的拟合。
在迁移有效数据占比的对数逻辑轴上发现这些漂亮的直线之前,我们尝试在数据中寻找其他规律性。我们单独绘制了有效数据。
我们还在 DT/DF 中寻找模式。当我们用 D(N) 对 DT/DF 进行归一化(如图 6 所示)时,结果相对有希望。然而,一旦我们看到 DT/DE 在 logit 轴上绘制时的漂亮直线,我们便完全专注于这条分析线。
附录 D 图 3,包括中等数据范围(Figure 3, including medium data regime)
从下面的图 13 可以看出,方程 3.2 给出的拟合在这些分布的迁移中,在中等数据范围 D(N) > 0.10 时表现不佳。
我们推测在高数据范围内行为不那么规则(不再能拟合为直线),原因有两个:
附录 E 尝试为从头开始的 Python 运行生成全局拟合
我们尝试为从头开始的 Python 运行拟合全局幂律,正如 [KMH+20] 对语言模型所做的那样,以及 [HKK+20] 对更多模态所做的。具体来说,我们尝试将 [KMH+20] 的方程 1.5 拟合到图 3 左侧所示的运行中:
在我们看来,更仔细地调参这些实验似乎可能在此处生成良好拟合,但拟合质量太差,无法作为统一标度律的基础。也可能是 (E.1) 的修改版本([RRBS19] 中提出的那种)会更合适。我们所说的"统一标度律"是指对在 Python 上微调的函数 L(N, DF),其系数与 L(N, D) 拟合相同——如图 (E.1) 所示针对从零开始训练的 Python 模型。
附录 F 应对文本数据集中存在少量 Python 的潜在担忧
我们进行了额外的实验,以表明第 6.2 节中讨论的大部分零样本迁移是来自从文本到 Python 的"迁移"的结果。我们较大模型的零样本性能与我们预期的大致相当——大约相当于在大小约为我们文本数据集 0.3% 的 Python 量上从头训练的性能。我们没有试图测量测试数据集中的 Python 量,而是在预训练中加入了一个已知的 Python 量 0.3%。如果我们仅仅测量自然语言数据集中的 Python 量,我们会预期有效的 Python 数据量增加 2 倍。然而,将 0.3% 混合进去实际上将有效 Python 数据量增加了 4.5 倍。通过这个实验,我们得出结论:在前面图表中测量到的大部分确实是"迁移"——从文本分布到 Python 分布——而不是预训练分布中未受控的 Python 量。
这个实验设计的关键在于对比"将 Python 混入预训练"与"在 Python 上预训练"的效果差异。如果预训练性能提升主要是由于偶然接触了 Python,那么引入 0.3% 的 Python 应当导致有效数据量大致翻倍(因为 Python 量从原本的 ~0.15% 增加到 0.45%)。但实际上我们观察到 4.5 倍的提升,远超简单的线性外推。这一结果表明,迁移机制比简单的"预训练数据中的目标分布含量"要微妙得多——它涉及模型对分布之间共享结构的某种抽象。
附录 G 最佳 epoch 的分析
对于微调来说,一个重要的实践问题是需要训练多长时间网络性能才会饱和。简短的回答是:如果数据集相当大,那么所需时间与从头训练大致相同——代码任务 1-10 个 epoch,其中 epoch 数通常随模型大小和数据增加而减少。
如果微调数据集很小,只需训练它并在明显过拟合(overfit)时进行早停止即可。对于我们最小的数据集(100,000 个 token),它比从头训练少需要 2-5 倍的 epoch。Z 形曲线有点令人惊讶,其形状与 [NKB+19] 中观察到的有些相似。另一个限制是,对于少量数据,大部分学习发生在预热(warmup)期间,因此学习率调度会干扰最佳 epoch 数。这意味着在小数据实验中,最佳 epoch 的测量具有较大的不确定性。
值得注意的是,在低数据范围内,最佳 epoch 数随数据集大小的减少而增加,这反映了在小数据集上过拟合风险增大、需要更仔细的早停止的事实。在高数据范围内,最佳 epoch 数趋于一个由模型架构决定的下界值——这是收敛的自然表现。
致谢(Acknowledgments)
我们感谢 Dario Amodei、Jacob Steinhardt、Wojciech Zaremba、Alec Radford、Tom Brown、Alex Ray、Paul Christiano、Amanda Askell、Yura Burda、Ilya Sutskever、Jacob Hilton、Matthias Plappert 和 Jakub Pachocki 对本工作的反馈以及诸多有益的讨论。他们在不同阶段的讨论和批评极大地改善了我们的实验设计和表述。
作者贡献(Contributions)
Danny Hernandez 领导了该项目。他完成了大部分实验、分析和写作工作。他负责设计实验方案、运行所有微调实验、进行数据分析并撰写论文初稿。
Jared Kaplan 直接为分析做出了贡献,并从项目构思阶段就担任顾问。他在标度律的数学形式化、实验设计的严格性、以及结果解读方面提供了关键的智力指导。
Tom Henighan 维护了底层代码库,并合作解决了出现的工程难题。他的工作包括训练基础设施的搭建、bug 修复,以及与 Danny 一起调试训练过程中出现的各种数值稳定性问题。
Sam McCandlish 监督了这项工作。除了帮助规划项目并就方向提供建议外,他还生成了数据集,合作解决了出现的工程难题,并直接为分析做出了贡献。他在论文的科学方向和实用性之间取得了关键的平衡。
参考文献(References)
- [AH18] Dario Amodei, Danny Hernandez. AI and Compute, OpenAI Blog, 2018 年 5 月。URL: https://blog.openai.com/ai-and-compute/。
- [BMR+20] Tom B. Brown, Benjamin Mann, Nick Ryder, Melanie Subbiah, Jared Kaplan, Prafulla Dhariwal, Arvind Neelakantan, Pranav Shyam, Girish Sastry, Amanda Askell, Sandhini Agarwal, Ariel Herbert-Voss, Gretchen Krueger, Tom Henighan, Rewon Child, Aditya Ramesh, Daniel M. Ziegler, Jeffrey Wu, Clemens Winter, Christopher Hesse, Mark Chen, Eric Sigler, Mateusz Litwin, Scott Gray, Benjamin Chess, Jack Clark, Christopher Berner, Sam McCandlish, Alec Radford, Ilya Sutskever, Dario Amodei. Language Models are Few-Shot Learners, NeurIPS 2020, arXiv:2005.14165。
- [DCLT18] Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding, NAACL 2019, arXiv:1810.04805。
- [DDS+09] J. Deng, W. Dong, R. Socher, L.-J. Li, K. Li, L. Fei-Fei. ImageNet: A Large-Scale Hierarchical Image Database. CVPR09, 2009。
- [DL15] Andrew M. Dai, Quoc V. Le. Semi-supervised Sequence Learning, 2015, arXiv:1511.01432。
- [FAL17] Chelsea Finn, Pieter Abbeel, Sergey Levine. Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks (MAML), ICML 2017, arXiv:1703.03400。
- [HB20] Danny Hernandez, Tom B. Brown. AI and Efficiency, OpenAI Blog, 2020。
- [HBB+21] Dan Hendrycks, Collin Burns, Steven Basart, Andy Zou, Mantas Mazeika, Dawn Song, Jacob Steinhardt. Measuring Massive Multitask Language Understanding (MMLU), ICLR 2021, arXiv:2009.03300。
- [HGD19] Kaiming He, Ross Girshick, Piotr Dollár. Rethinking ImageNet Pre-training. Proceedings of the IEEE/CVF International Conference on Computer Vision, pages 4918-4927, 2019。
- [HKK+20] Tom Henighan, Jared Kaplan, Mor Katz, Mark Chen, Christopher Hesse, Jacob Jackson, Heewoo Jun, Tom B. Brown, Prafulla Dhariwal, Scott Gray, Chris Hallacy, Benjamin Mann, Alec Radford, Aditya Ramesh, Nick Ryder, Daniel M. Ziegler, John Schulman, Dario Amodei, Sam McCandlish. Scaling Laws for Autoregressive Generative Modeling, 2020, arXiv:2010.14701。
- [HR18] Jeremy Howard, Sebastian Ruder. Universal Language Model Fine-tuning for Text Classification (ULMFiT), ACL 2018, arXiv:1801.06146。
- [HNA+17] Joel Hestness, Sharan Narang, Newsha Ardalani, Gregory Diamos, Heewoo Jun, Hassan Kianinejad, Md. Mostofa Ali Patwary, Yang Yang, Yanqi Zhou. Deep Learning Scaling is Predictable, Empirically, 2017, arXiv:1712.00409。
- [KB14] Diederik P. Kingma, Jimmy Ba. Adam: A Method for Stochastic Optimization, ICLR 2015, arXiv:1412.6980。
- [KMH+20] Jared Kaplan, Sam McCandlish, Tom Henighan, Tom B. Brown, Benjamin Chess, Rewon Child, Scott Gray, Alec Radford, Jeffrey Wu, Dario Amodei. Scaling Laws for Neural Language Models, 2020, arXiv:2001.08361。
- [LST15] Brenden M. Lake, Ruslan Salakhutdinov, Joshua B. Tenenbaum. Human-level Concept Learning through Probabilistic Program Induction. Science, 350(6266):1332-1338, 2015。doi:10.1126/science.aab3050。
- [MGR+18] Dhruv Mahajan, Ross Girshick, Vignesh Ramanathan, Kaiming He, Manohar Paluri, Yixuan Li, Ashwin Bharambe, Laurens van der Maaten. Exploring the Limits of Weakly Supervised Pretraining, ECCV 2018, arXiv:1805.00932。
- [NKB+19] Preetum Nakkiran, Gal Kaplun, Yamini Bansal, Tristan Yang, Boaz Barak, Ilya Sutskever. Deep Double Descent: Where Bigger Models and More Data Hurt, 2019, arXiv:1912.02292。
- [OAA+19] OpenAI, Ilge Akkaya, Marcin Andrychowicz, Maciek Chociej, Mateusz Litwin, Bob McGrew, Arthur Petron, Alex Paino, Matthias Plappert, Glenn Powell, Raphael Ribas, Jonas Schneider, Nikolas Tezak, Jerry Tworek, Peter Welinder, Lilian Weng, Qi Yuan, Wojciech Zaremba, Lei Zhang. Solving Rubik's Cube with a Robot Hand, 2019, arXiv:1910.07113。
- [OBB+19] OpenAI, Christopher Berner, Greg Brockman, Brooke Chan, Vicki Cheung, Przemysław Dębiak, Christy Dennison, David Farhi, Quirin Fischer, Shariq Hashme, Chris Hesse, Rafal Józefowicz, Scott Gray, Catherine Olsson, Jakub Pachocki, Michael Petrov, Henrique Pondé de Oliveira Pinto, Jonathan Raiman, Tim Salimans, Jeremy Schlatter, Jonas Schneider, Szymon Sidor, Ilya Sutskever, Jie Tang, Filip Wolski, Susan Zhang. Dota 2 with Large Scale Deep Reinforcement Learning, 2019, arXiv:1912.06680。URL: https://arxiv.org/abs/1912.06680。
- [PNI+18] Matthew E. Peters, Mark Neumann, Mohit Iyyer, Matt Gardner, Christopher Clark, Kenton Lee, Luke Zettlemoyer. Deep Contextualized Word Representations (ELMo), NAACL 2018, arXiv:1802.05365。
- [RKH+21] Alec Radford, Jong Wook Kim, Chris Hallacy, Aditya Ramesh, Gabriel Goh, Sandhini Agarwal, Girish Sastry, Amanda Askell, Pamela Mishkin, Jack Clark, Gretchen Krueger, Ilya Sutskever. Learning Transferable Visual Models From Natural Language Supervision (CLIP), 2021。
- [RNSS18] Alec Radford, Karthik Narasimhan, Tim Salimans, Ilya Sutskever. Improving Language Understanding by Generative Pre-Training (GPT-1), OpenAI Technical Report, 2018。
- [RRBS19] Jonathan S. Rosenfeld, Amir Rosenfeld, Yonatan Belinkov, Nir Shavit. A Constructive Prediction of the Generalization Error Across Scales, 2019, arXiv:1909.12673。
- [RSR+20] Colin Raffel, Noam Shazeer, Adam Roberts, Katherine Lee, Sharan Narang, Michael Matena, Yanqi Zhou, Wei Li, Peter J. Liu. Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer (T5), JMLR 2020, arXiv:1910.10683。
- [RWC+19] Alec Radford, Jeffrey Wu, Rewon Child, David Luan, Dario Amodei, Ilya Sutskever. Language Models are Unsupervised Multitask Learners (GPT-2), OpenAI Technical Report, 2019。
- [SHM+16] David Silver, Aja Huang, Chris J. Maddison, Arthur Guez, Laurent Sifre, George van den Driessche, Julian Schrittwieser, Ioannis Antonoglou, Veda Panneershelvam, Marc Lanctot, Sander Dieleman, Dominik Grewe, John Nham, Nal Kalchbrenner, Ilya Sutskever, Timothy Lillicrap, Madeleine Leach, Koray Kavukcuoglu, Thore Graepel, Demis Hassabis. Mastering the Game of Go with Deep Neural Networks and Tree Search (AlphaGo), Nature 529(7587):484-489, 2016。
- [SK20] Utkarsh Sharma, Jared Kaplan. A Neural Scaling Law from the Dimension of the Data Manifold, 2020, arXiv:2004.10802。
- [SOW+20] Nisan Stiennon, Long Ouyang, Jeff Wu, Daniel M. Ziegler, Ryan Lowe, Chelsea Voss, Alec Radford, Dario Amodei, Paul F. Christiano. Learning to Summarize from Human Feedback, NeurIPS 2020, arXiv:2009.01325。
- [SSS+17] David Silver, Julian Schrittwieser, Karen Simonyan, Ioannis Antonoglou, Aja Huang, Arthur Guez, Thomas Hubert, Lucas Baker, Matthew Lai, Adrian Bolton, Yutian Chen, Timothy Lillicrap, Fan Hui, Laurent Sifre, George van den Driessche, Thore Graepel, Demis Hassabis. Mastering the Game of Go without Human Knowledge (AlphaGo Zero), Nature 550(7676):354-359, 2017。doi:10.1038/nature24270。
- [THK18] Stefan Thurner, Rudolf Hanel, Peter Klimek. Introduction to the Theory of Complex Systems. Oxford University Press, 2018。
- [TSK+18] Chuanqi Tan, Fuchun Sun, Tao Kong, Wenchang Zhang, Chao Yang, Chunfang Liu. A Survey on Deep Transfer Learning. International Conference on Artificial Neural Networks, pages 270-279. Springer, 2018。
- [VSP+17] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Łukasz Kaiser, Illia Polosukhin. Attention is All You Need. Advances in Neural Information Processing Systems 30, pages 5998-6008. Curran Associates, Inc., 2017。URL: http://papers.nips.cc/paper/7181-attention-is-all-you-need.pdf。
- [Wen18] Lilian Weng. Meta-learning: Learning to Learn Fast. lilianweng.github.io/lil-log, 2018。URL: http://lilianweng.github.io/lil-log/2018/11/29/meta-learning.html。
- [WPN+19] Alex Wang, Yada Pruksachatkun, Nikita Nangia, Amanpreet Singh, Julian Michael, Felix Hill, Omer Levy, Samuel R. Bowman. SuperGLUE: A Stickier Benchmark for General-Purpose Language Understanding Systems, NeurIPS 2019, arXiv:1905.00537。