最近,伴隨著DeepSeek的火爆,「模型蒸餾」這個專業名詞,也頻繁出現在大眾視野。
什么是模型蒸餾呢?
“模型蒸餾”就是把大模型學到的本領,用“濃縮”的方式教給小模型的過程,在保證一定精度的同時,大幅降低運算成本和硬件要求。
大模型:像一位見多識廣、知識儲備龐大的“大教授”,無所不知,但是“供養”他很貴。
不僅培養他的過程很耗時耗力(訓練成本高),請他過來講課成本也很高,要有很大一筆安家費(部署模型的硬件基礎設施,甚至數據中心),還要支付超高的課時費(推理成本高)。
小模型:相當于一枚小學生,知識面非常有限,但是勝在沒教授那么大譜,給個板凳坐著就夠了(部署成本低,推理成本低)。
小模型想要擁有跟大模型完全一樣的能力是不現實的,畢竟一分錢一分貨。
但是我們可以讓大模型教小模型一些基本的解題思路,讓學生和老師一樣思考問題。
教授會100種解題思路,挑兩三種不錯的教給小學生,讓小學生照葫蘆畫瓢。
這個解題思路轉移的過程,其實就是模型蒸餾。
以DeepSeek發布的六個蒸餾模型為例,滿血版671B參數量的DeepSeek R1就是“教授模型”。
而教授模型針對不同尺寸的學生模型進行知識蒸餾,這些學生模型包括↓
看,前幾天讓大家本地安裝的那些模型,其實就是從DeepSeek R1這個老師蒸餾得到的,每個學生都從老師身上學到了些“三腳貓”功夫。
因為學生模型的初始資質不同,所以得到的蒸餾模型能力也不同。
總之,腦容量越大(權重數/參數量),能力就越強,就越接近老師的水平。
那么,模型蒸餾具體是怎么干的呢?
簡單說,就是老師做一遍,學生跟著學。
但針對每個輸入的問題,老師不會直接給出確定答案,而是給出解題思路(俗稱軟標簽)。
比如,輸入一張貓的照片給老師模型,老師不會直接給出答案:這是貓,而是給出一組概率分布,告訴學生,這張圖可能是什么。
老師這么干,就是為了讓學生具備舉一反三、觸類旁通的能力,用概率分布來對應各種類別的相似程度。
如果只告訴學生這是貓,學生就不知道它和老虎有多少差別。通過這種有概率分布的軟標簽,學生就知道了老師是如何判斷、如何區分。
接下來,需要建立小模型的學習標準(綜合損失函數)。
老師雖然NB,但小模型在學習的時候,并不會完全照搬老師的思路。
它會結合自己原有數據集中的硬標簽(貓就是貓、狗就是狗),再參考老師的答案,最終給出自己的判斷。
所以,學生模型既要參考“教授給的學習筆記”(軟標簽),又要結合“媽媽給的判斷”(原有監督學習中的硬標簽)。
實操中,用“蒸餾損失”來衡量學生模型與教授模型輸出結果的差異。用“真實監督損失”來衡量學生模型對基本是非問題的判斷。
然后,再設定一個平衡系數(α)來調節這兩種損失,達到一個最優效果。
說白了,學生模型要盡量模仿教授模型的行為,蒸餾損失越小越好,但是又不能學傻了,基本的是非問題都答不對。
標準確定后,就可以進入正式的蒸餾訓練了。
?把同一批訓練樣本分別輸入到學生模型和教授模型;
?根據硬標簽和軟標簽,對比結果,結合權重,得到學生模型最終的損失值;
?對學生模型進行參數更新,以得到更小的損失值。
不斷重復這個過程?→?→?,就相當于反復刷題,每刷一輪,就找找學生答案和老師答案的差距,及時糾正。
經過多輪以后,學生的知識就會越來越扎實。
最終,蒸餾得到的小模型,盡量復制大模型的智慧,同時保持自己身輕如燕的優勢。
這樣,學生模型就可以作為課代表,獨立帶班,不需要教授坐鎮了。
擴展閱讀
一、關于不同的蒸餾路線
前面講的這種模型蒸餾,只是最常見、最通用的一種方式,叫做知識蒸餾,也叫輸出層蒸餾。
相當于老師直接告訴你最后的答案,學生只需要抄作業,模仿老師的答案就行。
這種方式操作起來最簡單,即便教師模型不開源,你拿不到教師模型,只要能調用他的API,看到老師的知識輸出,就可以模仿他,蒸餾出自己的小模型。
所以,有些模型比如GPT4,是明確聲明不允許知識蒸餾的,但只要你能被調用,就沒法避免別人偷師。
坊間傳聞,業界大模型廠商之間,都存在互相蒸餾的操作,正所謂“互相模仿、共同進步”。
除了輸出層蒸餾,還有中間層蒸餾(也叫特征層蒸餾),不僅學到最終判斷的結論,還學習老師對圖像/文本的內部理解,更深入地繼承老師的“知識結構”。
相當于學生不光看老師的最終答案,還要看老師的解題過程或中間步驟,從而更全面地學到思考方法。
但這種蒸餾方案,操作難度較高,通常需要教師模型允許,甚至主動配合,適用定制化的項目合作。
不過現在也可以通過一些手段來獲取教師模型的推理軌跡(Reasoning Traces),比如使用特殊構造的提示詞來誘導老師逐步返回推理,得到推理軌跡。
同時隨著各種推理模型的推出,有些推理模型的API本身就支持返回推理軌跡,比如Google Gemini2.0 Flash,DeepSeek等等。
二、關于蒸餾、微調和RAG
這三種方法,都是優化的大模型的手段,但是實現路徑和應用場景不同。
蒸餾:是學生通過模仿老師的解題思路,達到和老師相似的知識水平。
適用于將大模型的能力遷移到小模型上,以適配更低端的算力環境。(比如在企業私有云、個人電腦甚至手機、邊緣終端上)
微調:又叫精調,相當于學生意識到自己某門課有短板,然后自己找參考書惡補了一下,從而補上短板。
適用于特定場景下,用特定數據集對通用模型進行小規模訓練。比如通用基礎模型對醫療不大懂,就用醫療數據集給它開小灶,讓他變身醫療專家模型。
RAG:直譯過來叫做“檢索增強生成”。相當于這題我不會,但是我有“小抄”,我回答的時候,就看一眼小抄,然后再綜合我腦子里的已有知識,進行回答。
RAG,不是訓練,不改變大模型的“腦回路”,但可以作為外掛,提升大模型回答問題的精準性。適用于企業自身積累了大量知識庫文檔,通過RAG的方式,與大模型關聯。
這樣,大模型在回答問題的時候,會先檢索知識庫,進行精準回答。
三、舉兩個現實的例子
舉個例子,現在特大號公眾號后臺的自動回復,其實就是騰訊混元大模型,通過RAG的方式,連接了特大號所有的歷史文章,作為知識庫使用。
當你提問的時候,它就會檢索這些歷史文章,然后再回答問題。
再舉個例子,前幾天被熱傳的李飛飛團隊僅花費50美元,就訓練出一個比肩ChatGPT o1和DeepSeek R1的模型,其實是一種誤讀。
李飛飛團隊的s1模型,其實是基于通義的開源模型Qwen2.5-32B進行的微調,而微調所用的數據集,其中一部分蒸餾自Google Gemini 2.0 Flash Thinking。
所以,這個模型的誕生,是先通過知識蒸餾,從Gemini API獲取推理軌跡和答案,輔助篩選出1000個高質量的數據樣本。
然后,再用這個數據集,對通義Qwen2.5-32B進行微調,最終得到性能表現不錯的s1模型。
這個微調過程,消耗了50美元的算力費用,但這背后,卻是Gemini和Qwen兩大模型無法估量的隱形成本。
這就好比,你“偷了”一位名師解題思路,給了一個學霸看,學霸本來就很NB,現在看完“思路”,變得更NB了。
嚴格來講,Gemini 2.0作為閉源商業模型,雖然支持獲得推理軌跡,但原則上是不允許用作蒸餾的,即便蒸餾出來也不能商用。不過如果僅是發發論文、做做學術研究、博博眼球,倒也無可厚非。
當然,不得不說,李的團隊為我們打開了一種思路:我們可以站在巨人的肩膀上,用四兩撥千斤的方法,去做一些創新。
比如,DeepSeek是MIT開源授權,代碼和權重全開放,而且允許蒸餾(且支持獲取推理軌跡)。
那么對于很多中小企業來講,無異于巨大福利,大家可以輕松通過蒸餾和微調,獲得自己的專屬模型,還能商用。
GenAI的普惠革命時代,恐怕真的來了。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
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.