基于量子化假设推导模型的尺度定律(Scaling Law)
By 苏剑林 | 2023-05-18 | 46997位读者 |尺度定律(Scaling Law),指的是模型能力与模型尺度之间的渐近关系。具体来说,模型能力我们可以简单理解为模型的损失函数,模型尺度可以指模型参数量、训练数据量、训练步数等,所谓尺度定律,就是研究损失函数跟参数量、数据量、训练步数等变量的大致关系。《Scaling Laws for Neural Language Models》、《Training Compute-Optimal Large Language Models》等工作的实验结果表明,神经网络的尺度定律多数呈现“幂律(Power law)”的形式。
为什么会是幂律呢?能否从理论上解释呢?论文《The Quantization Model of Neural Scaling》基于“量子化”假设给出了一个颇为有趣的推导。本文一同来欣赏一下。
推导假设 #
首先,我们假设对于一个特定的任务,存在一个“完美模型”,我们所训练的模型,都是这个“完美模型”的一个逼近。进一步地,假设“完美模型”是由“量子(Quanta)”组成的,每个量子代表一种能力(注意,这里的量子主要是指虚拟的能力单位,并非我们能叫出名字的具体能力)。
为了完成任务,往往需要多种能力,所以不失一般性,我们假设“完美模型”包含无穷多个能力量子,不同的量子负责解决不同难度的样本。通常来说,简单样本会占多数,困难样本是少数,所以这些能力量子可以按照出现频率从高到低进行排序,分别标记为1,2,⋯,k,…,对应的出现频率则为p1,p2,⋯,pk,⋯。
最后,我们假设这些能力量子的频率服从“Zipf定律(Zipf's law)”,即
pk=k−γ−1Zγ
其中γ>0,Zγ是归一化因子∞∑k=1k−γ−1。
Zipf定律 #
可能读者想问,为什么是Zipf定律呢?Zipf定律是Zipf在1949年发表的经验定律,他的原始发现是一个单词出现的频率大致与它在频率表里的排名成反比,后来人们把它一般化为跟“排名的幂”成反比,并且发现在很多地方都能观察到Zipf定律。
Zipf本人以及一些后来者都尝试在一些更贴近本质的假设之下对Zipf定律进行推导,相关工作可以在维基百科找到,这里就不展开了。对于笔者来说,选择Zipf定律的最重要原因其实是——也没其他可选了。
别忘了,pk已经从高到低排序过了,所以pk是一个单调递减函数,我们能想到的非负的、单调递减的函数有啥呢?无外乎就指数函数和幂函数了吧,指数函数衰减得很快,所以没有长尾现象,而幂函数衰减慢一些,相对来说更加长尾。所以选哪个,取决于我们对尾部重要性的先验认知。对于前面的能力量子假设,我们认为每一种能力都很关键,所以只能选择幂函数了,结果也就是Zipf定律。
基本结果 #
回到正题。前面假设理想模型有无穷多个能力量子,而对于一个容量有限的现实模型,它只能学习到n个量子,为了能够覆盖更多的样本,模型应该去学习前n个量子。假设每个量子都能够将它对应的样本的损失从b降低到a,那么可以预估模型的平均损失为
L=an∑k=1pk+b∞∑k=n+1pk
前n个量子已经被学习到了,所以这部分样本的损失都为a,后面的量子没有被学习到,所以损失为b。这个假设看起来有点强,将a,b设为k的函数可能更合理些,但结果已经有代表性了(参考原论文附录)。对于上式,我们可以完成一个渐近估计:
L=a∞∑k=1pk+(b−a)∞∑k=n+1pk=a+(b−a)∞∑k=n+1k−γ−1Zγ∼a+(b−a)∫∞nk−γ−1Zγdk=a+b−aγZγn−γ
它表明模型的能力(损失函数)跟能力量子的数目n的关系呈现幂律n−γ的形式。显然,这里的a就代表损失函数的最小值,如果a=0,那么就有L∼O(n−γ)。下面我们都假设a=0。
尺度定律 #
基本结果中的n,是模型学到的能力量子的数目,到目前为止还只是一个虚拟的概念,接下来我们将它跟模型常见的变量联系起来。
参数量:假设模型的参数量为N,然后假设平均每C个参数才能学到一个能力量子(假设C是常数),那么很显然有n∝N,以及
L∼O(N−γ)
数据量:假设训练集的总样本数为D,由于我们假设不同的量子负责解决不同难度的样本,所以我们可以很自然地认为由量子1解决的样本数为Dp1、由量子2解决的样本数为Dp2、由量子3解决的样本数为Dp3、...,然后我们假设学习一个量子至少需要τ个样本,那么Dpk<τ的量子都无法学到。于是由τ=Dpn我们可以解得n∝D1/(γ+1),代入得到
L∼O(D−γ/(γ+1))
训练量:假设模型的参数量和训练集的样本数都无上限,那么模型学到的量子数n就取决于训练步数S了。假设批大小为B,那么平均来说学习量子1的样本数为Bp1、学习量子2的样本数为Bp2、学习量子3的样本数为Bp3、...,同样假设学习一个量子至少需要学习τ个样本,那么经过S步训练后,量子n共学习了SBpn个样本,于是由τ=SBpn可以解得n∝S1/(γ+1),代入得到
L∼O(S−γ/(γ+1))
可以看到,虽然结果都是幂律,但是因为γ>γ/(γ+1)∈(0,1),所以很显然参数量对模型能力的影响更加大一些。
涌现现象 #
可能有读者想问,能力量子化假设是否可以用来解释大模型的涌现(Emergency)现象呢?
一定程度上可以。前面我们假设完美模型应该具有无穷多个能力量子,如果将这个无穷改为有限,那么通过增加参数量,模型总会有机会覆盖所有的能力量子,达到理论最优的完美模型,这就是涌现。又或者说,完美模型还是应该具有无穷多个能力量子,但人类对智能的“分辨力”只有有限个量子(人类本身未必是完美的),所以当大模型学到一定数目的能量量子后,在人类的视角中就是完美的“涌现”了。
文章小结 #
本文介绍了从量子化假设来推导模型的尺度定律(Scaling Law)的过程,具体来说就是模型的损失函数与参数量、数据量、训练量的渐近关系,并简单分析了它与涌现现象的可能联系。
转载到请包括本文地址:https://spaces.ac.cn/archives/9607
更详细的转载事宜请参考:《科学空间FAQ》
如果您还有什么疑惑或建议,欢迎在下方评论区继续讨论。
如果您觉得本文还不错,欢迎分享/打赏本文。打赏并非要从中获得收益,而是希望知道科学空间获得了多少读者的真心关注。当然,如果你无视它,也不会影响你的阅读。再次表示欢迎和感谢!
如果您需要引用本文,请参考:
苏剑林. (May. 18, 2023). 《基于量子化假设推导模型的尺度定律(Scaling Law) 》[Blog post]. Retrieved from https://spaces.ac.cn/archives/9607
@online{kexuefm-9607,
title={基于量子化假设推导模型的尺度定律(Scaling Law)},
author={苏剑林},
year={2023},
month={May},
url={\url{https://spaces.ac.cn/archives/9607}},
}
May 20th, 2023
公式(2)后一个求和符号的序号和原论文16页的不一致
这是我的错误,已修正,谢谢
May 22nd, 2023
公式3第一行前半部分的上下标有笔误的
似乎没找到错误,请问你指的是哪里?
第一个求和的上边应该是正无穷吧
噢,是的,惭愧,这都没看出来。已经修正,谢谢。
May 23rd, 2023
先假设一个幂律,再得出一个幂律,毫无意外啊。
关于深度学习的涌现,我觉得更多是因为碰到了某个临界面,相空间里其他区域都是连续渐变,但临界面两侧是突变的。
我开始也觉得“幂律推幂律”是平凡的,但细想了一下,两个幂律的含义是不一样的,一个是对量子分布的假设,一个是性能随着某些变量的变化关系。
其实该结果不见得会有什么实践意义,但它主要是提供了一个理论分析框架吧,里边很多假设都是可以商榷的,比如分布的zipf定律换成指数分布等,可以更一般化的分析这些假设,来确定更贴近实际的理论模型。
June 12th, 2023
请问:1.为什么量子1解决的样本数为Dp1; 2.基于τ=Dpn 如何解得n∝D1/(γ+1)?
根据一开始的假设,量子本身就由解决问题的数量来定义和排序的,也就是说,大部分问题都是偏简单的,解决这类简单问题的量子是量子1,次之是量子2,依次类推(理想情况下)。
量子是用来解决问题的,所以量子的出现频率,等价于样本的出现频率。
关于问题2,将pn=n−γ−1Zγ带入τ=Dpn求得n即可。
October 24th, 2024
(3) 式最后分母上漏了一个 /gamma ?
已修正,感谢指出。
April 15th, 2025
Wikipedia 上说 In 1959, Vitold Belevitch observed that if any of a large class of well-behaved statistical distributions (not only the normal distribution) is expressed in terms of rank and expanded into a Taylor series, the first-order truncation of the series results in Zipf's law.
刚才仔细读了一下原论文,确实是这么回事。所以排序后的能力量子的频率就是会服从Zipf定律,只需要假设能做泰勒展开即可。