HiFloat8高效训推技术报告(2):HiFloat8高效低比特推理
1. 低比特推理背景知识深度学习模型在训练和推理阶段通常使用 FP32 (32位浮点数) 或 BF16/FP16 (16位浮点数) 格式。然而随着模型规模的不断增大尤其是大型语言模型 LLM对计算效率、显存占用和能耗的要求也越来越高。低比特推理Low-Bit Inference应运而生其核心思想是使用更少的比特位来表示模型参数权重和中间计算结果激活值。最常见的低比特格式包括 INT8 (8位整数)和FP8 (8位浮点数)如下图一所示。其有如下几点优势1)内存减少将数据类型从16位/32位降至8位理论上可以减少2x到4x的显存占用。2)计算加速降低位宽可以提高计算吞吐量Operations Per Second。3能耗降低减少数据传输和计算量从而降低整体能耗。 FP8作为一种8位浮点格式因其具有比定点 INT8 更宽的动态范围 和 更强的离群值Outlier鲁棒性成为当前大模型低比特推理的主流选择之一。FP8 主要有两个标准变体E4M34位指数3位尾数和 E5M25位指数2位尾数分别侧重于精度和动态范围。图一FP8低比特推理流程示意图2. FP8量化对细粒度缩放(Scaling)的依赖将高精度数据类型(如32位浮点数FP32)转换为低比特数据类型(如8位浮点数FP8)一般需要进行缩放处理Scaling. 假设给定一种量化粒度获得一个数据块记为Xscaling的过程是给X乘上一个系数使得所有值比较安全地转化到低比特的表达范围内这个系数被称之为缩放因子或者称为scaling factor公式1和公式2描述了量化过程中Scaling执行缩放的原理。其中F8max是指该8比特浮点可表示的最大值例如FP8-E4M3为448。Amax是指X中所有数值统计的最大绝对值。公式1计算得到的Scale变量即等价于缩放因子。公式2表示从高精度数据缩放到低比特表达范围内的过程。FP8 虽然具有浮点数的动态范围优势但其 8 位表示的精度和动态范围仍然有限。为了最大限度地减少从高精度如 FP16到 FP8 量化引入的精度损失FP8 通常需要采用 细粒度的量化Fine-Grained Quantization策略如下图二所示即引入更多的缩放因子Scaling Factor 来调整数据的范围。这种细粒度量化主要体现在以下几个层面1Per-token细粒度(通常用于激活值)由于 LLM 中的激活值Activation通常在不同的 Token 维度上具有极大的动态范围差异和频繁的离群值。Per-Token 缩放为每个输入Token或 Tile应用一个独立的缩放因子以确保每个Token的核心数据范围能被 FP8 格式有效覆盖从而保持准确性。2Per-channel/Per-Block细粒度(通常用于权重)模型权重Weight的分布在不同的输出通道Channel或权重块Block之间也存在差异。Per-Channel/Per-Block 缩放通过对每通道或每块权重应用独立的缩放因子来进一步降低量化误差提升模型的推理精度。典型的 Block 大小为128*128。然而引入大量的 Per-Token/Channel/Block 缩放因子会显著增加硬件实现和控制逻辑的复杂性。在推理过程中需要频繁地加载、存储和应用这些额外的缩放因子这会引入额外的内存带宽开销和计算延迟。FP8 本身带来的加速效益反而会被这些额外的操作部分抵消。图二常用的几种量化粒度示意图3. HiF8格式优点介绍:无需依赖细粒度缩放HiF8 (HiFloat8) 是一种新型的 8 位浮点格式它旨在通过优化格式本身的动态范围和精度平衡来摆脱对复杂细粒度缩放的依赖从而实现更高效的推理。HiF8 格式的核心优势是其创新的即时可译变长前缀码编码的点位域Dot设计。其详细设计示意图如下图三所示。Normal模式下HiF8的数值解析式和传统IEEE 754格式一样是标准的二进制科学计数法表示。为了支持更大的动态范围HiF8还采用了不同于IEEE 754风格的Subnormal/Denormal方案。如图2的Denormal表达式当Dot域指示该数值为Denromal模式时HiF8没有指数域多的3-bit“尾数”编码0~7把个数值直接用于扩展HiF8的小值指数范围。HiF8 Denormal模式在Normal模式支持的[-15, 15]共31个指数的基础上额外扩展了[-22, -16]共7个指数-23用于表示特殊值Zero和NaN综合形成了[-22, 15]共38个指数的大动态范围非常接近FP16的[-24, 15]的40个指数范围。并且由于[-15, -8]本身是1-bit尾数扩展的[-22, -16]的0-bit尾数也属于精度渐变并非跳变。正是由于这种渐变机制对于具有较大绝对值和较小绝对值需要更广动态范围的离群值它分配更大的指数范围和更少的尾数位对于靠近一的众数周边的数值需要更高精度它分配更多的尾数位。图三HiF8编码示意图这种设计使得 HiF8 在没有外部缩放因子的情况下也能更好地覆盖深度学习模型权重和激活值的宽动态范围和高精度需求。它甚至通过 Subnormal Value非规格化数编码 来扩展动态范围以更接近 FP16 的覆盖围。由于 HiF8 格式自身提供了足够的动态范围和平衡的精度对于大多数推理任务而言它可以直接采用更粗粒度的量化策略如 Per-Tensor对整个张量 甚至 无缩放Scale-Free 转换而无需复杂的 Per-Token/Per-Channel需在张量子维度维护和索引缩放因子或 Per-Block(进一步地在算子层面影响Matmul规约连续性显著降低数据复用与计算吞吐)缩放。这样可以消除大量缩放因子的管理和应用大幅简化了推理框架和硬件加速器的设计。无需执行频繁的缩放因子查找和乘法操作降低了内存带宽和计算开销从而能更充分地发挥 8 位计算的加速潜力。从而能够保证后训练量化PTQ过程更简单、更快。4. HiF8格式推理验证:LongCat大模型推理展示为了验证HiF8格式在推理效率和准确性上的优势本工作选取当前最新的美团LongCat-Chat-562B模型进行测试(后续会更新更多大模型的推理结果)。LongCat-Chat采用创新的 MoE混合专家架构旨在以更少的激活参数实现更高的性能从而大幅提升推理速度并降低成本。其模型的Attention模块借鉴Deepseek MLA的设计如下图四所示。其中标绿色模块是本工作在模型推理过程中引入的Linear层量化部分标红色的模块是被引入的KV Cache量化部分。此外其FFN部分则是区别于传统的MoE大模型采用MoE层和常规的FFN层间隔交替使用如图五所示标绿色模块是该实验引入的量化部分。对于MoE模块实验中只量化每个专家(expert)对应的Linear层MoE的路由(router)不参与量化对于FFN层则是量化其对应的Linear层部分。图四LongCat Attention模块示意图图五LongCat MoE模块和FFN模块示意图上文中给出了LongCat 模型HiF8格式量化部分整个量化过程都采用的A8W88即HiF8量化格式。本工作首先采用 HiF8 格式对大型语言模型LLM进行量化。在简单多选题Multiple-Choice Question, MCQ数据集(如图六所示)上的测试结果显示BF16的推理准确率与官方论文报告结果基本一致确认了实验基线的可靠性。在引入HiF8量化后首先采用最简单的 A8W8 直接转换Direct Conversion 方案即激活值Activation和权重Weight均直接转换为 HiF8 格式A-直转W-直转测试结果如图六所示 HiF8-A8W8直转平均精度仅下降掉点 0.36 个百分点这表明 HiF8 格式即使在不进行任何复杂优化和校准的前提下也能保持较高的精度。为了进一步提升精度实验引入了 W-Per-Tensor W-PTS 粗粒度量化策略。根据HiF8数据格式的特性其动态范围设计使其对量化范围Amax有特定偏好。实验中将权重的 Amax 值设置为 16。通过这一优化平均精度掉点从 0.36 个百分点进一步缩小至 0.34 个百分点。这证实了利用 HiF8 格式的自身特点进行简单参数调整即可实现精度提升的可行性。随后本工作对比了 Per-Tensor 量化粗粒度和 Per-Channel 量化细粒度对 HiF8 权重部分的影响。 一个关键的发现是无论是 Per-Tensor 量化 还是 Per-Channel 量化对于 HiF8 权重的量化处理都可以在离线Offline阶段完成这意味着这两种量化方案在实际的在线推理性能上没有差距。相比于 FP8 量化需要复杂的 Per-Token/Per-Channel 在线缩放操作HiF8 的特性避免了推理时引入额外计算开销和内存带宽瓶颈。通过每个tensor的FP32 Scale值将其最大绝对值Amax缩放到HiF8高精度范围上限16上去此时权重可用的指数范围是[-22, 4]共27个指数位最大程度保证了权重的精度和动态范围留存信息量极大。图六LongCat在SOTA数据集上的HiF8量化结果为了全面验证 HiF8 格式在不同推理场景下的鲁棒性本工作将测试范围扩展到了对精度要求极高的复杂推理数据集包括数学如 GSM8KMATH500和代码生成LiveCodeBench等任务, 如下图七所示。在这些复杂的推理数据集上此前得出的结论依然成立HiF8 A8W8 直转即 A-直转W-直转策略依然能确保绝大部分数据集的精度下降保持在 1 个百分点以内。对于极少数精度下降超过 1 个百分点的数据集本工作探索了一系列性能上无额外开销的细粒度量化策略作为选择例如 Weight 的 Per-Tensor 或 Per-Channel 量化。用户可以根据任务对精度的敏感程度灵活选择最佳的量化方案图七LongCat在带Reasoning SOTA数据集上的HiF8量化结果在 LLM 推理过程中KV CacheKey-Value Cache的内存占用是影响性能和可部署性的关键因素尤其是在长序列推理任务中其内存开销会随上下文长度线性增长。因此本工作将量化策略进一步扩展到 KV Cache形成了 A8W8KV8 策略Activation、Weight、以及 Key/Value Cache 均采用 8 位量化。目前的实验结果展示即使KV Cache 仅采用简单的直接转换Direct Conversion方式进行量化、未引入任何额外的缩放或校准操作绝大部分数据集的精度下降仍然符合 1 个百分点以内的要求。这一结果至关重要它意味着在通过 A8W8KV8 策略大幅减少内存占用的同时几乎不损失推理精度极大地提升了 LLM 推理的整体效率。尤其需要强调的是在所有上述的量化策略中激活值Input A始终采用的是 HiF8 直转Direct Conversion的方式。这充分体现了 HiF8 数据格式的内在优越性它凭借其优化的动态范围和精度平衡设计能够有效地覆盖激活值固有的宽动态范围和频繁出现的离群值避免了 部分FP8 所需的复杂且耗性能的 激活值Per-Token 在线缩放操作。这类缩放通常需要在运行时逐 token对完整激活向量进行统计如: 跨channel在线计算Amax并据此动态生成缩放因子。这不仅引入额外的归约与数据访问开销在典型LLM架构中还难以与MatMul的归约主循环常对应跨channel方向高效融合显著制约推理性能。与之相对的HiF8 方案在复杂场景下既能维持高精度又能实现最大的推理性能加速。考虑HiF8具备充足的动态范围后续仍可进一步探索针对激活值 A的静态离线量化方案。例如在部署或校准阶段对Amax进行统计选取合适的缩放参数以在不引入运行时的额外开销前提下进一步拓展 HiF8在特定模型或场景下的适用性。5. 总结HiF8 格式的核心优势在于其创新设计实现了高精度和高效率的解耦从而超越了传统 FP8 的限制。FP8 格式为维持精度必须依赖复杂的 Per-Token 在线缩放等细粒度量化A这会引入显著的内存带宽和计算开销削弱了 8 位计算的加速效果。相比之下HiF8 凭借其优化的渐变精度设计将量化所需的鲁棒性和动态范围能力内建于格式本身使得其可以采用最简单的 A8W8 直转策略甚至在复杂的数学、代码任务以及引入 KV Cache 量化时仍能将绝大部分数据集的精度损失控制在 1 个百分点以内。这种对细粒度在线缩放的消除不仅极大地简化了硬件和软件部署更重要的是它保证了 HiF8 方案能够最大限度地发挥 8 位计算的潜能实现更纯粹、更高效、且性能零损失的推理加速。后续团队将通过以下几点去进一步优化HiF8推理1引入动态自适应量化范围Learned Amax和精细的混合精度策略以最小化对精度敏感的复杂任务上的误差并解决极少数掉点较大的数据集问题。2将HiF8 应用扩展到多模态模型和更广泛的 LLM 训练/微调场景中并探索其与稀疏化、剪枝等技术结合的可能性以实现叠加的效率提升。3推动 HiF8 格式在主流深度学习框架和硬件平台中的标准化与通用支持同时优化内存带宽和算子融合以充分发挥 8bit节省的潜力。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2493167.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!