With Shared Microexponents, A Little Shifting Goes a Long Way
作者: Bita Rouhani∗, Ritchie Zhao, Venmugil Elango, Rasoul Shafipour, Mathew Hall, Maral Mesmakhosroshahi, Ankit More, Levi Melnick, Maximilian Golub, Girish Varatkar, Lei Shao, Gaurav Kolhe, Dimitry Melts, Jasmine Klar, Renee L’Heureux, Matt Perry, Doug Burger, Eric Chung (Microsoft); Zhaoxia (Summer) Deng, Sam Naghshineh, Jongsoo Park, Maxim Naumov (Meta)
A1 主要贡献
本文旨在解决大规模人工智能(AI)模型(特别是大型语言模型)带来的高计算和能源成本问题。量化技术(将FP32张量值转换为更低成本的数值标准)是降低成本的关键方法之一,但这需要在效率、准确性和易用性(即减少用户调整的“摩擦力”)之间取得平衡。
本文的主要贡献如下:
1. 提出BDR框架:引入了一个名为“块数据表示”(Block Data Representations, BDR)的框架,该框架系统地定义了对张量值集合进行集体量化和缩放的方法,涵盖了量化设计的广阔空间。这使得对现有和新型数据格式进行统一比较和评估成为可能。
2. 全面评估现有量化标准:利用BDR框架,本文系统地调研和评估了多种流行的量化标准,包括INT4、INT8、FP8变体、VSQ和块浮点(BFP)变体。为了进行评估,本文定义了一种计算量化信噪比(QSNR)的统计方法来衡量准确性,并设计了一个在前沿工艺节点上的点积引擎来计算不同量化配置的功耗和面积,从而衡量硬件效率。通过这些模型,本文构建了最佳准确性和效率量化设计点的帕累托前沿。
3. 提出并验证共享微指数(MX)格式:在BDR框架下,本文提出了一种基于共享微指数(MX)的新型数值方法。MX利用多级缩放,其核心创新在于:
* 硬件驱动的细粒度缩放:采用细粒度的一级缩放因子(作用于约10个元素)和超细粒度的二级缩放因子(由两个元素共享的一位指数),两者均由硬件自动设置。
* 减少离群值影响和软件摩擦:细粒度缩放减小了离群值造成的数值“爆炸半径”,而超细粒度二级缩放进一步降低了噪声,且所有缩放因子由硬件自动设定,无需用户进行软件调整,从而消除了软件摩擦。
4. 确立新的帕累托前沿:准确性和效率模型表明,MX方法创建了一个新的帕累托前沿,使其在与其它流行量化方法的比较中成为同类最佳。本文特别指出了MX家族的三个成员(MX4、MX6和MX9),它们接近新的帕累托前沿,为训练和推理场景提供了在准确性、效率和摩擦力之间的多种理想选择,并且比大块尺寸格式更易于集成到张量单元设计中,也更有利于细粒度稀疏性支持。
A3 背景知识与关键设计
II. 量化概述
INT量化。在深度学习中,量化是指将模型的权重、激活值和梯度等数值约束到紧凑表示(例如,从32位浮点值到4位整数)的过程。量化可以用来提高内存和通信效率,或在训练和推理期间加速计算。均匀的基于INT的量化是一种流行的方法,它将实数值映射到整数。如图1(a)所示,一组实数值X被对称且均匀地映射到整数$X_q \in [-2^{m-1}, 2^{m-1} - 1]^k$,其中m是二进制补码的位数,k是共同量化的值的数量(图中k=5)。一个量化缩放因子s被应用于这k个值,使得它们在四舍五入后能映射为整数($X_q = \text{RoundToInt}(X/s)$)。计算缩放因子的一种方法是将k个值中观察到的最大绝对值对齐到可表示的最大整数:
因此,整个量化函数为:
执行反缩放步骤$sX_q$,可以将量化后的值恢复到原始尺度。
缩放策略。如图1(a)-(b)所示,存在多种编码和计算缩放因子的方法,包括使用硬件效率更高的量化2的幂或INT表示。最佳的缩放方法取决于实现复杂性和开销等因素,并对量化误差(见第四节QSNR定义)有一阶影响。为静态值(如预训练权重)生成缩放因子相对直接。然而,处理具有数据依赖数值分布的动态激活值和梯度则更具挑战性。因此,有必要采用一些策略,例如分配保守的缩放因子以防范动态离群值,或利用动态缩放方法,在分布变化时更新缩放因子。
软件中的粗粒度缩放支持。文献中提出了许多基于软件的缩放策略,如【索引31,A survey of quantization methods for efficient neural network inference, arXiv preprint arXiv:2103.13630, 2021】中所综述的。将初始值集划分为多个子集并引入多个缩放因子,如图1(c)的例子所示,是减轻离群值影响和减少量化误差的有效方法。不幸的是,当今基于软件的方法仅限于粗粒度的缩放因子,这些因子必须在大量待量化值(在本文中称为块粒度k)上进行有效摊销【索引47,Q-bert: Hessian based ultra low precision quantization of bert, AAAI, 2020】。在实践中,现代GPU中大多数基于软件的INT缩放方法需要约1K个元素来平衡效率和模型准确性。
硬件中的细粒度缩放支持。受块浮点(BFP)启发的方法,如MSFP【索引24,Pushing the Limits of Narrow Precision Inferencing at Cloud Scale with Microsoft Floating Point, NeurIPS, 2020】和混合BFP【索引29,Training DNNs with Hybrid Block Floating Point, NeurIPS, 2018】,通过引入专用的硬件支持,实现了k约等于10这个数量级的细粒度缩放,从而减少或消除了对基于软件的启发式方法的需求。BFP与基于INT的量化原理相同,但其缩放因子被限制为2的幂,这在硬件中以细粒度(通常在单个点积单元内)实现是可行的。图3直观地展示了使用粗粒度软件与细粒度硬件BFP实现的量化差异。虽然两种方法都基于相同的原理,但将细粒度缩放卸载到硬件使得BFP能够获得比INT高得多的有效分辨率。
III. 多级缩放
多级缩放框架。本节我们将前述量化和缩放方法的特征扩展到如FP8等更新的技术,并将其统一归入BDR框架下。各种硬件/软件量化方法必须在块粒度(k)与处理缩放因子的复杂性和成本之间取得平衡。在给定位数有限的情况下,目标是构建一个高保真度的表示,以最小化计算和内存开销,并紧密近似全精度缩放因子。通常,我们期望量化误差随着k粒度的减小和缩放因子精度的提高(例如,FP32与2的幂)而降低。而减小k和/或增加缩放因子的精度会增加实现和编码的成本。
两级缩放示例。如图2中的例子所示,两级缩放方法能够近似更精确的全精度缩放。一组初始值首先使用一个基于数据分布的“昂贵”(在k上摊销)的FP32缩放步骤进行全局缩放。然后形成预缩放的分区X1和X2,并可以使用约束为低成本2的幂表示的缩放因子ss1和ss2进行“廉价”的进一步缩放。如图4所示,对利用两级缩放方法的格式进行比较,揭示了比之前INT和BFP方法所见的更大的设计空间。表I总结了所有主要技术,以及它们在编码缩放(s)和子缩放(ss)因子以及块粒度(k1, k2)选择上的差异。
窄精度浮点(FP8)。FP8量化方法,最近由Nvidia推广【索引37, FP8 Formats for Deep Learning, arXiv preprint arXiv:2209.05433, 2022】、【索引40, Using fp8 with transformer engine, NVIDIA, 2022】,依赖于硬件-软件混合的层次化缩放。基于FP8的方法可以解释为一种两级缩放方法,其中高层缩放因子s由Transformer Engine(一种用于估计缩放因子的基于统计的启发式方法)在粗粒度(如一个张量,最多约10K个元素)上维护,而每个元素的紧凑子缩放因子(实际上k2=1)被有效地约束为2的幂,并私下存储于每个元素中。
逐向量缩放量化(VSQ)。两级缩放的另一个变体是VSQ【索引23,VS-Quant: Per-vector Scaled Quantization for Accurate Low-Precision Neural Network Inference, MLSys, 2021】,它在加速器硬件内利用逐向量的整数缩放因子。VSQ使用一个粗粒度的、由软件驱动的缩放因子,其k1约1K,同时对16个INT4、INT6或INT8元素应用一个二级INT编码的缩放因子ssi。这种方法需要在AI加速器的点积单元内增加额外的逻辑来处理细粒度的整数重缩放。
共享微指数。一种基于共享微指数(MX)概念的极端变体,第四节将对其进行详细提出和评估,它在两级设计空间中占据了一个新的点,具有极其精细的参数k1=16和k2=2,以及低至两位的非常窄的尾数。如第四节所述,MX的变体在归一化到硅成本后,提供了比先前提出的两级方案更优越的数值保真度。
块数据表示(BDR)。如图5所示,BDR框架通过将一个大小为k1的全局分区划分为多个大小相等的k2值的子分区,来概括两级缩放的例子。一个全局缩放因子s应用于所有分区进行重缩放,而子缩放因子ssi被量化以实现高效存储和计算,并仅应用于各自的第i个局部分区。BDR中每个元素的总位数为$(m + 1) + d1/k1 + d2/k2$,其中m表示显式尾数位宽,d1和d2分别表示单个缩放因子s和子缩放因子ssi的位数。为了减少编码和计算开销,增加k1和k2同时减少m、d1和d2是理想的。然而,量化噪声是通过增加m、d1和d2,同时减少k1和k2来最小化的。第四节将探讨这些参数集之间的对立关系。
BDR的扩展与未来工作。虽然超出了本次初步探索的范围,但BDR可以自然地扩展到两级以上,其中MX变体是主要候选者。目前,MX为全局(s)和局部(ssi)缩放因子都选择了紧凑的2的幂表示,这以缩放精度和灵活性换取了更低的实现成本。这个方案可以通过在软件中引入一个更高层的父全局缩放因子来进一步改进,该因子使用高精度的FP32缩放因子,作用于高达约1K的更粗粒度。MX目前也未包含非均匀方法,如基于对数的表示或查找表,或使用其他量化格式作为缩放因子。这些探索留待未来工作。
A2 方法细节
IV. 设计空间探索
本节中,我们首先将设计空间形式化为数值保真度和硬件成本的函数。然后,我们对包含800多种配置的设计变量进行详尽的扫描,以识别帕累托最优的数据点。
A. 数值保真度
评估方法。为了评估BDR配置的数值保真度,我们采用两种方法。第一种是统计分析,研究BDR对每个设计变量的敏感性,以及它们在不同数据分布下对整体数值鲁棒性的贡献。这使我们能够对设计空间进行广泛的搜索,而无需为每个配置运行昂贵的实验。除了统计分析,我们还使用不同的BDR配置对各种规模的语言模型进行端到端训练。我们发现在窄位宽范围内,我们的统计分析结果与端到端训练中实现的语言模型损失之间存在很强的皮尔逊相关性【索引50,Using multivariate statistics, 2007】。这表明我们的统计结果是在单位数位宽下,不同配置在实践中相对数值保真度性能的可靠预测指标。
QSNR指标。在我们的统计分析中,我们使用量化信噪比(QSNR)作为不同量化方案下数值保真度的度量。QSNR定义为非量化信号(即原始向量$X = [x_1, x_2, \cdot \cdot \cdot, x_k] \in R^k$)的功率与量化噪声功率的比值,以分贝表示。其计算公式为:
其中$||X|| := (\sum_{i=1}^{k} x_i^2)^{1/2}$,而$Q(\cdot)$是将k维FP32精度数组映射到目标量化格式的量化函数。更高的QSNR表示量化后的向量在$R^k$空间中更好地保留了原始非量化向量的方向和大小。成功运行所需的QSNR水平取决于任务复杂性、数据集和模型拓扑。我们将在IV-C节中探讨不同设计点在硬件效率和QSNR之间的权衡。
B. 硬件成本
点积架构。图6展示了一个浮点点积单元的硬件架构,该单元可以配置为支持各种标量浮点和MX格式。除了定义我们感兴趣的BDR变体(在表II中称为MX)的参数外,图6中的点积单元还通过点积长度r和定点规约累加精度f进行参数化。当块粒度大于1(即k1 > 1)时,流水线的第一部分将k1个元素的哈达玛积规约为单个元素。共有r/k1个这样的规约操作。这r/k1个规约的结果随后被归一化到最大元素,并在流水线的后半部分以定点方式进行规约。当块被进一步分解为第二级粒度(即k2 > 1)时,流水线在求和k1个元素的同时,在$log_2(k2)$的深度上执行一个条件右移,最多移动$2^{d2} - 1$位。
特殊配置。在图6中,当流水线配置为k1 = k2 = 1时,它实现了一个标准的标量浮点点积。在这种设置下,原生规约维度上的内部累加是通过将哈达玛积的元素归一化到最大元素,并以定点方式进行规约来执行的。考虑到数据是在一个f-2位尾数的浮点类型中串行累加,而不是构建一个完整的浮点加法器树,这是对标量浮点面积开销的一个乐观近似。
综合与面积评估方法。在ASIC综合和物理设计过程中,各种参数会影响电路面积和功耗。例如,综合工具可以将加法器和其他模块映射到以增加面积为代价减少关键路径延迟的电路中【索引54,CMOS VLSI Design: A Circuits and Systems Perspective, 4th ed., 2010】。此外,商业实现中的多格式点积单元可能会在不同数据格式之间共享一些子电路以节省电路面积。BDR格式被设计为与现有的标准浮点点积流水线兼容,以便实现子电路共享和降低边际成本。然而,将BDR集成到给定设计中的成本将取决于多种因素,如底层架构、数据格式集以及现有设计的相对吞吐量。为了使我们的综合和面积评估方法的结果更具可比性,我们将每个BDR配置的标准单元面积归一化到一个支持E4M3和E5M2的基准可配置FP8点积单元。这使我们能够直接比较不同BDR配置的相对成本,并理解数值保真度与硬件成本之间的权衡。
综合策略。由于软件许可使用的限制,构建数百个配置并为每个配置找到最佳流水线是不可行的。然而,我们对较小范围扫描中最佳寄存器位置的研究表明,寄存器通常只占总面积的约10%。因此,一个需要一半流水线阶段的设计只会节省约5%的核心面积。为了将给定配置的核心面积与最佳流水线阶段布局或子电路综合映射的差异隔离开来,我们对每个配置进行综合,设置了一个容易达到的10ns时序约束,并且只有输入和输出被寄存。这确保了综合实现选择在所有设计中都以最小面积为目标。我们使用了Synopsys Design Compiler和一个前沿工艺节点。
内存占用。除了考虑点积单元的面积成本,我们还应考虑内存效率——从容量和带宽两个角度。特别是,DRAM或高带宽内存(HBM)的接口宽度是固定的,因此在访问张量时,如果数据不能被打包到内存接口宽度中,有效的内存容量和/或带宽将减少,这可能导致性能下降(尤其对于推理用例)。典型的硬件架构利用输入张量的分块来在AI工作负载上实现高性能。因此,对于内存占用分析,我们考虑一个典型的256元素的分块大小(尽管这是一个硬件架构设计变量)打包到一个64B内存接口的效率。
C. 帕累托前沿格式
权衡分析。图7展示了不同数据格式配置在数值保真度和硬件成本之间的权衡。x轴表示每个配置的实现成本,该成本是点积面积和内存效率的函数。y轴上报告的QSNR(以分贝为单位)是从超过10,000个独立向量中测得的平均QSNR,这些向量从具有可变方差的正态高斯分布中抽取(QSNR越高越好)。我们选择这个分布是为了覆盖典型训练周期中梯度、误差、权重和激活张量中观察到的各种方差。在我们的效率分析中,我们将点积面积归一化到一个基准FP8(支持E4M3和E5M2)实现的面积,并计算内存效率为可打包到64B内存接口的元素数量比率的倒数。由于目标是为训练和推理选择一个一致的数据格式,我们对点积面积和内存效率给予同等权重,因为它们对于这两种场景的性能和功耗都至关重要。
BDR QSNR下界。在图7中,我们分析了各种BDR配置在具有不同方差的高斯分布下的QSNR。定理1断言了BDR格式的QSNR下界,该下界是尾数位数m、块粒度k1和k2以及尺度位宽d1和d2的函数。
定理1:给定一个从任意分布$\rho$中抽取的N维FP32精度向量X,X的BDR量化版本的QSNR由以下公式给出下界。变量d1对于BDR数据格式设为8,$\beta$是一个中间变量,等于$2^{d2} - 1$:
定理1的详细证明见第九节。如图7中经验观察到的,QSNR与尾数位数m呈线性关系,与块粒度k1和k2呈对数关系。注意,公式(4)为BDR数据格式家族提供了一个参数化的下界。这反过来为BDR格式在面对带有相关噪声的偏斜分布时提供了最坏情况下的数值保真度保证。
基本数据格式选择。为了在本文其余部分评估BDR数据格式在AI工作负载上的效果,我们从图7的帕累托前沿中选择了三个代表性点。所选配置在表II中定义,并被称为MX9、MX6和MX4。我们选择了一种格式(MX6),其QSNR与FP8相当,但面积-内存成本大约低2倍。我们还选择了两种格式,其QSNR分别比FP8高约50%(MX9)和低约50%(MX4),而面积-内存成本则分别为相当和低4倍。这些格式的具体参数(见表II)是在特定参数扫描的“拐点”(在图7的帕累托前沿上以哈希点显示)处选择的,通过权衡QSNR的增加与归一化面积-内存效率乘积的增加。例如,在所有选定格式中,将d2的值从1位增加到2位仅使QSNR增加0.5dB,但归一化成本增加了30-50%。类似地,当d2值为1时,将k2从8减少到2,QSNR大约增加2dB,而归一化成本仅边际增加3%。而将k2从2进一步减少到1,QSNR仅增加0.7dB,但归一化成本显著增加30-40%。我们务实地选择了一级块粒度为16,以避免对硬件架构强制要求大的规约维度。总的来说,我们还观察到,随着每个元素位数的增加,QSNR增加与归一化面积-内存效率乘积增加之间的权衡关系减弱。
MX9的优势。尽管MX9在图7中不一定严格位于帕累托前沿,但它仍然是进一步评估的良好基础数据格式选择,因为它允许所有选定格式除了尾数位宽外具有相同的设置(见表II),这使得硬件复用最大化。此外,所选MX9格式与帕累托前沿上的配置之间的QSNR差异(约0.8dB)对于端到端训练和推理工作负载的效果来说是微不足道的,因为它已经具有很高的QSNR值。值得注意的是,MX9的QSNR比MSFP16【索引24,Pushing the Limits of Narrow Precision Inferencing at Cloud Scale with Microsoft Floating Point, NeurIPS, 2020】高约3.6dB。对专有生成式推理模型的实证测量(结果未报告)显示,MSFP16作为直接替换选项时会出现显著的准确性下降,而MX9则不会。MX9的硬件效率接近FP8,但数值保真度显著更高。例如,在可变方差的高斯分布情况下,MX9的QSNR比FP8(E4M3)高约16dB。高16dB的保真度大致相当于在标量浮点格式中增加2个尾数位。对于相同的分布,MX6的QSNR位于两种FP8变体E4M3和E5M2之间,同时在归一化面积内存效率乘积方面提供了大约2倍的优势。我们在不同的数据分布下也定性地观察到了类似的趋势。
V. 计算流程
本节我们描述使用MX数据格式进行训练和推理的计算过程。
训练。图8展示了使用MX格式进行一次训练迭代的计算流程。张量规约操作,如矩阵乘法和卷积,在前向和后向传播中都以MX格式执行。张量操作的两个输入都经过MX量化。逐元素操作,如Layernorm、Softmax、GELU和残差加法,则以标量浮点格式(如BF16【索引33,A study of bfloat16 for deep learning training, arXiv preprint arXiv:1905.12322, 2019】或FP32)执行。在我们的实验中,我们使用BF16作为逐元素操作的默认数据格式,除了扩散循环中的向量操作和混合专家(mixture-of-experts)门控函数【索引30,Switch transformers: Scaling to trillion parameter models with simple and efficient sparsity, 2021】中的Softmax。MX是一种定向数据格式,要求张量沿着规约维度进行量化才能获得硬件优势。这种与特定维度的关联意味着MX量化和转置操作是不可交换的。在权重更新阶段,如图8所示,会生成两个量化版本的权重:一个用于前向传播,一个用于后向传播。在为后向传播量化权重之前,必须执行转置操作。请注意,除非部署了非常细粒度的前向和后向传播交错(或重计算策略),否则两个副本不需要同时存储在工作内存中。
推理。由于训练和推理使用相同的一致数据格式,窄位宽部署变得更加容易。在第六节中,我们还评估了使用MX对以其他格式训练的模型进行推理的情况。对于训练后量化,我们考虑两种场景:
1. 直接转换(直接替换):在这种设置中,我们取一个以更高精度(如FP32)预训练的模型,直接将其转换为MX数据格式,并评估模型质量。
2. 量化感知微调:在这种设置中,我们取一个以更高精度(如FP32)预训练的模型,将其转换为MX格式,并进行几次量化感知微调迭代,以恢复任何潜在的准确性下降。这种方法主要用于使用更窄数据格式(如MX6和MX4)进行推理。微调步骤的计算流程与图8所示类似,只是前向和后向传播可能使用不同的位宽。例如,前向传播可能使用MX6或MX4,而后向传播可能使用更高位宽的格式(如MX9或FP32)。
推荐模型推理优化。在内存密集型场景(如推荐模型)中,我们可以通过量化存储和计算来进一步提高推理性能。在评估DLRM模型时,我们利用了这一优化,将嵌入表和张量计算都量化为MX格式。
A4 实验环境
-
数据集:
- 文本与自然语言: WMT17-EN-DE 【19】, WMT14-EN-DE 【20】, Wikipedia 【16】, SQuAD-v1.1 【45】。
- 计算机视觉: ImageNet ILSVRC12 【25】, ImageNet-64 (下采样) 【5】。
- 音频与语音: Librispeech 【41】。
- 推荐系统: MLPerf DLRM 【38】使用的Criteo数据集【4】,以及用于内部生产模型的大规模内部数据集(数十或数百亿样本)。
-
模型架构:
- 文本与自然语言:
- 机器翻译: LSTM-based (MLPerf GNMT-V2 【55】), Transformer-based (Vaswani et al. 【52】)。
- 语言理解: BERT-base 和 BERT-large 【28】。
- 生成式语言建模: 多种尺寸的密集型GPT模型(6M到175B参数),以及一个1.9B参数的混合专家(MoE)模型【44】。所有模型序列长度为1024。
- 计算机视觉:
- 图像分类: ResNet 【32】, MobileNetV2 【46】, DeiT 【51】。
- 图像生成: DDPM 【39】。
- 音频与语音: Wave2Vec 2.0 基础配置 【18】。
- 推荐系统: MLPerf DLRM 【38】,以及三个内部生产模型:PR-rec1 (大规模DLRM架构), PR-rec2 (Transformer编码器), PR-rec3 (DHEN架构 【58】)。PR-rec1模型参数达TB级。
- 文本与自然语言:
-
硬件配置:
- 实验在“当前GPU架构”上进行仿真。
- 硬件成本评估中的ASIC综合是基于一个“前沿工艺节点”。
-
软件配置:
- 使用一个自定义的CUDA库来模拟MX数据格式在GPU上的行为,确保数值结果与原生MX芯片一致。
- ASIC综合使用Synopsys Design Compiler。
- 模型实现基于PyTorch(从参考文献中提及的仓库推断,如GNMT v2 for PyTorch)。
A4 实验结果
B. 使用MX数据格式进行推理
实验结果(见表III至V)表明,MX格式在直接转换和量化感知微调两种推理场景下均表现出色。
- MX9的直接替换能力:如表III所示,直接将高精度(如FP32)预训练模型转换为MX9,通常可以作为直接替换方案,而不会损失模型准确性。
- MX6的推理性能:直接转换为更高效的MX6有时会导致模型准确性下降。然而,通过少量的量化感知微调(重置优化器、调整学习率、禁用学习率衰减、dropout和动量),可以完全恢复准确性损失。微调所需的工作量远少于原始训练。
- 大型生成模型推理(表IV):在OpenAI GPT3-175B模型上,MX9同样是高效推理的直接替换方案。更值得注意的是,即使是更窄的MX4和MX6格式,也无需大量微调即可在零样本和少样本生成式推理中取得高质量结果。这是首次报道通过直接转换将权重和激活值同时量化到超窄位宽,并在生成式推理中保持高质量的工作。以往工作【27, 42】通常只量化权重,而将激活值保持在高精度(BF16/FP16)。
C. 使用MX数据格式进行训练
- MX9的训练鲁棒性:MX9为高位宽AI训练(如FP32/BF16)提供了一个鲁棒的直接替换方案,无需离群值检测启发式方法(如Transformer Engine【37】)或对训练流程、超参数或模型拓扑进行任何更改。
- 跨模型验证(表III):在多种判别式模型和数据模态上,MX9训练的模型准确率与FP32基线在运行间波动误差范围内相匹配。
- 生产级推荐模型(表VI):在三个专有的大规模推荐模型上,MX9训练同样表现鲁棒。值得一提的是,FP8训练在PR-rec3模型上会导致梯度爆炸,而MX9则能稳定收敛。对于要求极高的生产模型(误差阈值0.02%),部分模型(PR-rec2, PR-rec3)需要采用混合精度(将少数层保持高精度)来满足要求,但即使如此,超过94%的计算仍在MX9中完成。
- 生成式语言模型(表VII):在训练从6M到175B参数的多种GPT模型和MoE模型时,MX9训练的语言模型损失与FP32基线相匹配。
- MX6的训练潜力(图9):
- 收敛性:使用更高效的MX6训练生成式语言模型也能稳定收敛。
- 成本效益:与MX9相比,MX6需要更多的训练迭代才能达到相同的语言模型损失。然而,考虑到MX6的相对吞吐量优势,模型仍然可以用更低的总训练成本收敛到与基线相同的质量。
A5 结论
本文引入了BDR,一个用于评估各种量化方案的通用框架。利用BDR,我们探索了共享微指数(以MX格式的形式)的优势。我们在超过20个跨越不同规模、模态和模型拓扑的基准上评估了MX数据格式的变体。我们的结果证实了BDR数据格式作为一种有前景的解决方案,能够提升未来AI硬件的性能。
A6 附录
IX. 定理1的证明
我们首先证明N = k1且尺度为1时定理1成立,然后将其推广到任意N和尺度s。考虑一个向量$X = [x_1, x_2, \cdot \cdot \cdot, x_{k1}] \in R^{k1}$,在转换为BDR数据格式之前的最大指数为E。由于E是最大共享指数,所有元素$x_i$都可以表示为二进制形式:
其中$\psi(i) \in \{0, 1\}$, $p(i)_j \in \{0, 1\}$, 且$1 \le i \le k_1$。E是X中绝对值最大的元素$x_\kappa$的私有指数。
回顾BDR支持m个尾数位和1个符号位。由于X中的元素是FP32精度,支持8个指数位,E可以用其FP32形式表示。将尾数位四舍五入到具有m个尾数位的最接近的浮点数后,我们得到:
其中$\psi(i) \in \{0, 1\}$, $Q(i)_{-j} \in \{0, 1\}$, 且$1 \le i \le k_1$。这导致的量化误差为:
对于所有$1 \le i \le k_1$。类似地,对于子块位移为$\tau \le \beta$的元素,其量化误差上界如下:
不失一般性,假设X中有$r_\tau$个子块的子块位移为$\tau$。这个假设意味着存在$\sum_{\tau=0}^{\beta-1} r_\tau k_2$个元素的子块位移小于$\beta$,因为子块大小是$k_2$。块中剩余的$k_1 - \sum_{\tau=0}^{\beta-1} r_\tau k_2$个元素的子块位移为$\beta$。因此,根据(8),我们有:
在BDR中,每个子块位移为$\tau < \beta$(不等于$\beta$)的子块中至少有一个元素的私有指数为$E - \tau$。因此,对于$\tau < \beta$,至少存在$r_\tau$个元素的私有指数为$E - \tau$。那么,信号功率的下界如下:
通过结合(9)和(10)中的界限,我们得到量化噪声信号比的以下不等式:
注意,(11)中的最后一个不等式成立,因为至少一个包含$x_\kappa$的子块的子块位移为零;即$r_0 \ge 1$。我们可以进一步使用不等式
来简化(11)为
将(12)转换为(3)中的QSNR,得到:
下界(13)对任意尺度s都成立,因为可以将变量X更改为(1/s)X并将QSNR重写为:
下界(13)对于N > k1也成立,因为(12)中的噪声信号比实际上是在大小为k1的块上取平均。对于N < k1,我们实际上是将BDR块大小减小到N,如果我们将k1替换为N,这将改善下界。总之,以下下界对不同的N和尺度s都成立:
参考文献引用说明
- [22] Accuracy Boosters: Epoch-Driven Mixed-Mantissa Block Floating-Point for DNN Training, 2022, arXiv
- 引用位置: VII. RELATED WORK
- 原文描述: The hybrid BFP recipe is further optimized in [22] by varying the block size and mantissa bit-width across different layers and training epochs.
- [23] VS-Quant: Per-vector Scaled Quantization for Accurate Low-Precision Neural Network Inference, 2021, MLSys
- 引用位置: I. INTRODUCTION, III. MULTI-LEVEL SCALING, IV. DESIGN SPACE EXPLORATION, VII. RELATED WORK
- 原文描述:
- (I) ...including INT4, INT8, variants of FP8 [37], VSQ [23], and block floating-point variants...
- (III) Another variant of two-level scaling is VSQ [23], which leverages per-vector integer scale factors within accelerator hardware.
- (IV) For integer (INT), VSQ [23], and scalar Floating-Point (FP) formats... VSQ [23] variants shown in this figure are the best of d2 = {4, 6, 8, 10}.
- (VII) In another work [23], authors explored hierarchical BFP with a per-channel floating-point scale and a per-block integer scale to accelerate AI inference.
- [24] Pushing the Limits of Narrow Precision Inferencing at Cloud Scale with Microsoft Floating Point, 2020, NeurIPS
- 引用位置: I. INTRODUCTION, II. QUANTIZATION OVERVIEW, IV. DESIGN SPACE EXPLORATION, VII. RELATED WORK
- 原文描述:
- (I) ...block floating-point variants (including MSFP [24]).
- (II) Block Floating-Point (BFP)-inspired approaches such as MSFP [24] and Hybrid BFP [29] diminish the impact of outliers...
- (IV) MSFP12 and MSFP16 are instances of the conventional block floating-point proposed in [24]. ...Note that MX9 has approximately 3.6dB higher QSNR compared to that of MSFP16 [24].
- (VII) The work in [24] provides a detailed analysis of different block floating-point variants and their application for AI inferencing at production-scale.
- [29] Training DNNs with Hybrid Block Floating Point, 2018, NeurIPS
- 引用位置: II. QUANTIZATION OVERVIEW, VII. RELATED WORK
- 原文描述:
- (II) Block Floating-Point (BFP)-inspired approaches such as MSFP [24] and Hybrid BFP [29]...
- (VII) The work in [29] takes a hybrid approach for AI training using BFP.
- [31] A survey of quantization methods for efficient neural network inference, 2021, arXiv
- 引用位置: II. QUANTIZATION OVERVIEW
- 原文描述: Many software-based scaling strategies have been proposed in the literature, as surveyed in [31].
- [37] FP8 Formats for Deep Learning, 2022, arXiv
- 引用位置: I. INTRODUCTION, III. MULTI-LEVEL SCALING, VI. EMPIRICAL RESULTS, VII. RELATED WORK
- 原文描述:
- (I) Nvidia’s support for an FP8 standard is one important recent example [37]. ...including INT4, INT8, variants of FP8 [37]...
- (III) The FP8 quantization approach, recently popularized by Nvidia [37], [40]...
- (VI) The work in [37] reports FP8 results on a subset of these benchmarks. ...without the need for any heuristic-based outlier detection (e.g., transformer engine in [37])...
- (VII) ...FP8 [37], [49], [53].
- [40] Using fp8 with transformer engine, 2022, NVIDIA Docs
- 引用位置: III. MULTI-LEVEL SCALING, IV. DESIGN SPACE EXPLORATION
- 原文描述:
- (III) The FP8 quantization approach, recently popularized by Nvidia [37], [40]...
- (IV) ...similar to the “delayed scaling” approach proposed [40] for scaling dynamic tensors...
- [43] FAST: DNN Training Under Variable Precision Block Floating Point with Stochastic Rounding, 2022, HPCA
- 引用位置: VII. RELATED WORK
- 原文描述: FAST [43] also varies the mantissa bit-width per training iteration...
- [47] Q-bert: Hessian based ultra low precision quantization of bert, 2020, AAAI
- 引用位置: II. QUANTIZATION OVERVIEW
- 原文描述: ...amortized efficiently across a large number of values to be quantized (referred to as block granularity k throughout this paper) [47].
- [50] Using multivariate statistics, 2007, Pearson
- 引用位置: IV. DESIGN SPACE EXPLORATION
- 原文描述: We find a strong Pearson correlation [50, Ch. 5.1] between the results of our statistical analysis...
- [54] CMOS VLSI Design: A Circuits and Systems Perspective, 4th ed., 2010, Addison-Wesley
- 引用位置: IV. DESIGN SPACE EXPLORATION
- 原文描述: For instance, synthesis tools can map adders and other blocks into circuits that reduce critical path delay at a cost of increased area [54].
💬 评论讨论
欢迎在这里分享您的想法和见解!