---
title: "量化感知訓練（Quantization Aware Training）"
slug: quantization-aware-training
language: zh-TW
source: https://aiterms.tw/terms/quantization-aware-training
updated_at: 2026-06-23
tags: [量化, 模型壓縮, 模型訓練, 深度學習]
ipas_term: false
---

# 量化感知訓練（Quantization Aware Training）

在模型訓練過程中模擬量化效果的方法，通過學習量化帶來的誤差來優化模型性能，相比訓練後量化能保持更高精度。

## 完整說明

量化感知訓練（QAT）是一種在訓練階段就引入量化操作的技術，使模型能夠適應低精度表示帶來的影響。與訓練後量化不同，QAT 在前向和反向傳播中都模擬量化過程，讓權重和激活值在訓練時就適應整數或低精度運算的約束。這使得訓練得到的模型在實際量化部署時能保持更接近全精度模型的性能。QAT 特別適合對精度敏感的應用，如檢測和分割任務。

## 常見問題

### 為什麼需要在訓練中引入量化而不是訓練後再量化？

訓練後量化直接將浮點權重轉換為整數，但訓練過程中模型權重和激活值的分佈完全是為了浮點計算優化的。當突然應用量化時，會引入量化誤差，特別是在激活值上這種誤差會累積。QAT 讓模型在訓練時就知道量化的存在，優化器可以調整權重和學習率來適應量化帶來的約束，使得最終的量化模型性能更好。實驗數據表明，在語義分割任務上，訓練後量化 INT8 的 mIoU 下降 3-5%，而 QAT 只下降 0.2-0.5%。

### 直通估計器為什麼能工作？量化函數不可微應該怎麼處理？

直通估計器（STE）是一個實用的近似方法，而非嚴格的數學解。在前向傳播中進行真實的量化（round、clip），但在反向傳播時假設這些操作的梯度為 1。這樣做是因為完全的量化感知很困難：clip 的梯度存在不連續性，round 完全不可微。STE 的假設在許多情況下效果不錯，是因為量化誤差通常較小，相鄰區域的梯度變化也較小，直通近似的誤差在可接受範圍內。更高級的方法使用軟量化（soft quantization）或具有光滑近似的函數替代 round，但 STE 因簡單性和實用性最廣泛採用。

### QAT 訓練過程中如何確定激活值的量化範圍？

激活值量化範圍的確定分為靜態和動態兩種方式。靜態方式在訓練前統計若干個批次的激活值，計算其最大最小值、百分位數（如 99.9%）作為量化範圍，整個訓練期間固定。動態方式在訓練過程中持續更新，通常使用指數移動平均（EMA）平滑激活值的統計，這樣能適應訓練過程中分佈的變化。具體地，如果當前批次的最大值為 max_val，EMA 更新為：EMA_max = 0.99 * EMA_max + 0.01 * max_val。動態方式對於量化範圍變化大的任務更魯棒，但計算成本略高。實踐中，前 10-20% 的訓練步數用靜態範圍預熱，之後切換到動態更新效果較好。

---

來源：https://aiterms.tw/terms/quantization-aware-training
快查頁：https://aiterms.tw/terms/quantization-aware-training
最後更新：2026/06/23
深度解說：https://aiterms.tw/learning/what-is-quantization-aware-training