當前位置:
首頁 > 知識 > AutoML構建加速器優化模型首嘗試,谷歌發布EfficientNet-EdgeTPU

AutoML構建加速器優化模型首嘗試,谷歌發布EfficientNet-EdgeTPU

選自Googleblog

機器之心編譯

參與:杜偉、李亞洲

今年 5 月份,谷歌提出了一種利用複合係數統一縮放模型所有維度的新型模型縮放方法,並基於這種模型縮放方法又推出了一種新型 CNN 網路 EfficientNet。今日,谷歌宣布推出一種衍生自 EfficientNet 的圖像分類模型 EfficientNet-EdgeTPU,通過定製化在谷歌 Edge TPU 實現最佳運行。

幾十年來,正如摩爾定律所描述的那樣,通過縮小晶元內部晶體管的尺寸,計算機處理器的性能每隔幾年就可以提升一倍。但隨著縮小晶體管尺寸變得越來越困難,業界將重點放在了開發硬體加速器這樣的特定於域的體系架構上面,從而繼續提升計算能力。

機器學習領域尤為如此,需要創建用於神經網路加速的專門架構。但諷刺的是,雖然這些架構在數據中心和邊緣計算平台上取得了穩步擴展,但依託它們運行的神經網路卻很少定製化從而充分利用底層硬體。

谷歌 Edge TPU 是一個通過 Coral Dev Boardand 和 USB 加速器提供給開發人員的低能耗硬體加速器。通過這種模型自定義,Edge TPU 能夠提供實時的圖像分類性能,同時實現只有在數據中心運行尺寸更大、計算量更重的模型上才能看到的準確率。

使用 AutoML 為 Edge TPU 定製化 EfficientNet

EfficientNet 已被證明能夠在圖像分類任務中實現 SOTA 準確率,同時能夠顯著降低模型大小和計算複雜度。為了創建旨在利用 Edge TPU 加速器架構的 EfficientNet,谷歌調用了 Auto MNAS 框架,並利用在 Edge TPU 上高效執行的構建塊(building block)擴增了原始 EfficientNet 神經網路架構搜索空間。

此外,通過在周期準確的架構模擬器上運行模型,谷歌還創建和集成了一個「延遲預測器」模塊,該模塊在 Edge TPU 執行操作時能夠估計模型延遲時間。AutoML MNAS 控制器執行強化學習演算法來搜索空間,同時試圖實現獎勵的最大化,這是預測延遲和模型準確率的共有功能。

根據以往的經驗,當模型與晶元上內存匹配時,Edge TPU 功率效率和性能往往實現最大化。所以,谷歌還修改了獎勵函數,從而為滿足相關約束的模型生成更高獎勵。

設計定製化 EfficientNet-EdgeTPU 模型的 AutoML 整體流程。

搜索空間設計

執行上述架構搜索時必須考慮到,EfficientNet 主要依賴深度可分離(depthwise-separable)卷積,這是一種能夠因式分解常規卷積以減少參數數量和計算量的神經網路塊。但是,對於某些配置而言,儘管需要更大的計算量,但常規卷積能夠更高效地利用 Edge TPU 架構,執行速度也更快。儘管有可能手動創建一個能夠利用不同構建塊最優組合的網路,但利用這些加速器優化的塊來擴增 AutoML 搜索空間是一種擴展性更強的方法。

3x3 常規卷積(右)較深度可分離卷積(左)的計算量更大(乘法累加運算),但對於某些輸入/輸出尺寸來說,由於前者的硬體利用率提升了 3 倍,所以其在 Edge TPU 上的執行速度更快。

此外,從搜索空間中移除需要修改 Edge TPU 編譯器以完全支持的某些操作,如 swish 非線性和 squeeze-and-excitation 塊,自然能夠生成易於移植到 Edge TPU 硬體的模型。這些操作通常可以稍稍提升模型質量,所以通過從搜索空間刪除它們,谷歌有效地指導 AutoML 去發現可替代的網路架構(它們可以對任何潛在的質量損失作出補償)。

模型表現

前面描述的神經架構搜索(NAS)生成了基線模型 EfficientNet-EdgeTPU-S,隨後使用 EfficientNet 的複合縮放方法對其進行放大,從而得到了-M 和-L 模型。複合縮放方法可以通過選擇輸入圖像解析度縮放、網路寬度和深度縮放的最佳組合,以構建出更大、更準確的模型。-M 和-L 模型以增加延遲為代價實現更高的準確性,如下圖所示。

通過為 Edge TPU 硬體專門設計的網路架構,EfficientNet-EdgeTPU-S / M / L 模型在延遲和準確率上都要比 EfficientNets(B1)、ResNet 更好。特別是 EfficientNet-EdgeTPU-S 實現了更高的精度,且運行速度比 ResNet-50 快 10 倍。

有趣的是,NAS 生成的模型在網路的初始部分中非常大量地使用常規卷積,在加速器上執行時,深度可分離卷積往往不如常規卷積有效。這明顯突出了一個事實,即在優化通用 CPU 模型(例如減少操作總數)時通常進行權衡並不一定是硬體加速器的最佳選擇。而且,即使不使用高深的操作,這些模型也可以實現高精度。與其他圖像分類模型(如 Inception-resnet-v2 和 Resnet50)相比,EfficientNet-EdgeTPU 模型不僅更精確,而且在 Edge TPU 上運行速度更快。

這項研究代表了首次使用 AutoML 構建加速器優化模型的嘗試。基於 AutoML 的模型定製不僅可以擴展到各種硬體加速器,還可以擴展到依賴神經網路的多種不同應用。

從雲 TPU 訓練到 Edge TPU 部署

在 Github 上,谷歌發布了 EfficientNet-EdgeTPU 的訓練代碼和預訓練模型。使用 TensorFlow 的後訓練量化工具,谷歌將浮點訓練模型轉換為 Edge TPU 可兼容的整數量化模型。對於這些模型而言,後訓練量化的效果非常好,僅產生非常輕微的精度損失(~0.5%)。

Github 項目鏈接:https://github.com/tensorflow/tpu/tree/master/models/official/efficientnet/edgetpu

Coral 網頁:https://coral.withgoogle.com/docs/

本文為機器之心編譯,轉載請聯繫本公眾號獲得授權。

------------------------------------------------

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

四大AI賽題,260萬總獎金,2019之江杯等你來挑戰
百行代碼變十行,蘋果SwiftUI可視化編程讓開發者驚呼完美

TAG:機器之心 |