简介:FP4是以4比特浮点数表示模型数值的低比特量化格式,正成为大模型端侧落地的关键路径。本文系统讲解FP4的定义与数值结构、W4A16与W4A8量化范式、其缓解存储与内存带宽压力的原理、与INT4/INT8/FP8的区别、典型智能体硬件应用场景与落地注意事项,帮助开发者建立完整认知。
FP4(4-bit Floating Point,4比特浮点)是一类用4个比特表示单个数值的低精度浮点数据格式。在大模型部署语境下,”FP4”更多指以4比特浮点格式存储与计算模型权重的量化方案,常见组合包括W4A16(权重4比特、激活16比特)与W4A8(权重4比特、激活8比特,典型形式为FP4权重搭配FP8激活)。
从比特分配看,业界常见的FP4采用E2M1结构:1位符号位、2位指数位、1位尾数位。指数位的存在使其与同为4比特的定点格式INT4有了本质差异,数值网格非均匀分布,对小数值分辨率较高、对大数值跨度较宽,更契合神经网络权重”多数很小、少数偏大”的长尾分布特点。以E2M1为例,可表示的正数值为0、0.5、1、1.5、2、3、4、6,加上符号位共16个离散值。
由于可表示的数值极少,FP4在工程上必须配合分组缩放使用:将权重按组切分(如每64或128个一组),每组计算一个缩放因子,将该组数值归一化到FP4网格内。量化后权重存储量仅为FP16的1/4、FP32的1/8。
理解FP4可以从三个视角入手:
AI Agent正从简单的单轮问答,演进为多轮对话、长上下文理解与频繁工具调用的复杂形态。部署在智能体盒子等端侧硬件上的大模型,任务复杂度持续上升,随之暴露出推理卡顿、响应变慢、功耗偏高、多任务并发效率下降等典型问题。
这些症状背后,是模型能力与端侧资源之间的结构性矛盾:
量化是让大模型装进端侧的主要路径,但传统激进的低比特量化容易损伤Agent最依赖的长上下文记忆与逻辑推理能力。FP4的价值在于:以浮点格式保留相对友好的动态范围,以更低比特换取体积与带宽收益,再结合硬件原生算力支持,在模型体积、任务效果与推理效率之间提供新的平衡点。
FP4并非单一技术点,其落地依赖量化范式、硬件算力与部署工具链三者协同。
两种范式覆盖不同精度—效率折中需求,面向模型各异、负载各异的端侧部署场景,可按需选择。
在同等电路与带宽预算下,数据位宽减半通常意味着单位时间可搬运、可计算的元素数量约翻倍。因此,原生支持FP4数据通路的新一代端侧NPU,其FP4峰值算力相对INT8/FP8可达约2倍。映射到推理两阶段:算力提升加速Prefill、降低首token延迟;低比特权重减少Decode阶段数据搬运、改善逐token生成耗时。需要注意,峰值算力是理论上限,实际收益取决于算子覆盖度与软件栈优化水平。
智能体盒子覆盖政务、工厂、门店、机器人等多元场景,模型规模、上下文长度、工具调用频率与并发负载各不相同。高效部署不仅依赖硬件,更依赖覆盖”量化—调优—部署”全流程的工具链:量化工具完成校准与分组缩放,调优环节支持敏感层分析与混合精度策略,部署环节将量化模型编译到目标NPU,并辅以开箱即用的示例降低适配门槛。缺少工具链,FP4就只是纸面参数。
FP4部署分离线量化与在线推理两个阶段。以下为简化示意:
# 离线:分组FP4权重量化(伪代码示意)def quantize_group_fp4(W, group_size=128):for 每组权重 G(按列切分,每组group_size个元素):scale = max(abs(G)) / 6.0 # 6为E2M1最大正数值G_q = 映射到FP4网格(G / scale) # 网格取值{0,0.5,1,1.5,2,3,4,6}保存 G_q(4bit)与 scale(高精度)# 在线:W4A16推理W' = G_q × scale # 按组反量化回FP16/BF16y = x @ W' # 激活保持16bit,矩阵乘在高精度下完成# 在线:W4A8推理x_q = FP8量化(x) # 激活降至8bity = 低比特矩阵乘(x_q, G_q, scale) # 由原生支持低比特算子的NPU执行
在线推理的每一步,权重与KV-Cache需从内存搬运至计算单元。FP4将权重搬运量压缩至高精度的1/4,直接缓解Decode阶段的带宽瓶颈;硬件以低比特算子执行矩阵乘,又加速了Prefill阶段。两者叠加,构成”首token更快、逐token更稳、并发更从容”的体验改善。
| 格式 | 位宽 | 类型 | 典型定位 |
|---|---|---|---|
| INT4 | 4 | 定点 | 权重压缩,网格均匀,对异常值敏感 |
| FP4 | 4 | 浮点 | 权重压缩,非均匀网格,动态范围相对友好 |
| INT8 | 8 | 定点 | 权重与激活的通用量化基线 |
| FP8 | 8 | 浮点 | 训练与推理均可用,是W4A8中激活的常见搭档 |
| FP16/BF16 | 16 | 浮点 | 高精度计算基准 |
FP4与INT4:同为4比特,核心差异在数值分布。INT4间隔均匀,遇到权重分布中少量较大值时误差放大;FP4靠指数位扩展跨度,配合分组缩放后通常对量化损失更鲁棒。
W4A16与W4A8:前者侧重带宽缓解与数值稳定,适合对精度更敏感的任务;后者双侧低比特,兼顾首token延迟与整体吞吐,对硬件算子与校准提出更高要求。
权重量化与KV-Cache:FP4压缩的是权重,KV-Cache通常仍按原精度存储。长上下文场景需单独规划KV-Cache内存预算,必要时另行采用 KV-Cache压缩等通用技术。
FP4是用4比特浮点表示模型数值的低比特量化格式,核心特征是”极低位宽+浮点动态范围+分组缩放”。它通过W4A16/W4A8量化范式压缩权重体积与搬运开销,借助原生FP4算力提升加速Prefill,再配合量化—调优—部署工具链降低落地门槛,为智能体盒子等端侧硬件运行大模型提供了新的效率路径。同时它并非”免费午餐”:精度损失需任务级评测验证,KV-Cache压力需单独规划,实际收益依赖硬件算子覆盖与软件栈成熟度。理解这些能力与边界,才能在端侧大模型选型与部署中做出稳健决策。