啟用量化(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 原生方案取代
- 模