基于量子化假设推导模型的尺度定律(Scaling Law)

原文链接 | 2023-05-18 | 苏剑林

欢迎访问“科学空间”,这里将与您共同探讨自然科学,回味人生百态;也期待大家的分享~ 尺度定律(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,\cdots,k,\dots\),对应的出现频率则为\(p_1,p_2,\cdots,p_k,\cdots\)。 最后,我们假设这些能力量子的频率服从“Zipf定律(Zipf’s law)”,即 \[\begin{equation}p_k = \frac{k^{-\gamma - 1}}{Z_{\gamma}}\end{equation}\] 其中\(\gamma > 0\),\(Z_{\gamma}\)是归一化因子\(\sum\limits_{k=1}^{\infty}k^{-\gamma - 1}\)。 可能读者想问,为什么是Zipf定律呢?Zipf定律是Zipf在1949年发表的经验定律,他的原始发现是一个单词出现的频率大致与它在频率表里的排名成反比,后来人们把它一般化为跟“排名的幂”成反比,并且发现在很多地方都能观察到Zipf定律。 Zipf本人以及一些后来者都尝试在一些更贴近本质的假设之下对Zipf定律进行推导,相关工作可以在维基百科找到,这里就不展开了。对于笔者来说,选择Zipf定律的最重要原因其实是——也没其他可选了。 别忘了,\(p_k\)已经从高到低排序过了,所以\(p_k\)是一个单调递减函数,我们能想到的非负的、单调递减的函数有啥呢?无外乎就指数函数和幂函数了吧,指数函数衰减得很快,所以没有长尾现象,而幂函数衰减慢一些,相对来说更加长尾。所以选哪个,取决于我们对尾部重要性的先验认知。对于前面的能力量子假设,我们认为每一种能力都很关键,所以只能选择幂函数了,结果也就是Zipf定律。 回到正题。前面假设理想模型有无穷多个能力量子,而对于一个容量有限的现实模型,它只能学习到\(n\)个量子,为了能够覆盖更多的样本,模型应该去学习前\(n\)个量子。假设每个量子都能够将它对应的样本的损失从\(b\)降低到\(a\),那么可以预估模型的平均损失为 \[\begin{equation}L = a \sum_{k=1}^n p_k + b \sum_{k=n+1}^{\infty} p_k\end{equation}\] 前\(n\)个量子已经被学习到了,所以这部分样本的损失都为\(a\),后面的量子没有被学习到,所以损失为\(b\)。这个假设看起来有点强,将\(a,b\)设为\(k\)的函数可能更合理些,但结果已经有代表性了(参考原论文附录)。对于上式,我们可以完成一个渐近估计: \[\begin{equation}\begin{aligned} L =&\, a \sum_{k=1}^{\infty} p_k + (b - a) \sum_{k=n+1}^{\infty} p_k \\ =&\, a + (b - a) \sum_{k=n+1}^{\infty} \frac{k^{-\gamma-1}}{Z_{\gamma}} \\ \sim&\, a + (b - a) \int_n^{\infty} \frac{k^{-\gamma-1}}{Z_{\gamma}} dk \\ =&\, a + \frac{b - a}{\gamma Z_{\gamma}} n^{-\gamma} \\ \end{aligned}\end{equation}\] 它表明模型的能力(损失函数)跟能力量子的数目\(n\)的关系呈现幂律\(n^{-\gamma}\)的形式。显然,这里的\(a\)就代表损失函数的最小值,如果\(a=0\),那么就有\(L\sim \mathcal{O}(n^{-\gamma})\)。下面我们都假设\(a=0\)。 基本结果中的\(n\),是模型学到的能力量子的数目,到目前为止还只是一个虚拟的概念,接下来我们将它跟模型常见的变量联系起来。 参数量:假设模型的参数量为\(N\),然后假设平均每\(C\)个参数才能学到一个能力量子(假设\(C\)是常数),那么很显然有\(n\propto N\),以及 \[\begin{equation}L\sim \mathcal{O}(N^{-\gamma})\end{equation}\] 数据量:假设训练集的总样本数为\(D\),由于我们假设不同的量子负责解决不同难度的样本,所以我们可以很自然地认为由量子\(1\)解决的样本数为\(Dp_1\)、由量子\(2\)解决的样本数为\(Dp_2\)、由量子\(3\)解决的样本数为\(Dp_3\)、…,然后我们假设学习一个量子至少需要\(\tau\)个样本,那么\(Dp_k < \tau\)的量子都无法学到。于是由\(\tau=D p_n\)我们可以解得\(n\propto D^{1/(\gamma + 1)}\),代入得到 \[\begin{equation}L\sim \mathcal{O}(D^{-\gamma/(\gamma + 1)})\end{equation}\] 训练量:假设模型的参数量和训练集的样本数都无上限,那么模型学到的量子数\(n\)就取决于训练步数\(S\)了。假设批大小为\(B\),那么平均来说学习量子\(1\)的样本数为\(Bp_1\)、学习量子\(2\)的样本数为\(Bp_2\)、学习量子\(3\)的样本数为\(Bp_3\)、…,同样假设学习一个量子至少需要学习\(\tau\)个样本,那么经过\(S\)步训练后,量子\(n\)共学习了\(SBp_n\)个样本,于是由\(\tau=SB p_n\)可以解得\(n\propto S^{1/(\gamma + 1)}\),代入得到 \[\begin{equation}L\sim \mathcal{O}(S^{-\gamma/(\gamma + 1)})\end{equation}\] 可以看到,虽然结果都是幂律,但是因为\(\gamma > \gamma/(\gamma + 1) \in (0, 1)\),所以很显然参数量对模型能力的影响更加大一些。 可能有读者想问,能力量子化假设是否可以用来解释大模型的涌现(Emergency)现象呢? 一定程度上可以。前面我们假设完美模型应该具有无穷多个能力量子,如果将这个无穷改为有限,那么通过增加参数量,模型总会有机会覆盖所有的能力量子,达到理论最优的完美模型,这就是涌现。又或者说,完美模型还是应该具有无穷多个能力量子,但人类对智能的“分辨力”只有有限个量子(人类本身未必是完美的),所以当大模型学到一定数目的能量量子后,在人类的视角中就是完美的“涌现”了。 本文介绍了从量子化假设来推导模型的尺度定律(Scaling Law)的过程,具体来说就是模型的损失函数与参数量、数据量、训练量的渐近关系,并简单分析了它与涌现现象的可能联系。 转载到请包括本文地址:https://kexue.fm/archives/9607 更详细的转载事宜请参考:《科学空间FAQ》 如果您还有什么疑惑或建议,欢迎在下方评论区继续讨论。 如果您觉得本文还不错,欢迎分享/打赏本文。打赏并非要从中获得收益,而是希望知道科学空间获得了多少读者的真心关注。当然,如果你无视它,也不会影响你的阅读。再次表示欢迎和感谢! 微信打赏 支付宝打赏 因为网站后台对打赏并无记录,因此欢迎在打赏时候备注留言。你还可以点击这里或在下方评论区留言来告知你的建议或需求。 如果您需要引用本文,请参考: 苏剑林. (May. 18, 2023). 《基于量子化假设推导模型的尺度定律(Scaling Law) 》[Blog post]. Retrieved from https://kexue.fm/archives/9607

                @online{kexuefm-9607,
                            title={基于量子化假设推导模型的尺度定律(Scaling Law)},
                            author={苏剑林},
                            year={2023},
                            month={May},
                            url={\url{https://kexue.fm/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,将\(p_n=\frac{n^{-\gamma-1}}{Z_\gamma}\)带入\(\tau=Dp_n\)求得\(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定律,只需要假设能做泰勒展开即可。

                    你的大名
                


                    电子邮箱
                


                    个人网站(选填)
                
  1. 可以使用LaTeX代码,点击“预览效果”可查看效果;2. 可以通过点击评论楼层编号来引用该楼层;3. 网站可能会有点卡,如非确认评论失败,请不要重复点击提交。

本站采用创作共用版权协议,要求署名、非商业用途和保持一致。转载本站内容必须也遵循“署名-非商业用途-保持一致”的创作共用协议。

    © 2009-2026 Scientific Spaces. All rights reserved. Theme by laogui. Powered by Typecho. 备案号: 粤ICP备09093259号-1/2。