
这项由蚂蚁集团 Ling 团队完成的研究,以预印本形式发布于 2026 年 6 月 18 日,论文编号为 arXiv:2606.20381,有兴趣深入了解的读者可通过该编号查询完整论文。
训练一个像 DeepSeek、GPT 这样的大语言模型,需要耗费天文数字般的电力和算力。为了让这件事变得更便宜,工程师们想出了一个聪明的办法:在训练过程中,不用那么精确的数字来表示数据,而是用一种"压缩过的低精度数字"代替。这就好比在一场精密的工程设计中,把毫米级的钢尺换成了只能量到厘米的木尺——只要不太影响最终结果,就能大幅节省成本。
这种"降精度"的策略已经走过了几个阶段。从 16 位到 8 位(FP8),再到如今最前沿的 4 位(FP4),每次减半都意味着计算芯片可以在同样时间内处理更多数据,训练速度更快、耗电更少。目前,英伟达的 Blackwell 系列芯片和 AMD 的 MI350 系列芯片都已原生支持 FP4 计算。然而,蚂蚁集团的研究人员发现了一个被所有人忽视的隐患:当前主流的 FP4 格式(称为 E2M1)存在一个系统性的、隐蔽的缺陷,它会让模型在漫长的训练过程中悄悄"缩水",越练越差,而且这个问题还会被一种本来用来改善效果的技术进一步放大。更重要的是,他们找到了解决方案,并用一个横跨数千亿参数的实验验证了它。
一、从"钢尺"到"木尺":低精度训练是怎么回事
要理解这项研究,得先搞清楚"精度"是什么意思。计算机里的数字并不是无限精确的,它们被存储为有限位数的二进制编码。位数越多,能表示的数字就越精确,细节越丰富,但占用的内存和计算资源也越多。FP4 的意思是用 4 个二进制位来表示一个数,总共只能表示 16 个不同的数值。与之对比,我们日常训练中常用的 BF16(16位浮点数)可以表示数以万计的不同数值。
从 16 位压缩到 4 位,相当于把一把能精确到 1 毫米的钢尺换成了只有 16 个刻度的木尺。被测量的数字必须"凑整"到最近的刻度,这个凑整过程叫做"量化"或"取整"。问题的关键就藏在这个"凑整"过程里。
目前业界最主流的 FP4 格式叫做 E2M1,它用 1 位表示符号(正负),2 位表示指数,1 位表示尾数。这种设计让它能覆盖从很小到很大的数值范围,但代价是各个刻度之间的间距是不均匀的——小数附近刻度密,大数附近刻度稀。具体来说,E2M1 能表示的非负数值是:0、0.5、1、1.5、2、3、4、6,你可以明显看到,从 2 到 6 之间间距越来越大,而 0 到 2 之间相对均匀。
与此同时,还有另一种候选格式 E1M2:1 位符号,1 位指数,2 位尾数。这种格式的所有刻度之间间距完全均匀,就像一把普通的直尺,每格一样宽。蚂蚁集团的研究人员正是从这两把"尺子"的差异出发,发现了一个根本性的问题。
二、尺子刻度不均匀,为什么会系统性地"偏小"
当一个真实数值落在两个刻度之间时,必须凑整到其中一个。最常见的规则叫做"就近取整"(RTNE,Round-to-Nearest-Even),也就是谁近就凑到谁那边。
对于一把均匀的尺子,一个数落在某个刻度左右时,它偏左还是偏右的概率几乎相同,凑整带来的误差平均下来接近于零,是"无偏的"。但 E2M1 的刻度不均匀,某些刻度左边的间隔比右边的间隔窄得多。研究人员发现,以数值 2 为例:它左边的刻度是 1.5,右边的刻度是 3,因此凡是落在 1.75 到 2.5 之间的数都会被凑整为 2。这个区间左边只有 0.25 宽,右边有 0.5 宽。换句话说,任何真实值在这个区间内,平均来说会从右边(更大的一侧)被凑过来,凑整后的值比真实值平均偏小 0.125。类似的不对称在 E2M1 的多个刻度处都存在,比如刻度 4 处有同样的问题,偏差是 0.25。
研究人员把这个现象命名为"收缩偏差"(Shrinkage Bias)。本质上,因为尺子的刻度在某些地方右宽左窄,凑整时系统性地把数往小了取,数值被"压缩"了。
而均匀格式 E1M2 的每个刻度两侧间距完全相同,因此凑整误差正负抵消,平均下来是零,没有这种系统性偏差。这是两种格式在几何结构上的根本差异,与具体用什么数据无关,是格式本身的"天生缺陷"。
三、小偏差如何在深层网络里滚成雪球
一次凑整偏差了 0.125,听起来微不足道。但大语言模型的训练不是做一次计算,而是成千上万层的矩阵乘法(GEMM)一层接一层串联起来,每一层的输出又是下一层的输入。
研究团队用一个精确的数学分析来描述这个问题。对于一次矩阵乘法 Z = A × B,如果 A 和 B 都经过了量化,量化后的值与真实值之间存在一定的"对齐程度"(用系数 αA 和 αB 衡量,值越接近 1 说明量化后越忠实于原始值)。那么量化后的乘积 Zq,其信号成分会被缩放为原来的 αA × αB 倍,剩余部分是噪声。如果每层都有一点收缩,αA × αB 略小于 1,那么经过 K 层之后,信号会被累乘衰减:每一层乘一个略小于 1 的系数,K 层之后就是 (1-δ?)(1-δ?)…(1-δK),这等价于 exp(-∑δk),每一层的小偏差在指数上叠加,就像复利一样越积越大。
特别需要指出的是,前向传播(算出预测结果)和反向传播中的数据梯度(bwd_dx,用来把误差信号向前传递)这两条路径上,每一层的误差都会影响到所有后续层,因此这种衰减会贯穿整个深度网络。而权重梯度(bwd_dw)则是叶节点,仅影响当前层的参数更新,危害相对局限。这是收缩偏差在深度网络里会产生严重后果的核心原因——它不是随机噪声,是系统性的持续衰减。
四、本来帮忙的"随机旋转"为何反而帮了倒忙
实际训练的张量(也就是传递的数值矩阵)往往并不均匀:大多数数值集中在中等范围,但偶尔会出现非常大的"异常值"。这些异常值会把 E2M1 的大刻度"吃掉",导致大多数普通数值被塞在少数几个小刻度里,量化精度极差。
为了解决这个问题,工程师引入了"随机哈达玛变换"(RHT,Random Hadamard Transform)。直觉上,它相当于在量化之前对数据做一个数学上的"搅拌"——通过一种特殊的旋转操作,把那些异常大的值分散到所有维度上,让整个张量变得更均匀,从而更好地利用所有刻度。这个操作是数学上等价的(矩阵乘法的结果不变),只是让数据分布更友好。
然而,蚂蚁集团的研究团队发现了一个反直觉的陷阱:对于 E2M1 格式,RHT 经常让事情变得更糟。原因在于,RHT 把数据从"少数几个极端值主导"的分布,变成了"大量数值集中在中等范围"的分布。中等范围,恰好是 E2M1 刻度最不均匀的地方——就是那些产生收缩偏差最严重的区域。换句话说,RHT 把大量数据精准地推进了 E2M1 最"坑"的那些刻度里,进一步放大了收缩偏差。
研究人员用"信噪比增益"(?SQNR)这个指标来量化这个问题。对于真实训练中的张量(比如 MLP 模块里的各种矩阵),他们发现:对于包含异常值的张量(如 linear_fc2 的输入激活),施加 RHT 后,E2M1 的信噪比平均下降了 1.90 dB,而 E1M2 的信噪比平均提升了 3.24 dB。这是一个显著的方向性差异——完全相同的预处理操作,配合不同格式,效果截然相反。
这个发现解释了为什么现有 NVFP4 等主流方案在处理前向传播和反向数据梯度时,往往不敢把 RHT 用在这些路径上,只敢用在权重梯度路径。原来不是 RHT 本身有问题,而是 E2M1 格式与 RHT 的组合天然相克。
五、UFP4:换一把均匀的尺子,就能全面应用 RHT
既然问题的根源在于 E2M1 的格式几何结构,最直接的解决思路就是换掉这把"刻度不均的尺子",改用 E1M2 这样的均匀格式。蚂蚁集团的研究团队在此基础上提出了完整的训练方案,称为 UFP4(Uniform FP4)。
UFP4 的核心设计思路清晰而直接。在每一个线性层的矩阵乘法中,都先施加 RHT 旋转,然后将数据量化到 E1M2 格式的均匀刻度上。由于均匀格式没有收缩偏差,RHT 带来的均匀化效果能够真正转化为更高的量化质量,而不是反过来放大偏差。因此,UFP4 可以大胆地把 RHT 同时用于训练中全部三条关键路径:前向计算(fwd_y)、反向数据梯度(bwd_dx)和反向权重梯度(bwd_dw)。而此前的 E2M1 方案因为害怕 RHT 与格式不匹配,只能将其限制在权重梯度这一条路径上。
除了格式和 RHT 覆盖范围的改变,UFP4 还保留了一种叫做"随机取整"(Stochastic Rounding,SR)的技术,但只在一处使用:对上游梯度 dY 进行量化时。随机取整的意思是,凑整时不总是取最近的刻度,而是以概率大小随机决定取上取下,这样平均来说没有系统性偏差,有助于保持梯度估计的准确性。研究团队发现,仅对 dY 使用随机取整是最优选择,对其他张量加上随机取整反而略有损害。
在量化块大小和比例因子的设计上,UFP4 与对比的 E2M1 方案保持完全一致(都是 1×16 的块,单级 FP32 比例因子),从而确保实验结论聚焦于格式选择和 RHT 覆盖范围这两个核心变量,而非其他辅助设计的差异。
六、实验验证:从单层到千亿参数的全面比拼
研究团队设计了一系列层层递进的实验,来回答五个关键问题。
第一个问题是:换了格式之后,RHT 的效果会如何变化?他们从真实训练中收集了 MLP 和注意力模块的张量,分别对 E2M1 和 E1M2 测试了有无 RHT 的量化质量。结果非常清晰:对于本身分布已经比较均匀的张量(如 linear_fc1 的输入),两种格式在 RHT 前后变化都不大。但对于含有异常值的张量(如 linear_fc2 的输入),施加 RHT 后,E2M1 信噪比大幅下降(约 –1.90 dB),E1M2 则大幅提升(约 +3.24 dB)。在单个矩阵乘法输出的信噪比测试中,同样的模式更加显著:对 linear_fc2 的前向计算,E1M2 加 RHT 比不加 RHT 平均提升 2.51 dB,而 E2M1 加 RHT 则下降 2.05 dB。
第二个问题是:UFP4 能让最终训练损失更接近全精度(BF16)吗?研究团队在三个规模的模型上做了长时间预训练对比:15 亿参数的密集模型(Dense 1.5B)、约 80 亿参数的稀疏混合专家模型(MoE 7.9B)、以及 1240 亿参数的超大规模稀疏模型(MoE 124B)。衡量标准是"BF16 相对损失差",也就是 FP4 训练结果与全精度训练结果之间的差距,差距越小越好。在 Dense 1.5B 上训练约 2500 亿个 token 后,E2M1 方案的相对损失差为 1.2570%,而 UFP4(E1M2)的相对损失差为 0.9673%,降幅约 23%。在 MoE 7.9B 上(约 1 万亿 token),差距从 2.3596% 降到 1.8469%,降幅约 22%。在 MoE 124B 上(约 8000 亿 token),差距从 1.7308% 降到 1.3863%,降幅约 20%。三个规模上的结论完全一致,UFP4 在长期训练中持续比 E2M1 方案更接近全精度基线。
第三个问题是这一优势是否能在不同模型规模下保持。研究团队遵循蚂蚁集团内部的缩放定律协议,训练了从 1000 万到 3.24 亿参数的一系列 MoE 模型,并拟合损失与计算量的关系曲线。结果表明,E1M2 的损失曲线在所有测量的模型规模上始终低于 E2M1,两者的差距并不随规模增大而消失。同时,FP4 相对于 BF16 的整体惩罚随计算量增加而略有收窄,说明规模越大,FP4 训练的相对代价越小,但 E1M2 相对于 E2M1 的优势持续存在。
第四个问题关于方案各组成部分的贡献。消融实验在 E1M2 格式下,系统地拆解了 RHT 覆盖范围和随机取整两个变量。在没有任何 RHT 的基线上(但保留随机取整),平均训练损失为 1.89202。仅在权重梯度路径加 RHT,损失降低 0.00481;同时加入前向计算和权重梯度两条路径,降低 0.00644;同时加入数据梯度和权重梯度,降低 0.00290;全部三条路径都加 RHT(即完整 UFP4),损失降低 0.01123,效果最好。在全 RHT 的基础上再加入随机取整,额外降低 0.00456。这说明两者都有贡献,全 RHT 是 E1M2 格式下的最优选择,这与 E2M1 方案截然不同——E2M1 在前向和数据梯度路径上加 RHT 反而有害。
第五个问题是工程实现的开销是否可以接受。全覆盖 RHT 意味着每次量化前都要做一次小型哈达玛变换。研究团队实现了融合版本:当哈达玛变换的块大小与量化块大小相同(都是 16)时,可以把旋转操作和量化打包在一个计算步骤里,不需要额外的中间存储。测试结果显示,融合版的 RHT+量化比单独量化仅慢约 1.06 倍(在英伟达 H100 对应的 SM90 架构上)和 1.07 倍(在 B200 对应的 SM100 架构上),而如果不融合分两步做,则需要 1.62 倍和 1.41 倍的时间。工程上完全可以接受。
此外,研究团队还测试了一个"折中方案":不换格式,而是限制 E2M1 的最大可表示值,把最大值从 6 压缩到 4、3、2,从而强制去掉那些最不对称的大刻度。结果令人失望:所有限制范围的变体,在 Dense 1.5B 和 MoE 7.9B 上的表现都比标准 E2M1 更差,损失相对基线分别高出 0.39%、0.94%、1.99%(以 Dense 1.5B 为例)。这说明,通过限制范围来"模拟均匀格式"的思路行不通——损失动态范围带来的伤害大于消除偏差的收益。真正的解决方案只有使用原生支持的均匀格式。
七、对未来芯片设计的建议:不只是软件问题
这项研究最终落脚在一个重要的工程建议上。研究团队明确指出,当前 FP4 硬件路径(包括英伟达和 AMD 的最新芯片)几乎完全围绕 E2M1 格式设计,E1M2 或 INT4 均匀格式并不是这些平台的"一等公民"。要让 UFP4 真正发挥优势,需要硬件层面的原生支持,而不只是软件层面的变通。
值得一提的是,华为近期发布的 HiFloat4 格式采用了均匀的 S1P2 数据单元,未来的昇腾 960 系统(Ascend 960)将原生支持这种均匀格式,这与 UFP4 的理念不谋而合,是蚂蚁团队眼中一个颇具前景的平台方向。
研究团队给出的建议是有边界感的:E2M1 不应该被完全淘汰,对于那些本身就含有大量异常值、没有经过 RHT 处理的原始张量,E2M1 的大动态范围仍然是一个优势,也适合推理(而非训练)场景。但是,未来的训练专用加速器应当将 E1M2/INT4 风格的均匀格式提升为与 E2M1 同等重要的第一优先级训练数据类型,而不是让 E2M1 成为唯一可选的 FP4 训练格式。
说到底,这项研究揭示了一个"细节决定成败"的工程故事。在把数字压缩到只剩 4 位时,刻度均不均匀这件看似不起眼的事,会通过层层叠加、雪球效应,在训练了几千亿个 token 之后显现出不可忽视的差距。更有趣的是,那个本来用来改善效果的"数据搅拌"技术,配合错误的格式反而起了反作用。换一把均匀的尺子,让两者重新合拍,问题就迎刃而解了。这对于正在构建下一代 AI 训练基础设施的工程师和芯片设计者来说,是一个值得认真对待的结论。对这项研究感兴趣的读者,可以通过 arXiv 编号 2606.20381 找到完整论文。
Q&A
Q1:FP4 训练中的"收缩偏差"(Shrinkage Bias)是什么意思,为什么会出现?
A:收缩偏差是 E2M1 格式在量化时产生的一种系统性误差。由于 E2M1 的刻度间距不均匀,某些刻度右边比左边宽,导致就近取整时数值被系统性地"取小了"。这种偏差每层都存在,经过几十上百层叠加后,信号会持续衰减,模型训练效果变差。
Q2:UFP4 方案和现有 E2M1 方案相比,在实际训练中到底能改善多少效果?
A:在蚂蚁集团的实验中,UFP4 在三个规模的模型上均有明显改善。以 1240 亿参数的大型混合专家模型为例,训练 8000 亿 token 后,UFP4 相对于全精度 BF16 的损失差从 1.73% 降低到 1.39%,降幅约 20%。在 15 亿参数的密集模型上,降幅约 23%。三个规模上结论一致。
Q3:E2M1 格式限制最大值来模拟均匀格式是否可行?
A:实验表明这条路行不通。把 E2M1 最大可表示值从 6 限制到 4、3 乃至 2,虽然去掉了最不对称的大刻度,但同时牺牲了动态范围,导致表现比原始 E2M1 更差,在 15 亿参数模型上损失最高反而多出约 2%。真正有效的方法是使用原生均匀格式,而非在 E2M1 上打补丁。
好文章,需要你的鼓励
芝加哥大学等机构将强化学习引入大型强子对撞机触发系统,用GFPO方法实现阈值自适应调整,显著提升信号效率并保持背景率稳定,首次在真实CMS碰撞数据上完成验证。
英伟达发布Audex多模态大模型,在音频理解与生成达到最优水平的同时,保持文字推理能力几乎零退步,提供完整技术路径。
南加州大学研究揭示语音抑郁检测中"时序聚合"环节的系统性盲点:72个测试组合中三分之一完全失效,骨干网络选择的影响丝毫不亚于聚合架构本身。
斯坦福与根特大学联合提出"变化感知最优采样"方法,无需训练模型,通过匹配历史变化模式筛选AI胸片报告候选,印象部分RadGraph F1提升最高达13.6%。