四篇NeurIPS 2019论文,快手特效中的模型压缩了解一下
在即將過去的 2019 年中,快手西雅圖實驗室在 ICLR、CVPR、AISTATS、ICML 和 NeurIPS 等頂會上發表了十多篇論文。
除了這些研究方面的成果,針對實際業務,西雅圖實驗室和快手商業化還推出了基于 GPU 的廣告推薦訓練系統 Persia,采用這樣的訓練系統單機能提升 640 倍的效率,已經在業務場景中廣泛使用;此外提出的新算法對商業化廣告收益也有大量提升,新技術在視頻風格遷移和游戲業務中也有多項落地成果。這是快手西雅圖實驗室在 2019 交出的一份成績單。
那么在 NeurIPS 2019,在模型壓縮領域,快手短視頻最新應用的技術是什么樣的?我們在應用各種視覺特效時,為什么以龐大著稱的深度神經網絡能滿足我們的要求?在本文中,機器之心將介紹快手在 NeurIPS 2019 的四篇研究成果,并重點探討他們在模型壓縮方面的努力。
下面是本文的目錄,我們將以如下結構介紹這四項研究成果:
快手在 NeurIPS 2019
在快手做研究
研究框架用什么?
論文代碼要開源?
模型壓縮在快手
模型壓縮這條邏輯線
優化器:「有些參數生而冗余」
從數學看優化器
對抗訓練:「我也能變壓縮」
從數學看對抗與壓縮
快手在 NeurIPS 2019
在最近的 NeurIPS 2019 中,快手及合作者展示了四項新研究。這四項研究中有三項已經或者正在應用到實際業務中,例如第一篇跟 University of Rochester 和 TAMU 合作的模型壓縮的工作,它已經應用到一些 CV 任務中,包括快手比較炫酷的風格遷移。
第二篇模型壓縮更像新方法方面的探索,它也能用于部分應用而加速視頻的處理過程。第三篇強化學習正應用于游戲 AI,它可以令智能體學會「團隊協作」。
論文:Adversarially Trained Model Compression: When Robustness Meets Ef?ciency
地址:https://papers.nips.cc/paper/8410-model-compression-with-adversarial-robustness-a-unified-optimization-framework
論文:Global Sparse Momentum SGD for Pruning Very Deep Neural Networks
地址:https://papers.nips.cc/paper/8867-global-sparse-momentum-sgd-for-pruning-very-deep-neural-networks
論文:LIIR: Learning Individual Intrinsic Reward in Multi-Agent Reinforcement Learning
地址:https://papers.nips.cc/paper/8691-liir-learning-individual-intrinsic-reward-in-multi-agent-reinforcement-learning
論文:Ef?cient Smooth Non-Convex Stochastic Compositional Optimization via Stochastic Recursive Gradient Descent
地址:https://papers.nips.cc/paper/8916-efficient-smooth-non-convex-stochastic-compositional-optimization-via-stochastic-recursive-gradient-descent
當然,這些研究成果是快手與合作者聯合完成的,例如第二篇模型壓縮就是清華大學-快手未來媒體數據聯合研究院以及快手西雅圖實驗室共同完成的。
快手西雅圖實驗室負責人劉霽表示:「這四項研究都有其獨特的亮點。在第一篇對抗訓練的模型壓縮中,它會把各種壓縮方法都集中到一起,并做一種聯合優化,這和之前按照 Pipeline 的形式單獨做壓縮有很大的不同。與此同時,模型還能抵御對抗性攻擊,這是兩個比較有意思的思路。」
「一般剪枝方法都需要大量調參以更好地保留模型性能,而全局稀疏動量 SGD 會端到端地學習到底哪些權重比較重要,重要的就少壓縮一點,不重要的就多壓縮一點。」,論文合著者,清華大學軟件學院副院長丁貴廣說,「第二篇論文的核心思想在于,我們給定一個壓縮率,模型在訓練中就能自己剪裁,并滿足這個壓縮率。」
「對于第三篇多智能體強化學習是跟騰訊 AI Lab 和 Robotics X 合作,它希望智能體能快速學會利用自己所觀測的信息來相互配合。比如說在星際爭霸中,我們發現確實會產生多智能體合作的現象,模型會讓一些防高血厚的單位去抗對方的輸出,己方輸出高的單元會躲到后方攻擊。」,劉霽說。
「雖然把所有的 agents 看成是一個 agent,理論上也可以學到最終的配合效果,但是效率會非常低,不具有可擴展性。我們的方法通過一種 intrinsic reward 的機制兼顧了可擴展性和效率,通過鼓勵每個 agent 按照單體利益最大化的原則去學習自己的 policy,然后這種 intrinsic reward 的影響會越來越小最后快速達到學到整體最后的方案」,劉霽說。
受傷的智能體 2 躲入血厚的智能體背后,并繼續輸出傷害。
「最后第四篇是與騰訊 AI Lab 合作的更偏理論的一項研究,它是針對復合函數的最優化方法。這里復合指的是一個數學期望函數中復合了另一個數學期望,而常規的 ML 目標函數就只有最外面一個數學期望。」,劉霽說,「這種最優化方法在風險管理或 RL 中非常有用,例如在 RL 中解貝爾曼方程,它本質上就是復合函數最優化問題。」
在快手做研究
在快手做研究,數據與算力并不是難事,實習生在授權條件下也能拿到很多一手脫敏數據。在快手做研究,從 Idea 到模型上線這條鏈路非常短,研究者能很快看到實驗室結果對產品的影響。
因為鏈路短,研究者很容易接觸一手的線上反饋,這一點特別重要。劉霽說:「我認為最好的研究工作一定是從現實場景與反饋中生成出來的,因此我們做的解決方案、理論分析或算法升級才能真正服務于某個具體的問題。」
清華大學軟件學院副院長丁貴廣也表明,「清華大學軟件學院與快手聯合建立了未來媒體數據聯合研究院,其研究方向主要圍繞著快手短視頻業務以及未來媒體。我們的合作研究很多都和媒體任務相關,快手會提供很多技術需求與對應的資源。」正因為研究與應用之間的路徑非常短,新研究才能更快得到迭代。
在快手做研究應該會很有意思,機器之心也比較好奇做研究的框架或開源策略都是什么樣的。為此,下面我們可以從兩方面一瞥快手研究者的思路。
研究框架用什么?
「這當然會分場景,對于 CV 研究來說,PyTorch 或 TensorFlow 開源框架是足夠的。但是對于產品,我們新成立的 AI 平臺部門則主要致力于提供一些通用化的機器學習和深度學習的工具,它會為不同的業務優化一些底層技術。」,劉霽說。
對于研究框架,新入職的博士同學說:「TensorFlow 2.0 嘗試構建易于使用的動態圖編程,但 1.X 的很多歷史包袱也要支持,因此整體上很難做到統一。此外,TensorFlow 1.X 暴露了過多不需要關心的 API,而 2.0 目前又存在很多問題。所以,做研究我更喜歡用 PyTorch。」
論文代碼要開源?
在快手研究者的眼中,開源是一件很重要的事,但好的研究成果并不一定需要通過開源來體現。
「首先,開源代碼對研究肯定是一件有益的事,能極大方便同行的研究做比較。但與此同時,能夠復現結果的代碼,并不一定表示其方法有價值,這兩者并不一定是絕對的相關性。」,劉霽說,「我個人認為,好方法并不一定需要實驗來輔證,它們本身就有足夠深遠的洞見。大家在看實驗之前就能預見它在哪些條件下能 Work,這樣的研究就是非常有價值的。」
有了眾多資源與研究經驗,西雅圖實驗室才能持續地針對某個研究領域做出重要貢獻。這里有一個例子,那就是模型壓縮,西雅圖實驗室今年在這個領域已經發了 4 篇頂會論文。
模型壓縮在快手
從今年 ICLR、CVPR 到正在進行中的 NeurIPS,快手西雅圖實驗室及合作者探索了很多模型壓縮方法。這些方法從不同的維度解決深度學習應用問題,例如降低模型能耗、創新壓縮算法、聯合優化壓縮算法等等。
「快手的應用平臺大多都體現在手機上,很多模型與算法都要部署到手機端,因此功耗、實時響應都非常重要。模型的應用價值,首先在于它的延遲、能耗等指標滿足要求,其次才著重提高準確率。」,劉霽說,「除了移動端的應用,云端也需要模型壓縮。當模型非常大,推斷效率就很低,這不僅影響服務效果,同時服務器也容易宕機。」
目前快手針對不同手機型號會單獨考慮壓縮算法,但很快就會將這些前沿的壓縮算法都會做成 API,并用于更廣泛的壓縮。劉霽表示:「應用模型壓縮最困難的地方在于打通鏈路,從底層硬件、壓縮算法到部署到實際產品,我們需要理解每一個環節,然后再完成整體的聯合優化。」
模型壓縮這條邏輯線
之前機器之心曾介紹過「快手有的放矢的模型壓縮」,它以硬件能耗為目標進行剪枝等操作,并期待構建最節能的深度學習模型。在近日舉辦的 NeurIPS 2019 中,快手及合作者又在另外兩方面探討模型壓縮的新可能:修改最優化器以「自動」剪枝模型權重、聯合不同的壓縮算法以學習怎樣組合最合適。
「今年 4 篇模型壓縮方面的頂會論文是有一條邏輯線的,我們從不同的維度來提升模型壓縮的效果。」,劉霽說,「之前 ICLR 與 CVPR 2019 的研究主要是利用對硬件的建模指導模型壓縮,后面第一篇嘗試對各種壓縮方法做一個聯合優化,第二篇則探索最優化方法本身的效果。這三者分別從不同的維度探索模型壓縮,它們是可以聯合的。」
現在,讓我們看看快手及合作者在 NeurIPS 2019 完成的兩項模型壓縮研究,它們的核心思想都非常有價值。
優化器:「有些參數生而冗余」
剪枝在模型壓縮中非常常見,我們訓練模型后,可以根據某些標準刪除一些不重要的權重。但通常情況下,這種裁剪會造成精度損失,所以需要重新微調模型。那么有沒有辦法在訓練中就完成剪枝,讓模型在剪枝率的約束下進行學習?我們可以把剪枝嵌入到最優化器內,讓模型不再更新「生而冗余」的權重。
對于直接學習緊湊的網絡,最直觀的思路是,對于那些「重要的」權重,我們使用優化器更新,而對于那些「不重要」的權重,那就讓它們衰減到零吧。思想很簡單,但問題是,什么是重要的,什么又是不重要的權重?這就是這篇論文該解決的問題。
在這一篇論文中,研究者提出了名為全局稀疏動量 SGD 的方法(GSM),該算法直接修改梯度流來進行 DNN 剪枝。在每一次訓練迭代中,一般 SGD 用目標函數求得的梯度來更新所有參數,然而在 GSM 中,只有較為重要的少數參數用目標函數的梯度來更新(稱為「活性更新」),大多數參數只用權值衰減來進行更新(稱為「負向更新」)。
這樣,隨著訓練的進行,大多數參數都會變得無限接近于 0。因而,當訓練結束后,去除這些無限接近 0 的參數不會對網絡的精度產生影響。
這種從優化器出發的剪枝方法有非常好的屬性:
自動發現每層合適的稀疏率:如果 DNN 中的某一層對剪枝比較敏感,GSM 會對該層權重執行更「輕」的剪裁。也就是說,給定全局壓縮率作為唯一目標,GSM 能夠根據每層的敏感性自動選擇合適的剪枝比率。
發現更好的 winning lottery tickets:ICLR 2019 最佳論文 The Lottery Ticket Hypothesis 表明,如果有些參數在訓練后的網絡中顯得很「重要」,它們很可能在隨機初始化后就是「重要」的。即在初始化的網絡中存在某些稀疏子結構,單獨訓練這樣的子結構可以得到與訓練整個網絡相媲美的性能,GSM 就能找到更好的稀疏子結構。
從數學看優化器
好了,該看看 GSM 的具體過程了,一般帶動量的 SGD 如下所示,它會先計算一個累積的梯度,可以直觀理解為下降小球的「慣性」。學習算法會根據這樣的慣性找到更新方向,并更新對應的權重。
GSM 首先要決定對哪些參數進行「活性更新」,這就要求度量在一次迭代中每個參數對于模型的重要性。這樣的重要性度量可以表示為:
其中 Θ 表示模型的所有參數,如果權重的梯度小或者權重本身小,那么 T 值肯定很小,這個權重就不是重要的。我們可以根據全局壓縮率為 P 以及剛算出來的 T 來選擇更新哪些權重,具體而言,總參數量的 1/P 是需要更新的,因此對于 T 值最大的 1/P 個參數進行更新,其它參數執行權重衰減就行了。
如上將 T 應用到方程 1 就能得到 GSM 更新式。B 矩陣中只有 1/P 的值為 1,其它為 0,它再與梯度矩陣執行對應元素相乘就表明,模型只會采用梯度更新這 1/P 的參數。
對抗訓練:「我也能變壓縮」
現在我們從另一個角度,看看怎樣統一模型緊湊性與魯棒性,怎樣聯合不同的壓縮方法。也就是說,我們要保證壓縮過后的模型具有足夠小,且該模型還能抵御來自于對抗樣本的攻擊。
為了同時兼顧模型的魯棒性和緊湊性,研究者提出了一個全新的對抗訓練模型壓縮算法(ATMC)。該方法同時囊括了剪枝和量化方法,并且將模型壓縮作為對抗性訓練的約束條件,從而得到滿足壓縮約束的模型。
在研究者的實驗中,ATMC 壓縮后的模型在壓縮比例、泛化能力和模型魯棒性之間達到了較好的平衡。
ATMC 算法的優點在于,它首次通過聯合訓練實現了魯棒性與緊湊性兼顧,它可以將大規模模型壓縮為更穩健的小模型。它的三大特點在于:
ATMC 以對抗性訓練問題作為優化目標(極小化極大優化問題);
研究者將結構化的權重分解、元素級的稀疏化剪枝、以及模型權重量化作為整個優化問題的約束;
研究者證明 ADMM 算法可以有效解決帶有約束的極小化極大優化問題,并得到具有緊湊性和魯棒性的模型。
從數學看對抗與壓縮
對于對抗訓練,研究者將其作為 ATMC 的優化目標,這是一個極小極大化問題。首先通過白盒攻擊,攻擊者通過這些竊聽權重、架構等信息,生成一個能最大程度欺騙模型的對抗性樣本。隨后作為防御者,它會最小化模型在對抗樣本出錯的概率,從而變得更穩健。這種極小極大地對抗訓練,其實思想和生成對抗網絡比較像。
具體的,這種對抗性訓練目標可以表示為如下兩個方程,即最大化錯誤以獲得對抗樣本,最小化錯誤以獲得準確的模型。
其次對于聯合模型壓縮,研究者將剪枝、權重分解和量化作為上述優化目標的約束條件,希望模型在控制大小的情況學習如何變得準確與穩健。值得注意的是,所有優化約束僅包含兩個超參數,ATMC 將根據對壓縮性和魯棒性的需求自動地調整每層權重的稀疏性。
如下所示分別為權重分解、剪枝和量化三種約束條件。權重 W 為某個卷積層的權重矩陣,權重分解相當于通道級的剪枝算法、剪枝相當于元素級的裁剪方法。在考慮模型修剪的壓縮方法的同時,研究者也引入了權重量化方法來進行模型壓縮,即給定每層參數的比特寬度,并根據每層的具體情況計算量化字典。
結合這兩大模塊,我們就可以得到 ATMC 框架的整體優化目標:
這個目標函數看起來很復雜,極小極大化優化目標也就算了,還帶有兩組約束條件,似乎常見的優化器都無能為力了。至于如何解這樣帶約束的優化目標,那又是外一個很有意思的話題了。讀者可以參考原論文或者之前基于能耗的模型壓縮方法,看看 ADMM 優化框架如何解這類帶約束的最優化問題。
最后,除了各種壓縮算法,本身更緊湊的模型也是非常重要的一個方向,從最近 Quoc V. Le 等研究者的 EfficientNet 與 EfficientDet 就能明顯感覺到。總的來說,深度學習想要應用,模型的計算要求還是最為關鍵的那一類問題。
????
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
關于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
總結
以上是生活随笔為你收集整理的四篇NeurIPS 2019论文,快手特效中的模型压缩了解一下的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2019年,异质图神经网络领域有哪些值得
- 下一篇: 紫禁路到解放西路中国银行坐哪路车?