在追求 AGI 的道路上,Scaling Law 是绕不开的一环。
如果 Scaling Law 撞到了天花板,扩大模型规模,增加算力不能大幅提升模型的能力,那么就需要探索新的架构创新、算法优化或跨领域的技术突破。
作为一个学术概念,Scaling Law 为人所熟知,通常归功于 OpenAI 在 2020 年发的这篇论文:
- 论文标题:Scaling Laws for Neural Language Models
- 论文链接:https://arxiv.org/pdf/2001.08361
论文中详细地论证了模型的性能会随模型参数量、数据量、计算资源增加而指数提升。后来的几年里,OpenAI 作为整个大模型领域的技术引领者,也将 Scaling Law 充分地发扬光大。
但关于我们今天所谈论的 Scaling law,它是怎么被发现的,谁最早发现的,又是哪个团队最早验证的,似乎很少有人去考据。
近日,Anthropic 的 CEO Dario Amodei 在播客中讲述了一个出人意料的版本。
图源:https://xueqiu.com/8973695164/312384612。发布者:@pacificwater
我们可能更了解 Dario 在 2016 年之后的经历。他加入了 OpenAI,担任研究副总裁,负责公司的安全工作,并领导团队开发了 GPT-2 和 GPT-3。
然而,2020 年底,由于对 OpenAI 的发展方向产生分歧, Dario 选择离开,并于 2021 年 2 月与妹妹共同创立了 Anthropic。
如今,Anthropic 推出的 Claude 已成为挑战 GPT 系列霸主地位的最有力竞争者。
不过,Dario 原本的研究方向是神经回路,他第一次真正进入 AI 领域是在百度。
从 2014 年 11 月到 2015 年 10 月,Dario 在百度工作了一年 —— 正好是吴恩达在百度担任首席科学家,负责「百度大脑」计划的时期。
他们当时在研发语音识别系统。Dario 表示,尽管深度学习展示了很大潜力,但其他人仍然充满疑虑,认为深度学习还不足以达到预期的效果,且距离他们所期待的与人类大脑相匹配的框架还有很长的距离。
于是,Dario 开始思考,如果把百度用于语音的循环神经网络做得更大,增加更多的层数会怎样?同时扩大数据量又会怎样呢?
在不断的尝试中,Dario 观察到了随着给模型投入越多的数据、计算和训练,它们的表现就越好,「那时我没有精确地测量,但与同事们一起,我们非常直观地能感受到。」
但 Dario 和同事们也没深究,Dario 觉得:「也许这只对语音识别系统有效,也许这只是一个特定领域的特殊情况。」
直到 2017 年,他在 OpenAI 第一次看到 GPT-1 的训练结果时,他才意识到这种「越多越好」的规则同样适用于语言数据。而计算资源的增加,托起了 Scaling Law 生效的底层逻辑。
真理是不会只属于一个人的,最终它会被每个人发现。
当时有一批人都意识到了 Scaling Law 的存在,比如 Ilya Sutskever、「RL 教父」Rich Sutton、Gwern Branwen。
百度也在 2017 年发了一篇论文:「DEEP LEARNING SCALING IS PREDICTABLE, EMPIRICALLY」,展示了在机器翻译、语言建模、图像处理和语音识别等四个领域中,随着训练集规模的增长,DL 泛化误差和模型大小呈现出幂律增长模式。
《NLP with Transformers》的作者 Lewis Tunstall 发现,OpenAI 在 2020 发表的《Scaling Laws for Neural Language Models》引用了百度论文一作 Joel Hestness 在 2019 年的后续研究,却没发现 Hestness 早在 2017 年就研究过同类问题。
DeepMind 的研究科学家 @SamuelMLSmith 表示,原来在 NeurIPS 和 Hestness 线下交流过。但两年后 Scaling Laws 论文发表时,他对关注过这个问题,但没发论文的自己很生气。
而同期注意到 Scaling Law 的 Gwern Branwen,也经常提起百度的这篇论文确实被忽视了。
百度 2017 年的论文写了啥?
这篇题为「DEEP LEARNING SCALING IS PREDICTABLE, EMPIRICALLY(深度学习扩展的可预测性:经验性研究)」发布于 2017 年。当时,机器学习先驱 Rich Sutton 还没有发布他的经典文章《苦涩的教训》(发布时间是 2019 年)。
论文链接:https://arxiv.org/abs/1712.00409
论文提到,当时,深度学习社区已经通过遵循一个简单的「配方」在不同的应用领域取得了具有影响力的进展。这个「配方」如今大家已非常熟悉,即寻找更好的模型架构、创建大型训练数据集以及扩展计算。
通过分解「配方」,百度的研究者注意到,寻找更好的模型架构困难重重,因为你要对建模问题进行复杂或创造性的重构,这就涉及大规模的超参数搜索。所以,架构方面的创新很多时候要依赖「顿悟」,具有极大的偶然性。如果只把精力放在这上面,风险势必很高。
为了降低风险,百度的研究者提到,「配方」的另外两个部分 —— 创建大型训练集和扩展计算 —— 是非常值得去研究的,因为这两个方面的进展明显更加可控。而且,「只需使用更多数据来训练更大的模型,就能提高准确率」已经成为一个共识。不过,百度想更进一步,分析训练集规模、计算规模和模型准确性提高之间的关系。他们认为,准确预测泛化误差随训练集规模扩大的变化规律,将提供一个强大的工具,以估计推进 SOTA 技术所需的成本,包括数据和计算资源的需求。
在此之前,也有不少研究者进行了类似研究,分析了达到期望泛化误差所需的样本复杂度,但论文中提到,这些结果似乎不足以准确预测实际应用中的误差 scaling 规律。还有一些研究从理论上预测泛化误差「学习曲线」呈幂律形式,即 ε(m) ∝。在这里,ε 是泛化误差,m 是训练集中的样本数量,α 是问题的一个常数属性。β_g= −0.5 或−1 是定义学习曲线陡峭度的 scaling 指数 —— 即通过增加更多的训练样本,一个模型家族可以多快地学习。不过,在实际应用中,研究者发现,β_g 通常在−0.07 和−0.35 之间,这些指数是先前理论工作未能解释的。
在这篇论文中,百度的研究者提出了当时最大规模的基于实证的学习曲线特征描述,揭示了深度学习泛化误差确实显示出幂律改进,但其指数必须通过实证进行预测。作者引入了一种方法,能够准确预测随着训练集规模增加而变化的泛化误差和模型大小。他们使用这种方法来估计四个应用领域(机器翻译、语言建模、图像分类和语音识别)中的六个深度神经网络模型的 scaling 关系。
他们的结果显示,在所有测试的领域中都存在幂律学习曲线。尽管不同的应用产生了不同的幂律指数和截距,但这些学习曲线跨越了广泛的模型、优化器、正则化器和损失函数。改进的模型架构和优化器可以改善幂律截距,但不影响指数;单一领域的模型显示出相同的学习曲线陡峭度。最后,他们发现模型从小训练集区域(主要由最佳猜测主导)过渡到由幂律 scaling 主导的区域。有了足够大的训练集,模型将在主要由不可约误差(例如贝叶斯误差)主导的区域达到饱和。
此外,他们还描述了可预测的准确度和模型大小 scaling 的重要意义。对于深度学习从业人员和研究人员来说,学习曲线可以帮助调试模型,并为改进的模型架构预测准确性目标。
百度的研究者在论文中表示,他们的研究结果表明,我们有机会加倍努力,从理论上预测或解释学习曲线指数。在操作上,可预测的学习曲线可以指导一些决策,如是否或如何增加数据集。最后,学习曲线和模型大小曲线可用于指导系统设计和扩展,它们强调了持续扩展计算的重要性。
神经机器翻译学习曲线。
单词语言模型的学习曲线和模型大小结果和趋势。
字符语言模型的学习曲线和模型大小结果和趋势。
ResNet 图像分类任务上的学习曲线和模型大小结果和趋势。
DS2 和注意力语音模型的学习曲线(左),以及不同 DS2 模型尺寸(1.7M ~ 87M 参数)的学习曲线(右)。
关于这篇论文的细节,感兴趣的读者可以去阅读原文。
对于百度而言,早期对 Scaling Law 的研究未能及时转化为广泛的实践应用,这在公司的发展史上或许算得上是一个不小的遗憾。