模型量化推理加速 可视化实验室

用交互式 SVG 呈现 INT4/INT8 量化、GPTQ、AWQ、GGUF、KV-Cache 量化等大模型部署核心技术。八个模块,纯原生实现。

zero-deps HTML / CSS / JS + SVG requestAnimationFrame prefers-reduced-motion
MODULE 01

量化基础 · FP32 → INT8 映射

FP32 浮点张量如何映射到 INT8 整数。对称量化以零为中心,非对称量化引入 zero-point 偏移。拖动滑块改变真实值,观察 scale、zero-point 与量化误差。

quant-basics.svg
FP32 真实值 INT8 量化桶 反量化误差 zero-point

量化公式

对称量化:q = round(x / scale),范围 [-127, 127]。非对称量化:q = round(x / scale + zero_point),范围 [0, 255]。拖动滑块或切换模式查看映射。

scale
—
zero-point
—
量化值 q
—
绝对误差
—
MODULE 02

GPTQ · 二阶 Hessian 逐层量化

GPTQ 利用 Hessian 矩阵的逆,逐列量化权重并补偿误差到剩余列。OBITS 控制目标位宽。播放动画观察误差补偿的层层传递过程。

gptq-hessian.svg
已量化列 当前量化列 误差补偿 Hessian 对角

GPTQ 算法步骤

GPTQ 基于 OBQ(Optimal Brain Quantization),将二阶信息压缩为逐列更新:量化第 j 列后,把量化误差 Δ = ŵ_j − w_j 按 H⁻¹ 反向补偿到未量化列,从而最小化整体输出误差。

OBITS
4
量化列
0 / 6
累计误差
0
压缩比
8×
MODULE 03

AWQ · 激活感知权重保护

AWQ 发现仅约 1% 的“显著通道”对激活影响最大。通过对这些通道的权重等比缩放,降低其量化误差。调节保护比例,观察显著通道与缩放因子的变化。

awq-channels.svg
显著通道(高激活) 普通通道 缩放因子 s 量化误差

AWQ 缩放原理

对显著权重通道乘以缩放因子 s(s>1),使量化前的有效幅度增大,从而相对降低量化误差;推理时对应激活除以 s 还原。等比例缩放保持了原模型的数值关系。

保护比例
1%
显著通道
1
平均缩放
—
PPL 改善
—
MODULE 04

GGUF 格式 · llama.cpp 量化块

GGUF 采用分块量化策略:Q4_K_M / Q5_K_S / Q8_0 等使用不同位宽与分组结构。切换格式观察块结构与内存占用的差异。

gguf-blocks.svg
4-bit 权重 5/6-bit 权重 8-bit 权重 scale (FP16)

GGUF 量化格式对比

Q4_K_M:32 权重共用一组 scale,部分用 6-bit 提升关键层;Q5_K_S:5-bit 主块 + 4-bit 备份;Q8_0:8-bit 块量化,几乎无损。K-quant 通过混合位宽在精度与体积间取得平衡。

当前格式
Q4_K_M
位宽
4.5
7B 模型体积
4.4 GB
相对 FP16
26%
MODULE 05

K-V Cache 量化 · 注意力压缩

长上下文推理中 K-V Cache 是显存瓶颈。INT8/INT4 量化可大幅压缩,但会引入注意力分数误差。调节位宽观察显存节省与精度损失。

kv-cache-quant.svg
FP16 cache INT8 cache INT4 cache 注意力分数

K-V Cache 量化影响

K-V Cache 按 head 分组量化通常优于整体量化;Key 对量化更敏感(因 softmax 放大),常保留更高精度。INT8 cache 几乎无损,INT4 长序列注意力分数会出现偏差。

Cache 精度
FP16
显存占用
2.0 GB
压缩比
1×
注意力误差
0.00
MODULE 06

混合精度 · 敏感层检测

不同层对量化敏感度不同。通过逐层 PPL 扰动检测,对敏感层保留高精度,对不敏感层激进量化。调节阈值观察逐层量化策略的变化。

mixed-precision.svg
FP16(敏感) INT8 INT4 敏感度

敏感度检测策略

对每层在固定种子下做 INT4 量化,测量验证集 PPL 变化 Δ。Δ 超过阈值则判定为敏感层。常见规律:首尾层、attention 投影层更敏感;FFN 中间层不敏感。

敏感阈值
0.5
FP16 层数
—
INT8 层数
—
INT4 层数
—
MODULE 07

量化误差 · PPL 曲线对比

不同位宽与量化方法对困惑度(PPL)的影响。RTN 简单截断误差大;GPTQ/AWQ 通过补偿显著降低误差。拖动 bits 滑块查看 PPL 演化。

quant-ppl.svg
RTN(简单量化) GPTQ AWQ FP16 基线

PPL 与位宽关系

PPL 随 bit 数下降而上升。4-bit 是关键拐点:RTN 在 4-bit 以下 PPL 急剧恶化;GPTQ 与 AWQ 在 3-bit 仍能保持接近 FP16 的 PPL。2-bit 几乎所有方法都崩溃。

当前 bits
4
RTN PPL
—
GPTQ PPL
—
AWQ PPL
—
MODULE 08

端侧部署 · 推理延迟对比

移动端、TFLite、ONNX Runtime 在不同量化策略下的推理延迟。调节模型规模,对比 INT8 量化带来的加速比与内存下降。

edge-latency.svg
FP32 基线 INT8 量化 INT4 量化 加速比

端侧推理加速

移动 NPU 对 INT8 有专门加速单元,INT8 量化可获得 2-4× 加速。INT4 在多数移动硬件上无原生支持,需 dequantize 后计算,加速有限。ONNX Runtime 提供跨平台 INT8 算子。

模型规模
1.4B
FP32 延迟
—
INT8 延迟
—
加速比
—