天天看點

四篇NeurIPS 2019論文,快手特效中的模型壓縮了解一下

從改進最優化器到多智能體團隊協力,這些最前沿的 NeurIPS 2019 研究,你都可以在快手上找到它們的身影。

在即将過去的 2019 年中,快手西雅圖實驗室在 ICLR、CVPR、AISTATS、ICML 和 NeurIPS 等頂會上發表了十多篇論文。

除了這些研究方面的成果,針對實際業務,西雅圖實驗室和快手商業化還推出了基于 GPU 的廣告推薦訓練系統 Persia,采用這樣的訓練系統單機能提升 640 倍的效率,已經在業務場景中廣泛使用;此外提出的新算法對商業化廣告收益也有大量提升,新技術在視訊風格遷移和遊戲業務中也有多項落地成果。這是快手西雅圖實驗室在 2019 交出的一份成績單。

那麼在 NeurIPS 2019,在模型壓縮領域,快手短視訊最新應用的技術是什麼樣的?我們在應用各種視覺特效時,為什麼以龐大著稱的深度神經網絡能滿足我們的要求?在本文中,機器之心将介紹快手在 NeurIPS 2019 的四篇研究成果,并重點探讨他們在模型壓縮方面的努力。

下面是本文的目錄,我們将以如下結構介紹這四項研究成果:

  • 快手在 NeurIPS 2019
  • 在快手做研究
    • 研究架構用什麼?
    • 論文代碼要開源?
  • 模型壓縮在快手
    • 模型壓縮這條邏輯線
  • 優化器:「有些參數生而備援」
    • 從數學看優化器
  • 對抗訓練:「我也能變壓縮」
    • 從數學看對抗與壓縮

在最近的 NeurIPS 2019 中,快手及合作者展示了四項新研究。這四項研究中有三項已經或者正在應用到實際業務中,例如第一篇跟 University of Rochester 和 TAMU 合作的模型壓縮的工作,它已經應用到一些 CV 任務中,包括快手比較炫酷的風格遷移。

第二篇模型壓縮更像新方法方面的探索,它也能用于部分應用而加速視訊的處理過程。第三篇強化學習正應用于遊戲 AI,它可以令智能體學會「團隊協作」。

當然,這些研究成果是快手與合作者聯合完成的,例如第二篇模型壓縮就是清華大學-快手未來媒體資料聯合研究院以及快手西雅圖實驗室共同完成的。

快手西雅圖實驗室負責人劉霁表示:「這四項研究都有其獨特的亮點。在第一篇對抗訓練的模型壓縮中,它會把各種壓縮方法都集中到一起,并做一種聯合優化,這和之前按照 Pipeline 的形式單獨做壓縮有很大的不同。與此同時,模型還能抵禦對抗性攻擊,這是兩個比較有意思的思路。」

「一般剪枝方法都需要大量調參以更好地保留模型性能,而全局稀疏動量 SGD 會端到端地學習到底哪些權重比較重要,重要的就少壓縮一點,不重要的就多壓縮一點。」,論文合著者,清華大學軟體學院副院長丁貴廣說,「第二篇論文的核心思想在于,我們給定一個壓縮率,模型在訓練中就能自己剪裁,并滿足這個壓縮率。」

「對于第三篇多智能體強化學習是跟騰訊 AI Lab 和 Robotics X 合作,它希望智能體能快速學會利用自己所觀測的資訊來互相配合。比如說在星際争霸中,我們發現确實會産生多智能體合作的現象,模型會讓一些防高血厚的機關去抗對方的輸出,己方輸出高的單元會躲到後方攻擊。」,劉霁說。

「雖然把所有的 agents 看成是一個 agent,理論上也可以學到最終的配合效果,但是效率會非常低,不具有可擴充性。我們的方法通過一種 intrinsic reward 的機制兼顧了可擴充性和效率,通過鼓勵每個 agent 按照單體利益最大化的原則去學習自己的 policy,然後這種 intrinsic reward 的影響會越來越小最後快速達到學到整體最後的方案」,劉霁說。

四篇NeurIPS 2019論文,快手特效中的模型壓縮了解一下

受傷的智能體 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 完成的兩項模型壓縮研究,它們的核心思想都非常有價值。

剪枝在模型壓縮中非常常見,我們訓練模型後,可以根據某些标準删除一些不重要的權重。但通常情況下,這種裁剪會造成精度損失,是以需要重新微調模型。那麼有沒有辦法在訓練中就完成剪枝,讓模型在剪枝率的限制下進行學習?我們可以把剪枝嵌入到最優化器内,讓模型不再更新「生而備援」的權重。

對于直接學習緊湊的網絡,最直覺的思路是,對于那些「重要的」權重,我們使用優化器更新,而對于那些「不重要」的權重,那就讓它們衰減到零吧。思想很簡單,但問題是,什麼是重要的,什麼又是不重要的權重?這就是這篇論文該解決的問題。

四篇NeurIPS 2019論文,快手特效中的模型壓縮了解一下

在這一篇論文中,研究者提出了名為全局稀疏動量 SGD 的方法(GSM),該算法直接修改梯度流來進行 DNN 剪枝。在每一次訓練疊代中,一般 SGD 用目标函數求得的梯度來更新所有參數,然而在 GSM 中,隻有較為重要的少數參數用目标函數的梯度來更新(稱為「活性更新」),大多數參數隻用權值衰減來進行更新(稱為「負向更新」)。

這樣,随着訓練的進行,大多數參數都會變得無限接近于 0。因而,當訓練結束後,去除這些無限接近 0 的參數不會對網絡的精度産生影響。

這種從優化器出發的剪枝方法有非常好的屬性:

  • 自動發現每層合适的稀疏率:如果 DNN 中的某一層對剪枝比較敏感,GSM 會對該層權重執行更「輕」的剪裁。也就是說,給定全局壓縮率作為唯一目标,GSM 能夠根據每層的敏感性自動選擇合适的剪枝比率。
  • 發現更好的 winning lottery tickets:ICLR 2019 最佳論文 The Lottery Ticket Hypothesis 表明,如果有些參數在訓練後的網絡中顯得很「重要」,它們很可能在随機初始化後就是「重要」的。即在初始化的網絡中存在某些稀疏子結構,單獨訓練這樣的子結構可以得到與訓練整個網絡相媲美的性能,GSM 就能找到更好的稀疏子結構。

好了,該看看 GSM 的具體過程了,一般帶動量的 SGD 如下所示,它會先計算一個累積的梯度,可以直覺了解為下降小球的「慣性」。學習算法會根據這樣的慣性找到更新方向,并更新對應的權重。

四篇NeurIPS 2019論文,快手特效中的模型壓縮了解一下

GSM 首先要決定對哪些參數進行「活性更新」,這就要求度量在一次疊代中每個參數對于模型的重要性。這樣的重要性度量可以表示為:

四篇NeurIPS 2019論文,快手特效中的模型壓縮了解一下

其中 Θ 表示模型的所有參數,如果權重的梯度小或者權重本身小,那麼 T 值肯定很小,這個權重就不是重要的。我們可以根據全局壓縮率為 P 以及剛算出來的 T 來選擇更新哪些權重,具體而言,總參數量的 1/P 是需要更新的,是以對于 T 值最大的 1/P 個參數進行更新,其它參數執行權重衰減就行了。

四篇NeurIPS 2019論文,快手特效中的模型壓縮了解一下

如上将 T 應用到方程 1 就能得到 GSM 更新式。B 矩陣中隻有 1/P 的值為 1,其它為 0,它再與梯度矩陣執行對應元素相乘就表明,模型隻會采用梯度更新這 1/P 的參數。

現在我們從另一個角度,看看怎樣統一模型緊湊性與魯棒性,怎樣聯合不同的壓縮方法。也就是說,我們要保證壓縮過後的模型具有足夠小,且該模型還能抵禦來自于對抗樣本的攻擊。

為了同時兼顧模型的魯棒性和緊湊性,研究者提出了一個全新的對抗訓練模型壓縮算法(ATMC)。該方法同時囊括了剪枝和量化方法,并且将模型壓縮作為對抗性訓練的限制條件,進而得到滿足壓縮限制的模型。

在研究者的實驗中,ATMC 壓縮後的模型在壓縮比例、泛化能力和模型魯棒性之間達到了較好的平衡。

四篇NeurIPS 2019論文,快手特效中的模型壓縮了解一下

ATMC 算法的優點在于,它首次通過聯合訓練實作了魯棒性與緊湊性兼顧,它可以将大規模模型壓縮為更穩健的小模型。它的三大特點在于:

  • ATMC 以對抗性訓練問題作為優化目标(極小化極大優化問題);
  • 研究者将結構化的權重分解、元素級的稀疏化剪枝、以及模型權重量化作為整個優化問題的限制;
  • 研究者證明 ADMM 算法可以有效解決帶有限制的極小化極大優化問題,并得到具有緊湊性和魯棒性的模型。

對于對抗訓練,研究者将其作為 ATMC 的優化目标,這是一個極小極大化問題。首先通過白盒攻擊,攻擊者通過這些竊聽權重、架構等資訊,生成一個能最大程度欺騙模型的對抗性樣本。随後作為防禦者,它會最小化模型在對抗樣本出錯的機率,進而變得更穩健。這種極小極大地對抗訓練,其實思想和生成對抗網絡比較像。

具體的,這種對抗性訓練目标可以表示為如下兩個方程,即最大化錯誤以獲得對抗樣本,最小化錯誤以獲得準确的模型。

四篇NeurIPS 2019論文,快手特效中的模型壓縮了解一下

其次對于聯合模型壓縮,研究者将剪枝、權重分解和量化作為上述優化目标的限制條件,希望模型在控制大小的情況學習如何變得準确與穩健。值得注意的是,所有優化限制僅包含兩個超參數,ATMC 将根據對壓縮性和魯棒性的需求自動地調整每層權重的稀疏性。

如下所示分别為權重分解、剪枝和量化三種限制條件。權重 W 為某個卷積層的權重矩陣,權重分解相當于通道級的剪枝算法、剪枝相當于元素級的裁剪方法。在考慮模型修剪的壓縮方法的同時,研究者也引入了權重量化方法來進行模型壓縮,即給定每層參數的比特寬度,并根據每層的具體情況計算量化字典。

四篇NeurIPS 2019論文,快手特效中的模型壓縮了解一下

結合這兩大子產品,我們就可以得到 ATMC 架構的整體優化目标:

四篇NeurIPS 2019論文,快手特效中的模型壓縮了解一下

這個目标函數看起來很複雜,極小極大化優化目标也就算了,還帶有兩組限制條件,似乎常見的優化器都無能為力了。至于如何解這樣帶限制的優化目标,那又是外一個很有意思的話題了。讀者可以參考原論文或者之前基于能耗的模型壓縮方法,看看 ADMM 優化架構如何解這類帶限制的最優化問題。

最後,除了各種壓縮算法,本身更緊湊的模型也是非常重要的一個方向,從最近 Quoc V. Le 等研究者的 EfficientNet 與 EfficientDet 就能明顯感覺到。總的來說,深度學習想要應用,模型的計算要求還是最為關鍵的那一類問題。

繼續閱讀