
文 | 小偉
編 | 小轶
導師: 小偉,聽說你對知識蒸餾比較了解,你來給我說說知識蒸餾有什麼用?
我: 知識蒸餾是一種很典型的模型壓縮的方法,我們可以用它來有效地從大型教師模型學習小型學生模型,并且學生模型的性能也很不錯。
導師: 那它既然叫知識蒸餾,你怎麼知道學生模型是不是真的充分學到了教師模型的知識呢?
我: 這不簡單嘛,學生模型的效果好不就說明學到充足的知識了。
導師:一看你就不關心最新的學術進展,天天是不是忙着吃雞了!最近NYU和Google聯合發了一篇文章,仔細探索了知識蒸餾中學生模型的精度和蒸餾效果之間的關系,快去讀一讀!
我: 好嘞~
論文标題:
Does Knowledge Distillation Really Work?
論文位址:
https://arxiv.org/pdf/2106.05945
arxiv通路慢的小夥伴也可以在 【夕小瑤的賣萌屋】訂閱号背景回複關鍵詞 【0825】 下載下傳論文PDF~
随着自然語言處理進入了預訓練模型的時代,模型的規模也在極速增長,GPT-3甚至有1750億參數。如何在資源有限的情況下部署使用這些龐大的模型是一個很大的挑戰。
目前知識蒸餾在解決這一問題中的方法中占據了重要的地位。我們可以通過知識蒸餾來學習容易使用的小型學生模型,但是它真的可以起到蒸餾教師模型知識的效果嗎?在這篇文章中,作者對這一問題進行了詳細的探索與解答,下面我們就來一探究竟。
NYU & Google: 知識蒸餾無處不在,但它真的有用嗎?概要為什麼需要比對度?導緻低比對度的原因總結Final Question 概要
NYU & Google: 知識蒸餾無處不在,但它真的有用嗎?概要為什麼需要比對度?導緻低比對度的原因總結Final Question
盡管目前有很多知識蒸餾相關的研究,但它們主要集中于如何提高學生模型的泛化性(generalization),往往忽視了學生模型的預測和教師模型的預測的比對程度(fidelity),我們可以簡單稱之為學生模型的比對度。相比泛化性,比對度更好的反映了學生模型蒸餾到了多少教師模型含有的知識。
本文對這兩種概念做了詳細的解釋與區分,并且指出獲得良好的比對度對學生模型來說往往是很困難的。
基于此現象,作者探索了兩種可能導緻這種困難的原因:
- Identifiability: 蒸餾資料不夠充足,是以在訓練資料上學生-教師預測可以比對并不意味着在測試資料上也可以比對。
- Optimization: 我們不能很好地解決蒸餾優化問題,是以不管是在訓練資料還是測試資料上,學生模型的比對度都比較低。
NYU & Google: 知識蒸餾無處不在,但它真的有用嗎?概要為什麼需要比對度?導緻低比對度的原因總結Final Question 為什麼需要比對度?
NYU & Google: 知識蒸餾無處不在,但它真的有用嗎?概要為什麼需要比對度?導緻低比對度的原因總結Final Question
之前的研究已經揭示了知識蒸餾通常會提高學生模型的泛化能力,是以我們為什麼還要關心學生模型的比對度呢?
- 首先是學生模型的泛化性能和教師模型的泛化性能往往有比較大的差距,提高比對度是消除學生和教師泛化性能差異最顯而易見的方法。
- 其次良好的學生模型比對度可以提高知識蒸餾的可解釋性與可信賴性。
- 最後,将比對度和泛化性解耦可以幫助更好的了解知識蒸餾是怎麼工作的以及如何在各種應用程式中更好的利用它
學生模型的比對度高嗎?
作者使用3個ResNet-56網絡的內建來作為教師模型,使用單個的ResNet-56網絡來作為學生模型進行知識蒸餾。
如Figure 1(b)顯示,學生模型和教師模型的預測之前有着顯著的差距(Low Test Agreement),也就是低比對度。
NYU & Google: 知識蒸餾無處不在,但它真的有用嗎?概要為什麼需要比對度?導緻低比對度的原因總結Final Question 導緻低比對度的原因
NYU & Google: 知識蒸餾無處不在,但它真的有用嗎?概要為什麼需要比對度?導緻低比對度的原因總結Final Question
學生模型的比對度比較差,是什麼原因導緻的呢?
作者給出了兩個可能的原因,并進行了相應的探索與驗證。
首先可能是蒸餾資料不夠充足
作者設計實驗探索了在蒸餾過程中使用不同的資料增強政策是否可以提高學生模型的比對度。
如Figure 3所示,實驗結果證明雖然資料增強在縮國小生-教師模型預測差距上是有用的,但它帶來的改進很小,是以蒸餾資料不足不是導緻低比對度的主要原因。
既然蒸餾資料數量不足不是主要原因,那麼會不會是蒸餾資料的分布偏移導緻的呢?
作者同樣設計了實驗來驗證這一猜想。Figure 4中的實驗結果顯示調整蒸餾資料的分布可以帶來微小的改進,這也證明了資料的錯誤選擇不是導緻低比對度的主要原因。
其次可能是蒸餾過程中的優化有問題
既然資料不夠充足或者分布有偏移不是主要原因,那麼會不會是因為學生模型本來就沒有充分的學習訓練集,導緻即使是在訓練資料上學生-教師預測的差異都很大呢?
為了驗證這一猜想,作者使用ResNet-56以及CIFAR-100設計了簡單的蒸餾實驗。
如Figure 5所示,當使用廣泛的資料增強政策時,即使是在訓練集上,學生模型的比對度也會比較低。這印證了我們的猜想,學生模型沒有充分的學習訓練資料。
那麼為什麼即使是在訓練集上,學生-教師模型預測的比對度都很低呢?原因其實很簡單,知識蒸餾的優化會收斂于次優解,進而導緻低比對度。
NYU & Google: 知識蒸餾無處不在,但它真的有用嗎?概要為什麼需要比對度?導緻低比對度的原因總結Final Question 總結
NYU & Google: 知識蒸餾無處不在,但它真的有用嗎?概要為什麼需要比對度?導緻低比對度的原因總結Final Question
作者總結了本文的關鍵發現:
- 學生模型的泛化性能(generalization)和比對度(fidelity)的變化趨勢并不一緻
- 學生模型的比對度(fidelity)和蒸餾的校準(calibration)有很大的關聯
- 知識蒸餾過程中的優化是很困難的,這也是導緻低比對度的主要原因
- 蒸餾優化的複雜度以及蒸餾資料的品質之間存在均衡(trade-off)
NYU & Google: 知識蒸餾無處不在,但它真的有用嗎?概要為什麼需要比對度?導緻低比對度的原因總結Final Question Final Question
NYU & Google: 知識蒸餾無處不在,但它真的有用嗎?概要為什麼需要比對度?導緻低比對度的原因總結Final Question
現在回到我們最開始的問題,知識蒸餾真的有用嗎?
毫無疑問,它是有用的,因為它通常可以提高學生模型的泛化性能;同時它也是沒用的,因為它總是将很有限的知識從教師傳遞到學生,這與它的名字知識蒸餾相去甚遠。是以我們是不是可以改稱它為knowledge enhancement?
小夥伴,你們怎麼看呢?
最後的最後,
導師: 小夥子不錯啊,論文讀得又快又精準,這周的Reading Group就交給你了。
我: 嗚嗚嗚,又是我,滾去讀論文了~
尋求報道、約稿、文案投放:
添加微信xixiaoyao-1,備注“商務合作”
![]()
NYU & Google: 知識蒸餾無處不在,但它真的有用嗎?概要為什麼需要比對度?導緻低比對度的原因總結Final Question 背景回複關鍵詞【入群】
加入賣萌屋NLP/IR/Rec與求職讨論群
背景回複關鍵詞【頂會】
擷取ACL、CIKM等各大頂會論文集!
![]()
NYU & Google: 知識蒸餾無處不在,但它真的有用嗎?概要為什麼需要比對度?導緻低比對度的原因總結Final Question