激活量化(Activation Quantization)
3 秒看懂
一句话定义: 将神经网络前向传播中各层输出的激活值(Activation)从高精度浮点(BF16/FP32)压缩到低位宽格式(INT8/FP8/INT4 等),以大幅降低显存带宽占用和推理延迟。
核心矛盾: 激活值的分布远比权重量更”难压”——存在极端离群值(outlier),直接截断量化会导致严重精度损失。因此,激活量化本质上是一个 分布重塑 + 硬件适配 的系统工程问题。
3 分钟产业解释
为什么”激活”比”权重量化”难得多?
在推理优化领域,权重(Weight)量化已相对成熟——权重是静态的,可以离线分析其分布并精心选择量化参数。但激活值(Activation)是动态的、逐输入变化的,其分布随输入 token 不同而剧烈波动。
产业痛点拆解:
| 维度 | 权重量化 | 激活量化 |
|---|---|---|
| 数据特性 | 静态,可离线分析 | 动态,随输入实时变化 |
| 分布特征 | 相对均匀,近似正态 | 存在极端离群值,长尾分布 |
| 量化策略确定时机 | 编译/离线校准时 | 需运行时确定(动态)或精心设计的静态方案 |
| 对精度的影响 | 通常可控 | 直接量化极易导致灾难性精度退化 |
| 主要收益场景 | 减少模型存储、权重加载带宽 | 减少 KV Cache 占用、激活读写带宽、算子中间结果 |
在 LLM 推理中的关键地位:
大模型推理是典型的**带宽瓶颈型(memory-bound)**任务。尤其在自回归解码阶段,每生成一个 token,都需要:
- 将所有层的权重从 HBM 加载到 SRAM(compute die)
- 将激活值写回 HBM / 读取下一层的激活
- KV Cache 的读写
激活量化直接减少了 (2) 和 (3) 的数据搬运量。以 FP16→INT8 为例,激活数据搬运量减半;若结合权重量化(W8A8),矩阵乘累加(MAC)的吞吐可提升约 2×(在支持 INT8 Tensor Core 的硬件上)。
关键经济意义: 对于服务提供商(Inference Provider),激活量化直接影响 tokens/s/$ 这一核心商业指标——在相同硬件上提升吞吐或降低每 token 成本。
15 分钟专家深入
核心难点:离群值问题(Outlier Problem)
2022 年,Dettmers 等人在论文《LLM.int8()》中系统揭示了一个关键现象:在大规模语言模型(≥6.7B 参数)中,激活张量中存在少量维度(feature dimension)的值幅远超其他维度——幅度可达普通维度的 100× 以上。 这些离群维度通常跨越多个 Transformer 层持续存在(“emergent feature”),且仅在模型规模超过一定阈值后才出现。
如果对这些激活做均匀的 per-tensor INT8 量化:
- 量化范围被迫覆盖离群值 → 绝大多数正常值集中在少数几个量化 bin → 有效位宽被极大浪费
- 精度断崖式下降,下游任务性能几乎不可用
这一发现从根本上改变了社区对激活量化的认知: 它不是简单的”精度选择”问题,而是需要专门的 分布修正 / 异常处理 技术。
主要技术路线全景
路线一:混合精度分解(Mixed-Precision Decomposition)
代表:LLM.int8()(Dettmers et al., 2022)
核心思路: 识别出激活中的离群特征维度,将其保留为 FP16 计算,其余维度用 INT8。
输入激活 X [batch, seq, hidden_dim]
│
├── 离群维度检测 (abs(X) > threshold, per-channel)
│
├── [离群通道] ──→ FP16 MatMul ──→ FP16 结果
│
├── [正常通道] ──→ INT8 量化 → INT8 MatMul → FP16 反量化
│
└── 结果相加 → 输出激活 (FP16)
- 优点:几乎无精度损失,无需重新校准
- 缺点:需要运行时检测离群维度;混合精度计算在硬件上效率受限(INT8 和 FP16 两条路径并行)
- 典型离群维度占比:通常仅约 0.1%–1% 的特征维度 [估算,基于 Dettmers 2022 实验]
路线二:平滑量化(SmoothQuant)
代表:SmoothQuant(Xiao et al., 2022, MIT)
核心思路: 既然激活难量化而权重量化容易,能否将激活的”量化难度”迁移到权重一侧?
数学表述:
原始: Y = X · W (X 难量化, W 易量化)
引入逐通道缩放因子 s:
Y = (X · diag(s)^(-1)) · (diag(s) · W)
───────────────── ────────────
X_hat (更平滑) W_hat (继承难度)
关键公式:
s_j = (max(|X_j|) / max(|W_j|))^α
其中 α ∈ [0,1] 是超参数,控制难度迁移程度
α 越大 → 越多难度留给权重;α 越小 → 越多难度留在激活
经验值 α ≈ 0.5 附近效果最优 [Xiao et al., 2022]
- 优点: 激活和权重都可以做 per-tensor 或 per-channel 的 INT8 量化,推理时无需运行时离群检测;计算路径统一为 INT8 GEMM
- 缺点: 需要少量校准数据(几百条样本)来确定缩放因子 s;W_hat 的分布可能变得更不均匀
- 里程碑意义: 首次在 W8A8(权重 INT8 + 激活 INT8)设定下,对 OPT-175B 等大模型实现了接近无损的推理精度
路线三:FP8 激活量化
代表:NVIDIA Hopper/Blackwell 硬件原生支持
FP8 是 NVIDIA 在 Hopper 架构中引入的 8-bit 浮点格式,有两种变体:
| 格式 | 指数位 | 尾数位 | 总位宽 | 动态范围 | 精度 | 典型用途 |
|---|---|---|---|---|---|---|
| E4M3 | 4 | 3 | 8 | ±240 | 较高 | 前向传播的激活和权重 |
| E5M2 | 5 | 2 | 8 | ±57344 | 较低 | 反向传播的梯度 / 激活 |
FP8 的核心优势: 作为浮点格式,天然具有非均匀的数值表示——对小数值精度更高、对大数值范围更广。这恰好部分缓解了激活分布的离群值问题,无需像 INT8 那样精心设计缩放策略。
- FP8 Tensor Core 吞吐(以 H100 SXM 为例):NVIDIA 官方标称 FP8 Tensor Core 密集峰值约 ~1,979 TFLOPS,稀疏模式下可翻倍至 ~3,958 TFLOPS,是 FP16/BF16 密集峰值的 2× [NVIDIA H100 白皮书]
- 在 H100 上实际使用 FP8 通常需要配合 per-tensor / per-channel scaling,NVIDIA 提供了 Transformer Engine 库自动管理精度
路线四:低比特激进量化(INT4/FP4 激活量化)
代表:QuIP#(Chee et al., 2023)、AQLM(Egiazarian et al., 2024)、QUIK(Zhmoginov et al., 2023)
这是当前最前沿的研究方向,核心挑战在于:INT4 激活仅有 16 个量化级别,对长尾分布极其敏感。
关键技术手段:
- 向量量化(Vector Quantization): 不逐标量量化,而是将激活向量映射到码本(codebook),AQLM 使用乘积量化(Product Quantization)
- 旋转变换(Rotation): SpinQuant(Liu et al., 2024)/ QuIP# 引入随机正交旋转(Hadamard 变换等),将离群值”分散”到各维度,使分布更均匀后再量化
- 稀疏离群值处理: 将极少数离群值保留为 FP16,主体用 INT4
完整推理流水线中的激活量化位置
┌─────────────────────────────────────────────────────┐
│ LLM Inference Pipeline │
│ │
│ Token Embedding (FP16/BF16) │
│ │ │
│ ▼ │
│ ┌─── Transformer Layer × N ───┐ │
│ │ │ │
│ │ LayerNorm │ │
│ │ → 激活量化 (A: FP16→FP8/INT8) ← 这里 │
│ │ │ │
│ │ QKV Projection (W 已量化) │ │
│ │ → A × W = INT8 GEMM │ │
│ │ → 结果反量化至 FP16 │ │
│ │ │ │
│ │ Attention (通常保持 FP16) │ │
│ │ → Q×K^T, Softmax, ×V │ │
│ │ → KV Cache 存储 │ │
│ │ (可量化至 FP8 以省显存) ← 激活量化的延伸 │
│ │ │ │
│ │ FFN / MoE │ │
│ │ → 激活量化 → INT8/FP8 GEMM │
│ │ → MoE: All-to-All dispatch │
│ │ (激活精度影响通信量) │ │
│ │ │ │
│ └─────────────────────────────┘ │
│ │ │
│ ▼ │
│ LM Head → Logits (FP16) │
│ │ │
│ ▼ │
│ Sampling → Next Token │
└─────────────────────────────────────────────────────┘
量化参数的粒度层级
激活量化效果高度依赖于缩放因子(scale)和零点(zero-point)的计算粒度:
| 粒度 | 描述 | 精度 | 计算开销 | 典型场景 |
|---|---|---|---|---|
| Per-Tensor | 整个张量一组 scale/zero-point | 最低 | 最小 | SmoothQuant 静态方案 |
| Per-Token | 每个 token 位置独立 scale | 较高 | 中 | 动态激活量化的常见选择 |
| Per-Channel | 每个特征维度独立 scale | 最高 | 较大 | SmoothQuant + 配合权重 per-channel |
| Per-Group | 每 G 个元素一组(如 group_size=128) | 高 | 中 | FP8 推理常见配置 |
技术原理(深层机制)
量化数学基础
均匀量化(Uniform Quantization)的核心公式:
给定浮点值 x, 量化位宽 b:
量化: x_q = round(x / Δ) + z
反量化: x̂ = (x_q - z) · Δ
其中:
Δ = (x_max - x_min) / (2^b - 1) # 缩放因子 (scale)
z = round(-x_min / Δ) # 零点 (zero-point, 仅非对称量化)
对称量化 (symmetric): z = 0, Δ = max(|x|) / (2^(b-1) - 1)
非对称量化 (asymmetric): 使用完整 [x_min, x_max] 范围
激活量化的关键差异点: x_max 和 x_min 是运行时从实际激活张量中观察到的(动态量化),或通过校准数据预先估计的(静态量化)。
离群值的数学成因(简要分析)
离群值的确切成因在学术界仍有争议,但主流假说指向:
- 注意力机制中的 Sink Token 效应: 某些初始 token(如 BOS)在注意力中充当 “attention sink”,其对应的隐藏状态幅度会持续膨胀
- Transformer 的逐层积累效应: 残差连接不断叠加,某些特征通道的信号逐层放大
- 与模型规模的涌现关系: 当隐藏维度超过一定阈值后,模型自发形成少数高幅特征维度,这被认为是高维空间中的 固有维度(intrinsic dimensionality) 效应
SmoothQuant 的完整数学推导
目标: 将 X (激活) 和 W (权重) 都量化为 INT8 且保持精度
步骤 1: 识别逐通道缩放因子 s ∈ R^d_out
s_j = (max_i |X_{i,j}| / max_i |W_{i,j}|)^α
直觉: 当 X 的第 j 列有离群值时, s_j 较大
→ 用 s_j 压缩 X 的第 j 列
→ 代价是 W 的第 j 行被放大
步骤 2: 变换
X̂ = X · diag(s)^(-1) # 每列除以 s_j → 分布更均匀
Ŵ = diag(s) · W # 每行乘以 s_j → 接收量化难度
步骤 3: 量化并计算
Y = X̂_int8 · Ŵ_int8 # INT8 GEMM (硬件高效)
Y ≈ X · W # 近似原计算
关键: α 的选择
α = 0.5 → 均匀分担难度 (常见默认值)
α = 0.0 → 完全不迁移 (退化为标准 INT8 激活量化)
α = 1.0 → 完全迁移到权重
实际中 α 在 [0.4, 0.6] 之间通过校准确定
FP8 的数值表示详解
E4M3 格式 (用于前向传播):
┌──┬────┬───┐
│S │EEEE│MMM│ 总计 8 bit
└──┴────┴───┘
1 4 3
值 = (-1)^S × 2^(E-7) × (1 + M/8) [E ≠ 0 且 E ≠ 15]
特殊: E=0 → 非规格化数, E=15 → NaN (无 Inf)
最大正常值: ±240
最小非零正常值: 2^(-6) ≈ 0.015625
动态范围: ≈ 15360 (约 84 dB)
E5M2 格式 (用于反向传播):
┌──┬─────┬──┐
│S │EEEEE│MM│ 总计 8 bit
└──┴─────┴──┘
1 5 2
最大正常值: ±57344
最小非零正常值: 2^(-14) ≈ 0.000061035
动态范围: ≈ 2^30 ≈ 10^9 (约 180 dB)
对比: FP16 (E5M10) 动态范围 ≈ 2^30, BF16 (E8M7) 动态范围 ≈ 2^127
量化误差的理论分析
量化引入的均方误差 (MSE):
对于均匀量化, 假设激活值在 [a, b] 上均匀分布:
MSE ≈ Δ²/12 (Rice 公式)
Δ = (b-a)/(2^b - 1)
INT8: MSE ∝ 1/2^16
INT4: MSE ∝ 1/2^8 (比 INT8 高 256 倍)
但对于实际的非均匀分布 (含离群值):
有效 bin 数减少 → 实际 MSE 远大于 Rice 公式预测
这就是为什么实际精度退化程度 >> 理论预期
技术演进史
| 时间 | 里程碑 | 核心贡献 |
|---|---|---|
| 2017–2018 | 量化感知训练(QAT)早期 | Google 等在 CV 模型上探索 INT8 训练,激活量化作为 QAT 的一部分被纳入 |
| 2018 | TensorRT INT8 量化 | NVIDIA 推出 TensorRT INT8 校准工具,工业界首次大规模部署 INT8 推理(主要是 CV 模型) |
| 2022.02 | LLM.int8() | Dettmers et al. 发现大模型激活离群值问题,提出混合精度分解方案。激活量化的”起点论文”之一 |
| 2022.06 | SmoothQuant | Xiao et al. (MIT) 提出将量化难度从激活迁移到权重,实现 W8A8 无损推理。激活量化的里程碑 |
| 2022.09 | NVIDIA Hopper (H100) 发布 | 首次在硬件层面原生支持 FP8 Tensor Core,激活量化从”软件优化”变为”硬件原生能力” |
| 2023 | FP8 工业化 | vLLM、TensorRT-LLM 等推理框架集成 FP8 推理;Transformer Engine 自动管理 FP8 精度 |
| 2023–2024 | 低比特激进量化 | QuIP#、AQLM、QUIK、SpinQuant 等将激活量化推进至 INT4/FP4 |
| 2024 | Blackwell (B100/B200) | 进一步增强 FP8 / FP4 Tensor Core 支持,FP4 推理成为硬件原生特性 |
| 2024–2025 | KV Cache FP8 量化 | FP8 KV Cache 成为推理系统的标准优化项,显著扩展上下文长度 |
技术路线对比
| 路线 | 激活位宽 | 是否需校准数据 | 精度影响 | 硬件需求 | 推理延迟改善 | 成熟度 |
|---|---|---|---|---|---|---|
| FP16/BF16 Baseline | 16 bit | 无 | 基准 | 通用 | 1.0× | ★★★★★ |
| LLM.int8() | INT8 (混合) | 否(运行时检测) | 极小 | INT8 Tensor Core | ~1.5–1.8× | ★★★★☆ |
| SmoothQuant (W8A8) | INT8 | 是(几百条样本) | 接近无损 | INT8 Tensor Core | ~1.8–2.0× | ★★★★☆ |
| FP8 (E4M3) | 8 bit 浮点 | 通常需少量校准 | 极小 | Hopper+ / Ada+ | ~1.8–2.0×¹ | ★★★★☆ |
| INT4 激活量化 | 4 bit | 是 | 中等,依赖技术 | 需专门 kernel | ~2.5–3.5×(理论) | ★★☆☆☆ |
| FP4 | 4 bit 浮点 | 是 | 待充分验证 | Blackwell | ~3–4×(理论) | ★☆☆☆☆ |
¹ 延迟改善量取决于具体模型、batch size、硬件配置,此处为推理场景下大 batch 的粗略量级 [估算]。小 batch / 单请求场景下延迟改善可能更受内存带宽限制。
上下游
上游:激活量化依赖什么
┌──────────────────────────────────────────────────┐
│ 上游产业链 │
│ │
│ 硬件层: │
│ • GPU/加速器的低精度 Tensor Core/Matrix Engine │
│ • INT8/FP8/FP4 硬件支持 │
│ • HBM 带宽 (决定激活搬运是否为瓶颈) │
│ │
│ 软件层: │
│ • 量化算法库 (TensorRT, CUTLASS, FBGEMM) │
│ • 量化感知训练框架 (QAT toolkit) │
│ • 校准数据集 │
│ │
│ 编译器/运行时: │
│ • 图优化 pass: 自动插入量化/反量化节点 │
│ • Kernel Fusion: 将 quantize + GEMM + dequant │
│ 融合为单一 kernel, 减少中间数据搬运 │
└──────────────────────────────────────────────────┘
下游:激活量化影响什么
┌──────────────────────────────────────────────────┐
│ 下游影响 │
│ │
│ 推理系统: │
│ • KV Cache 显存占用减少 → 更长上下文/更大 batch │
│ • 每层激活暂存减少 → 支持更大模型 │
│ • 通信量减少 → 分布式推理效率提升 │
│ │
│ 商业层面: │
│ • tokens/s 提升 → 单卡服务更多并发 │
│ • 降低每 token 推理成本 │
│ • 使部分大模型在更小显存 GPU 上可运行 │
│ │
│ 模型层面: │
│ • 与权重量化组合 → 全链路 8-bit 推理 │
│ • 支撑 MoE 架构高效部署 (激活通信量大幅减少) │
└──────────────────────────────────────────────────┘
关键指标
| 指标 | 含义 | 典型基准/参考值 |
|---|---|---|
| 量化后精度退化 (ΔPPL) | 量化模型相比 FP16 的困惑度增加 | W8A8 SmoothQuant: ΔPPL < 0.1(OPT-175B);直接 INT8: ΔPPL 可能 > 1.0 [Xiao et al., 2022] |
| 激活内存占用 | 每层激活的显存开销 | BF16: 2 bytes/element; FP8/INT8: 1 byte; INT4: 0.5 byte |
| KV Cache 显存占用 | 注意力 KV Cache 的总显存 | 公式 ≈ 2 × num_layers × hidden_dim × seq_len × 2 (K+V) × precision_bytes × batch_size |
| 量化 kernel 延迟 | 含量化/反量化开销的 GEMM 延迟 | 需要与 FP16 GEMM 对比;好的融合 kernel 将量化开销控制在 < 5% |
| 校准数据需求 | 静态量化需要的校准样本数 | SmoothQuant: ~512 条典型 [Xiao et al., 2022];FP8: 通常几十到几百条 |
| 激活精度范围利用率 | 实际使用的量化范围 / 总量化范围 | 直接 INT8: 可能 < 10%(因离群值);SmoothQuant: > 50% [估算] |
供需与市场数据
需求侧驱动力
- LLM 推理成本占 AI 支出比重持续上升: 推理成本已超过训练成本成为多数 AI 公司的主要算力支出 [行业共识]。激活量化是降低推理成本的核心手段之一
- 长上下文趋势: 128K–1M+ 上下文长度的需求使 KV Cache 成为显存瓶颈,FP8 KV Cache 量化成为刚需
- MoE 架构崛起: MoE 模型(如 Mixtral、DeepSeek-V3 等)的 All-to-All 专家分发通信量与激活精度直接相关
供给侧格局
| 层级 | 代表玩家 | 角色 |
|---|---|---|
| 硬件原生支持 | NVIDIA(Hopper/Blackwell FP8/FP4)、AMD(MI300 系列 INT8/FP8)、Intel(Gaudi)、自研芯片 | 提供低精度计算单元 |
| 推理框架 | vLLM、TensorRT-LLM、SGLang、DeepSpeed-Inference、TGI | 集成激活量化策略,提供开箱即用的量化推理 |
| 算法/研究 | MIT Han Lab(SmoothQuant)、NVIDIA Research、微软、Meta FAIR | 量化算法创新 |
| 端侧/边缘 | Qualcomm(Hexagon DSP)、MediaTek、Apple Neural Engine | 移动端/边缘侧的低比特推理 |
市场规模参考
全球 AI 推理芯片市场:多家行业报告估算 2024 年约 300–500 亿美元(口径不同差异大),2028 年可能达到 1000–1500 亿美元 [多家行业报告综合估算]。激活量化技术是提升这些芯片有效吞吐的关键杠杆。
代表公司与资本映射
| 领域 | 代表公司/机构 | 与激活量化的关系 | 公开市场映射 |
|---|---|---|---|
| GPU 硬件 | NVIDIA | Hopper/Blackwell FP8 原生支持;Transformer Engine | NVDA |
| GPU 硬件 | AMD | MI300 系列支持 INT8/FP8;ROCm 生态 | AMD |
| 推理框架 | Anyscale (vLLM) | vLLM 集成 FP8 推理、KV Cache 量化 | 私有 |
| 推理芯片 | Groq | 自研 LPU 架构,量化精度策略为核心差异化 | 私有 |
| 算法研究 | MIT Han Lab (SmoothQuant) | 激活量化领域最有影响力的开源工具 | 学术机构 |
| 云服务 | AWS / Azure / GCP | 提供 FP8 实例(如 AWS p5 实例用 H100) | AMZN / MSFT / GOOGL |
| 模型公司 | Meta (LLaMA) | 模型设计时即考虑量化友好性;开源量化 checkpoint | META |
| 端侧 AI | Qualcomm | Hexagon NPU 支持 INT8/INT4 推理 | QCOM |
投资逻辑
核心投资观点
1. 激活量化是推理成本优化的”必经之路”,不是可选项
权重量化已被广泛采用;但随着模型规模增长和上下文长度扩展,激活量化正在从”锦上添花”变为”不可或缺”。每个推理芯片的性能 / 有效吞吐中,有相当比例由激活量化能力决定。
2. 硬件原生低精度支持是核心竞争壁垒
NVIDIA 通过 Hopper 的 FP8 和 Blackwell 的 FP4,在硬件层面建立了激活量化的先发优势。竞争对手需在芯片设计中同步跟进低精度计算单元、配套的 Tensor Core 矩阵引擎精度支持,这一代际差距短期难以弥补。
3. 推理框架的量化能力成为差异化要素
vLLM、TensorRT-LLM 等框架的量化支持成熟度直接影响终端用户的选择。围绕推理框架的生态锁定效应正在形成。
风险提示
- 激活量化技术快速迭代,今天的最优方案(如 SmoothQuant W8A8)可能被 FP8 原生方案取代
- 模