什麼是 AI 模型蒸餾?小型模型如何向大型模型學習?

作者 쉬었음.com

AI 模型蒸餾是一種訓練技術:較小、較輕量的學生模型會學習較大、能力更強、但較笨重且成本更高的教師模型之部分預測行為。其正式名稱通常是知識蒸餾(knowledge distillation,KD)。核心概念並非單純縮減或複製大型模型的參數;而是讓學生針對相同輸入重新接受訓練,以模仿教師的答案分布,並在某些情況下模仿其內部表徵。arxiv.org

採用這項技術的原因相當明確。大型模型能在複雜問題上表現良好,但在正式環境中會受到回應延遲、記憶體、耗電、伺服器成本與裝置能力等限制。蒸餾的選擇,是在訓練期間使用大型教師的運算能力,並在實際運作時部署較小的學生。因此,理解蒸餾的最佳方式,不是把它視為將智慧神奇地折疊成更小形式的技術,而是視為將訓練成本與營運成本分配給不同模型的策略arxiv.org

為什麼要建立學生模型,而不是直接使用大型模型?

模型開發與模型運作的需求不同。訓練期間可能可以投入長時間及大量運算資源;但正式服務通常要求短回應時間與可預測的成本。在行動裝置、嵌入式設備、處理高請求量的 API,或基於隱私因素而必須在裝置端執行推論的部署環境中,模型大小與延遲會成為產品需求。arxiv.orgarxiv.org

以文件分類服務為例。若是內部審查工作,可接受花數秒分析一份文件,便可能有空間使用大型模型。但若使用者每次按下按鈕時都需要立即看到分類結果,或必須持續處理數百萬份文件,每次推論所需的記憶體與時間就會累積。若學生模型能維持接近教師的任務效能,即使犧牲部分品質,也可能成為符合營運需求的選項。

不過,不能因此斷定較小模型一定較便宜。參數數量是儲存空間與記憶體使用量的重要指標,但實際速度還取決於輸入長度、批次大小、運算函式庫、硬體及記憶體傳輸成本。因此,論文中報告的加速數字不應原封不動套用到其他硬體與工作負載。arxiv.orgarxiv.org

教師與學生模型在知識蒸餾中交換什麼?

在一般監督式學習中,正確答案會以單一標籤提供,例如「這張圖片是貓」或「這個句子是正向」。這可稱為硬目標(hard target)。不過,教師模型不只會產生一個答案;它會針對每個可能答案計算不同分數或機率。例如對一張圖片,它可能預測貓為 0.70、狐狸為 0.20、狗為 0.08。

蒸餾會將此分布作為學生的額外訓練材料。除了貓是正確答案這項資訊外,它還傳達教師認為該輸入與狐狸有一定相似性、與狗的相似性較低的訊號。Hinton 與共同作者指出,這類軟目標能傳達單一硬標籤無法包含的有用資訊。arxiv.org

在此,「知識」並不是以人類語言寫成的規則清單。更精確地說,它指的是教師已學得的函數與行為模式,即將特定輸入映射至輸出的方式。學生不一定會直接保留教師的參數,也可能有不同的層數或架構。重要的是,對於特定輸入,學生的輸出或表徵會依據所選目標函數接近教師。arxiv.orgarxiv.org

軟目標與溫度如何運作?

分類模型的最終層通常會產生稱為 logits 的分數,然後透過 softmax 函數將其轉換為機率分布。在蒸餾中,可以使用將教師與學生 logits 除以溫度 (T) 的 softmax,讓分布變得更平滑。

[ p_i^{(T)}=\frac{\exp(z_i/T)}{\sum_j\exp(z_j/T)} ]

其中,(z_i) 是類別 (i) 的 logit。當 (T=1) 時,這就是一般的 softmax。提高溫度會使原本僅集中在最高機率類別的分布趨於平坦,讓排名較低類別間的相對差異也能作為學習訊號。因此,僅將溫度描述為「模糊教師答案」並不完整。溫度並非自動增加資訊量的開關,而是改變學生所學習分布形狀的控制項。arxiv.orgproceedings.mlr.press

實務上,訓練通常會結合兩種目標。一種損失函數鼓勵學生預測真實標籤;另一種蒸餾損失則鼓勵它接近教師的軟輸出。可簡化寫成如下:

[ L=\alpha L_{\text{ground truth}}+(1-\alpha)L_{\text{distillation}} ]

(\alpha)、溫度 (T) 與蒸餾損失的類型,都是需要調整的值。較高的溫度或較大的教師訊號權重不一定更好。研究也指出,溫度選擇的效果可能隨教師分布的特性而不同,例如教師曾以標籤平滑進行訓練時。proceedings.mlr.pressproceedings.mlr.press

只比對輸出就足夠嗎?

蒸餾最基本的形式只比對最終輸出,可稱為基於回應的蒸餾(response-based distillation)。在分類模型中,機率或 logits 是主要目標;在語言模型中,下一個 token 的分布是主要目標。只要能取得教師的輸出,即使不知道其內部架構,這種方法也相對容易實作。arxiv.orgproceedings.mlr.press

然而,有些方法認為,僅有最終答案無法充分傳達教師的運算過程。在 Transformer 等多層表徵與注意力都很重要的架構中,可訓練學生模仿教師的中間訊號,包括嵌入向量、隱藏狀態與注意力矩陣。這稱為**基於特徵的蒸餾(feature-based distillation)**或中間層蒸餾。arxiv.org

TinyBERT 提出使用嵌入層、Transformer 層與預測層的訊號,並在通用預訓練及任務特定微調期間都進行蒸餾。該論文的消融實驗顯示,移除 Transformer 層蒸餾會導致效能顯著下降。這並非表示中間層蒸餾永遠不可或缺,而是說明依架構與任務而定,最終輸出以外的訊號可能有用。arxiv.org

另一項區分是離線蒸餾(offline distillation)線上蒸餾(online distillation)。離線蒸餾會固定已訓練完成的教師,再訓練學生。線上蒸餾則使用多個模型在訓練期間彼此教導,或使用同步產生的教師訊號。是否能維護獨立教師、可負擔多少訓練成本,以及是否需要一同訓練模型,都是選擇兩者時的判斷標準。arxiv.org

蒸餾與剪枝、量化有何不同?

雖然三者都以模型壓縮為共同目標討論,但它們減少的是不同事物。蒸餾關注的是學習訊號與學生模型的行為。相較之下,剪枝會移除重要性較低的連接、通道、頭或層,以減少結構;量化則透過降低位元寬度或改變用於表示權重與活化值的數值格式,降低儲存與運算成本。arxiv.orgarxiv.orgarxiv.org

方法主要改變的項目典型優勢應驗證的條件
知識蒸餾學生的學習目標與架構小型模型學習教師的行為教師品質、資料、容量落差
剪枝連接、通道、頭、層從既有結構移除冗餘目標硬體是否真的能更快處理稀疏結構
量化數值精度降低記憶體使用與整數運算成本準確率損失、硬體與執行環境支援
合併使用訓練與表示方式可能達成更高壓縮率各階段的品質劣化與營運複雜性

例如,將 32 位元浮點權重轉換為 8 位元整數就是量化。以大型教師的輸出分布作為目標,訓練六層學生 Transformer,則是蒸餾。兩者也可以依序套用。然而,論文達成高壓縮率,並不代表真實服務的延遲會以相同比例下降。尤其量化的效果,取決於目標 CPU、GPU 或 NPU 對相關整數運算的支援程度。arxiv.orgarxiv.org

BERT 系列範例說明了什麼?

語言模型蒸餾是理解此概念的實用範例。BERT-base 是廣泛用於語言理解任務的預訓練 Transformer,但在資源受限環境中部署時可能負擔很重。DistilBERT 研究提出一種預訓練蒸餾方法,從部分 BERT 層初始化較小模型,並結合語言模型損失、蒸餾損失及餘弦距離損失。arxiv.org

該研究報告指出,在 GLUE 開發集上保留約 97% 的 BERT 效能,同時將參數數量減少約 40%。在論文定義的 CPU 測量條件下,也顯示了較短的推論時間。然而,這些數字是在英文基準測試、特定 BERT 組態、特定硬體及指定輸入條件下取得,不應被當成保證韓文、長文件、檢索增強系統、生成式對話或其他加速器也能獲得相同結果的通用數字。arxiv.org

TinyBERT 報告指出,較小的四層模型在論文條件下,相對於 BERT-base 仍保有強勁效能,同時大幅減少模型大小與推論時間。它也提出消融實驗,顯示通用蒸餾、任務特定蒸餾、資料增強及中間層訊號都會影響結果。此範例的實務教訓很簡單:只連接一個教師與一個學生並不夠;蒸餾時機、資料、學生架構與損失設計會共同決定結果arxiv.org

蒸餾在何時特別有效?

蒸餾特別值得考慮的情況,不是必須完美保留大型模型品質時,而是同時存在明確效能下限與嚴格營運限制時。範例如下:

  • 裝置端推論:網路連線不穩定,或因隱私需求而難以將輸入傳送至外部伺服器的環境。
  • 高量重複推論:需處理大量短輸入的分類、排序與偵測任務,累積成本與延遲相當重要。
  • 特定領域任務:相較於通用模型的全面能力,在明確文件類型或標籤系統上的效能更重要的情況。
  • 取代模型集成:多個模型的預測平均有助於品質、但營運成本過高,因此用單一學生近似其行為的情況。arxiv.org

反之,若學生絕不能漏掉罕見案例,或必須忠實重現教師的長篇推理流程、工具使用或複雜安全政策,評估標準就需要更廣泛。即使平均準確率很高,特定群體、罕見類別或高風險輸入的效能仍可能惡化。研究發現,最差類別效能與平均準確率的關係,可能隨蒸餾目標的設計而變化。proceedings.mlr.press

蒸餾有哪些限制?

首先,學生學到的不是教師本身,而是教師的可觀察行為。若教師做出錯誤預測或反映資料偏誤,學生也可能學到這些訊號。即使同時使用硬標籤損失與蒸餾,也不會自動解決偏誤、事實正確性、資安或安全相關問題。蒸餾後仍應使用獨立於原始教師的評估集檢查品質。arxiv.orgproceedings.mlr.press

第二,若學生過小,便無法充分模仿教師,這稱為教師—學生容量落差(capacity gap)。相關研究指出,當小型學生嘗試遵循過大型教師的訊號時,效能可能惡化;更準確的教師也未必總是更好的蒸餾教師。選擇教師不只是排名競爭,也涉及其與學生架構的相容性。arxiv.orgarxiv.org

第三,蒸餾可能將營運成本轉移為前期訓練成本。必須先訓練或取得教師、計算並儲存蒸餾資料的教師輸出,且可能需要探索溫度、損失權重與層對應。因此,若分析只執行一次,直接使用教師可能較簡單;若服務長期且重複運行,便有更多機會回收開發學生的成本。arxiv.orgarxiv.org

第四,蒸餾不保證「可解釋的壓縮」。即使學生產生與教師相似的預測,它是否透過相同內部機制做出決策,以及是否保留教師的全部資訊,都是不同問題。近期研究也指出,尚不清楚小型學生是否能透過蒸餾接收教師的所有資訊。proceedings.mlr.pressproceedings.mlr.press

常見誤解有哪些?

「蒸餾不會造成效能損失」的誤解

蒸餾研究顯示,小型模型能維持高效能,但這是在特定評估條件下的觀察結果。若輸入分布改變、長輸入變得更常見,或罕見案例變得重要,教師與學生之間的差距可能擴大。因此,不應只依賴「教師效能的某個百分比」這類單一數字,而應一併評估服務所需的準確率、召回率、延遲、記憶體與安全指標。arxiv.orgarxiv.org

「它會複製教師模型的全部知識」的誤解

學生會在有限的參數與架構內,近似教師的輸出或部分表徵。很難將教師的所有內部資訊視為已原封不動地轉移。蒸餾結果取決於資料、目標函數、學生容量與最佳化方法。proceedings.mlr.pressproceedings.mlr.press

「較少參數一定代表更快推論」的誤解

減少參數通常有助於降低記憶體需求,但實際延遲取決於計算圖、序列長度、批次大小與硬體瓶頸。特別是 Transformer 的注意力計算負擔會隨輸入長度大幅變化,因此必須在目標裝置上進行端到端測量。arxiv.orgarxiv.org

「有教師輸出就不需要原始資料」的誤解

有研究探討無資料或零樣本蒸餾,嘗試在沒有原始訓練資料的情況下利用教師進行蒸餾。然而,這是一種特殊設定,需要另外生成合成資料或採用近似輸入分布的方法。一般蒸餾會使用具代表性的輸入資料與教師訊號,而同時使用真實標籤的方法也很普遍。proceedings.mlr.pressproceedings.mlr.press

在實務部署蒸餾前應檢查什麼?

與其根據模型名稱做決定,更安全的做法是從部署目標反向推導。首先要量化的不是「需要多小的模型」,而是「必須符合哪些品質與營運需求」。以下是最低限度的檢查清單。

  1. 區分任務標準。 除了平均準確率外,還應定義召回率、偽陽性與偽陰性的成本、最差群體效能、回應時間與記憶體限制。
  2. 驗證教師。 不只檢查教師的基準分數,也要檢查實際領域資料、錯誤類型、偏誤與安全需求。未經驗證的教師不保證能提供良好學習訊號。
  3. 先設定學生預算。 清楚定義參數數量、最大記憶體、可接受延遲、輸入長度與部署硬體。學生過小時,容量落差可能擴大。arxiv.org
  4. 選擇蒸餾目標。 對簡單分類而言,輸出蒸餾可以作為起點;當表徵品質重要時,例如 Transformer 壓縮,可測試中間層與注意力蒸餾。arxiv.org
  5. 以相同測試比較教師與學生。 除了一般準確率,也應納入與實際流量相近的輸入長度、罕見案例及錯誤率高的群體。
  6. 在目標硬體上測量。 區分模型檔案大小、記憶體、初始載入、包含 tokenization 與前處理的延遲、吞吐量及耗電量。arxiv.orgarxiv.org
  7. 分別驗證後續壓縮。 若在蒸餾後套用量化或剪枝,應在每個階段後分別記錄品質劣化與速度提升。

結論:蒸餾打造的是合適的營運平衡,而不只是「小型模型」

AI 模型蒸餾會將大型教師學得的預測分布與表徵轉移給學生,建立可在受限資源下使用的模型。關鍵在於,為原本只從硬標籤學習的學生加入教師的軟目標,並在需要時加入中間層訊號。arxiv.orgarxiv.org

不過,蒸餾並非免費保留效能的檔案壓縮技術。教師錯誤與偏誤、學生容量、蒸餾資料的代表性、溫度與損失設計,以及實際硬體特性,都會影響結果。因此,最合理的下一步不是鎖定某篇論文的壓縮率,而是先定義自身任務所需的最低品質與最高延遲及成本,再在相同條件下比較教師與候選學生。

常見問題

AI 模型蒸餾只是壓縮模型檔案嗎?

不是。知識蒸餾是一種從頭訓練較小學生模型的方法,會將較大教師模型的輸出分布或中間表徵作為學習訊號。其核心機制不同於縮小檔案大小的量化,也不同於移除不必要連接的剪枝。

較大的教師模型一定能產生較好的學生模型嗎?

不一定。若教師與學生之間的容量差異過大,容量落差問題可能使學生無法充分學習教師的訊號。更準確、規模更大的教師,並不保證能產生比小型教師更好的學生。

蒸餾模型能保證與原始模型有相同的準確率嗎?

不能。DistilBERT 與 TinyBERT 等研究顯示,小型模型在特定資料集與硬體條件下可以維持高效能,但實際應用中的效能差距取決於任務、資料、輸入長度、學生架構與超參數。

知識蒸餾與量化可以一起使用嗎?

可以。蒸餾處理學生模型的訓練方式,量化則處理權重與運算的數值表示,因此兩者解決的是不同問題。不過,合併使用時,應在目標硬體上分別驗證準確率、延遲與記憶體使用量。

蒸餾可以套用於生成式 AI 嗎?

可以套用其原理。不過,生成式模型涉及 token 分布、長篇生成流程、安全規則、工具使用及其他行為,而非單一分類機率。僅比對最終輸出,無法證明原始模型的能力與安全行為已被完全一致地重現。