韓鬆等人提出NN設計新思路:訓練一次,全平臺應用
選自arXiv
作者:Han Cai、Chuang Gan、韓鬆機器之心編譯參與:熊貓
本文將介紹麻省理工學院與 MIT-IBM Watson AI Lab 的研究者提出的一種「一勞永逸」方法。通過分離模型訓練與架構搜尋過程,該方法能極大降低神經網路模型設計部署成本。
連結:https://arxiv.org/pdf/1908.09791.pdf
如要有效地部署深度學習模型,需要專門的神經網路架構,以便最好地適應不同的硬體平臺和效率限制條件(定義為部署場景(deployment scenario))。傳統的方法要麼是人工設計,要麼就是使用 AutoML(自動機器學習)來搜尋特定的神經網路,再針對每個案例從頭開始訓練。這些方法的成本高昂,而且難以擴充套件,因為它們的訓練成本與部署場景的數量有關。
本研究為高效神經網路設計引入了一種 Once for All(OFA/一勞永逸)方法,可處理很多部署場景。這種新方法的特點是分離了模型訓練與架構搜尋過程。這種方法不會針對每種案例都訓練一個專用模型,而是訓練一個支援多種不同架構設定(深度、寬度、核大小和解析度)的 OFA 網路。
然後給定一個部署場景,再通過選擇 OFA 網路中特定的子網路來搜尋合適的結果,這個過程無需訓練。因此,專用模型的訓練成本就從 O(N) 降到了 O(1)。但是,我們卻難以防止許多不同子網路之間的干擾。針對這一問題,MIT 的這些研究者提出了漸進式收束演算法(progressive shrinking algorithm)。該演算法能夠訓練支援超過 10^19 個子網路的 OFA 網路,同時還能保持與獨立訓練的網路一樣的準確度,從而節省非重複性工程開發(non-recurring engineering/NRE)成本。
研究者在多種不同的硬體平臺(移動平臺/CPU/GPU)和效率限制條件上進行了廣泛的實驗,結果表明:相比於當前最佳(SOTA)的神經架構搜尋(NAS)方法,OFA 能穩定地取得同等水平(或更好)的 ImageNet 準確度。值得注意的是,OFA 在處理多部署場景(N)時的速度比 NAS 快幾個數量級。當 N=40 時,OFA 所需的 GPU 工作小時數比 ProxylessNAS 少 14 倍、比 FBNet 少 16 倍、比 MnasNet 少 1142 倍。部署場景越多,則相比於 NAS 就節省越多。
引言
深度學習模型的模型大小和計算成本的爆發式增長帶來了新的難題:如何在不同的硬體平臺上有效地部署它們?當硬體資源(比如片上記憶體大小、算術單元的數量)不同時,最佳的神經網路架構也存在很大的差異。即使在同樣的硬體上執行時,由於電池條件或工作負載的差異,最佳的模型架構也大為不同。
在不同的硬體平臺和效率限制條件下,研究者要麼專門為移動平臺設計緊湊的模型,要麼通過壓縮來加速已有的模型,實現有效部署。但是,不管是人工設計方法,還是基於 AutoML 的方法,為每個部署場景都設計各自的專用 DNN 都具有很高的工程開發成本和計算成本。
針對這一難題,這篇論文給出的解決方案是:設計一種一勞永逸(OFA)的網路,使其可以直接在部署在不同的架構配置上。推理可以通過選擇該 OFA 網路的一部分來實現。它無需再訓練,就能靈活地支援不同的深度、寬度、核大小和解析度。
具體來說,首先在模型訓練階段訓練一個單一的 OFA 網路,然後可以基於此生成具有不同架構配置的不同子網路。據介紹,這項研究的關注重點是在各個子網路不互相干擾的情況下提升每個子網路的準確度。在模型具體化階段,研究者首先會為子網路的一個子集預構建準確度表和硬體效率表(延遲或能耗)。這些子網路的權重直接取自 OFA 網路,無需再訓練。在測試時,給定一個部署場景,僅需查詢準確度表和硬體延遲表就能得到一個特定的子網路。這個查詢過程的成本可以忽略不計。
但是,訓練這個 OFA 網路卻並不輕鬆,因為這需要權重的聯合優化,這樣才能維持大量子網路的準確度。為了解決這些問題,研究者提出了用於這個 OFA 網路的漸進式收束網路。簡單來說,首先訓練一個帶有最大深度、寬度和核大小的神經網路,然後逐步訓練該網路以支援更小的子網路。
研究者在 ImageNet 上評估了所提出的框架的效率,並測試了不同的硬體平臺(移動平臺/CPU/GPU)和效率限制條件。在所有的部署場景中,OFA 相比於當前最佳的硬體感知型 NAS 方法都總是能取得同等或更高的 ImageNet 準確度,同時在處理不同部署場景時的效率要高出幾個數量級。
方法
圖 1:左圖:訓練單個 OFA 網路,以支援包括深度、寬度、核大小和解析度在內的不同架構配置。給定一個部署場景,無需訓練,直接從該 OFA 網路中選擇一個專用子網路。中圖:這種方法可將專用深度學習部署的成本從 O(N) 降至 O(1)。右圖:OFA 網路之後再使用模型選擇,可以實現很多準確度-延遲權衡,而整個過程僅需訓練一次。相比而言,傳統方法需要反覆多次訓練。表 2 給出了搜尋成本比較,圖 6 是在更多硬體平臺上的結果。
這項研究探索了卷積神經網路架構的四個重要維度,即深度、寬度、核大小和解析度。膨脹和分組數量等其它維度可以很自然地整合進來,但還有待進一步的研究。整體目標是使訓練得到的網路的每個受支援的子網路都能實現與同樣的架構配置同等水平的準確度。
圖 2:漸進式收束過程的一個示例。其覆蓋 CNN 架構的四個重要維度(深度 D、寬度 W、核大小 K、解析度 R),得到一個由不同子網路構成的大型空間(>10^19)。
訓練 OFA 網路
首先訓練一個彈性解析度的帶有最大 [深度, 寬度, 核大小] 的完整神經網路。然後以一種漸進的方式微調這個神經網路(從大型子網路到小型子網路),以同時支援完整的 [深度, 寬度, 核大小] 和部分的 [深度, 寬度, 核大小]。
圖 3:彈性核大小的核變換矩陣。這裡支援 7×7、5×5 和 3×3 的核。權重共享使其比獨立式的設定更有效率。
圖 4:彈性深度的訓練過程概覽。這裡不會單獨地跳過每個塊,而是會保留前 D 個塊,然後跳過後面 (4-D) 個塊。藍色和綠色塊的權重在 D=2, 3, 4 上是共享的。橙色塊在 D=3, 4 上共享。
訓練流程的詳情如下:
- 彈性解析度(圖 2)。為了支援彈性解析度,研究者在訓練模型時為每批訓練資料取樣了不同的影像大小。
- 彈性核大小(圖 3)。研究者在共享核權重時引入了核變換矩陣。具體而言,就是在不同的塊上使用不同的核變換。在每個塊中,核變換矩陣在不同的通道之間共享。
- 彈性深度(圖 4)。為了在原本有 N 個塊的階段得到有 D 個塊的子網路,首先保留前 D 個塊,再跳過後面的 N-D 個塊。最後,前 D 個塊的權重在大型和小型模型之間共享。
- 彈性寬度(圖 5)。寬度的意思是通道數量。研究者為每一層都提供了選擇不同通道擴充套件比的靈活性。
- 知識蒸餾(圖 2)。研究者既使用了訓練資料給出的硬標籤,也使用了在訓練 OFA 網路時通過訓練完整網路所得到的軟標籤。
使用 OFA 網路進行專用模型部署
圖 5:用於彈性寬度的漸進式收束過程概覽。這個例子是漸進地支援 4、3、2 個通道的設定。更小的通道設定的初始化是用通道分類後最重要的通道(大 L1 範數)來完成。
目標是搜尋一個在目標硬體平臺上滿足效率限制條件(延遲、能耗等)的神經網路,同時優化其準確度。
這項研究的做法是隨機取樣子網路的一個子集,並構建它們的準確度表和延遲表。由此,給定目標硬體和延遲限制條件時,可以直接查詢準確度表和對應的延遲表,得到表內的最佳子網路。查詢這些表的成本可以忽略不計,從而可避免總成本的線性增長。
在實驗中,研究者取樣了 1.6 萬個子網路,並在 1 萬張驗證影像(取樣自原始訓練集)上構建了準確度表。此外,由於支援彈性解析度,還會在多種輸入影像大小上測量同樣的子網路。
實驗
研究者首先在 ImageNet 上應用了漸進式收束演算法來訓練 OFA 網路,然後在多種不同的硬體平臺(三星 Note8、谷歌 Pixel1、Pixel2、英偉達 1080Ti、2080Ti、V100 GPU、英特爾 Xeon CPU)上使用不同的延遲限制條件展示了所訓練的 OFA 網路的有效性。
在 ImageNet 上訓練 OFA 網路
研究者訓練了一個支援彈性深度(每個階段中塊數量可以為 2、3 或 4)、彈性寬度(每個塊的擴充套件比可以為 4、5 或 6)和彈性核大小(每個深度可分的卷積層的核大小可以為 3、5 或 7)。因此,對於 5 個階段,有大約 ((3 × 3)^2 + (3 × 3)^3 + (3 × 3)^4)^5 ≈ 2 × 10^19 個子網路。此外,輸入影像尺寸也是彈性的,以步幅 4,從 128 到 224 不等。
訓練過程使用了標準的隨機梯度下降(SGD)優化器,Nesterov 動量為 0.9,權重衰減為 4e-5。初始學習率為 0.4,學習率衰減使用了餘弦排程(cosine schedule)。獨立模型以 2048 的批大小在 32 個 GPU 上訓練了 150 epoch。OFA 網路的訓練使用了同樣的訓練設定,但訓練成本更高(大約 8 倍),在 V100 GPU 上訓練了大約 1200 GPU 小時。
結果
表 2:在三星 Note8 上與當前最佳的硬體感知型 NAS 方法的比較。OFA 的模型訓練與架構搜尋是分離的。隨著部署場景數量的增長(在實驗中 N=40),搜尋成本和訓練成本都保持不變。#25 表示從 OFA 網路抓取權重後微調了 25 epoch 的專用子網路。
表 3:在三星 Note8 上,不同延遲限制條件下的 ImageNet 準確度結果。
論文連結:https://arxiv.org/pdf/1908.09791.pdf
https://www.toutiao.com/a6730808600932909582/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2655691/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 訓練指南:資料訓練定期儲存【GpuMall雲平臺特價】GPU
- 幾大應用平臺建設
- 重磅釋出 | Serverless 應用中心:Serverless 應用全生命週期管理平臺Server
- MIT 提出Network Dissection框架,全自動窺探神經網路訓練的黑箱MIT框架神經網路
- 微信平臺應用
- 資料全生命週期管理應用平臺的組成
- Ian Goodfellow等人提出對抗重程式設計,讓神經網路執行其他任務Go程式設計神經網路
- IBM新思路,讓無人機照看、訓練你的寶貝萌寵IBM無人機
- 全棧全平臺開源專案 CodeRiver 資料庫設計文件全棧資料庫
- 一手訓練,多手應用:國防科大提出靈巧手抓取策略遷移新方案
- 應用程式程式設計太難?AppyPie推出“零基礎”VRAR設計平臺程式設計APPVR
- 三大應用平臺
- 深度學習在騰訊的平臺化和應用實踐(全)深度學習
- KubeVela 1.0 :開啟可程式設計式應用平臺的未來程式設計
- 創意設計新思路
- [原始碼解析] 快手八卦 --- 機器學習分散式訓練新思路(1)原始碼機器學習分散式
- [原始碼解析] 快手八卦 --- 機器學習分散式訓練新思路(2)原始碼機器學習分散式
- [原始碼解析] 快手八卦 --- 機器學習分散式訓練新思路(3)原始碼機器學習分散式
- 工業機器人裝調應用與維護實訓平臺機器人
- 瑞芯微RK3288平臺人臉識別方案應用設計
- 特徵平臺在數禾的建設與應用特徵
- Facebook 的應用機器學習平臺機器學習
- 應用跨平臺問題?
- 課程報名 | 基於模型訓練平臺快速打造 AI 能力模型AI
- 百度定製化影像開放平臺訓練評測
- 多項NLP任務新SOTA,Facebook提出預訓練模型BART模型
- 程式設計教育平臺程式設計
- 實驗樓 程式設計師的訓練場程式設計師
- 企業內訓直播平臺應具備哪些功能?
- 線上公開課 | 如何基於模型訓練平臺快速打造AI能力?模型AI
- 企業應用平臺架構架構
- LAMP平臺部署及應用(一)LAMP
- 日全食,簡訊平臺應用
- 跨平臺全網計算機時間同步計算機
- NLP生成任務超越BERT、GPT!微軟提出通用預訓練模型MASSGPT微軟模型
- 程式碼將退出歷史舞臺:像訓狗一樣訓練計算機計算機
- BSN應用案例精選【1】:全鏈通“銘鏡”農產品溯源平臺
- 不聯網的情況下,使用 electron-builder 快速打包全平臺應用UI