字節(jié)跳動開源GAN模型壓縮框架,算力最高節(jié)省97.8%
把鞋子的輪 廓圖:
還原成鞋子本體:
需要消耗多少計算量?
用最基本的 Pix2Pix 模型,需要消耗 56.8G ;
而當 Pix2Pix 模型被一種新技術(shù)壓縮后,只需要 1.219G ,是原來的 1/46.6,大大節(jié)省了計算量。
這里用到的技術(shù),就是字節(jié)跳動技術(shù)團隊在計算機視覺頂會 ICCV 2021 上發(fā)表的 在線多粒度蒸餾算法(Online Multi-Granularity Distillation,簡稱OMGD) 。
這種模型壓縮框架,專治 GAN 模型體積過大、太費算力,目前已經(jīng)開源了代碼(地址在文末), 以及 CycleGAN 與 Pix2Pix 的預(yù)訓(xùn)練模型,并且已經(jīng)在抖音等產(chǎn)品上落地。
和同類模型壓縮算法相比,OMGD 這項新框架,不僅壓得更小,而且壓得更好。
比如在把馬變成斑馬的過程中:
MACs 表示消耗的計算量,括號中的數(shù)字為提升倍數(shù)
還有把夏天變成冬天:
把被分割的街景圖還原成照片(注意那個騎自行車的人):
實驗表明,這項技術(shù)可以把 GAN 模型的計算量最低減少到原來的 1/46、參數(shù)量最低減少到原來的 1/82。
換算一下,就是省掉了 97.8% 的計算量。
OMGD 是怎么實現(xiàn)的
模型壓縮通常用的是「知識蒸餾」的方法,也就是由參數(shù)多、體積大的模型作為「教師模型」,來監(jiān)督優(yōu)化參數(shù)少、體積小的「學(xué)生模型」,讓學(xué)生模型在無需擴大體積的的情況下就能獲得教師模型傳授的知識。
OMGD 這項技術(shù)則是由兩個分別在神經(jīng)網(wǎng)絡(luò)寬度和深度兩方面互補的教師模型來優(yōu)化一個學(xué)生模型,整體 Pipeline 是這樣的:
該框架將不同層次的概念從中間層和輸出層進行轉(zhuǎn)移,可以在無鑒別器和無 Ground Truth 的設(shè)定下進行訓(xùn)練,實現(xiàn)知識的提煉,對在線蒸餾方案進行了整體優(yōu)化。
在 Pix2Pix 和 CycleGAN 兩大知名模型上的實驗數(shù)據(jù)表明,OMGD 可以用最少的參數(shù)、最低的計算量達到最好的圖像生成效果。
最右側(cè)的 FID 分數(shù)越小,表明生成效果越好
為什么要把大模型變小?
字節(jié)跳動技術(shù)團隊相關(guān)研發(fā)同學(xué)說,這是第一個用在線知識蒸餾來壓縮 GAN 的技術(shù)方案,已經(jīng)在抖音落地。
沒錯,你在抖音里看到的各種好玩的特效道具,背后都需要各種算法模型來運行,尤其是在處理圖像相關(guān)的特效上,GAN 是通用的方法,這套 GAN 模型壓縮方案也已經(jīng)在抖音落地,比如「動態(tài)照片」:
「舞蹈手套」:
還有「三屏人生」:
不過,GAN 模型通常體量很大,需要做大量的計算才能完成,想要落地在手機尤其是算力不足的低端機上是很大的挑戰(zhàn)。OMGD 研發(fā)團隊的一位同學(xué)說:“我們會衡量模型的覆蓋率,也就是一個模型有多少機型能流暢運行,成功壓縮模型后可以覆蓋更多手機,讓更多人用上,假如原來有的模型可能要 iPhone 11 才能用,壓縮之后 iPhone 7 也能用。”
所以,模型壓縮是個剛需,如何讓 GAN 被更多人用上、更普惠的提供服務(wù),是技術(shù)界一直在追求的方向。
字節(jié)跳動技術(shù)團隊最早 2017 年投入模型壓縮方面的研究,今日頭條、抖音、剪映、西瓜視頻等多個 App 都有相關(guān)技術(shù)落地,還曾獲得過 2020 年 IEEE 舉辦的低功耗計算機視覺挑戰(zhàn)賽(LPCV)兩條賽道的冠軍。
在經(jīng)過 OMGD 壓縮之前,團隊內(nèi)通常使用蒸餾或剪枝等算法來完成 GAN 模型的壓縮,因為模型需要的輸入分辨率很大,其計算量依舊很大,沒有壓縮到極致。
如何才能實現(xiàn)更極致的壓縮呢?
在研究了海量學(xué)術(shù)界現(xiàn)有方法之后,字節(jié)跳動技術(shù)團隊同學(xué)沒有找到適合公司業(yè)務(wù)的方法,轉(zhuǎn)而決定自行研究,創(chuàng)造性地在 GAN 模型壓縮上首次想到了用兩個互補的教師模型來訓(xùn)練同一個學(xué)生模型的方式,并且取得了實驗的成功。
現(xiàn)在,OMGD 在實踐中可以比原來的方法加速 20~30%,甚至有的能達到 80%。
并且,作為可以「在線壓縮」的方法,OMGD 大大降低了 GAN 模型生產(chǎn)的復(fù)雜性。這里的「在線」并不是我們?nèi)粘I钪兴傅木W(wǎng)絡(luò)在線的狀態(tài),而是指蒸餾過程一步到位地完成,“之前的 GAN 壓縮方法都是分幾步進行的,比如先預(yù)訓(xùn)練,壓縮之后再訓(xùn)練一遍,之后還有一些其他步驟,整體比較復(fù)雜;我們的新方法只要一步就可以完成整個過程,效果也比其他方法好得多。”團隊技術(shù)同學(xué)說。
現(xiàn)在,這類模型壓縮技術(shù)不僅能節(jié)約算力和能源,更能為用戶提供流暢體驗,幫助創(chuàng)作者激發(fā)創(chuàng)造力,豐富生活。
相關(guān)鏈接
論文地址:
https://arxiv.org/abs/2108.06908
GitHub 代碼及與訓(xùn)練模型:
https://github.com/bytedance/OMGD