软件开发架构师

OpenAI披露最新研究成果:AI训练如何扩展到更大规模?

人工智能 18 2019-03-11 11:11

我们发现,梯度噪声尺度(gradient noise scale),作为一种简单的统计量,可以预测神经网络训练在诸多任务上的并行性。由于复杂的任务往往具有更强噪声的梯度,因此增长的大批次规模可能在未来变得更加有用,也消除了 AI 系统进一步发展的一个潜在限制。更广泛地说,这些结果表明,神经网络训练并不需要被看成一门神秘的艺术,而是可以得到严格的规范化和系统化。

在过去几年内,AI 研究人员采用数据并行化技术——将大批次数据分散到很多台机器上,在加速神经网络训练方面不断取得成功。研究人员成功地使用成千上万个批次进行图像分类语言建模,甚至使用数百万个批次训练RL 代理来玩 Dota2 游戏。这些大批次使单个模型的训练中能够具有越来越多的计算量,成为 AI 训练计算快速增长的重要推动者。然而,过大的批次规模呈现出算法回报快速降低的情况,而且不清楚为什么对某些任务来说这些限制过大,而对其他任务来说这些限制又过小[1]

image

梯度噪声尺度(基于训练的近似平均)解释了跨六个数量级的一系列任务中关键批次大小的绝大多数变化(r^2 = 80%)。批次大小采用图像、令牌(用于语言模型)、或观察值(用于游戏)的数量来衡量。

我们发现,通过测量梯度噪声尺度——一个可用于量化网络梯度信噪比[2]的简单统计量,我们可以近似预测最有效的批次大小。受其启发,噪声尺度度量了数据中能够被模型观测到的变化(在给定的训练阶段)。当噪声尺度小时,快速地并行查看大量数据变得冗余;而当噪声尺度大时,我们仍能够从大批次的数据中学到很多信息。

这种类型的统计量被广泛应用于样本大小选择,并被提出用于深度学习,但是还没有被系统地度量或应用于现代模型训练运行。我们在上图所示各种机器学习任务上验证了这种预测,包括图像识别、Atari 游戏和 Dota。具体来说,我们在这些任务中采用各种批次大小进行训练(每个任务单独调整学习率),并将训练加速与噪声尺度预测出来的结果进行比较。由于大批量通常需要仔细昂贵的调整或特殊的学习率规划才能有效,因此提前预知上限给训练新模型提供了重大的实践价值。

我们发现,训练的挂钟时间和用于训练的总体计算量(与美元成本成比例)之间的折中对比,有助于可视化这些实验结果。在非常小的批次大小情形中,增大一倍的批次大小能减半训练时间的同时不带来额外的计算(用一半的时长跑两倍的数据)。在非常大的批次大小情形中,更多的并行化并不会导致更快的训练。曲线的中间有一个“拐弯”,而梯度噪声尺度预测了拐弯发生的位置。

image

提高并行度使得在合理的时间内训练更复杂的模型成为可能。我们发现 Pareto 前沿图是可视化算法与尺度之间的比较的最直观方式。

我们通过设置性能水平(如 Beam Rider 的 Atari 游戏中的得分为 1000),制作了这些曲线,查看不同批次大小下训练达到该性能所需要的时间。这些结果与我们的模型预测结果,在大量不同性能目标值情况下,都匹配地相当好。

达到给定分数所需的经验和训练时间之间的折中是可以预测的。

image

随着噪声尺度增加,大批次在训练后期变得更加有用。 小批次训练最有效。 大批次训练最快。

梯度噪声尺度中的模式

在梯度噪声尺度中,我们观测到了几种模式,从而为 AI 训练未来可能有的样子提供了一些线索。

首先,在我们的实验中,噪声尺度通常在训练过程中增加一个数量级或更多。直观地说,这意味着,网络在训练早期会从任务中学习更“明显”的特征,而在后期学习更加复杂的特征。例如,在图像分类情形中,网络首先可能学习识别小尺度的特征,如大多数图像中呈现的边缘或纹理;而在后期才将这些片段组合成更一般的概念,如猫和狗。为了看到全量的边缘或纹理,网络只需要看少量的图像,因此噪声尺度更小;一旦网络对更大的对象有了更多的理解,它就能够处理更多的图像而不需要看重复的数据。

一些初步迹象表明,这样的效果也发生在同一数据集上的不同模型上:更强大的模型有着更高的梯度噪声尺度,而这仅仅是因为它们进一步减少了损失。因此,有证据表明,训练过程中增加的噪声尺度不只是一个人为收敛假象,而是由于模型变得更好导致的。如果这是真的,那么我们期望,未来更强大的模型具有更高的噪声尺度,因而也更加可并行化。

其次,主观上更困难的任务也更易于并行化。在有监督学习场景中,从 MNIST 到 SVHN,到 ImageNet 都有明显的进步。在强化学习场景中,从 Atari Pong 到 Dota 1v1,到 Dota 5v5 也有明显的进步,其中最优批次大小相差 10,000 倍以上。因此,随着 AI 发展至处理新的和更困难的任务,我们期望模型能够容忍更高的批次大小。

启发

数据并行度显著影响了 AI 能力的前进速度。更快的训练使得构建更强大的模型成为可能,并通过更快的迭代来加速研究。

在更早的AI 和计算的研究中,我们观察到,用于训练最大的机器学习模型的计算,每 3.5 个月翻一番;这种趋势是由经济学(肯花多少钱用于计算)以及算法并行训练的能力共同驱动的。后一个因素(算法的可并行化能力)更难以预测,其限制也没有得到很好地理解,而我们当前的研究成果则是朝着系统化和量化它前进了一步。特别是,我们有证据表明,更加复杂的任务和相同任务上更加强大的模型,将容许比我们迄今所看到的更激进的数据并行性,从而为训练计算的持续快速指数级增长提供关键的驱动力(这甚至还没有考虑最近模型并行化的进展,它有可能在数据并行化之上考虑更进一步的并行化)。

训练计算的持续增长以及可预测的算法基础,进一步突出了未来几年 AI 能力快速增长的可能性,也强调了研究确保 AI 系统的安全性以及负责任地使用它们的紧迫性。AI 政策的一个核心挑战是,如何使用像这样的度量来预测未来 AI 系统的特点,并使用这些知识来构思相应的政策让社会最大化 AI 技术的正面影响和最小化它们的负面影响。

OpenAI 致力于,继续严格分析使我们对 AI 的未来有所预见,并采取措施解决分析出来的问题。

如果你想学习“AI 科学”,并帮助我们实现更加数据驱动的神经网络训练,请考虑申请OpenAI 的工作

[1] 与本文平行的一份补充研究,对大批次训练进行了细致的实验测试,并对之前的文献进行了全面的回顾,清理了早期工作中诸多不一致的地方。他们发现,潜在的并行性在任务之间存在显著差异,我们的工作似乎解释了这种差异的主要部分。他们的工作也建议,大批次训练不会影响泛化能力。我们相信本文和其他研究中的系统调研对这个领域非常有价值,我们也会致力于继续研究“AI 科学”。

[2] 训练神经网络的时候,我们通常每次只处理一小批数据,给出真实网络梯度的有噪估计。我们发现,梯度噪声尺度 Bnoise = E[|G-Gtrue|^2] / |Gtrue|^2(其中,期望是基于单个数据点),估计了最有效的批次大小。当基于批次大小 B 计算梯度时,估计梯度和真实梯度之间的归一化距离是 E[|GB - Gtrue|^2 / |Gtrue|^2] = Bnoise / B。不断增加 B,梯度噪声停止下降的点显著发生在 B=Bnoise 附近,而这个点也是训练速度增益逐渐减小的点。

查看英文原文:How AI Training Scales(https://blog.openai.com/science-of-ai/

更多内容,请关注 AI 前线

image

文章评论