面包屑图标 当前位置: 首页
AI资讯
热点详情

使用FP8进行大模型量化的原理与实践全解析

AI热点日报
AI热点日报时间:2026-05-30
热点解读

```html 近年来,随着Transformer与MOE架构的相继推出,深度学习模型的参数量已轻松突破万亿大关。模型规模越大,部署成本越高,推理性能也面临更大挑战。如何破解这一困局?这便引出了大模型压缩技术——我们亟需通过一系列方法,让这些庞大的模型既能高效运转,又不致吞噬过多的算力资源。模型压缩

```html 近年来,随着Transformer与MOE架构的相继推出,深度学习模型的参数量已轻松突破万亿大关。模型规模越大,部署成本越高,推理性能也面临更大挑战。如何破解这一困局?这便引出了大模型压缩技术——我们亟需通过一系列方法,让这些庞大的模型既能高效运转,又不致吞噬过多的算力资源。模型压缩通常可划分为几大类:剪枝(Pruning)、知识蒸馏(Knowledge Distillation),以及本文重点探讨的量化(Quantization)。 本系列将逐一拆解主流的大模型量化方案,例如GPTQ、LLM.int8()、SmoothQuant、AWQ等。本文先从FP8量化入手,详细解析其背后的原理与实际应用场景。 --- ## FP8 简介 FP8,全称为8位浮点数据格式,由Nvidia、Arm、Intel三家企业联合推出,专门用于加速深度学习训练与推理。当时他们共同发表了论文《FP8 Formats for Deep Learning》。如今,Nvidia的Hopper与Ada Lovelace架构GPU均已原生支持该格式。 ## 补充:浮点表示法 在正式讨论FP8之前,有必要回顾浮点数的表示原理。根据IEEE 754标准,一个浮点数在计算机中由三部分组成: - **符号位**:1bit,0代表正数,1代表负数。 - **指数部分**:决定数值的范围。 - **尾数部分**:决定数值的精度。 浮点数的计算公式看似简单,但根据指数位的取值,又可分为规格化数、非规格化数以及特殊值(无穷和NaN)。对于规格化数,指数位不全为0或全为1;非规格化数则是指数位全为0;特殊值方面,指数全为1、尾数全0表示无穷,尾数不全为0则为NaN。 ## FP8 表示形式 在硬件层面,FP8通常有两种变体:E4M3和E5M2。这两种格式各有其适用场景。 - **E4M3**:1个符号位,4个指数位,3个尾数位。可表示的最大值为448,同时能表示NaN。 - **E5M2**:1个符号位,5个指数位,2个尾数位。可表示范围达到±57344,还能表示无穷与NaN。 简言之,E4M3精度更高,E5M2动态范围更大——范围扩大的代价是精度降低。 值得注意的是,E5M2的指数部分与FP16一致,这意味着其动态范围与FP16相当,因此常被用于训练的反向传播阶段。而E4M3则更适合前向传播。 在H100的第四代Tensor Core上,FP8的矩阵乘法(无论是E4M3还是E5M2)均可执行,甚至支持混合搭配,计算结果最终累加到FP32或FP16中。格式间的转换也由硬件直接支持。 E5M2完全遵循IEEE 754标准;E4M3则更加灵活——它允许指数位全为1时仍表示规格化数,只有当指数和尾数全为1时才表示NaN,且本身无法表示无穷。 举例说明: - 二进制 (0 1111 110) 在E4M3中,表示 2^(15-7) * (1+1/2 + 1/4) = 448 - 二进制 (1 1111 100) 则表示 -384 - 二进制 (1 1111 111) 即为NaN 换个角度,可将浮点数视为2的幂之间的若干样本。例如在E5M2中,2与4之间仅有4个样本;而在E4M3中,相同区间却有8个样本。这意味着E5M2的量化误差比E4M3更大。此外,FP8表示的数值本身是非均匀的——越靠近0,分布越密集;越远离0,越稀疏。因此,浮点量化的误差会随着数值的增大而增大。 ## INT8 与 FP8 对比 ### 精度对比 究竟INT8与FP8谁更优?这取决于数据分布。高通AI研究院对此有过专项研究。 - 对于**均匀分布**,INT8表现最佳,FP8-E4与FP8-E5均稍逊一筹。 - 对于**正态分布**,FP8-E2(2个指数位、5个尾数位)精度最高,INT8紧随其后。 - 而面对含有异常值的**t分布**,各格式精度均一般,但FP8-E4略优。 具体到模型权重与激活值的量化,情况更为有趣。有论文统计了LLaMA-65B各层权重的量化偏差,结果发现:**对于权重,INT8明显优于FP8-E4**。但对于激活值,情况则相反——**FP8-E4在大多数层上的精度高于INT8**。 原因在于激活值是动态的,每次输入都不同,需通过校准集确定量化尺度。校准过程通常取所有batch的最大值来计算尺度,导致非最大值的batch数值普遍偏小,而FP8-E4对小数值的精度更高。因此,**INT8与FP8并无绝对优劣**,完全可根据不同层的实际损失灵活选择。 ### 性能对比 以Nvidia L40(Ada Lovelace)为例,其FP8 Tensor Core与INT8 Tensor Core在计算能力上保持一致。H800、L20、L40S情况类似。 但若深入硬件层面——乘法累加运算单元(MAC)——则存在差异。对于8位MAC,FP运算通常比INT占用更多芯片面积。然而有趣的是,当位宽降至8位时,FP8与INT8 MAC单元的面积几乎相同。这意味着二者的硬件成本与推理性能十分接近。 累加器是另一关键因素。定点累加器对INT8而言既精确又高效;而浮点累加器虽精度稍低,但对FP8-E4这类动态范围大的格式更友好——无需大幅增加累加器大小即可覆盖更大乘积范围。 综合数据表明,INT8配合定点累加器是最节省面积的方案。FP8-E4若搭配浮点累加器,所需门电路数量比INT8高出53%;若使用FP32累加器,效率甚至低183%。因此,纯从硬件效率看,FP8-E4比INT8成本更高。但这仅是其中一面。 ### 综合对比 1. INT8为均匀量化,所有数值等间隔映射,容易损失边界特征值;FP8为非均匀量化,小数值更精确,大数值误差则更大。 2. 混合精度训练时,FP8转换为FP16/FP32/BF16更直接;INT8则需额外的乘法与加法操作,开销更大。 3. 在CPU上,FP8运行速度远慢于INT8。 4. 量化误差与步长正相关——FP8对小数值友好,但对大数值则不够友好。 ## FP8 量化方案 ### FP8 量化模拟 高通AI研究院提出了一种在FP32硬件上模拟FP8量化的方法,可快速完成实验,并易于在深度学习框架中实现。结论是:FP8格式在多种网络模型的PTQ(训练后量化)中通常优于INT8;其中E5M2与E4M3效果最佳。而对于Transformer等含有较多异常值的模型,增加指数位数效果更好。不过,一旦采用QAT(量化感知训练),FP8格式的优势会缩小——网络模型能够在训练中学会在INT8下同样表现出色。 ### MoFQ 混合格式量化方法 不同层的数据分布差异显著,没有一种量化格式能通吃所有场景。上海交大、北大与微软亚洲研究院联合提出的MoFQ方法,采用逐层选择最优格式的策略,在W8A8量化上取得了接近全精度的结果。此外,MoFQ不会增加硬件开销——位宽仍为8比特,仅更换格式。 ## FP8 推理流程 训练阶段,为保障梯度计算精度,权重通常保持在高精度(BF16或FP32)。但推理时权重固定,故可在模型加载时直接将其转换为FP8。 操作融合至关重要。例如将LayerNorm与后续的格式转换合并,确保kernel的输入输出尽可能为FP8,从而有效提升GPU内存带宽利用率。GeLU激活函数也应尽量融合其中。 目前,少量输出仍会保持FP16——因为NCCL仅支持高精度的reduce操作。因此,推理流程大致为:LayerNorm输出与权重均为FP8,矩阵运算结果暂存为FP16,完成后再转换回FP8。整个推理链路中,绿线表示FP8的I/O,红线表示高精度的I/O。 ## FP8 在 TensorRT-LLM 中的应用 TensorRT-LLM从9.0版本起支持FP8推理。启用FP8需执行几个步骤:设置FP8标志、添加GEMM的缩放因子(scale)、编写FP8模型。具体而言,将FP16输入量化为FP8再反量化,权重也进行相同操作。TensorRT会自动将量化/反量化操作与前后的kernel融合,最终计算图即为量化后的X与W直接进行FP8计算,输出亦为FP8。 TensorRT-LLM还封装了FP8 linear与FP8 row linear函数,可直接使用线性层,无需自行编写代码。流程大致为:权重以FP8存储,计算前先反量化为FP16甚至FP32,然后执行矩阵乘法,累加使用FP32完成,最后乘以scale,输出FP8结果。 ## FP8 在 vLLM 中的应用 vLLM在H100与AMD MI300x等GPU上支持FP8量化,目前仅适用于Hopper与Ada Lovelace架构。使用FP8可使模型内存占用减半,吞吐量提升1.6倍,且精度影响极小。 ### 在线动态量化 无需校准数据,只需在启动推理引擎时指定 `--quantization="fp8"` 即可。所有Linear模块(除lm_head外)的权重按per-tensor量化为FP8_E4M3,激活值则在每次前向传播时动态计算。缺点在于延迟提升有限,且需要足够内存先加载原始精度模型。 ### 离线动态量化 借助AutoFP8库,提前将权重量化为FP8(E4M3)并生成检查点,vLLM运行时仅处理激活的动态缩放。这种方式精度更高,内存占用也更低。 ### 离线静态量化 为追求最佳推理性能,可使用AutoFP8配合校准数据,为权重与激活生成静态的per-tensor缩放因子。随后在vLLM中直接加载量化后的模型检查点。 ### KV Cache FP8 量化 vLLM还支持对KV Cache进行FP8量化,分为E5M2与E4M3两种。E4M3精度更高,但数据范围小,通常需要为每个量化tensor配备一个FP32的缩放因子。若指定了量化参数JSON,缩放因子可自动加载;未指定时默认值为1.0。研究表明,FP8 E4M3的KV Cache量化带来的精度损失极小,但推理速度可显著提升。 ## FP8 在不同推理框架及硬件的性能对比 在TensorRT-LLM中,FP16的max值可达75,而FP8能提升至85——主要得益于权重内存节省。若KV Cache也转为FP8,内存再减半,吞吐量甚至可接近FP16的两倍。 此外,使用vLLM对Qwen1.5-Chat在不同硬件(4090、H800、H20)上进行了FP8静态量化测试。结果非常直观:相较于BF16,FP8在所有硬件上均实现了10%~30%的性能提升。 ## 总结 本文从FP8基本概念讲起,对比了其与INT8在精度与性能上的差异,并介绍了几种主流的FP8量化方案。尽管FP8仍在不断演进之中,但主流推理框架如TensorRT-LLM与vLLM均已提供成熟支持。实测数据也表明,在不同硬件上,FP8相较于BF16均能带来实质性的性能提升。量化选对路,效果立竿见影。 ```
热点追踪提示词
你是一名 AI 行业编辑,请围绕下面这条热点输出一份资讯解读:
热点:使用FP8进行大模型量化的原理与实践全解析要求:
1. 先用一句话解释这条热点在讲什么
2. 再总结它为什么重要
3. 说明会影响哪些 AI 产品或内容方向
4. 最后给出 3 个适合资讯站使用的标题
来源:https://www.53ai.com/news/finetuning/2024090250423.html
ai 人工智能

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关热点
AI热点2026-05-30 11:00
MiniMax Music 2.0人声真实度实测 能否超越人类歌手

许多用户在体验MiniMax Music 2 0后反馈:人声虽然清晰,但总觉得缺乏灵魂——那种真人演唱时特有的呼吸起伏、喉部微颤以及即兴的语气变化,似乎都被“抹平”了。这个痛点其实非常普遍,根源在于模型默认的输出策略更偏向结构规整性,而非生物性发声特征。换句话说,它优先确保每个音都“唱对”,却很少考

AI热点2026-05-30 11:00
语音驱动嘴型与面部动画生成算法盘点

语音驱动嘴型与面部动画生成技术是数字人核心竞争点。代表性开源算法包括Wav2Lip、SadTalker、EchoMimic等;未开源算法有Loopy、EMO、VASA-1等,这些算法借助深度学习技术生成高逼真度动态视频,在影视制作、在线教育、虚拟娱乐等领域应用广泛。

AI热点2026-05-30 11:00
ChatGPT算法题解题步骤详解

刷算法题卡壳的时候,最让人绝望的不是题目难,而是连暴力解法都憋不出来。这时候,很多人会直接把题目扔给ChatGPT——然后收获一段漏洞百出的伪代码,或者完全跑不通的“幻觉方案”。其实,ChatGPT不是用来抄答案的,它真正价值在于帮你重建解题的思维路径。前提是,你得知道每一步该怎么用它。 下面这套五

AI热点2026-05-30 10:59
Notion AI婚礼筹备实用全流程管理追踪攻略

```html 筹备婚礼听起来满是甜蜜,真正着手时却往往挑战重重——待办清单不断延伸,涉及人员持续增加,进度全凭记忆跟进,关键节点稍有不慎便错过。预算何时超支、谁负责对接哪些供应商、哪些环节尚未确认……这些隐患,通常直到最后一个月才集中浮出水面。 幸运的是,如今有了 Notion AI 这样真正高效

延伸阅读