游乐游手机版
首页/AI热点日报/热点详情

种混合量化策略

类型:热点整理2026-07-17
模型量化,本质上是一种高效的模型压缩技术。在大语言模型(LLM)领域,量化通常将FP32、FP16或BF16格式的权重、激活值乃至KV Cache,映射为INT8、FP8、INT4、FP4等更紧凑的数值表示。按照不同维度划分,LLM推理量化可分为多种类型,具体分类可参考下图。本文重点聚焦LLM的PT

模型量化,本质上是一种高效的模型压缩技术。在大语言模型(LLM)领域,量化通常将FP32、FP16或BF16格式的权重、激活值乃至KV Cache,映射为INT8、FP8、INT4、FP4等更紧凑的数值表示。按照不同维度划分,LLM推理量化可分为多种类型,具体分类可参考下图。本文重点聚焦LLM的PTQ(训练后量化),理解这一点后,量化带来的核心收益主要体现在三个方面:

  • 显存收益:LLM的权重存储需求远超传统AI模型,甚至直接决定某些GPU能否正常运行。对权重进行量化后,显存占用显著降低,这一优势显而易见。

  • 吞吐收益:LLM推理过程中,KV Cache的显存消耗同样不可忽视。将KV Cache量化后存储,相同显存可容纳更多并发请求,吞吐量随之提升,推理成本也得以降低。

  • 延迟收益:LLM推理的Decoding阶段主要受限于内存访问。权重或激活值量化后,算子从显存搬运数据的时间减少。此外,当前多数Nvidia GPU的低精度硬件单元算力高于高精度单元,因此延迟也能进一步降低。

1 背景

(同上,此处为章节标题,内容已整合进上文)

2 FP8格式

在LLM推理中,INT8和FP8是两种常见的量化格式。FP8是Nvidia在Hopper和Ada Lovelace架构GPU上推出的数据类型,包含两大“变体”:

  • E4M3:4个指数位、3个尾数位,外加1个符号位

  • E5M2:5个指数位、2个尾数位,外加1个符号位

简而言之,E4M3动态范围较小但精度更高;E5M2动态范围更大但精度稍低。LLM推理对精度较为敏感,对数值范围要求相对宽松,因此FP8-E4M3更受青睐。

由于浮点数本身的特性,FP8表示的数值分布并不均匀。Yijia Zhang在《Integer or Floating Point? New Outlooks for Low-Bit Quantization on Large Language Models》中给出了直观对比图——FP8与INT8的数值分布示意。FP8越靠近0,数值越密集;越远离0,数值越稀疏。换言之,FP8对大数值的精度表现一般,但对小数值的处理能力较强。

3 量化精度

FP8增加了尾数位,那么它相比INT8在精度上是否真有优势?

3.1 数值分布

针对不同的数值分布,Mart van Baalen在《FP8 versus INT8 for efficient deep learning inference》中给出了INT8和FP8量化后的精度对比(纵坐标越大越好)。对于均匀分布,INT8表现最优,FP8-E4和FP8-E5均不理想。对于正态分布,FP8-E2(2个指数位、5个尾数位)拔得头筹,INT8紧随其后,FP8-E4和FP8-E5表现依然不佳。而对于带有异常值的t-分布,所有量化方式的精度普遍下降,但FP8-E4稍占优势

3.2 权重量化

那么在实际大模型权重中,哪种量化方式更胜一筹?Yijia Zhang统计了LLaMA-65B每一层权重做Per Channel量化后的偏差,并进行了排序。结果明确显示:INT8在所有层上的权重量化精度均显著优于FP8-E4。

3.3 激活值量化

Yijia Zhang同时统计了LLaMA-65B各层激活值做Per Tensor量化后的偏差。有趣的是,FP8-E4在大多数层的激活值量化精度上居然优于INT8。他对此的解释是:激活值具有动态性,随每个输入的不同而变化,因此需要借助校准集来确定量化Scale;校准过程取所有Batch的最大值计算Scale,导致非最大值的Batch量化后数值普遍偏小,而FP8-E4对小数值的精度恰好更高

这就引出一个问题:在校准过程中,如果对激活值采用Per Token或Per Group的量化粒度,能否削弱Scale选取带来的影响?那样的话精度结果又会如何?

3.4 小结

综合Mart van Baalen和Yijia Zhang的实验结果,FP8-E4相比INT8并无全面精度优势。INT8更适合量化权重,而FP8-E4更适用于大多数层的激活值。

4 量化性能

既然精度上不占优,FP8在性能方面能否扳回一局?毕竟Nvidia在Hopper和Ada Lovelace架构GPU中专门集成了FP8 Tensor Core,可直接加速FP8运算。

4.1 硬件参数

以Nvidia L40 GPU为例查看硬件参数:FP8 Tensor Core和INT8 Tensor Core在各自数据类型上的计算能力相同。这一特性同样适用于H800、L20和L40S。

4.2 计算效率

再来看计算效率。Mart van Baalen从累加器硬件角度分析发现,以FP32累加器为例,FP8-E4的效率比INT8低183%。Bita Rouhani在《With Shared Microexponents, A Little Shifting Goes a Long Way》中对两种格式均采用浮点累加器,预估FP8的性能比INT8下降40%。基于这些分析,Mart van Baalen认为FP8的计算成本明显高于INT8,这意味着对于计算瓶颈型网络,FP8量化后反而会拖累性能。

此处留一个TODO:需要在Hopper或Ada Lovelace架构GPU上,实际测试计算瓶颈算子(例如GEMM)在INT8和FP8-E4下的具体性能表现。

4.3 小结

总体而言,根据Mart van Baalen和Bita Rouhani的结论,FP8-E4在量化性能上同样不具备优势。

5 混合量化

注意到FP8-E4的优势主要体现在多数层的激活值量化精度上。于是Yijia Zhang对LLaMA和OPT模型采用了MoFQ8(混合格式量化)方案,实现W8A8。核心思路是逐层选择量化方法,每层内部保持格式一致。MoFQ8在WikiText-2、LAMBADA、PIQA和HellaSwag四个数据集上的表现,均明显优于单一的FP8-E4或INT8量化,精度基本追平FP16。

6 总结

对于LLM PTQ推理量化,从工程视角来看:

FP8 vs INT8:即便Nvidia在Hopper和Ada Lovelace架构上推出了FP8 Tensor Core,但FP8-E4在精度和性能上相比INT8并未占优,因此当前工程实践中仍以INT8量化为主。当然,FP8的适用场景仍需进一步探索。若某个模型使用INT8量化后精度下降明显,可以尝试Yijia Zhang的MoFQ8混合量化方案,或参考Tim Dettmers在《LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale》中提出的混合量化思路。

W8A16 vs W8A8:以INT8为例,相比FP32/FP16/BF16,W8A16(仅权重量化)在几乎不损失精度的前提下,带来两大好处:一是权重显存占用大幅降低;二是Decoding阶段对权重的访存压力显著缓解,推理延迟随之下降。W8A8则同时对权重和激活值进行量化,进一步增加了激活值方面的显存和访存收益——具体收益与输入Prompt和输出序列的长度有关,Prompt和输出序列越长,收益越明显;此外,W8A16走的是FP16/BF16 Tensor Core,而W8A8可利用算力更高的INT8 Tensor Core,既能降低延迟,又能提升Nvidia GPU的硬件利用率

来源:https://www.53ai.com/news/qianyanjishu/1807.html

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。