INT8
3 秒看懂
INT8 是把神經網路中的浮點權重與啟用表示為 8 位整數,以在幾乎不損失精度的情況下大幅降低記憶體佔用、頻寬需求與計算延遲。它是深度學習部署從“調參演示”邁向“端側/資料中心大規模即時服務”的關鍵使能技術,核心在於用更小的位元數表達同一張計算圖。
3 分鐘產業解釋
傳統訓練使用 FP32(32 位浮點),推論時若沿用 FP32,會在儲存、訪存、乘法累加等方面造成嚴重浪費。INT8 量化思路是將訓練好的浮點張量對映到只有 256 個取值的離散整數空間,再在整數運算單元上完成卷積、矩陣乘等操作。這帶來三重收益:模型尺寸壓縮約 4 倍,記憶體頻寬壓力年增率例下降;整數計算單元吞吐可達浮點單元的 2–4 倍(尤其在有專用 INT8 加速器的晶片上);能耗顯著降低,適合手機、嵌入式、邊緣伺服器及雲端 GPU 的大規模併發推論。
產業中,INT8 幾乎已成為部署標配。主流推論引擎(如 NVIDIA TensorRT、Intel OpenVINO、ONNX Runtime、ARM Compute Library)都提供自動或半自動的 INT8 校準工具,支援量化感知訓練(QAT)與訓練後量化(PTQ)。硬體層面,NVIDIA 從 Turing 架構起就在 Tensor Core 中支援 INT8 矩陣運算,Intel Xeon、Apple Neural Engine、Qualcomm Hexagon 等均內建高效 INT8 流水線。INT8 的競爭焦點正從“能否跑通”轉向“量化精度保持技術”和“混合精度策略”——哪些層用 INT8、哪些保留 FP16 或 FP32,完全依賴於量化誤差分析和硬體特性。
15 分鐘專家深入
INT8 量化本質上是用有限離散值逼近連續值,其資訊瓶頸迫使開發者權衡精度、延遲、功耗。實際落地時,最小的“原子”是張量(權重張量、啟用張量),量化過程需為每個張量(或張量內的一個子塊,如 per-channel)選擇量化引數:尺度因子(scale,浮點)和零點(zero-point,整數,用於非對稱量化)。假設待量化的浮點值範圍為 [x_min, x_max],目標整數範圍為 [q_min, q_max](INT8 為 [–128, 127] 或 [0,255])。對稱量化(無零點)時,應先取閾值 T = max(|x_min|, |x_max|),再計算 scale = T / 127(採用對稱整數範圍 [-127,127]),量化過程為 q = round(x / scale),零點固定為0:
T = max(|x_min|, |x_max|)
scale = T / 127
q = clip(round(x / scale), -127, 127)
非對稱量化附加零點:
zero_point = round(q_min - x_min / scale)
q = clip(round(x / scale) + zero_point, q_min, q_max)
反向的逆量化 x_approx = scale * (q - zero_point) 將整數恢復為近似浮點數。
這種簡單線性對映對於訓練良好、值分佈相對集中的權重(如 BatchNorm 之後)效果較好;而啟用值的動態範圍隨輸入變化劇烈,便需要校準:用一小批真實資料統計啟用值範圍,確定每層的 x_min 和 x_max(可以通過 min-max、Kullback-Leibler 散度最小化、均方誤差最小化等方法)。實踐中,啟用的量化往往比權重量化更容易引入誤差,因此常用**量化感知訓練(QAT)**在前向傳播中模擬量化效應,反向仍使用浮點梯度,讓網路學會在量化誤差下保持輸出質量。訓練後量化(PTQ)雖簡便,但對敏感模型(如 MobileNet、EfficientNet 的深度可分離卷積)可能導致嚴重掉點,此時 QAT 或部分層保留高精度是必要手段。
現代推論引擎會對模型計算圖進行等價變換以適配 INT8:融合 Conv+BN+ReLU;將量化與反量化節點插入合適位置;選擇 per-tensor 還是 per-channel 量化(per-channel 對權重量化精度提升明顯,但某些硬體不支援)。同時,執行時排程會選擇將哪些操作解除安裝到專用整數加速單元。如 NVIDIA GPU 上,INT8 Tensor Core 處理矩陣乘累加的輸出通常用 INT32 累加(防止溢位),最終再反量化回 FP16/FP32 或直接輸出給下一層。整個過程需要精細的圖最佳化與硬體適配。
技術原理(最深)
量化對映與反量化
設模型某層權重張量 W 為浮點,啟用輸入 x 為浮點,則浮點卷積/矩陣乘:
y = W * x (浮點計算)
INT8 量化推論時,先對 W 和 x 分別量化,得到 W_int8, x_int8,以及各自的 scale 和 zero_point。其中對稱量化的權重張量使用閾值 T = max(|W_min|, |W_max|) 和 scale = T / 127,零點固定為0。那麼整數矩陣乘結果 y_int32(通常為 32 位累加)可通過近似恢復為浮點 y_fp:
y_int32 = W_int8 * x_int8 (整數矩陣乘)
y_fp = scale_W * scale_x * (y_int32 - ...) 涉及 zero_point 的補償項
為減少執行時開銷,許多加速器直接輸出 INT8 或使用融合的整數計算並隱式完成 re-quantize。
量化誤差最小化
量化引入的噪聲可建模為 x_quantized = x + delta_x,其中 delta_x 是量化誤差。對一個卷積層的輸出:
y_quantized ≈ W*x + W*delta_x + delta_W*x + delta_W*delta_x
誤差主要由權重誤差和啟用誤差項構成。校準的目標是選擇量化引數使輸出的誤差(如均方誤差)最小。常用策略有:
- Min-Max 標定:直接用最小值最大值,簡單但對異常值敏感。
- MSE 校準:在驗證集上搜 scale 使量化前後輸出誤差最小。
- KL 散度校準(TensorRT 採用):將啟用值的直方圖與量化後的離散分佈進行 KL 散度最小化,選擇截斷閾值。
- 自適應取整(AdaRound):對權重的數值進行自適應舍入,而非常規四捨五入,往往能大福提升後訓練量化精度。
關鍵硬體並行模式
以 NVIDIA A100 為例,其第三代 Tensor Core 可在每個時鐘週期完成較大規模的 INT8 矩陣乘(A_int8 * B_int8)並累加到 INT32。其底層計算模式為對更大的矩陣塊(如16x8x16)進行操作。由於整數運算單元數量更多、每個操作消耗的能量遠低於 FP16/FP32,吞吐量可達 FP16 的 2 倍(具體倍數因架構而異,此處定性描述)。在並行訓練方面,INT8 推論並不涉及訓練並行範式,但量化感知訓練本身仍使用浮點梯度 AllReduce。
大規模模型如 GPT 系 MoE 架構若採用 INT8 推論,其專家路由部分(gating 網路)通常依舊保留高精度,而被路由到的專家 FFN 層可量化至 INT8,以降低生成延遲。
技術演進史
- 2015 年前:神經網路多在 GPU 上用 FP32 訓練、推論,少量工作探索二值網路(BinaryConnect 等),但 INT8 未成主流。
- 2018:Google 在 TensorFlow Lite 中推進量化,釋出《Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference》論文,定義了統一的量化方式,催化 INT8 的工業實踐。
- 2018:NVIDIA 在 Turing 架構(T4 等)首次引入 INT8 Tensor Core,標榜推論吞吐大幅提升;TensorRT 提供成熟的 PTQ 工具。同年,ARM NN、Qualcomm SNPE 均支援 INT8。
- 2019–2020:QAT 成為敏感模型的閉環方案。PyTorch 正式加入量化 API(Eager Mode 與 FX Graph Mode Quantization)。華為昇騰、寒武紀等國產晶片也將 INT8 作為推論核心能力。
- 2021 至今:大型模型時代,INT8 擴充套件到 Transformer 的注意力層、大語言模型。LLM.int8() 將異常值特徵維度保留為 FP16,其餘用 INT8,幾乎無損地降低記憶體;SmoothQuant 通過平滑啟用和權重異常值實現 W8A8 量化。INT4 甚至二值化亦同步研究,但 INT8 仍是工業部署的“質量—效率”甜點。
技術路線對比(量化表)
因無檢索資料,下表基於行業公開知識進行定性對比,具體數值未標註精確來源,僅供參考。
| 量化方案 | 典型精度保持能力 | 工程複雜度 | 硬體支援成熟度 | 適用場景 |
|---|---|---|---|---|
| 訓練後量化(PTQ) | 中型模型(ResNet-50)Top-1 下降通常 ≤ 0.5%(經校準) | 低,僅需數千張校準集 | 所有推論引擎均支援 | 通用 CNN 推論,快速部署 |
| 量化感知訓練(QAT) | 幾乎無損,可匹配浮點精度 | 高,需修改訓練流程並重訓練幾輪 | 主流架構支援 | 高精度要求場景,如醫療影像、自動駕駛感知 |
| 部分層混合精度(INT8+FP16/FP32) | 較好,敏感層保留高精度 | 中等,需分析各層敏感度 | 多數引擎可手動配置 | 複雜模型(Transformer、深度可分離卷積) |
| 細粒度量化(LLM.int8()) | 異常值處理得當可接近無損 | 中等,需識別異常值維度 | 受限於特定 kernel 實現 | 大語言模型推論(>6B 引數) |
| 啟用平滑量化(SmoothQuant) | W8A8 下較好保持準確度 | 中等,需預處理權重 | 逐步被整合 | LLM 推論,要求權重和啟用均為 INT8 |
注:上述數值範圍均為典型經驗觀察,實際因模型架構、資料集、校準策略而異,此處無精確搜尋證據,僅作定性示意。
上下游
上游
- 深度學習訓練架構(PyTorch、TensorFlow)提供的量化 API 和模擬訓練基礎設施。
- 編譯器與最佳化棧:TVM、MLIR、ONNX 等中間表示層的量化運算元定義與變換。
- 校準資料集與工具鏈:用於統計啟用值範圍、誤差分析。
- 硬體設計 IP:Arm Ethos、Imagination Series4、Ceva SensPro 等提供 INT8 計算的神經加速器 IP。
下游
- 雲端端推論服務:搜尋引擎、推薦系統、語音助手、內容稽核等場景的高吞吐部署。
- 邊緣側與端側:手機拍照美化、語音喚醒、AR 濾鏡、車載感知、工業缺陷檢測。
- 大型模型推論:將百億引數模型壓縮至可單卡執行,實現低延遲對話、程式碼補全等。
- 量化工具提供商:如 NVIDIA TensorRT、Qualcomm AI Engine、地平線征程晶片工具鏈。
關鍵指標
- 吞吐量(TOPS):處理器在 INT8 下的理論最大運算元(1 TOPS = 10^12 操作/秒),直接反映峰值算力。不同晶片 INT8 TOPS 差異巨大(如某資料中心 GPU 可達數百 TOPS)。
- 模型精度損失:通常用 ImageNet Top-1 準確率差(ΔAcc)或語言模型的困惑度下降來衡量。優質 PTQ/QAT 方案 ΔAcc < 0.3%,敏感模型可能 >1%。
- 記憶體節省率:權重佔用縮減至原始 FP32 的約 25%(非嵌入式表示下)。結合啟用量化,整體推論記憶體可降低 30%–60%。
- 延遲降低幅度:與 FP32 推論相比,延遲可縮短 30%–70%,具體取決於硬體對 INT8 的加速比及計算瓶頸型別。
- 能效比(TOPS/W):INT8 運算每瓦可提供的 TOPS 通常為 FP16 的 2–3 倍。
由於缺乏檢索資料,以上為通用定性描述,未註明具體產品數值。
供需與市場資料
由於檢索受限,無法獲取最新市場份額資料。依據行業共識:全球推論加速晶片市場中,支援高效 INT8 計算的 GPU(NVIDIA)、ASIC(含 Google TPU、AWS Inferentia 等)、FPGA 和移動 SoC 內建 NPU 是主要參與者。人工智慧向邊緣遷移的趨勢持續推動 INT8 硬體 IP 的授權和晶片出貨量增長。據估算(無精準報告支援),至 2025 年,絕大部分視覺和語音模型的線上推論服務均已採用 INT8(或 INT8/FP16 混合精度);大型模型時代,INT8 成為 LLM 經濟性部署的基本要求,模型服務商(如 OpenAI、Anthropic)或內部採用類似量化技術以降低推論成本。此處僅說明趨勢,具體數字未充分揭露。
代表公司與資本對映
- NVIDIA:TensorRT、Triton 推論伺服器深度整合 INT8 最佳化;GPU 的全棧生態使其在雲端端推論佔據主導。
- Intel:Xeon 處理器通過 DL Boost(VNNI 指令)支援 INT8 卷積加速;Habana Gaudi 推論卡提供高吞吐 INT8 算力。
- Qualcomm:Snapdragon 移動平台 Hexagon NPU 針對 INT8 實現極低功耗推論,賦能手機 AI。
- Apple:A 系列和 M 系列晶片的 Neural Engine 主推 INT8 和 FP16,用於 Core ML 模型本地推論。
- Google:Edge TPU(已停產)和 Cloud TPU v5p 推論側重 INT8;TensorFlow Lite 奠定行動端量化範式。
- 華為:昇騰 310/910 推論卡支援 INT8,配合 MindSpore 和 CANN 工具鏈。
- 寒武紀/地平線/黑芝麻:自動駕駛和邊緣端 AI 晶片,INT8 是主要算力標稱方式。
投資邏輯
INT8 是連線模型能力與商業部署的“成本收斂器”,其重要性隨著模型規模膨脹而持續放大。從投資視角:
- 推論經濟性拐點:任何需要規模部署的 AI 功能(如語音助手、推薦、自動駕駛、對話 AI),INT8 是降低單位推論成本的必要手段。掌握高效 INT8 工具鏈的公司將加速模型產品化。
- 硬體差異化:是否具備高效 INT8 矩陣引擎、每瓦 TOPS 優勢,直接影響推論晶片的競爭力。因此,追蹤推論晶片公司的 INT8 峰值算力與實際利用率是關鍵。
- 軟體護城河:量化是一件極度依賴校準演算法和運算元庫的工作。NVIDIA 的 TensorRT 生態、Intel oneDNN 等積累了大量專有最佳化,形成隱性壁壘。初創公司若能在特定垂直領域(如大型模型量化、影片流處理)提供“無痛”INT8 方案,可能獲得溢價。
- 大型模型市場:LLM 量化是當前資本熱點,因為推論成本大約佔到模型全生命週期成本的 70% 以上。能將 175B 模型壓縮至消費級 GPU 上的高效 INT8 方案,可能直接決定開源模型的商業可行性。
風險點在於:若未來硬體朝 FP8 或更靈活的資料表示(如 MX 格式)演進,純 INT8 生態可能被分流。但中期看,INT8 因其成熟度和普遍的硬體支援,仍將作為推論算力基座。
常見誤讀糾偏
誤讀1:“INT8 量化就是簡單地用 8 位整數儲存模型權重,精度損失不可避免且很大。”
糾正:INT8 不僅僅是儲存,它改變了計算型別。經過校準的 PTQ 或 QAT,多數主流視覺模型精度下降不足 0.5 個百分點,甚至幾乎無損。而針對 Transformer 模型的先進量化技術(如 LLM.int8()、SmoothQuant)使數十億引數量化後效能與浮點幾乎相同。損失大小取決於量化方案和模型自身的魯棒性,並非“必定大量掉點”。
誤讀2:“使用 INT8 推論就一定會加速,延遲一定降低。”
糾正:只有在硬體提供專用 INT8 計算路徑且其頻寬、計算單元利用率高於浮點路徑時,INT8 才能顯著加速。某些老舊或低端處理器可能不支援高效的 8 位矩陣乘,此時 INT8 僅節省空間,延遲可能因額外的量化/反量化操作反而增加。此外,如果模型本身受限於記憶體頻寬而非計算吞吐,量化的加速效果也會打折扣。加速效應的發揮依賴軟硬體協同。
學習路徑
- 入門:閱讀 Jacob 等 (2018)《Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference》,掌握對稱/非對稱量化、量化感知訓練基本概念。
- 實踐:用 PyTorch 的
torch.quantization或 TensorFlow Model Optimization Toolkit 分別對 MobileNet 進行 PTQ 和 QAT,觀察延遲和精度變化。 - 深入:學習 NVIDIA TensorRT 的 INT8 校準流程(KL 散度、MinMax),理解 per-channel/per-tensor 選擇對卷積的影響;閱讀 LLM.int8() 論文(Dettmers et al., 2022)和 SmoothQuant(Xiao et al., 2023),探究大型模型量化的異常值處理。
- 硬體關聯:瀏覽目標硬體(如 GPU 白皮書、ARM 技術參考手冊)中對 INT8 計算的實現細節,理解張量核心的 tile 大小與吞吐上限。
- 業界跟進:關注 MLPerf Inference 基準測試中各提交者的 INT8 成績,分析精度-延遲權衡;追蹤 AWS Inferentia2、Google TPU v5 等推論晶片的 INT8 最新表現。
一句話總結
INT8 是通過將神經網路對映到 8 位整數空間實現的低精度推論技術,它是連線高效能 AI 模型與大規模低成本部署的橋樑,已在軟硬體生態上高度成熟,並正向更復雜的混合精度和大型模型量化拓進。
延伸閱讀與來源
由於本次資料檢索未成功,以下提供典型公開資源參考路徑(非精確論文編號):
- Jacob, B., et al. “Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference.” CVPR, 2018. (業界共識的量化範式奠基文獻)
- NVIDIA TensorRT Developer Guide – INT8 Calibration section. (線上文件)
- Dettmers, T., et al. “LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale.” NeurIPS, 2022. (大型模型異常值感知量化)
- Xiao, G., et al. “SmoothQuant: Accurate and Efficient Post-Training Quantization for Large Language Models.” ICML, 2023. (W8A8 平滑量化)
- MLPerf Inference results (www.mlcommons.org) – 提供各廠商 INT8 吞吐和延遲的工業級資料。
- PyTorch Quantization documentation (pytorch.org/docs/stable/quantization.html)
- Intel oneDNN documentation (oneapi-src.github.io/oneDNN) – 包含 INT8 核心最佳化細節。
【注】本頁所有具體技術引數均未從檢索資料中獲得,數字與具體硬體規格採用行業常識定性描述,缺乏實證來源的部分已註明“未充分揭露”或“估算”。精確投資和選型請以廠商最新白皮書和實測資料為準。