蒸餾是深度學習、大模型壓縮、模型部署、知識遷移和生成式人工智能中常見的一個術語,英文通常稱為 Distillation 或 Knowledge Distillation,即“知識蒸餾”。它用來描述一種讓小模型學習大模型能力的方法。換句話說,蒸餾是在回答:如何把一個大模型中學到的知識,遷移到一個更小、更快、更便宜的模型中。
如果說大模型像一位能力很強但成本較高的老師,那么小模型就像一位更輕量的學生。蒸餾的核心思想是:不只讓學生模型學習訓練數據中的標準答案,還讓它學習教師模型的輸出分布、判斷方式、推理傾向或中間表示。
因此,蒸餾常用于模型壓縮、移動端部署、邊緣計算、低延遲推理、小模型訓練、專用任務模型、大語言模型微調和多模態模型優化中,是理解“如何讓小模型繼承大模型能力”的重要基礎概念。
一、基本概念:什么是蒸餾
蒸餾(Distillation)是指用一個較大的教師模型指導一個較小的學生模型訓練。
典型流程可以概括為:教師模型 → 產生軟標簽或中間知識 → 學生模型學習 → 得到輕量模型。
![]()
圖 1:蒸餾的基本思想
例如,在圖像分類任務中,標準標簽可能只告訴模型:
這張圖是貓。
但教師模型可能輸出更細的信息:
其他:0.02這類概率分布被稱為“軟標簽”。
軟標簽比硬標簽包含更多信息。它不僅告訴學生模型“正確答案是貓”,還告訴它“這張圖和狗、狐貍也有一點相似,但和汽車差別很大”。
從通俗角度看:普通訓練只告訴學生“標準答案是什么”。蒸餾訓練還告訴學生“老師為什么更傾向于這個答案”。
二、為什么需要蒸餾
蒸餾之所以重要,是因為大模型雖然能力強,但使用成本也高。
大模型通常存在以下問題:
? 參數量大
? 推理速度慢
? 顯存占用高
? 部署成本高
? 不適合移動端或邊緣設備
? 在高并發場景中成本較高
例如,一個大語言模型可能在理解、生成和推理方面效果很好,但如果每次請求都調用大模型,成本和延遲可能難以接受。
這時,可以用大模型生成訓練信號,讓小模型學習特定任務。
例如:
? 用大模型生成分類標注,訓練小分類模型
? 用大模型生成問答樣本,訓練專用問答模型
? 用大模型生成推理步驟,訓練小模型模仿解題方式
? 用大模型輸出結果,訓練小模型在本地快速推理
從通俗角度看:蒸餾的目標不是讓小模型完全復制大模型,而是讓小模型在重要任務上盡量接近大模型,同時更快、更省、更容易部署。
三、蒸餾學習什么
蒸餾并不只有一種形式。學生模型可以學習教師模型的不同“知識”。
![]()
圖 2:知識蒸餾過程概覽
1、學習軟標簽
最常見的是學習教師模型輸出的概率分布。
普通監督學習通常使用硬標簽:
正確類別:貓蒸餾可以使用軟標簽:
貓 0.82,狗 0.10,狐貍 0.05……軟標簽包含類別之間的相似關系,因此更有指導價值。
例如,“貓”和“狗”都屬于動物,比“貓”和“汽車”更接近。教師模型的概率分布可以把這種關系傳遞給學生模型。
2、學習中間表示
有些蒸餾方法會讓學生模型學習教師模型的中間層表示。
例如:
? 隱藏層向量
? 注意力權重
? 特征圖
? token 表示
? 圖像特征
這種方式不只模仿最終答案,還模仿教師模型處理信息的過程。
3、學習生成結果
在大語言模型中,學生模型也可以學習教師模型生成的回答。
例如:問題 → 教師模型回答 → 學生模型學習回答風格和任務模式。
這種方式常用于指令微調、小模型訓練和專用領域模型構建。
4、學習推理過程
對于復雜任務,教師模型還可以生成中間推理步驟,讓學生模型學習更清晰的解題路徑。
不過,推理過程蒸餾需要謹慎。錯誤推理也可能被學生模型學到,因此需要篩選和驗證數據質量。
四、蒸餾的基本目標
蒸餾訓練通常希望學生模型輸出接近教師模型輸出。
![]()
圖 3:蒸餾訓練流程與損失分析
如果教師模型輸出的概率分布為 q,學生模型輸出的概率分布為 p,可以讓學生模型盡量接近 q。
常見思想可以寫為:
其中:
? L_distill 表示蒸餾損失
? q 表示教師模型輸出分布
? p 表示學生模型輸出分布
? D 表示分布之間的差異度量
在實際訓練中,也常把真實標簽損失和蒸餾損失結合起來:
其中:
? L 表示總損失
? L_hard 表示學生模型對真實標簽的監督學習損失
? L_distill 表示學生模型模仿教師模型的損失
? α 表示兩類損失的權重
從通俗角度看:學生模型既要學習標準答案,也要學習教師模型的判斷習慣。
五、蒸餾與微調、量化的區別
蒸餾常與微調、量化一起出現,但它們不是同一件事。
1、蒸餾
蒸餾關注的是:讓小模型學習大模型的能力。
它通常涉及教師模型和學生模型。
2、微調
微調關注的是:讓已有模型適應某個具體任務或領域。
例如,在法律問答數據上微調模型,使它更適合法律場景。
微調不一定涉及教師模型。
3、量化
量化關注的是:用更低精度保存和計算模型參數。
例如,把 FP16 參數壓縮為 INT8 或 INT4,以減少顯存和提高推理效率。
量化通常不改變模型結構,也不一定重新訓練模型。
4、三者關系
可以概括為:
? 蒸餾:換成更小學生模型
? 微調:讓模型適應任務
? 量化:讓模型存儲和計算更省
在實際部署中,三者可以結合使用。
例如:先用大模型蒸餾出小模型,再在業務數據上微調,最后進行量化部署。
六、蒸餾在大模型中的應用
在大語言模型時代,蒸餾的應用更加廣泛。
1、訓練專用小模型
如果某個任務比較固定,例如客服分類、合同條款識別、商品標題改寫,可以用大模型生成大量高質量樣本,再訓練一個小模型完成該任務。
這樣可以降低在線推理成本。
2、壓縮通用能力
一些小語言模型會通過學習大模型生成的數據,獲得較好的指令理解和問答能力。
這種方式不能完全復制大模型能力,但可以顯著提升小模型表現。
3、構建領域模型
在醫療、法律、金融、教育等領域,可以用強模型生成或篩選領域樣本,再訓練較小的領域模型。
不過,高風險領域必須進行專家審核,不能完全依賴教師模型生成內容。
4、提升部署效率
蒸餾后的小模型可以用于:
? 本地部署
? 移動端應用
? 低延遲服務
? 高并發場景
? 企業私有化部署
? 邊緣設備推理
從實踐角度看,蒸餾是大模型能力工程化落地的重要方法之一。
七、蒸餾的優勢、局限與常見誤解
1、蒸餾的主要優勢
蒸餾最大的優勢是讓小模型獲得接近大模型的任務能力,同時降低成本。
它可以帶來:
? 更快推理速度
? 更低顯存占用
? 更低部署成本
? 更適合本地運行
? 更適合專用任務
? 更容易上線到資源受限設備
從通俗角度看:蒸餾讓“大模型做老師,小模型學本領”。
2、蒸餾的主要局限
蒸餾也有明顯局限。
首先,學生模型容量有限,不可能完整繼承教師模型所有能力。
其次,教師模型如果輸出錯誤,學生模型也可能學習錯誤。
再次,蒸餾效果依賴訓練數據質量。如果蒸餾數據覆蓋不充分,小模型在新任務上可能表現差。
此外,蒸餾后的模型通常更適合特定任務,不一定擁有教師模型同樣的泛化能力。
3、常見誤解
誤解一:蒸餾后的小模型一定和大模型一樣強。
不對。小模型通常只能在部分任務上接近教師模型。
誤解二:蒸餾只是壓縮參數。
不準確。蒸餾不是簡單刪除參數,而是通過訓練遷移教師模型的行為和知識。
誤解三:教師模型越大,蒸餾效果一定越好。
不一定。教師模型質量、任務匹配程度、數據質量和學生模型容量都很重要。
誤解四:蒸餾可以替代所有部署優化。
不對。實際部署還可能需要量化、剪枝、緩存、并行和工程優化。
八、如何理解蒸餾的應用價值
蒸餾的核心價值是“能力遷移”。它不是為了證明小模型一定比大模型好,而是為了在效果、速度、成本和部署條件之間取得平衡。
在 AI 系統中,可以這樣理解:
? 大模型負責提供強能力和高質量示范
? 小模型負責在具體場景中高效執行
例如:
? 大模型用于生成訓練數據
? 小模型用于線上高頻調用
? 大模型用于復雜問題兜底
? 小模型用于低成本常規任務
這種組合方式可以讓系統既有較強能力,又能控制成本。
從實踐角度看,蒸餾適合那些任務邊界較清楚、數據可構造、輸出可驗證、部署成本敏感的場景。
九、Python 示例
下面用簡化示例說明蒸餾的基本思想。
示例 1:教師模型輸出軟標簽
軟標簽比“貓”這個硬標簽包含更多類別關系信息。
示例 2:學生模型學習教師輸出
蒸餾訓練的目標,就是讓學生模型的輸出分布逐漸接近教師模型。
示例 3:真實標簽與蒸餾信號結合
這個例子說明:學生模型可以同時學習真實標簽和教師模型的軟標簽。
示例 4:蒸餾數據樣本
在大模型蒸餾中,教師模型可以提供答案,也可以提供簡短解釋或結構化輸出。
小結
蒸餾是一種讓小模型學習大模型能力的訓練方法。它通過教師模型提供軟標簽、中間表示、生成結果或推理過程,讓學生模型在較低成本下獲得較好的任務表現。蒸餾不能讓小模型完全復制大模型,但可以顯著提升小模型在特定任務中的效果。對初學者而言,可以把蒸餾理解為:用大模型當老師,把有用能力遷移給更輕量的學生模型。
“點贊有美意,贊賞是鼓勵”
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.