一步實現從TF到TF Lite,谷歌提出定製on-device模型框架
選自Google AI
作者:Sujith Ravi
機器之心編譯
近日,谷歌在 Google I/O 發布了 ML Kit,其核心功能之一是「Learn2Compress」技術支持的自動模型壓縮服務。Learn2Compress 可直接將 TensorFlow 模型壓縮為 TensorFlow Lite 中的設備內置(on-device)模型,可在移動設備上高效運行,而無需擔心內存優化和速度問題。
成功的深度學習模型的訓練和運行通常需要大量的計算資源、內存和計算能力,這成為其在移動設備和物聯網設備上表現良好的障礙。設備內置的機器學習技術使得在移動設備上運行推斷成為可能,具有保護數據隱私和隨處訪問的優勢,而無需考慮連接性。設備內置的機器學習系統(如 MobileNet 和 ProjectionNet)通過優化模型效率來解決移動設備上的資源瓶頸。但是,如果希望為自己的個人移動應用程序訓練定製的設備內置模型,該怎麼辦呢?
近日,谷歌在 Google I/O 發布了 ML Kit,使所有移動開發人員都可以利用機器學習。即將推出的 ML Kit 核心功能之一是由我們的研究團隊開發的「Learn2Compress」技術支持的自動模型壓縮服務。Learn2Compress 支持 TensorFlow Lite 中的自定義設備內置深度學習模型,可在移動設備上高效運行,而無需擔心內存優化和速度問題。用於圖像分類的 Learn2Compress 將很快可用,研究者可以通過 ML Kit 獲取。Learn2Compress 最初將提供給少數開發人員,並在未來幾個月里擴大範圍。如果希望使用此功能構建自己的模型,可以點擊該鏈接進行註冊:https://docs.google.com/forms/d/e/1FAIpQLSd7Uzx6eepXeF5osByifFsBT_L3BJOymIEjG9uz1wa51Fl9dA/viewform。
運行原理
Learn2Compress 是對 ProjectionNet 等之前論文中介紹的學習框架的概括,結合了幾種最先進的壓縮神經網路模型的技術。它將用戶提供的大型預訓練 TensorFlow 模型作為輸入,執行訓練和優化,然後自動生成規模較小、內存效率更高、功耗更低、推斷速度更快且準確率損失最小的即用設備內置模型。
Learn2Compress 用於自動生成設備內置機器學習模型。
為此,Learn2Compress 使用了多種神經網路優化和壓縮技術,包括:
修剪(pruning):通過刪除對於預測結果影響最小的權重或運算(如得分低的權重)來縮小模型。該方法可以達到很好的效果,特別是對於涉及稀疏輸入或輸出的設備內置模型,這些模型可以被壓縮到一半的大小,同時保留 97% 的原始預測質量。
離散化(quantization):該技術在訓練過程中特別有用,可以通過減少模型權重和激活值佔用的位數提高推斷速度。例如,使用 8 位定點表示法替代浮點數可以加速模型推斷、減少能耗,並進一步將模型大小壓縮到原來的 1/4。
聯合訓練(joint training)和精鍊(distillation):該方法使用老師-學生的學習策略,即使用較大的老師網路(該案例中是用戶提供的 TensorFlow 模型)來訓練一個緊湊的學生網路(設備內置模型),確保最小的準確率損失。
使用聯合訓練和精鍊方法學習緊湊的學生網路。
老師網路可以被固定(正如在精鍊過程中)或聯合優化,甚至同時訓練多個不同大小的學生網路。因此,Learn2Compress 可以單次生成多個設備內置模型而不是一個,這些模型的大小和推斷速度互不相同,開發者可以在其中選取最適合應用需求的模型。這些方法以及遷移學習等技術讓壓縮過程更加高效,並可更好地擴展到大規模數據集上。
性能如何?
為了展示 Learn2Compress 的有效性,谷歌研究者使用它構建多個圖像和自然語言任務中當前最先進深度神經網路(如 MobileNet、NASNet、Inception、ProjectionNet)的緊湊設備內置模型。對於給定任務和數據集,谷歌生成多個不同推斷速度和模型大小的設備內置模型。
不同大小的 Learn2Compress 模型和全尺寸基線網路在 CIFAR-10(左)和 ImageNet(右)圖像分類任務上的準確率。用於生成 CIFAR-10 和 ImageNet 壓縮變數的學生網路分別使用 NASNet 和 MobileNet 的變體架構進行建模。
對於圖像分類,Learn2Compress 可以生成適用於移動端應用、具備較好預測準確率的小型快速模型。例如,在 ImageNet 任務上,Learn2Compress 模型的大小是 Inception v3 基線模型的 1/22、MobileNet v1 基線模型的 1/4,而準確率僅下降了 4.6-7%。在 CIFAR-10 上,使用共享參數聯合訓練多個 Learn2Compress 模型花費的時間僅比訓練單個較大 Learn2Compress 模型多 10%,而獲得的 3 個壓縮模型大小是後者的 1/94,速度是後者的 27 倍,開銷是後者的 1/36,且預測質量較好(90-95% 的 top-1 準確率)。
基線模型和 Learn2Compress 模型在 CIFAR-10 圖像分類任務上的計算成本和平均預測延遲(Pixel phone)。Learn2Compress 優化的模型使用類似 NASNet 的網路架構。
谷歌很興奮地看到該模型在開發者用例上的優秀性能。例如,Fishbrain(釣魚愛好者社交平台)使用 Learn2Compress 將現有圖像分類雲模型(大小 80MB+,top-3 準確率 91.8%)壓縮成規模較小的移動端模型,大小僅有 5MB,而準確率與之前類似。在很多使用案例中,壓縮模型的準確率甚至稍微優於原來的較大模型,原因在於前者更好的正則化效應(regularization effect)。
谷歌將繼續改進 Learn2Compress,並擴展至圖像分類以外的其他任務。谷歌很期待通過雲端的 ML Kit 壓縮服務實現這一目標。谷歌希望 Learn2Compress 能夠幫助開發者更簡單地自動構建和優化設備端 ML 模型,以便他們可以集中精力構建強大的 app,創造更酷的用戶體驗,包括計算機視覺、自然語言處理和其他機器學習應用。
本文為機器之心編譯,轉載請聯繫本公眾號獲得授權。
------------------------------------------------


※登上《Cell》封面的AI醫療影像診斷系統:機器之心專訪UCSD張康教授
※善於單挑卻難以協作,構建多智能體AI系統為何如此之難?
TAG:機器之心 |