Scaling Laws for Precision
Scaling Laws for Precision
作者/机构:Tanishq Kumar∗1, Zachary Ankner∗ 3,4, Benjamin F. Spector2, Blake Bordelon1, Niklas Muennighoff2, Mansheej Paul4, Cengiz Pehlevan1, Christopher Ré2, Aditi Raghunathan5
1哈佛大学 2斯坦福大学 3麻省理工学院 4Databricks 5卡内基梅隆大学
A1 主要贡献
低精度训练和推理影响着语言模型的质量和成本,但目前的缩放定律(scaling laws)并未考虑这一点。本研究旨在为训练和推理设计“精度感知”的缩放定律。
核心问题与研究目标:本文的核心问题是:精度、参数和数据之间存在怎样的权衡关系?这些权衡在预训练和推理阶段有何不同?为了回答这些问题,研究旨在建立一个能够量化这些因素间关系的函数形式,并预测在不同精度下训练和推理的性能损失。
核心创新点:
1. 有效参数计数(Effective Parameter Count)概念:研究提出,在较低精度下训练会降低模型的“有效参数计数”($N_{eff}$),从而可以预测低精度训练和训练后量化(PTQ)带来的额外损失。这意味着位精度和参数数量可以相互转换,共同决定模型的有效规模。
-
训练后量化(PTQ)的缩放定律:研究发现,由PTQ引入的性能下降会随着模型训练数据的增多而加剧。这意味着,如果模型在训练后需要被量化,那么在某个点之后,继续增加预训练数据实际上会对模型性能产生负面影响。
图1:关键发现示意图。(左) 在BF16精度下,将固定大小的模型训练至不同的数据预算,并在最后量化权重。我们发现,由训练后量化引起的性能下降随着预训练期间见过的令牌数增加而增加,因此最终额外的预训练数据可能是有害的。(右) 我们的缩放定律表明,根据第4.3节的成本模型,以较低精度训练较大的模型可能是计算最优的。权重、激活、注意力均被量化,所有模型都在相同的数据预算下训练,详情见附录J。 -
量化训练的缩放定律:
- 计算最优精度:研究的缩放定律表明,在不受模型大小限制的情况下,计算最优的预训练精度通常与总计算预算无关。
- 模型大小受限下的最优精度:然而,如果模型大小受到限制,计算最优的预训练精度会随着计算量的增加而缓慢增长。这表明,对于将被“过度训练”的模型,采用更高的训练精度可能是计算最优的。
-
统一的精度缩放定律:本文将训练后量化和量化训练的缩放定律统一为一个单一的函数形式,该形式可以预测在不同训练和推理精度下的性能下降。对于一个拥有N个参数、在D个令牌上训练、训练精度为$P_{train}$、训练后权重精度为$P_{post}$的语言模型,其统一缩放定律的形式如下:
$$L(N, D, P_{\text{train}}, P_{\text{post}}) = \underbrace{\underbrace{AN_{\text{eff}}^{-\alpha}}_{\text{Training-time Effects}} + BD^{-\beta} + E}_{\text{Usual Chinchilla form}} + \underbrace{\delta_{\text{PTQ}}(N_{\text{eff}}, D, P_{\text{train}}, P_{\text{post}})}_{\text{Post-Training Effects}}$$其中,$A, B, E, \alpha, \beta$是拟合得到的正常数,而$\delta_{PTQ}$是由训练后量化引起的损失下降。
总而言之,本研究通过对超过465次预训练运行的拟合,并在参数量高达17亿、训练数据量高达260亿令牌的模型上验证了其预测,为低精度训练和推理提供了新的视角。研究结果表明,更多的预训练浮点运算(FLOPs)并不总能带来更好的推理时模型性能,并且当前行业标准(如16位训练)和追求极低位(低于4位)预训练精度的趋势可能都不是最优选择。
A3 背景知识
术语说明
符号定义。在全文中,$D$表示数据集大小(以令牌计),$N$表示模型大小(以参数计)。$P_w, P_a, P_{kv}$分别指训练期间权重、激活和键值缓存(“注意力”)的位精度(整数类型),而$P_{post}$指我们为模型推理而在训练结束后进行训练后量化(PTQ)的精度。当$P$或$P_{train}$在没有指明模型部分时使用,则表示所有三个模型部分的精度相同。由训练后量化引起的推理时损失下降将表示为$\delta_{PTQ}(N, D, P_{train}, P_{post})$,定义为与预训练结束时相比,执行训练后量化所带来的损失变化。我们使用“高精度”来指代16位或更高精度。
2.1 量化基础:方式、对象与时机
计算与内存密集型工作负载的挑战。大多数深度学习工作负载的瓶颈要么是计算(以矩阵乘法形式),要么是内存带宽(以GPU不同部分之间的数据移动形式)。不同类型的工作负载有不同的瓶颈:预训练期间大部分时间用于大型矩阵乘法,因此是计算密集型;相比之下,小批量推理受模型权重的带宽限制;长序列解码则受KV缓存的带宽限制。这促使我们研究(权重、激活、KV缓存)训练精度的缩放规律,既包括独立研究,也包括组合研究。
量化方式。操作的量化通常指的是在正向或反向传播过程中,对某些计算中涉及的矩阵值进行舍入,具体取决于量化的内容和时机。量化通常是针对整数或浮点数类型进行的。
量化对象:仅权重(“量化感知训练”)。在训练期间仅量化权重并不会带来任何计算节省,因为矩阵乘法仍然在高精度下进行。然而,这样做通常是为了让权重适应低精度,以便在推理时能够以非常低的精度提供服务,从而缓解内存瓶颈【【60,The era of 1-bit llms: All large language models are in 1.58 bits, 2024, arXiv preprint arXiv:2402.17764】;【96,Bitnet: Scaling 1-bit transformers for large language models, 2023, arXiv preprint arXiv:2310.11453】】。我们将此称为“量化感知训练”,并在附录D中进行额外讨论。
量化对象:权重、激活、注意力(“低精度训练”)。除了权重外,还对激活和注意力进行量化,可以带来计算上的增益,因为矩阵乘法可以在低精度下进行(如果硬件支持),因为所有内容都在同一精度下。我们将此设置称为“低精度训练”,以区别于量化感知训练。
量化时机。量化可以在训练期间或训练之后进行。在实践中,当寻求降低推理时内存成本时,首先会尝试训练后量化。如果这导致模型性能下降过多,则使用量化感知训练。训练后量化通常只应用于模型权重【【35,Gptq: Accurate post-training quantization for generative pre-trained transformers, 2022, arXiv preprint arXiv:2210.17323】;【29,Gpt3. int8 (): 8-bit matrix multiplication for transformers at scale, 2022, NeurIPS】;【51,Awq: Activation-aware weight quantization for llm compression and acceleration, 2023, MLSys 2024】;【101,Smoothquant: Accurate and efficient post-training quantization for large language models, 2023, ICML】】。为了降低预训练成本,需要进行低精度训练。我们将在第3节研究训练后量化的缩放定律,在第4节研究量化训练(同时考察量化感知训练和低精度训练),并在第5节将两者统一起来。所有拟合常数的数值可以在附录K中找到。
2.2 缩放定律与参数拟合
缩放定律。Hoffmann等人【【40,Training compute-optimal large language models, 2022, arXiv preprint arXiv:2203.15556】】使用函数形式$L(N, D) = AN^{-\alpha} + BD^{-\beta} + E$来建模损失缩放,其中$A, B, \alpha, \beta, E$是拟合的正常数,他们发现随着可用计算量的增加,数据和参数应该以大致相等的比例进行扩展。我们将Hoffmann等人【【40,Training compute-optimal large language models, 2022, arXiv preprint arXiv:2203.15556】】的缩放称为“Chinchilla最优”或简称“Chinchilla”,并指出这通常被通俗地理解为$D/N \approx 20$是预训练的计算最优值。在理论方面,关于缩放定律的研究【【11,Explaining neural scaling laws, 2024, PNAS】;【17,A dynamical model of neural scaling laws, 2024, arXiv preprint arXiv:2402.01092】;【53,Scaling laws in linear regression: Compute, parameters, and data, 2024, arXiv preprint arXiv:2406.08466】】发现,对模型或数据不同部分的噪声会以可预测的方式影响损失。虽然先前的工作已经从总模型位数【【27,The case for 4-bit precision: k-bit inference scaling laws, 2023, ICML】】和知识容量【【9,Physics of language models: Part 3.3, knowledge capacity scaling laws, 2024, arXiv preprint arXiv:2404.05405】】的角度探讨了训练后量化的缩放行为,但我们转而关注数据缩放。我们注意到,一般而言,所有系数和指数的精确拟合值可能会因微小的实现差异而产生巨大变化:Besiroglu等人【【15,Chinchilla scaling: A replication attempt, 2024, arXiv preprint arXiv:2404.10102】】在尝试复现Hoffmann等人【【40,Training compute-optimal large language models, 2022, arXiv preprint arXiv:2203.15556】】的研究时发现了不同的常数,Sardana和Frankle【【73,Beyond chinchilla-optimal: Accounting for inference in language model scaling laws, 2024, arXiv preprint arXiv:2401.00448】】拟合出的系数A和B有不同的数量级。因此,我们强调我们的贡献不在于我们拟合的数值,而在于我们识别出的趋势和函数形式。
过训练。在实践中,考虑推理成本意味着训练比Chinchilla最优模型更小的模型,但训练时间要长得多【【73,Beyond chinchilla-optimal: Accounting for inference in language model scaling laws, 2024, arXiv preprint arXiv:2401.00448】;【36,Language models scale reliably with over-training and on downstream tasks, 2024, arXiv preprint arXiv:2403.08540】】。例如,Llama-3-8B训练到$D/N \approx 2000$【【33,The llama 3 herd of models, 2024, arXiv preprint arXiv:2407.21783】】,而Gemma-2系列则训练到$D/N > 1000$【【88,Gemma 2: Improving open language models at a practical size, 2024, arXiv preprint arXiv:2408.00118】】。在本文中,我们将这类模型称为“过训练”模型,其中令牌/参数比率$D/N$是贯穿全文的关键量。关于推理时间计算【【81,Scaling llm test-time compute optimally can be more effective than scaling model parameters, 2024, arXiv preprint arXiv:2408.03314】;【18,Large language monkeys: Scaling inference compute with repeated sampling, 2024, arXiv preprint arXiv:2407.21787】】以及合成和多模态数据【【102,Synthetic continued pretraining, 2024, arXiv preprint arXiv:2409.07431】;【34,Scaling laws of synthetic images for model training... for now, 2024, CVPR】;【14,Comprehensive exploration of synthetic data generation: A survey, 2024, arXiv preprint arXiv:2401.02524】】的研究表明,未来的模型可能会更加过训练。因此,现代关于规模的研究必须考虑远大于Chinchilla最优的比率,在本研究中,我们进行了高达$D/N \approx 10^3$的实验,并分析了我们的缩放定律对高达$D/N \approx 10^5$的预测。更多相关工作见附录B。
A2 方法细节
3 训练后量化的缩放定律
最简单且最常见的量化技术是直接对现成模型进行训练后量化(PTQ)【【20,Quip: 2-bit quantization of large language models with guarantees, 2024, NeurIPS】;【41,Billm: Pushing the limit of post-training quantization for llms, 2024, arXiv preprint arXiv:2402.04291】;【29,Gpt3. int8 (): 8-bit matrix multiplication for transformers at scale, 2022, NeurIPS】;【51,Awq: Activation-aware weight quantization for llm compression and acceleration, 2023, MLSys 2024】;【101,Smoothquant: Accurate and efficient post-training quantization for large language models, 2023, ICML】】。在本节中,我们考虑在BF16精度下训练的模型,并使用GPTQ【【35,Gptq: Accurate post-training quantization for generative pre-trained transformers, 2022, arXiv preprint arXiv:2210.17323】】对其进行训练后量化,并在附录F中用另外两种方法复现了我们的发现。我们量化了由此产生的损失下降$\delta_{PTQ}$,发现训练后量化在数据方面扩展性很差。
3.1 过训练模型在训练后量化时性能下降更多
PTQ退化随训练数据增加而增加。我们考虑不同模型大小(列)在各种数据预算(每个图的x轴)下进行训练,并在图2中绘制了训练后量化后的损失(顶行)和相对于训练结束时的性能下降(底行)。我们发现,在所有模型大小中,损失下降$\delta_{PTQ}$随着训练数据量的增加而增加,但对于固定的数据集大小,较大的模型会产生较小的性能下降。我们还观察到,随着我们量化精度的降低,$\delta_{PTQ}$会呈指数级增长。基于这些观察,我们建立了$\delta_{PTQ}$的模型形式:
$$\delta_{\mathrm{PTQ}}(N, D, P_{\text{post}}) = C_T \left( \frac{D^{\gamma_D}}{N^{\gamma_N}} \right) e^{-P_{\text{post}}/\gamma_{\text{post}}}$$其中$C_T, \gamma_D, \gamma_N, \gamma_{post}$是拟合得到的正常数。由于我们发现$\gamma_D$和$\gamma_N$的拟合值相似(数值见附录K),我们可以将其视为令牌/参数比率$D/N$的近似幂律。这种差的数据缩放的直观解释可能是,随着模型在更多数据上训练,它们将更多信息压缩到权重中,因此在其他条件相同的情况下,以量化形式对权重进行的扰动对损失的危害更大。我们在附录H中讨论了形式化的理论解释。
额外数据有害的临界点。这一发现意味着,对于将要进行训练后量化的模型,存在一个预训练数据量,超过这个量,额外的数据会对推理时的性能产生积极的负面影响(参见图2左上角)。这可以定义为额外数据增加的训练后性能下降超过其在预训练期间减少的损失的点。我们在附录E中对这个临界数据大小进行了分析求解,并分析了以推理成本为主要关注点的工作负载的成本模型。因此,我们将第一个缩放发现总结如下。
发现1。过度训练的语言模型对训练后量化更敏感。对于在BF16或更高精度下训练的模型,我们可以将这种损失下降建模为:
$$\delta_{\mathrm{PTQ}}\left(N, D, P_{\text {post }}\right)=C_T\left(\frac{D^{\gamma_D}}{N^{\gamma_N}}\right) e^{-P_{\text {post }} / \gamma_{\text {post }}}$$其中$C_T, \gamma_D, \gamma_N, \gamma_{post}$是拟合的正常数。这意味着,当$D/N$足够大或$P_{post}$足够小时,量化后的损失会随着模型预训练时间的延长而增加,如图2所示。我们将在第5节中重新审视并修改公式2,以考虑在低精度训练对$\delta_{PTQ}$的影响。
4 量化训练的缩放定律
本节目标。在本节中,我们研究了在不同精度下对权重、激活和KV缓存进行预训练。重要的是,本节只改变训练精度,而不改变测试时精度;我们将在第5节讨论训练和测试时精度之间的相互作用。我们独立地对权重、激活和KV缓存的训练精度$P_w, P_a, P_{kv} \in [3, 12]$进行了扫描,并训练了BF16基线模型。我们还预训练了具有任意$P_w, P_a, P_{kv}$组合的模型,以验证我们的缩放定律。为了在训练期间进行量化,我们除非另有说明,否则在正向传播中使用整数类型进行量化,实现细节见附录D。
4.1 量化感知训练:在训练期间量化权重具有一致且可预测的效果
权重精度与参数量的权衡。我们首先研究在保持$P_a = P_{kv}$为高精度的情况下,权重精度$P_w$和参数$N$之间的权衡。我们固定$D = 13$B个令牌,并对$N$和$P_w$的组合进行网格搜索。我们在图3中绘制了由此产生的IsoLoss等值线图,其中我们对最终损失值进行了线性插值。我们观察到,权重的位精度可以与参数数量进行权衡,即,一个具有较小$N$但较大$P_w$的模型可以达到与具有较大$N$但较小$P_w$的模型相同的损失。此外,我们发现,增加权重位精度带来的增益在较低精度时很大,但在较高精度时会饱和(通常在每个权重6-7位左右)。
提出有效参数计数。与图3中的经验趋势一致,我们发现权重精度和参数之间权衡的最佳拟合是$N_{eff}(N, P_w) = N (1 - e^{-P_w/\gamma_w})$,其中$\gamma_w$是一个衡量模型权重敏感度的拟合常数(附录K中探讨了其他拟合方法)。因此,我们通过替换$N \to N_{eff}(N, P_w)$来修改Chinchilla缩放,得到修改后的形式:
$$L(N, D)=A\left[N\left(1-e^{-P_{\mathrm{w}} / \gamma_{\mathrm{w}}}\right)\right]^{-\alpha}+B D^{-\beta}+E$$其中我们回顾一下,$A, B, E, \alpha, \beta$是通常Chinchilla缩放形式中的拟合正常数,而$\gamma_w$是我们引入的一个拟合常数。我们在图4中绘制了我们拟合的预测值与在一系列$(N, D)$下的观测值对比。
4.2 低精度训练:量化权重、激活和注意力的影响是组合和乘性的
预训练成本与精度。量化感知训练不改变预训练的成本。这是因为现代GPU要求矩阵乘法的输入具有相同的精度,即$P_w = P_a = P_{kv}$【【62,Fp8 formats for deep learning, 2022, arXiv preprint arXiv:2209.05433】】。为了理解精度和预训练计算之间的相互作用,我们现在必须分析$P_a$和$P_{kv}$的缩放行为。请注意,在我们的训练实验中,我们只在正向传播中进行量化,以确保在量化感知训练(仅权重)和对激活/KV缓存的额外量化之间进行公平比较,详见附录D。
激活和KV缓存的精度影响相似。我们首先在附录图20中验证,单独改变$P_a$和$P_{kv}$会产生与$P_w$的形式类似的缩放行为(公式3,图5,左),这种行为最适合用一个类似的函数形式来拟合。我们将通过一次只改变模型一个部分的精度来计算的缩放系数称为边际拟合常数,而将在包含多个模型组件同时处于低精度的运行上拟合得到的系数称为联合拟合常数。
联合拟合与边际拟合的预测能力相当。我们现在将注意力转向理解权重、激活和注意力之间的相互作用。如果量化权重、激活和注意力的影响是独立的,那么以下形式的分解、乘法相互作用是一个自然的提议。
$$N_{\mathrm{eff}}(P)=N(1-e^{-P_{\mathrm{w}}/\gamma_{\mathrm{w}}})(1-e^{-P_{\mathrm{a}}/\gamma_{\mathrm{a}}})(1-e^{-P_{\mathrm{kv}}/\gamma_{\mathrm{kv}}})$$我们通过比较具有边际拟合常数的模型和具有联合拟合常数的模型的预测能力来测试这种独立性是否近似成立。我们在图5(b,c)中展示了两种模型的预测能力,发现两种拟合常数的方法具有大致相同的预测能力。这些结果表明,独立性假设是合理的。我们在附录M中提供了进一步的证据,表明这种“分解”函数形式与数据非常吻合,并讨论了其他分解方案。
发现2。在训练期间量化权重、激活和KV缓存的影响可以很好地建模为独立和乘性的,因此:
$$L(N, D, P_{\mathrm{w}}, P_{\mathrm{a}}, P_{\mathrm{kv}}) = AN_{\mathrm{eff}}^{-\alpha} + BD^{-\beta} + E$$其中:
$$N_{\mathrm{eff}}(P_{\mathrm{w}}, P_{\mathrm{a}}, P_{\mathrm{kv}}) = N(1 - e^{-P_{\mathrm{w}}/\gamma_{\mathrm{w}}})(1 - e^{-P_{\mathrm{a}}/\gamma_{\mathrm{a}}})(1 - e^{-P_{\mathrm{kv}}/\gamma_{\mathrm{kv}}})$$为此,我们拟合了常数$\gamma_w, \gamma_a, \gamma_{kv}$,它们反映了权重、激活和KV缓存的不同敏感度。如果三种精度都设置为相同的值$P$,就像在预训练中一样,这简化为$N_{eff}(P) \approx N (1 - e^{-P/\bar{\gamma}})^3$,其中$\bar{\gamma}$是三个参数的平均值。我们在图3(左)中用我们的拟合值可视化了这个函数形式。
4.3 对预训练的启示
计算成本模型。当以精度$P$进行训练时,即$P_w = P_a = P_{kv} = P$,计算成本与$P$成线性比例【【3,Demystifying the nvidia ampere architecture through microbenchmarking and instruction-level analysis, 2022, HPEC】】。Hoffmann等人【【40,Training compute-optimal large language models, 2022, arXiv preprint arXiv:2203.15556】】的所有实验都在16位精度下进行,并使用成本模型$C = 6ND$ FLOPs。我们将其推广为$C = \frac{6}{16} NDP$以考虑计算和精度之间的线性关系,当$P = 16$时,这简化为Chinchilla成本函数。我们现在研究以下优化问题的三个实际相关变体。
$$\min _{N, D, P} L(N, D, P)=A\left[N\left(1-e^{-P / \gamma}\right)^{3}\right]^{-\alpha}+B D^{-\beta}+E \text { subject to } C=\frac{6}{16} N D P$$由于推导在代数上较为复杂,我们将只进行比例分析,并通过数值验证提出的解决方案。数学细节见附录E。我们注意到,我们函数形式的启示无论未来实验的规模如何都是成立的,但我们预测的数值取决于我们在较小规模、整数类型实验上拟合的常数。
4.3.1 如果必须在低精度下训练,优先增加参数而非数据
固定精度下的最优分配。在固定精度$P$和计算预算$C$下,最小化$L(N, D)$,约束条件为$C \propto NDP$。经过一些代数运算,我们得到在精度$P$和计算预算$C$下,参数和数据的最优分配$N^*, D^*$相对于Chinchilla最优的$N_{Ch}, D_{Ch}$由下式给出:
$$\frac{N^{*}(P, C)}{N_{\mathrm{Ch}}(C)} \propto\left[1-e^{-P / \bar{\gamma}}\right]^{-\frac{3 \alpha}{\alpha+\beta}} P^{-\frac{\beta}{\alpha+\beta}} \text { and } \frac{D^{*}(P, C)}{D_{\mathrm{Ch}}(C)} \propto\left[1-e^{-P / \bar{\gamma}}\right]^{\frac{3 \alpha}{\alpha+\beta}} P \frac{\beta}{\alpha+\beta}$$这表明,在固定的计算量下,随着训练精度的降低,我们应该增加参数并减少数据。对此的解释是,在非常低的精度下,我们的有效参数数量会消失,因此增加参数数量是计算最优的,因为数据会严重超过有效参数。
4.3.2 计算最优的预训练精度通常与计算量无关
计算最优精度通常与计算量无关。联合最小化$L(N, D, P)$,约束条件为$C \propto NDP$。这是在除了固定的计算预算外,对$N, D, P$没有约束的预训练设置。解决这个联合最小化问题得到了一个关于$P^*(C)$的隐式方程。记$u(P) = [1 - e^{-P/\bar{\gamma}}]^{-3\alpha}$,我们发现(见附录E)这个方程的形式为:
$$\frac{3\alpha}{\bar{\gamma}} u(P)^{\frac{3\alpha+1}{3\alpha}} e^{-P/\bar{\gamma}} = P^{-1} u(P)$$这揭示了在一般情况下,最优预训练精度与计算预算无关。这表明,计算最优精度应保持在$P^*$不变,而$N, D$应根据公式6进行缩放。我们发现在整数类型量化的运行上拟合我们的缩放定律时,这个$P^*$大约在7-8位。
对16位和<4位训练的启示。这有两个后果:首先,这意味着默认使用16位训练模型的做法可能不是最优的。其次,追求低精度训练的竞赛可能不得不在低于4位之前停止,因为这将迫使模型大小不成比例地(超过4倍)增大以维持损失缩放(见图3,左)。
在更大规模上验证预测。我们在图6中以更大规模测试了我们的预测。我们训练了各种参数数量和精度的计算匹配模型,范围从FP4到FP32,参数从220M到1.6B。我们使用浮点类型进行训练,因为这是预训练的标准做法【【38,Olmo: Accelerating the science of language models, 2024, arXiv preprint arXiv:2402.00838】;【26,Molmo and pixmo: Open weights and open data for state-of-the-art multimodal models, 2024, arXiv preprint arXiv:2409.17146】】,尽管我们的缩放定律是在整数类型上拟合的。我们在图6(左)中绘制了我们的预测趋势,中间是经验值。我们发现,在整数类型上的缩放拟合在4位精度之前都是一个很好的拟合,在这一点上,两种类型之间的差异变得更加明显。定性趋势的匹配,以及最优值接近预测的7-8位附近的最优$P^*$,表明类似的缩放定律可能存在于不同类型之间。我们在附录中对浮点类型启动了类似的分析。
4.3.3 但如果模型大小N受限,计算最优的预训练精度会随计算量增加
当模型大小N固定时,最优精度随计算量增加。在实践中,一个常见的用例是在相似的数据上训练一系列不同大小的模型。Llama-3和Gemma-2系列【【33,The llama 3 herd of models, 2024, arXiv preprint arXiv:2407.21783】;【88,Gemma 2: Improving open language models at a practical size, 2024, arXiv preprint arXiv:2408.00118】】就是例子。在这种情况下,$N$是预先固定的,只有$D, P$被联合优化。令人惊讶的是,我们的缩放定律预测,不同大小的模型不一定应该在相同的精度下训练,并且计算最优精度与计算量的关系为$P^*(C) \propto \log C$。由于$N$是常数,并且我们在附录E中证明了$\log C \approx \log D$成比例,我们可以写成$P^*(C) \propto \log(D/N)$。对此的直观解释是,对于固定的$N$,精度成为一个新的杠杆,通过减少$D/N_{eff}$,使高度过训练的模型更接近预训练的最优状态。
发现3。当$N, D, P$被联合优化时,计算最优的预训练精度与计算量无关。16位有许多不必要的位,而4位则需要不成比例地增加模型大小以维持损失缩放。我们的拟合结果表明7-8位是计算最优的。相比之下,当$N$预先固定时,例如在训练一个模型家族时使用相似数据,最优精度$P^*(C) \propto \log C$。这表明,对于将要进行显著过训练的模型,训练期间使用更高的精度可能是计算最优的。
5 一个统一的精度缩放定律
本节目标。在本节中,我们将前面提出的两个缩放定律合并成一个统一的函数形式,该形式可以预测训练和训练后效应,包括两者之间的相互作用。我们现在将$\delta_{PTQ}$视为一个函数$\delta_{PTQ}(N, D, P_{train}, P_{post})$,而不仅仅是像我们在第3节中早些时候那样将其视为$\delta_{PTQ}(N, D, P_{post})$。我们发现在预测$\delta_{PTQ}$时存在两种相互竞争的效应,但总的来说,在较低精度下训练的模型在遭受较低性能下降的意义上对训练后量化更具鲁棒性。
后训练量化中的两种竞争效应。直观上,在低精度下训练$P_w, P_a, P_{kv}$中的任何一个,都会迫使模型学习对“量化噪声”具有鲁棒性的权重,因此它们在PTQ下性能下降较少。然而,减少的$N \to N_{eff}$意味着在低精度下训练的模型会性能下降更多,因为正如我们在第3节中发现的,$\delta_{PTQ}$随着$N^{-\gamma_N}$而增加。我们将这第二种效应称为“过训练”效应。在实践中,第一种“鲁棒化”效应占优,因此在较低精度下训练的模型在训练后量化时总体上性能下降较少。我们通过使用$N_{eff}$而不是$N$来预测给定各种训练精度的性能下降,在图21(左上,中上)中证实了这会带来显著更强的拟合效果,以验证相互竞争的过训练效应。
修正δPTQ以考虑训练精度。我们假设训练精度严格大于推理精度,并且如果它们相等,则定义性能下降为零。我们首先研究性能下降如何仅随训练期间的权重精度$P_w$而变化。考虑图7(中)。我们固定$(N, D)$,热图的每个单元格代表经验性能下降$\delta_{PTQ}(P_w, P_{post})$。我们观察到,如果训练和推理时精度之间存在任何差距,性能下降会非常迅速地增加到第3节中的指数级大值。这促使我们将第3节中最初拟合的函数形式修改为:
$$ \delta_{\mathrm{PTQ}}(N, D, P_{\mathrm{w}}, P_{\mathrm{post}}) = C_{T} e^{-P_{\mathrm{post}} / \gamma_{\mathrm{post}}} \underbrace{\left(\frac{D^{\gamma_{D}}}{N_{\mathrm{eff}}^{\gamma_{N}}}\right)}_{\text{Overtraining effect}} \underbrace{\left[1 - e^{-C_{\mathrm{w}}(P_{\mathrm{w}} - P_{\mathrm{post}})}\right]}_{\text{Robustification effect}} $$其中$C_w$是唯一新的拟合值。
扩展到激活/注意力。然后,我们可以自然地将其扩展以包括激活/注意力的精度效应:
$$\delta_{\mathrm{PTQ}}\left(N, D, P_{\mathrm{w}}, P_{\mathrm{a}}, P_{\mathrm{kv}}, P_{\mathrm{post}}\right)=C_{T} e^{-P_{\mathrm{post}} / \gamma_{\mathrm{post}}}\left(\frac{D^{\gamma_{D}}}{N_{\mathrm{eff}}^{\gamma_{N}}}\right) \prod_{\mathrm{x} \in\{\mathrm{w}, \mathrm{a}, \mathrm{kv}\}}\left[1-e^{-C_{\mathrm{x}}\left(P_{\mathrm{x}}-P_{\mathrm{post}}\right)}\right]$$我们在图7中测量了这种函数形式对数据的拟合程度,发现在超过1000个数据点(每个465个预训练运行都经过多次训练后量化)上得到了一个强拟合,R2 = 0.90。
一个可解释的统一函数形式。现在我们简化并解释得到的函数形式。考虑只在低精度下训练权重,并为了说明目的取$C_w = 1$,这样我们可以简化公式9。将$\sigma^2_{tr} := e^{-P_w/\gamma_w}$表示为“训练噪声”,反映了由于在较低精度下训练权重而导致的有效参数数量减少。然后,公式9简化为:
$$\delta_{\mathrm{PTQ}}(N, D, P_{\mathrm{train}}, P_{\mathrm{post}}) = C_T \underbrace{(\sigma_{\mathrm{PTQ}}^2 - \sigma_{\mathrm{tr}}^2)}_{\text{Robustification effect}} \cdot \underbrace{\left( \frac{D^{\gamma_D}}{N_{\mathrm{eff}}^{\gamma_N}} \right)}_{\text{Overtraining effect}}$$我们注意到,这是对我们在第3节发现3.1中拟合的初始训练后量化性能下降形式的直观修改,其中有一个来自$N_{eff}$的微小竞争效应因素在相反方向上起作用。它清晰地反映了模型对PTQ噪声的鲁棒性程度取决于它们在训练中是否接触过类似噪声的直觉。
发现4(统一缩放定律)。将预训练期间的低精度效应建模为累积的独立和乘性噪声,并包括训练后量化性能下降,对于一个具有$N$个参数、在$D$个令牌上训练、训练精度为$P_w, P_a, P_{kv}$、最终权重精度为$P_{post}$的语言模型,其预测损失可以表示为:
$$L(N, D, P_{\text{w}}, P_{\text{a}}, P_{\text{kv}}, P_{\text{post}}) = AN_{\text{eff}}^{-\alpha} + BD^{-\beta} + E + \delta_{\text{PTQ}}$$其中$\delta_{PTQ}(N, D, P_w, P_a, P_{kv}, P_{post})$通常如公式9所示,而$N_{eff}(N, P_w, P_a, P_{kv})$如发现4.2所示。
A4 实验环境
-
数据集:
- 主要实验使用 Dolma V1.7 数据集的 Common Crawl 子集进行训练和验证【【82,Dolma: An open corpus of three trillion tokens for language model pretraining research, 2024, arXiv preprint arXiv:2402.00159】】。
- 超参数消融实验使用 C4 数据集【【71,Exploring the limits of transfer learning with a unified text-to-text transformer, 2020, JMLR】;【32,Documenting large webtext corpora: A case study on the colossal clean crawled corpus, 2021, arXiv preprint arXiv:2104.08758】】。
- 实验数据规模覆盖 $D \in [1.5, 3, 6, 13, 26]$ 亿 tokens。
-
模型架构:
- 采用标准的 OLMo 风格的 Transformer++ 实现【【38,Olmo: Accelerating the science of language models, 2024, arXiv preprint arXiv:2402.00838】;【82,Dolma: An open corpus of three trillion tokens for language model pretraining research, 2024, arXiv preprint arXiv:2402.00159】】。
- 关键组件包括:SwiGLU 激活函数【【76,Glu variants improve transformer, 2020, arXiv preprint arXiv:2002.05202】】,RoPE 嵌入【【84,Roformer: enhanced transformer with rotary position embedding, 2021, corr abs/2104.09864 (2021)】】,RMSLayerNorm。
- 模型参数规模(非嵌入部分)覆盖 $N \in [30, 60, 110, 220]$ 百万。
- 序列长度为 1024,批处理大小为 256。
-
硬件配置:
- 所有模型均在 NVIDIA H100 GPU 上进行训练。
-
软件配置:
- 量化采用模拟(fake)量化实现,以保持硬件无关性。
- 优化器:Adam,其中 $\beta$ 值为 (0.9, 0.95),$\epsilon$ 值为 1e-15。
- 学习率调度:采用余弦学习率调度,有 10% 的 warmup 周期,最小模型的峰值学习率为 6e-4,较大模型根据深度-µP 进行缩放【【103,Tensor programs v: Tuning large neural networks via zero-shot hyperparameter transfer, 2022, arXiv preprint arXiv:2203.03466】;【16,Depthwise hyperparameter transfer in residual networks: Dynamics and scaling limit, 2023, arXiv preprint arXiv:2309.16620】】。
- 权重衰减为 0.1。
A4 实验结果
本研究通过一系列实验验证了其提出的精度感知缩放定律,主要结果如下:
-
训练后量化(PTQ)的性能下降与数据量相关:
- 实验内容:在BF16精度下训练不同大小的模型(30M-220M参数)至不同数据量(最高$D/N \approx 10^3$),然后使用GPTQ将其量化到3-6位整数精度。
- 实验结果:PTQ引起的损失下降($\delta_{PTQ}$)随着训练数据量的增加而显著增加。对于某些模型(如30M参数模型),当数据量足够大时,量化后的最终损失(Val Loss)甚至会随着数据量的增加而上升(见图2)。
- 分析结论:这证实了“发现1”,即过度训练的模型对PTQ更敏感,更多的预训练数据在需要量化推理的场景下可能是有害的。这一现象在多种PTQ方法(AWQ, RTN)下均能复现(见附录F,图10和图11)。
-
量化训练中精度与参数的可互换性:
-
实验内容:
- (QAT)固定数据量,扫描不同模型大小(N)和权重精度($P_w$)的组合。
- (低精度训练)扫描权重($P_w$)、激活($P_a$)和KV缓存($P_{kv}$)的多种精度组合。
-
实验结果:
- 存在一个清晰的“精度-参数”权衡关系,即一个较小但精度较高的模型可以达到与一个较大但精度较低的模型相同的性能(见图3)。
- 量化权重、激活和KV缓存对损失的影响可以被一个乘性的、组合的“有效参数计数”($N_{eff}$)函数很好地建模(见图4和图5)。
-
分析结论:这证实了“发现2”,即位精度可以被视为模型有效规模的一部分,其影响是可预测且可组合的。
-
-
预训练中的计算最优精度:
- 实验内容:基于拟合的缩放定律进行理论分析,并辅以在更大规模(最高1.6B参数)和浮点精度(FP4-FP32)下的实证验证。
-
实验结果:
- 实证结果表明,在计算量匹配的情况下,存在一个最优的训练精度(约FP8),其性能优于更高精度(BF16)和更低精度(FP4)的模型(见图6)。
- 当模型大小固定时,计算最优精度随数据量对数增长的趋势也得到了理论支持(见图6右侧)。
-
分析结论:这证实了“发现3”,即存在一个计算最优的预训练精度(约7-8位),且该最优值受模型大小是否固定的约束而变化。盲目追求16位或极低位(<4位)精度可能都不是最优策略。
-
统一缩放定律的有效性:
- 实验内容:将在465个预训练模型上收集的数据点(每个模型被量化到多个不同精度,总计超过1000个数据点)拟合到统一的缩放定律公式中。
- 实验结果:统一模型能够以高精度($R^2 = 0.90$)预测在任意训练精度和推理精度组合下的损失下降(见图7)。该模型成功捕捉了低精度训练带来的“鲁棒化”效应和“过训练”效应之间的竞争。
- 分析结论:这证实了“发现4”,即存在一个统一的、可解释的函数形式,能够同时描述训练时和推理时的精度效应,为在精度、参数和数据之间进行权衡提供了理论框架。
A5 结论
我们发现,常见的推理时技术——训练后量化,在非常高的数据预算下可能会导致严重的性能下降,这展示了一个惊人的例子,即更多的预训练计算并不总是意味着在推理时有更强的模型。为了寻求更好的数据扩展性,我们研究了量化感知训练和低精度训练。我们发现,将参数和位精度建模为可互换地控制模型的“有效参数计数”,使我们能够准确地预测训练和推理期间的有限精度损失效应。
我们的分析存在局限性。首先,我们全程使用固定的架构,以便在受控的方式下检验精度、参数和令牌的影响。相比之下,低精度训练通常涉及架构上的调整【【60,The era of 1-bit llms: All large language models are in 1.58 bits, 2024, arXiv preprint arXiv:2402.17764】;【107,Scalable matmul-free language modeling, 2024, arXiv preprint arXiv:2406.02528】】,这些调整可以弥补与普通全精度模型之间的大部分差距。其次,虽然计算成本确实与精度成线性关系,但由于系统开销,将精度减半带来的增益通常小于2倍。第三,我们只考虑了损失的扩展性,没有进行下游模型的评估。我们强调,我们发现的趋势旨在提供启发性而非规定性,并希望未来的工作能够在更大的模型规模上更全面地检验这些效应。总而言之,我们发现精度对损失的影响是可预测和一致的,并具有重要且令人惊讶的启示。
A6 附录
A 超参数细节与消融实验
主要实验配置。我们为每个(N, D)组合启动了超过20次运行,以研究精度的缩放规律,在Dolma数据集的common crawl分割上进行训练和验证【【82,Dolma: An open corpus of three trillion tokens for language model pretraining research, 2024, arXiv preprint arXiv:2402.00159】】。我们使用标准的因果Transformer++实现:SwiGLU激活函数【【76,Glu variants improve transformer, 2020, arXiv preprint arXiv:2002.05202】】,RoPE嵌入【【84,Roformer: enhanced transformer with rotary position embedding, 2021, corr abs/2104.09864 (2021)】】,RMSLayerNorm,Adam的$\beta$值为(0.9, 0.95)。我们采用带有10%预热期的余弦学习率调度,最小模型的峰值学习率为6e-4,较大模型的学习率根据深度-µP进行宽度和深度缩放【【103,Tensor programs v: Tuning large neural networks via zero-shot hyperparameter transfer, 2022, arXiv preprint arXiv:2203.03466】;【16,Depthwise hyperparameter transfer in residual networks: Dynamics and scaling limit, 2023, arXiv preprint arXiv:2309.16620】】。我们全程使用1024的序列长度和256的批量大小,Adam $\epsilon$为1e-15,遵循【【100,Small-scale proxies for large-scale transformer training instabilities, 2023, arXiv preprint arXiv:2309.14322】】。我们使用0.1的权重衰减,因为【【5,Intriguing properties of quantization at scale, 2023, NeurIPS】】发现量化文献中的一些结果可能是权重衰减不足的产物。我们遵循【【60,The era of 1-bit llms: All large language models are in 1.58 bits, 2024, arXiv preprint arXiv:2402.17764】】在投影前加入一个LayerNorm,因为他们发现这对于低精度训练的稳定性很重要。这些是用于主要缩放定律实验的超参数和设置。
超参数消融实验。为了检查鲁棒性,我们接着对这些超参数选择进行了消融实验,结果见图8。在我们的消融实验中,我们使用512的序列长度和128的批量大小,权重衰减为1e-3,Adam $\epsilon$为1e-10,峰值学习率为1e-4,预热期为3%。我们用这些替代超参数在不同的权重、激活和KV缓存精度下训练模型。我们改在C4数据集上进行训练和验证【【71,Exploring the limits of transfer learning with a unified text-to-text transformer, 2020, JMLR】;【32,Documenting large webtext corpora: A case study on the colossal clean crawled corpus, 2021, arXiv preprint arXiv:2104.08758】】。尽管由于计算限制,这些消融实验的规模相当小,但损失曲线遵循与正文相同的趋势——随着精度从4位初步增加,最终损失迅速下降,然后在接近更高精度时出现收益递减——这表明这些趋势对超参数选择是鲁棒的。
B 更多相关工作
高效训练与推理。低精度一直是提高LLMs训练和使用效率的关键【【61,Mixed precision training, 2017, arXiv preprint arXiv:1710.03740】;【79,Megatron-lm: Training multi-billion parameter language models using model parallelism, 2019, arXiv preprint arXiv:1909.08053】;【99,Stable and low-precision training for large-scale vision-language models, 2023, NeurIPS】;【108,A survey on model compression for large language models, 2023, arXiv preprint arXiv:2308.07633】】。先前的工作通常要么研究训练期间的精度【【25,Training deep neural networks with low precision multiplications, 2014, arXiv preprint arXiv:1412.7024】;【31,Qlora: Efficient finetuning of quantized llms, 2024, NeurIPS】;【28,8-bit optimizers via block-wise quantization, 2021, arXiv preprint arXiv:2110.02861】;【85,Ultra-low precision 4-bit training of deep neural networks, 2020, NeurIPS】;【57,Llm-qat: Data-free quantization aware training for large language models, 2023, arXiv preprint arXiv:2305.17888】】,要么研究训练后改变精度的影响(训练后量化)【【35,Gptq: Accurate post-training quantization for generative pre-trained transformers, 2022, arXiv preprint arXiv:2210.17323】;【52,Awq: Activation-aware weight quantization for on-device llm compression and acceleration, 2024, MLSys】;【29,Gpt3. int8 (): 8-bit matrix multiplication for transformers at scale, 2022, NeurIPS】;【101,Smoothquant: Accurate and efficient post-training quantization for large language models, 2023, ICML】;【78,Flexgen: High-throughput generative inference of ´ large language models with a single gpu, 2023, ICML】;【30,Spqr: A sparse-quantized representation for near-lossless llm weight compression, 2023, arXiv preprint arXiv:2306.03078】】。本研究同时探讨了训练期间和训练后的精度,并从缩放的角度将它们统一起来。其他重要工作包括最近流行的量化感知训练【【60,The era of 1-bit llms: All large language models are in 1.58 bits, 2024, arXiv preprint arXiv:2402.17764】】,其中权重在训练的正向传播中被量化到极低精度(三元)。这项工作与我们的一致,因为他们可以如此激进地量化权重,是因为权重比激活或KV缓存更不敏感。此外,虽然我们全程使用固定架构以在不同精度间保持受控比较,但他们使用了非标准架构、学习率和权重衰减调度,专门用于使三元权重的训练稳定。
大语言模型与缩放。通过扩展transformer架构【【94,Attention is all you need.(nips), 2017, arXiv preprint arXiv:1706.03762】】,人们提出了多种大型语言模型【【19,Language models are few-shot learners, 2020, https://arxiv.org/abs/2005.14165】;【70 ,Scaling language models: Methods, analysis & insights from training gopher, 2021, arXiv preprint arXiv:2112.11446】;【90,Llama: Open and efficient foundation language models, 2023, arXiv preprint arXiv:2302.13971】;【91,Llama 2: Open foundation and fine-tuned chat models, 2023, arXiv preprint arXiv:2307.09288】;【33,The llama 3 herd of models, 2024, arXiv preprint arXiv:2407.21783】;【47,Bloom: A 176b- ´ parameter open-access multilingual language model, 2023, 】;【63,Crosslingual generalization through multitask finetuning, 2022, arXiv preprint arXiv:2211.01786】;【65,Olmoe: Open mixture-of-experts language models, 2024, arXiv preprint arXiv:2409.02060】;【38,Olmo: Accelerating the science of language models, 2024, arXiv preprint arXiv:2402.00838】;【44,Mistral 7b, 2023, arXiv preprint arXiv:2310.06825】;【105,Opt: Open pre-trained transformer language models, 2022, arXiv preprint arXiv:2205.01068】;【8,Santacoder: don’t reach for the stars!, 2023, arXiv preprint arXiv:2301.03988】;【50,Starcoder: may the source be with you!, 2023, arXiv preprint arXiv:2305.06161】;【58,Starcoder 2 and the stack v2: The next generation, 2024, arXiv preprint arXiv:2402.19173】;【59,Fingpt: Large generative models for a small language, 2023, arXiv preprint arXiv:2311.05640】;【12,Qwen technical report, 2023, arXiv preprint arXiv:2309.16609】;【22,Palm: Scaling language modeling with pathways, 2023, JMLR】;【87,Gemini: a family of highly capable multimodal models, 2023, arXiv preprint arXiv:2312.11805】;【92,Aya model: An instruction finetuned open-access multilingual language model, 2024, arXiv preprint arXiv:2402.07827】;【26,Molmo and pixmo: Open weights and open data for state-of-the-art multimodal models, 2024, arXiv preprint arXiv:2409.17146】】。为了增进我们对这些模型的理解,各种工作研究了它们的缩放特性【【72,Observational scaling laws and the predictability of language model performance, 2024, arXiv preprint arXiv:2405.10938】;【9,Physics of language models: Part 3.3, knowledge capacity scaling laws, 2024, arXiv preprint arXiv:2404.05405】;【39,Scaling laws and compute-optimal training beyond fixed training durations, 2024, arXiv preprint arXiv:2405.18392】】。许多方面都与缩放有关,包括架构【【86,Scaling laws vs model architectures: How does inductive bias influence scaling?, 2022, arXiv preprint arXiv:2207.10551】;【46,Scaling ´ laws for fine-grained mixture of experts, 2024, arXiv preprint arXiv:2402.07871】;【86,Scaling laws with vocabulary: Larger models deserve larger vocabularies, 2024, arXiv preprint arXiv:2407.13623】;【23,Unified scaling laws for routed language models, 2022, ICML】;【87,Transcending scaling laws with 0.1% extra compute, 2022, arXiv preprint arXiv:2210.11399】;【74,What language model to train if you have one million gpu hours?, 2022, arXiv preprint arXiv:2210.15424】;【68,Eagle and finch: Rwkv with matrix-valued states and dynamic recurrence, 2024, arXiv preprint arXiv:2404.05892】】、考虑的模态【【4,Scaling laws for generative mixed-modal language models, 2023, ICML】;【6,Revisiting neural scaling laws in language and vision, 2022, NeurIPS】;【21,Reproducible scaling laws for contrastive language-image learning, 2023, CVPR】】、性能指标【【97,Emergent abilities of large language models, 2022, arXiv preprint arXiv:2206.07682】;【83,Beyond the ` imitation game: Quantifying and extrapolating the capabilities of language models, 2022, arXiv preprint arXiv:2206.04615】;【42,Scaling laws for downstream task performance of large language models, 2024, arXiv preprint arXiv:2402.04177】】、数据构成【【49,Datacomp-lm: In search of the next generation of training sets for language models, 2024, arXiv preprint arXiv:2406.11794】;【54,Regmix: Data mixture as regression for language model pre-training, 2024, arXiv preprint arXiv:2407.01492】;【7,A survey on data selection for language models, 2024, arXiv preprint arXiv:2402.16827】】和数据重复【【64,Scaling data-constrained language models, 2024, NeurIPS】】。我们的工作分析了其中一个方面,即训练期间和训练后的数值精度,这对更好地进行缩放至关重要。
C 替代函数形式
函数形式的选择。先验地有几种合理的函数形式可以尝试。关键的抉择点是形式是1)加性的还是乘性的,2)与参数/数据相互作用还是独立的,3)是幂律还是指数。我们尝试了这三种的多种组合,发现正文中的公式是拟合效果最好的之一,特别是拟合参数最少。我们强调,可能有几种拟合形式在数据上都是合理的,而选择函数拟合的一个重要期望是可解释性。几篇缩放定律论文发现在预测能力方面有多种拟合是可行的【【64,Scaling data-constrained language models, 2024, NeurIPS】;【45,Scaling laws for neural language models, 2020, arXiv preprint arXiv:2001.08361】】,最终基于可解释性做出决定。
形式比较。我们在$L(N, D, P_W)$形式的扫描上做出这些拟合选择,并在附录M中讨论了分解/因式分解以考虑激活和KV缓存的替代方案,这假设了一个有效参数计数公式。在本节中,幂律指的是$C_w \cdot P^{-\alpha_w}$形式的项,其中$C_w, \alpha_w$是拟合的。总的来说,我们发现单独使用幂律拟合来建模精度效应会导致拟合常数A, B爆炸,而指数拟合则不会,这表明幂律的变化不够剧烈,无法匹配由精度引起的损失变化。我们注意到,虽然使用有效参数和有效数据的双重概念来拟合参数会导致略好的拟合,但它需要更多的拟合参数,因此为了简单和可解释性,我们坚持使用$N_{eff}$公式。在选择拟合时,我们在保留数据上进行验证,下面的R2值反映了在保留数据上的拟合。这与我们正文中的图表相反,在正文中我们选择了一个函数形式,并在相同的数据上进行拟合和绘图,这是缩放定律中的标准做法【【64,Scaling data-constrained language models, 2024, NeurIPS】】。
表1:函数形式与R2值及拟合参数数量的比较
D 量化实现细节与类型
量化类型。神经网络量化的两种典型类型是浮点(FP)和整数(INT)量化。尽管它们在表示上有所不同,我们假设浮点和整数量化之间的缩放行为可以用相似的函数形式来描述,其中1(b)为此提供了初步证据。
D.1 整数 quantization and implementation details
整数 quantization and implementation details。在整数 quantization中,连续值被映射到离散的整数值。通常,这是通过根据固定的缩放因子来缩放原始值来完成的。数学上,对于一个实数$x$,量化的整数值$x_{int}$计算如下:
$$x_{\mathrm{int}}=\left\lfloor\frac{x}{s}\right\rfloor$$其中$s$是缩放因子,$\lfloor\cdot\rceil$表示根据位数四舍五入到最近的整数。然后可以通过乘以$s$将该值反量化回近似的实数值:
$$x_{\text {dequant }}=s \cdot x_{\text {int }}$$这个过程引入了量化误差,定义为原始值$x$和反量化值$x_{dequant}$之间的差异。量化的目标是在减少精度的同时最小化这个误差。可以认为这是在均匀格子上舍入到最近的点。更复杂的量化方案涉及以数据或模型相关的方式选择格点。我们实现的整数 quantization使用基于张量最大绝对值的定点缩放,然后将值缩放到$[Q_n, Q_p]$范围内,其中$Q_n = -2^{(b-1)}$,$Q_p = 2^{(b-1)} - 1$,$b$是位数。
整数 quantization的缩放过程。整数 quantization首先通过以下方式将输入重新缩放到由位数指定的范围内:
$$s = \frac{Q_p}{\max(|x|)}$$对于基于张量的缩放,或
$$s = \frac{Q_p}{\max(|x|, \dim = k)}$$对于基于通道的缩放。缩放后,结果被舍入到最近的整数,然后被夹紧到$[Q_n, Q_p]$范围内。矩阵乘法后,结果被重新缩放回原始范围。
仅前向传播量化。在本文中,我们只对前向传播进行量化,以确保在量化感知训练(仅权重)和低精度训练(权重、激活、KV缓存)之间进行公平比较。这是因为在量化感知训练期间,反向传播通常不被量化【【60,The era of 1-bit llms: All large language models are in 1.58 bits, 2024, arXiv preprint arXiv:2402.17764】】,因此比较权重(仅前向)与激活/KV缓存(前向和后向)的敏感性不是一个有原则的比较。在低精度生产预训练中,反向传播的矩阵乘法也被量化,从而进一步节省计算。我们将关于在考虑反向传播时我们的观察如何变化的详细分析留给未来的工作。为了简单起见,我们全程使用整数 quantization来拟合我们的缩放定律。
D.2 浮点量化
浮点量化原理。浮点量化稍微复杂一些,旨在创建一个非均匀的格点,大致匹配权重的分布,这些权重被假定为高斯分布。一个浮点数通常表示为:
$$x_{\mathrm{fp}}=(-1)^s \cdot m \cdot 2^e$$其中$s$是符号位,$m$是尾数,$e$是指数。在浮点量化中,尾数和指数都被量化以减少位宽。关于指数-尾数位的分配和指数偏差的细节,我们遵循【【62,Fp8 formats for deep learning, 2022, arXiv preprint arXiv:2209.05433】】的指导,并对权重进行逐通道量化,对激活进行逐张量量化。
浮点量化分析的复杂性。为浮点量化制定一个完整的缩放定律比我们的整数处理要复杂得多,因为缩放尾数位与指数位的影响是不同的。相比之下,在整数量化中,每个额外的位只是使我们在重新缩放后舍入到一个更细粒度的格点,从而以可预测的方式减少量化误差。在浮点量化中,改变指数会影响动态范围,而改变尾数会改变该范围内的精度。这种灵活性使得浮点量化更适合模型训练,但也更难分析。我们将对尾数与指数——以及更广泛的浮点——缩放的相应详细分析留给未来的工作。
D.3 硬件细节
硬件加速原理。仅权重(Weight-only)量化可以加速推理,因为可以编写软件来适应在GPU部件(HBM-SRAM)之间以更小的单位(类型)移动数据,这样给定的带宽每秒可以移动更多的数据。这减少了在推理期间通常占主导地位的内存(IO)瓶颈,即使在高批量工作负载下也是如此。然而,我们强调GPU能够原生进行矩阵乘法的类型和速度是由硬件提供商决定的,因此即使当$P_w = P_a = P_{qkv}$(包括查询)时,只有当这些都对应于GPU支持的位宽和类型时,才能实现计算节省。
硬件无关的研究方法。我们的目标是以一种相当硬件无关的方式研究缩放,以便我们的工作在未来可能有用,并且我们不对硬件细节或最优性做任何声明。我们所有模型都使用NVidia H100 GPU上的伪(模拟)量化进行训练,以保持硬件无关性,不利用任何真正的低精度计算。唯一的假设是,当硬件确实实现对整数量化的支持时,它是以某种涉及重新缩放和舍入的组合方式完成的,这在撰写本文时是标准做法【【27,The case for 4-bit precision: k-bit inference scaling laws, 2023, ICML】;【29,Gpt3. int8 (): 8-bit matrix multiplication for transformers at scale, 2022, NeurIPS】;【100,Integer quantization for deep learning inference: Principles and empirical evaluation, 2020, arXiv preprint arXiv:2004.09602】;【43,Quantization and training of neural networks for efficient integer-arithmetic-only inference, 2018, CVPR】】。
E 推导
E.1 PTQ的临界数据集大小
求解临界数据量。我们寻求一个满足$\partial L(D_{crit}) = \partial \delta_{PTQ}(D_{crit})$的$D_{crit}$。对正文中提出的函数形式求导并令它们相反的作用相等,我们得到方程:
$$BD_{\mathrm{crit}}^{-\beta-1}=\gamma_{D}C_{T}N^{-\gamma_{N}}e^{-P_{\mathrm{post}}/\gamma_{\mathrm{post}}}D_{\mathrm{crit}}^{\gamma_{D}-1}$$这意味着:
$$D_{\text {crit }}=\left(\frac{\beta B N^{\gamma_{N}} e^{P_{\text {post }} / \gamma_{\text {post }}}}{\gamma_{D} C_{T}}\right)^{\frac{1}{\gamma_{D}+\beta}}$$是预测的点,超过该点,对一个进行训练后量化的模型进行更多数据的预训练会增加损失。请注意,这个量在$P$中是爆炸性的,因此在常用精度(例如8位)下,需要真正不合理的数据量才能使更长的预训练变得有害。然而,我们发现在过训练的模型上$D/N \gg 10^3$,这些过训练-退化效应在5位左右变得不可忽略,并在其下占主导地位。
E.2 计算最优性计算
计算约束。我们全程设置一个约束$C \propto NDP$。按比例进行计算本质上是重新缩放计算约束,因此它不影响我们识别的缩放趋势,这是我们的重点。
E.2.1 固定精度的计算最优缩放
损失函数形式。在固定精度下,损失形式为:
$$L=u(P)AN^{-\alpha}+BD^{-\beta}$$其中$u(P) = [1 - e^{-P/\gamma}]^{-3\alpha}$是一个固定常数。
最优N和D。当对$N, D$进行损失最小化时的计算最优缩放,通过替换$D = \frac{C}{NP}$得到:
$$L=u(P)AN^{-\alpha}+BC^{-\beta}N^{\beta}P^{\beta}$$对$N$进行优化,我们看到这等价于原始的Chinchilla优化问题,但$A \to Au(P)$且$B \to BP^\beta$。执行此优化,我们发现:
$$N^{*}(P, C)=\left(\frac{u(P) A \alpha}{B P^{\beta} \beta}\right)^{\frac{1}{\alpha+\beta}} C^{\frac{\beta}{\alpha+\beta}} \quad, \quad D^{*}(P, C)=\left(\frac{u(P) A \alpha}{B P^{\beta} \beta}\right)^{-\frac{1}{\alpha+\beta}} C^{\frac{\alpha}{\alpha+\beta}}$$我们可以将上述表达式与全精度下的原始Chinchilla最优$N, D$相关联,$N_{Ch}(C), D_{Ch}(C)$。
$$\frac{N^{*}(P, C)}{N_{\mathrm{Ch}}(C)} \propto\left[1-e^{-P / \bar{\gamma}}\right]^{-\frac{3 \alpha}{\alpha+\beta}} P^{-\frac{\beta}{\alpha+\beta}} \text { and } \frac{D^{*}(P, C)}{D_{\mathrm{Ch}}(C)} \propto\left[1-e^{-P / \bar{\gamma}}\right]^{\frac{3 \alpha}{\alpha+\beta}} P^{\frac{\beta}{\alpha+\beta}}$$E.2.2 固定模型大小 N
优化问题。现在,我们研究模型大小$N$固定,但精度和数据在固定计算量$C = NDP$下联合优化的情况。这个优化问题形式为:
$$L=u(P)AN^{-\alpha}+BD^{-\beta}$$在固定计算量下,我们有$D = \frac{C}{NP}$,替换第二项,我们得到:
$$L=u(P)AN^{-\alpha}+BC^{-\beta}N^{\beta}P^{\beta}$$其中$N$是一个常数。因此我们只有一个变量$P$来最小化上述公式:
$$\frac{\partial L}{\partial P} = u'(P)AN^{-\alpha} + BC^{-\beta}N^{\beta} \beta P^{\beta-1} = 0$$首先,我们注意到$u'(P)$有以下形式:
$$u^{\prime}(P)=-3 \alpha\left[1-e^{-P / \gamma}\right]^{-3 \alpha-1} \times \frac{1}{\gamma} e^{-P / \gamma}=-\frac{3 \alpha}{\gamma} e^{-P / \gamma} \times u(P)^{\frac{3 \alpha+1}{3 \alpha}}$$因此我们期望隐式方程的解为:
$$\frac{3\alpha}{\gamma}e^{-P/\gamma} \times u(P)^{\frac{3\alpha+1}{3\alpha}} AN^{-\alpha} = BC^{-\beta} N^{\beta} \beta P^{\beta-1}$$渐近关系。我们现在旨在找到当$C \to \infty$时,$P$和$C$之间的近似渐近关系。对两边取对数,我们发现(忽略与$C, P$无关的加性常数):
$$-(3\alpha + 1)\ln(1 - e^{-P/\gamma}) - \frac{1}{\gamma}P \approx -\beta \ln C$$在大的$C$下,正确的主导平衡是取$P^\star \sim \beta\gamma \ln C$,这可以通过数值验证。在$C = NPD$的约束下,我们有$D^\star \approx \frac{C}{N\beta\gamma \ln C}$。
E.2.3 在固定计算量下对 N, D, P 进行最小化
三变量损失函数。回顾我们的三变量损失函数如下所示。我们在这里将$N_{eff}$明确分解为涉及$(N, P)$的项,因为这使得数学更容易理解。
$$L(N, D, P)=A N^{-\alpha} u(P)+B D^{-\beta}, u(P)=\left[1-e^{-P / \gamma}\right]^{-3 \alpha}$$在$C \propto NDP$的约束下,我们可以用$C, N, P$替换$D$,得到损失表达式:
$$L=A N^{-\alpha} u(P)+B N^{\beta} P^{\beta} C^{-\beta}$$求解最优P。
将第一个方程乘以$N$并用第二个方程除以它,揭示了最优$P$满足一个与计算无关的隐式方程:
$$\frac{3}{\bar{\gamma}} u(P) \frac{1}{3\alpha} e^{-P/\bar{\gamma}} = P^{-1} u(P)$$这个练习揭示了,当允许联合优化$N, D, P$时,计算最优策略是选择一个满足上述方程的固定精度,然后根据附录I.1.1中的规定来扩展$N, D$。
E.3 推理时成本模型
推理成本为主要考量。对于许多人来说,推理是训练和提供模型的主要成本。在这里,我们提出了一个推理时成本模型的初步分析。关键的张力在于,推理成本与$NP$成正比,因此在固定的预训练损失下,可以通过减小模型大小(并进行更多过训练)或进行训练后量化来降低推理成本。
优化问题。我们将假设这里的$P = P_{post}$指的是权重将被量化到的精度。实际上,推理成本也可能在一定程度上取决于KV缓存和激活的精度,但我们为了以下数学模型的可处理性而做此假设,并了解过训练和训练后量化问题在推理时如何发挥作用。我们可以将这个最小化问题表述为以下方式。
$$\min_{N, D, P} L(N, D, P) = A N^{-\alpha} + B D^{-\beta} + C_T \frac{D^{\gamma_D}}{N^{\gamma_N}} e^{-P/\gamma} \text{ subject to } C = NP$$数值求解。由此约束优化问题得到的一阶条件系统通常在解析上是不可解的,因此我们通过简单的网格搜索来数值求解上述约束优化问题,得到$P^*(C), N^*(C), D^*(C)$。我们发现$N^*, D^*$随着$C$呈幂律增长,而$P^* \propto \log C$。点的聚集是网格搜索数值计算的产物;拟合线代表了整体的对数线性(左)和对数对数(中、右)趋势。
结果分析。可能会令人惊讶的是,$D^*$没有被取到无穷大,因为它没有出现在成本函数中。原因在于,如果那样做,训练后退化(第三项)会变得很大。也可能会令人惊讶的是,$D^*$会随着计算量而改变。原因同样在于第三项:随着我们允许更多的推理时计算,我们使用更多的$N$,而在更大的$N$下,我们现在可以容忍更大的数据预算以获得给定的训练后量化退化,因此计算最优意味着利用这一点,并在更多数据上训练那个更大的参数数量。
P*随计算量增长的直觉。为什么$P^* \sim \log C$的直觉可能如下。考虑一种情况,其中$P^*$与计算无关:随着计算量变大,第三项将成为损失的瓶颈,因为$N, D$都作为计算的幂律进行缩放,最终$e^{-P/\gamma}$的影响与损失函数中的前两项相比将变得不可忽略。为了在这一点上继续减少损失,我们必须以与其他项(作为计算的幂律)相称的速度使这一项变小。由于精度在指数内部,这可以通过取$P \sim \log C$来完成。需要注意的一个重要事情是,由于我们在这里忽略了预训练成本,预测的$D^*$的绝对值比在任何合理的训练方案中实际可能的值要大得多,在这些方案中,预训练成本确实很重要,即使比推理成本要小。但$N^*, P^*$的经验趋势展示了在考虑其对训练后量化的影响的情况下进行过训练,如何优于不考虑其影响的普通过训练。
F 用其他量化方法复现PTQ缩放
复现实验。在这里,我们复现了训练后量化导致的性能下降随令牌/参数比率以$D^{\gamma_D} / N^{\gamma_N}$形式增加的发现。我们拟合了与正文中相同的函数形式,但得到了略有不同的拟合常数值,正如预期的那样。我们在AWQ【【51,Awq: Activation-aware weight quantization for llm compression and acceleration, 2023, MLSys 2024】】和四舍五入量化上进行了复现。前者是一种现代且复杂的技术,后者是一种简单且朴素的量化方法。它们以及正文中的GPTQ都存在相同的失败模式,这表明对于任何新提出的PTQ技术,糟糕的训练后量化数据缩放应该是默认的预期。
G PTQ:学习率调度消融实验
消融实验目的。在这里,我们对学习率和调度进行消融实验,使用带有线性衰减的预热,而不是余弦调度,以检查这是否是我们选择学习率调度的产物。
实验结果。由于计算限制,我们在我们的30M模型上这样做,发现随着令牌/参数比率的增加,性能下降仍然存在,正如预期的那样。
H 为什么语言模型随着过训练变得更加敏感?
本节内容为推测性。
锐度(Sharpness)。优化领域的一项经典工作表明,模型锐度在学习过程中增加,直到在一个最大值(“稳定性边缘”)附近徘徊【【24,Gradient descent on neural networks typically occurs at the edge of stability, 2021, ICLR】;【37,A loss curvature perspective on training instability in deep learning, 2021, arXiv preprint arXiv:2110.04369】】,因此沿着顶部Hessian特征向量的移动在整个训练过程中会更多地降低损失。尽管锐度形式上是最坏情况下的敏感性,我们推测类似的结果也适用于平均情况,例如由各向同性噪声引起的损失下降。可能在语言模型预训练期间,锐度在很长一段时间内没有达到其最大值,这就是为什么对噪声的敏感性似乎随着$D/N \to \infty$在实际数据预算上单调增加的原因。与此密切相关的是神经正切核(NTK)的最大特征值,它捕捉了在参数噪声下预测器方差的大小。这个量在各种设置中被经验性地发现在训练期间增加,并且与泛化保证密切相关【【67,Tight bounds on the smallest eigenvalue of the neural tangent kernel for deep relu networks, 2021, ICML】;【10,The onset of variance-limited behavior for networks in the lazy and rich regimes, 2022, arXiv preprint arXiv:2212.12147】】。
分层学习策略在整个训练过程中变得更加敏感。我们预期过训练的语言模型在推理时量化后可能会性能下降更多,部分原因是由以下结果驱动的。学习的层次性现在在一些玩具设置中已经得到了很好的理解:在【【1,The staircase property: How hierarchical structure can guide deep learning, 2021, NeurIPS】】中,表明增加度的“阶梯”多项式比高次单项式学习得更快,因为神经网络结合现有特征来学习新特征。在【【2,The merged-staircase property: a necessary and nearly sufficient condition for sgd learning of sparse functions on two-layer neural networks, 2022, COLT】】中,这个结果被加强,表明这种层次结构对于在两层神经网络中用SGD学习稀疏函数是必要且充分的。在这种设置下,对编码低阶多项式的特征的损害会影响所有高阶多项式,因此这类网络在整个学习过程中对固定的特征噪声越来越敏感。另一个类似风格的结果是【【13,Hidden progress in deep learning: Sgd learns parities near the computational limit, 2022, NeurIPS】】的研究,他们明确要求高精度梯度来学习稀疏奇偶校验,因为稀疏奇偶校验是通过放大一个小的初始信号来学习的。如果语言模型是分层学习的,那么在过训练后期随着$D/N \to \infty$学习到的特征可能依赖于基础特征,因此噪声会损害基础特征,从而严重损害高阶特征。
I 粒度消融实验
消融实验目的。在这里,我们对量化粒度(逐张量 vs. 逐通道)的选择进行消融实验,与正文中我们对权重进行逐通道量化、对激活进行逐张量量化的做法进行比较。逐张量量化涉及保留一个标量来将张量中的所有值重新缩放到量化码本范围内,而逐通道量化则为每个通道维度保留一个标量;因此,后者严格来说更具表现力,从而产生更低的量化损失,但代价是略微增加内存使用。在这里,我们问:激活的敏感性增加是因为它们本身更敏感,还是由于逐张量的设计选择?
改变量化粒度
实验结果。这些结果表明,激活通常比权重更敏感,因为它们在较低精度下的损失惩罚即使在粒度保持一致的情况下也增长得更快。事实上,逐通道量化激活几乎与逐张量量化权重一样困难。这与大量量化工作发现激活是量化中的核心困难是一致的【【27,The case for 4-bit precision: k-bit inference scaling laws, 2023, ICML】;【60,The era of 1-bit llms: All large language models are in 1.58 bits, 2024, arXiv preprint arXiv:2402.17764】】。
J 主要图表细节
图1细节。左侧的模型是N = 30M参数,选择它是因为在我们的计算预算下,我们可以将其训练到最高的令牌/参数比率。右侧我们训练了一系列NP保持恒定的模型,在16B令牌上训练(因此在我们的成本模型下,$C = \frac{6}{16} NDP$在整个过程中是匹配的)。我们绘制了在Dolma上的验证损失,与正文一致,并使用浮点数(而不是整数)以使预训练的声明尽可能现实。
K 数值拟合
拟合方法。遵循【【64,Scaling data-constrained language models, 2024, NeurIPS】】的做法,我们将$\alpha = \beta$绑定在一起,以防止它们变得非常不同,尽管这不是必需的。不同的$\alpha, \beta$只会增加模型的表达能力,我们已经验证了不绑定时图表看起来相似。我们还只在文本中指定时才使用完整的缩放定律,因为该定律是分段构建的。例如,图3和图4仅拟合了带有替换$N \to N_{eff}(P_w)$的Chinchilla定律,因为那时$P_a, P_{kv}$还没有被引入。图5、6和7使用了我们完整的缩放定律,例如用于进行预测。
常数通用性说明。我们强调,我们的数值常数不太可能有用,因为正如【【40,Training compute-optimal large language models, 2022, arXiv preprint arXiv:2203.15556】;【73,Beyond chinchilla-optimal: Accounting for inference in language model scaling laws, 2024, arXiv preprint arXiv:2401.00448】】所示,拟合常数在很大程度上取决于使用的架构和数据集,这在不同设置中是不同的。相反,我们识别的趋势是关键的发现。话虽如此,我们的拟合常数如下。
偏置项说明。请注意,我们在指数拟合中包含了偏置,例如,当将$N_{eff}$建模为饱和指数时,我们发现模型的不同部分在不同的低精度值下会导致数值不稳定性,因此即使它们是相同的函数形式,它们也可能是彼此的平移(左/右移位)版本。例如,正文中$e^{x/\gamma_x}$形式的拟合实际上是用偏移量$e^{x/\gamma_x+n}$计算的,但在各处包含偏置会使符号混乱并掩盖数学见解。
L 权重、激活和KV缓存是否同样敏感?
敏感性差异。我们发现,$P_a \le 3$或$P_{kv} \le 3$的训练运行在数值上不稳定,并且经常发散,而$P_w = 3$仍然表现良好。特别是,我们发现激活更敏感,尽管这可能是因为我们对激活进行逐张量量化,而对权重进行逐通道量化,而不是激活本身更敏感。因此,我们不对激活或注意力位数为3的运行进行拟合或验证。我们将对跨层和参数类型的更细粒度敏感性的更详细分析留给未来的工作。下图通过绘制各种运行(N, D)中三个量的$L(P)$来说明经验敏感性。
M 经验性$N_{eff}$
计算经验性$N_{eff}$。考虑一个用任意$(N, D, P_w)$训练的模型。假设一个Chinchilla函数形式,其中$N \to N_{eff}(P_w)$,我们可以将其损失与全精度模型的损失之差写为:
$$L(N, D, P_{\mathrm{w}}) - L(N, D, \infty) = A[N_{\mathrm{eff}}^{-\alpha} - N^{-\alpha}]$$因为涉及$B, D, E$的项被消掉了。注意,根据构造,$N_{eff}(P_w = \infty) = N$。在实践中,我们使用一个BF16模型作为“无限精度”模型,发现如果使用FP32模型甚至基于我们的整数量化损失结果估计$P_w \to \infty$的函数拟合,也没有真正的区别。我们的目标是绘制出$N_{eff} = N \cdot f(P)$中$f(P)$的样子。因此,我们可以重新排列上述方程如下:
$$f(P) := \frac{N_{\mathrm{eff}}}{N} = \frac{1}{N} \left[ \frac{L(N, D, P_{\mathrm{w}}) - L(N, D, P_{\mathrm{w}} = \infty)}{A} + N^{-\alpha} \right]^{-1/\alpha}$$经验性$N_{eff}$的观察。然后使用我们拟合的数值(见附录K)绘制这个量,给了我们精度和参数之间的经验权衡。我们可以看到,这个权衡在$P$中迅速饱和到一个接近1的值。虽然三个模型部分的函数形式相同,但拟合的常数是不同的。例如,$P_a \le 3$或$P_{kv} \le 3$的运行经常发散,而权重精度则没有这种情况。此外,我们可以看到KV缓存在较高位值时对量化不敏感,但在4-5位精度附近很快变得敏感。
替代分解方案。至于$N_{eff}(P_w, P_a, P_{kv})$的联合函数形式,我们承认,不将模型分解为权重、激活和KV缓存的替代分解方案,可能具有同样好的拟合效果。例如,将权重项分解为逐层效应的乘积具有合理的拟合效果,但引入了更多参数,而更粗粒度的版本可能根本不将模型分解为各个部分,而只考虑绑定的精度。我们选择这种分解形式是因为QAT只考虑权重,而激活和注意力是另外两个必须保持在低精度才能看到计算增益的东西。由于实践者通常关心KV缓存本身,我们选择将“激活和注意力”分解为“激活和KV缓存”。我们强调,我们的主要观点不是这种分解在客观上是正确的,而是在于观察到这种假设近似独立性的分解是可能的。
N 浮点实验
浮点数与整数的区别。浮点数和整数类型之间的关键区别在于,前者将一些位分配给指数表示,一些分配给尾数,这些位扮演不同的角色,不像整数类型中每个位都扮演相同的角色,使量化格点均匀地更细粒度。我们假设,如果指数和尾数位联合缩放(即随着总位数增加而一起增加),总体趋势仍然可以用类似我们的函数形式来预测。为了测试这一点,我们用表中的常数A, B, E, α = β拟合了类似公式3的参数形式。总体拟合结果得到$\gamma_w = 2.8111$和一个指数偏置$b = 0.1240$,表明该函数形式仍然是对数据的一个很好的拟合,即使对于浮点数,在相当标准的尾数和指数之间的位分配方案下也是如此。在中间和右边,我们为特定的(N, D)值拟合了相同的参数形式,并可视化了所得预测的质量。
实验设置与结果。我们分别对3、4、5、6、7、8、12位使用E2M0、E3M0、E4M1、E3M2、E4M2、E5M2和E5M6的位分配,全程使用一个符号位。由于指数和尾数位通常扮演不同的角色(即,一个位对损失和动力学的影响很大程度上取决于它来自尾数还是指数),我们期望我们的函数形式在这里表现良好,因为尾数和指数分配都随着精度的提高而联合增加,所以总体趋势以类似的方式是可预测的。我们通过直接扫描ExM3和E3Mx来直接检查这一点,证实了这一直觉。这表明,为通用任意ExMy组合制作细粒度拟合的一条途径是分解尾数和权重的影响,例如一个形式为$N_{eff}(P_{w, m}, P_{w, e}, N)$的形式。由于对于标准位分配选择,如图16所示,这并不是必需的,我们没有深入研究这种复杂性。
💬 评论讨论
欢迎在这里分享您的想法和见解!