量化方案深度对比:INT4、INT8、FP8的精度与速度权衡

引言:为什么需要量化? 大语言模型的参数量和计算量呈指数级增长。一个72B模型在FP16精度下需要约144GB显存,而通过INT4量化可压缩至约36GB——单卡A100 80GB即可运行。量化已成为大模型部署的必经环节,但不同的量化方案在精度、速度和硬件兼容性上差异显著。 三大量化方案原理 INT8量化 INT8将FP16的权重映射到[-128, 127]的整数范围。核心思想是通过缩放因子(scale)和零点(zero point)将浮点数线性映射到整数空间: 量化: q = round(w / scale) + zero_point 反量化:w = scale * (q - zero_point) INT8是一种"安全"的量化方案,几乎所有主流GPU(Ampere及以上)都原生支持INT8矩阵乘法(通过Tensor Core)。 INT4量化 INT4将权重压缩到4位整数,范围仅为[-8, 7]。这意味着每个参数仅占0.5字节,相比FP16压缩了8倍。INT4通常采用分组量化(Group-wise Quantization)策略,每32或64个参数共享一组缩放因子: # INT4分组量化示例(伪代码) import torch def quantize_int4(weight, group_size=64): # 将权重按group_size分组 original_shape = weight.shape weight = weight.reshape(-1, group_size) # 计算每组的缩放因子 w_max = weight.abs().max(dim=-1, keepdim=True).values scale = w_max / 7.0 # INT4范围: [-8, 7] # 量化 q_weight = torch.round(weight / scale).clamp(-8, 7).to(torch.int8) return q_weight, scale # 反量化 def dequantize_int4(q_weight, scale): return (q_weight.float() * scale).reshape(original_shape) FP8量化 FP8是2024年起逐渐成熟的新一代低精度格式,采用浮点数而非整数表示。主流有两种格式: 格式 指数位 尾数位 范围 精度 E4M3 4 3 ±448 较高精度 E5M2 5 2 ±57344 较大范围 FP8的优势在于保留了浮点数的动态范围,对异常值更鲁棒,且NVIDIA Hopper/Blackwell架构原生支持FP8 Tensor Core。 ...

2026-07-29 · 2 min · 288 words · 硅基 AGI 探索者
量化技术对比

量化技术对比:INT4/INT8/FP8

量化:用更少的比特做更多的事 LLM的参数量从7B到671B不断增长,但GPU显存的增长速度远跟不上。量化是缓解这一矛盾最直接的技术——用更少的比特表示模型参数和激活值,在不修改模型架构的前提下减少显存占用和加速推理。 2026年,量化技术已经形成了从INT4到FP8的完整谱系,每种精度都有其适用场景和工程权衡。 量化的基本原理 对称量化 将浮点数映射到整数的固定范围。以INT8为例: x_int8 = round(x_fp / scale) scale = max(|x_fp|) / 127 反量化:x_fp ≈ x_int8 × scale 非对称量化 引入零点偏移,处理分布不对称的情况: x_int8 = round((x_fp - zero_point) / scale) scale = (max(x) - min(x)) / 255 zero_point = min(x) 量化粒度 逐张量(per-tensor):整个张量共用一个scale,最简单但精度损失大 逐通道(per-channel):每个输出通道一个scale,精度好但额外参数多 逐组(per-group):将通道分组,组内共用scale,是精度和效率的折中 def per_group_quantize(x, group_size=128): """分组量化""" original_shape = x.shape # 重排为 [out_features // group_size, group_size, in_features] x_reshaped = x.view(-1, group_size, original_shape[-1]) # 每组计算独立的scale scales = x_reshaped.abs().max(dim=1, keepdim=True).values / 127 # 量化 x_int8 = (x_reshaped / scales).round().clamp(-128, 127).to(torch.int8) return x_int8, scales def per_group_dequantize(x_int8, scales, original_shape): """分组反量化""" x_fp = x_int8.float() * scales return x_reshaped.view(original_shape) INT8量化 适用场景 INT8是最成熟的量化方案,几乎所有推理框架都原生支持。适用于: ...

2026-07-02 · 3 min · 477 words · 硅基 AGI 探索者
大模型量化技术2026

大模型量化技术2026:INT4/INT8/AWQ/GPTQ实测

引言 2026年,量化技术已经成为大模型部署的标配。随着更多量化方法和工具的成熟,开发者面临着INT4、INT8、AWQ、GPTQ、FP8等多种选择。不同量化方法在质量损失、压缩比、推理速度和硬件兼容性上各有优劣。本文将通过大量实测数据,全面对比2026年主流量化技术,帮助开发者做出最优选择。 量化技术概述 量化基础 量化是将模型权重和激活值从高精度(FP16/BF16)转换为低精度(INT8/INT4等)的过程。 核心指标: 指标 说明 影响 压缩比 量化后大小/原始大小 显存占用、存储成本 质量损失 量化后性能下降 准确性、可用性 推理加速 量化后速度提升 用户体验、成本 硬件要求 需要的硬件支持 部署灵活性 2026年主流量化方法 方法 精度 压缩比 质量损失 硬件要求 FP16/BF16 16-bit 1× 0% 所有GPU FP8 (E4M3) 8-bit浮点 2× <0.5% Hopper/Ada/A100-80G INT8 (W8A8) 8-bit整数 2× <1% 所有GPU INT4 (W4A16) 4-bit权重 4× 2-3% 所有GPU AWQ 4-bit 4-bit激活感知 4× 1-2% 所有GPU GPTQ 4-bit 4-bit压缩 4× 2-3% 所有GPU 2-bit量化 2-bit 8× 8-15% 实验性 实测对比 测试环境 硬件1:8×NVIDIA A100 80GB 硬件2:4×NVIDIA H100 硬件3:1×NVIDIA RTX 4090 模型:Llama 4 70B、Qwen3.5 72B、DeepSeek V4 基准:MMLU-Pro、HumanEval+、C-Eval、TruthfulQA FP8量化实测 方法:使用NVIDIA Transformer Engine进行FP8量化 ...

2026-06-30 · 3 min · 541 words · 硅基 AGI 探索者
quantization techniques

大模型量化技术全景:从 INT8 到 GPTQ 与 AWQ

1. 量化的动机与基础 大模型的推理成本主要由显存和计算量决定。量化通过降低参数精度来同时减少这两者: 模型: Llama-3-70B ┌──────────────┬─────────┬───────────┬──────────────┐ │ 精度 │ 显存 │ 推理速度 │ 质量损失 │ ├──────────────┼─────────┼───────────┼──────────────┤ │ FP16 (基准) │ 140 GB │ 1.0x │ 0% │ │ INT8 │ 70 GB │ 1.8x │ <0.5% │ │ INT4 │ 35 GB │ 2.5x │ 1-2% │ │ INT2 │ 18 GB │ 3.0x │ 5-15% │ └──────────────┴─────────┴───────────┴──────────────┘ 1.1 量化的数学定义 量化是将浮点数映射到低精度整数的过程: $$x_q = \text{clamp}\left(\text{round}\left(\frac{x}{s}\right) + z\right), \quad x \in [x_{min}, x_{max}]$$ ...

2026-06-25 · 8 min · 1697 words · AI 实战派
鲁ICP备2026018361号