TensorFlow亞太研發負責人李雙峰:TensorFlow Lite如何連線世界

dicksonjyl560101發表於2019-06-06

https://www.toutiao.com/a6698869590761406989/


TensorFlow亞太研發負責人李雙峰:TensorFlow Lite如何連線世界

摘要:輕量、快速、相容度高,TensorFlow Lite 正是人工智慧開發和移動化最好的結合。

機器學習的發展改變著健康醫療、語言交流和城市交通等我們生活中的諸多領域,越來越多的企業、組織甚至是個人嘗試用機器學習解決業務或者生活中遇到的難題。開發者數量的大量增加也意味著需要降低技術難度,讓更多人蔘與進來。

在 2015 年底,Google 開源了端到端的機器學習開源框架 TensorFlow:它既可以用於研究,也可以用於大規模生產領域;它既支援大規模的模型訓練,也支援各種環境的部署,包括伺服器和移動端的部署;支援各種語言,包括 Python,C++,Java,Swift 甚至 Javascript。TensorFlow 提供全面靈活的專業工具生態系統,幫助解決各種艱難的問題。而近年來移動化浪潮和互動方式的改變,使得機器學習技術開發也在朝著輕量化的端側發展,於是 TensorFlow 團隊又在 2017 年底上線了 TensorFlow Lite,一個輕量、快速、相容度高的專門針對移動式應用場景的深度學習工具,把移動端及 IoT 裝置端的深度學習技術的門檻再次大大降低。

在 BMW · GeekPark Rebuild 2019 科技商業峰會上,極客公園邀請到了 TensorFlow 亞太研發負責人李雙峰來談一談已經在全球 20 億臺裝置上部署的 TensorFlow Lite 在技術上的新突破以及未來應用的前景。


TensorFlow亞太研發負責人李雙峰:TensorFlow Lite如何連線世界

以下是 Google TensorFlow  亞太研發負責人李雙峰在 BMW · GeekPark Rebuild 2019  科技商業峰會上的演講實錄(經極客公園編輯整理):

李雙峰:大家好,我是 Google TensorFlow 的李雙峰,今天我來跟大家分享:TensorFlow Lite:開啟智慧互聯生活的新可能。

伴隨移動和 IoT 裝置的普及,世界以超乎想象的方式存在被連線的可能,如今已有超過 32 億的手機使用者和 70 億的聯網 IoT 裝置(不包括手機、PC等)。而隨著手機成本不斷降低,並且隨著微控制器(MCU)和微機電系統(MEMs)的發展,高效能低功耗的晶片使得“萬物”智慧具有了可能性。從智慧家居到家用機器人,從共享單車到智慧穿戴,從工業控制到車載裝置…這些裝置都有智慧化的基礎。

邊緣裝置的資料傳輸到雲端處理並非是最經濟有效的方式,經過雲端傳輸會有延遲,從而影響體驗。


TensorFlow亞太研發負責人李雙峰:TensorFlow Lite如何連線世界

從使用者端來看,他們對於互動的需求越來越高的,快速、及時的智慧反應是消費者的普遍期待,這就給端側的機器學習帶來很多前景。以智慧音響為例,喚醒的反應速度,是良好體驗的基礎。

端側機器學習的優勢使得智慧互聯有了新的可能性:

1)更快更緊密的互動方式,因為模型在本地執行,延遲小;

2)在沒有很好網路的情況下仍然可以很好的提供服務;

3)更好的保護隱私,因為在本地進行資料收集和處理,減少資料上傳。

但是實現端側機器學習有很多挑戰,主要是三個方面:

1)端側算力有限,限制了模型的複雜度;

2)端側記憶體有限,限制了能執行的模型大小;

3)電力有限,需要模型運算效率更好,比如對於大家所熟知的智慧手錶而言,省電是一個很重要的考慮。


TensorFlow亞太研發負責人李雙峰:TensorFlow Lite如何連線世界

作為開源的機器學習生態系統 TensorFlow 的一部分,TensorFlow Lite 致力於幫助企業克服這些困難,從而簡化移動裝置和嵌入式裝置的部署。

做為背景,我簡單介紹一下 TensorFlow。TensorFlow 是一個端到端的開源的機器學習平臺,大家日常接觸的智慧服務比如語音識別、影象處理和智慧推薦等,背後很多都是基於 TensorFlow 開發的。TensorFlow 可以用於前沿的研究也可以用於生產領域大規模使用,可以支援大規模資料的訓練也可以支援各種環境的部署,你可以用 Java、Python、Swift 甚至 Javascript 等各種語言來寫。TensorFlow Lite 是 TensorFlow 非常重要的一部分,專注於讓大家更好的部署移動端的機器學習應用,「一次轉換,隨處部署」,包括安卓、ios,Linux,還包括更小的晶片,比如微控制器 MCU 這樣的平臺。

剛才講了三個挑戰,算力有限,記憶體有限,電量有限,怎麼樣解決這樣的部署難題呢?這正是 TensorFlow Lite 所專注解決的問題:第一,我們很希望大家部署端側的機器學習模型時,模型轉換起來很便捷,部署非常快;第二我們認為效能非常關鍵;第三就是希望有更多模型優化的空間。TensorFlow Lite 就是為速度設計而生,提供了便捷的轉換率,讓我們在移動端部署更快,也意味著開發效率會更高。其次,我們希望更快一些,這是效能的問題,我們會盡量利用手機端硬體加速。第三,希望執行環境更小一下,模型更小一些。

下面介紹一下 TensorFlow Lite 的整體架構,幫大家更好地理解一下 TensorFlow Lite 怎麼面對這些挑戰。

第一點就是更小的模型格式,並提供了方便的模型轉換器,可以把比較大的 TensorFlow 模型方便地轉化成更小的 TensorFlow Lite 模型。第二有更小的直譯器,安卓應用只需 1 兆左右的執行環境,在 MCU 上甚至可以小於 100KB。第三,在硬體加速層面,對於 CPU 利用了 ARM 的 NEON 指令集做了大量的優化。同時,Lite 還可以利用手機上的加速器,比如 GPU 或者 DSP(即將支援)等。另外,最新的安卓系統提供了 Android 神經網路 API(Android NN API),讓硬體廠商可以擴充套件支援這樣的介面,經常聽到的 NPU 是專門為神經網路加速設計的晶片,NPU 可以支援 NN API,而 Lite 可以呼叫 NN API,從而利用 NPU 加速。

更激動人心的前景發生在 IoT 領域,TensorFlow Lite 可以支援微控制器 MCU,而 MCU 是單一晶片的小型計算機,沒有作業系統,只有記憶體,也許記憶體只有幾十 KB,全球有超過一千五百億的 MCU,很多裝置上都有 MCU。我們釋出了 MCU 上的語音識別的模型,可以識別若干關鍵詞,語言模型只有 20KB 左右。同時我們還在構建 MCU 上的影象識別模型,預計只有 250KB。

這裡面有很大的想象空間。舉個例子,一些小玩具裡面可能有 MCU 這樣小的晶片,你呼叫它的呢稱時就有一些反應,你還可以讓這個玩具在做一些設定的動作時會有一些反應,這些能力都依賴於小的低功耗的 MCU 上的機器學習的能力。讓 MCU 上都可以部署機器學習的模型時,智慧開始無處不在。

TensorFlow Lite 還提供了很強大的優化工具,可以在精度損失很小的情況下,模型大大被壓縮。常見的一個概念叫量化,4 位元組的浮點數模型可以轉換成 1 位元組的整數模型,模型可以縮小 4 倍。另一個常用的技巧是剪枝,可以去掉一些複雜的樹枝和連線,模型的引數就會大大減少。這樣我們更進一步取得模型的壓縮 5 到 10 倍的效果。正是有非常強大的優化工具,將模型的大小大大減少,因此得以部署到各種移動裝置上。

我們經過不斷努力,TensorFlow Lite 取得了非常好的執行速度。比如 MobileNet V1, 是我們設計的適用於移動的開源模型,單執行緒的情況下,在 Pixel3 上可以取得 83 毫秒的速度,如果用量化的技巧可以加速 1.8 倍,如果用 GPU 可以加速 5.5 倍。如果使用 DSP,則加速可以提到 13.8 倍。可以想象在一個普通手機上就可以處理幾十幀的效率。


TensorFlow亞太研發負責人李雙峰:TensorFlow Lite如何連線世界

之前談了端側機器學習的基本概念,下面看一看有意思的一些 Demo。Dance Like 是我們在 Google IO 釋出的一個基於 TensorFlow Lite 的應用。希望通過動作識別來進行舞蹈識別。我們在手機上執行五個不同的任務,且不犧牲效能,下面看看我們是如何做到的。

第一步執行兩個身體部位的影象分割模型,第二步根據分割模型進行匹配和打分。第三和第五步分別進行播放錄製的視訊,同時進行視訊的解碼,並且做執行時的調整。有五個不同的任務在手機上執行,呼叫了 CPU 和 GPU 資源,可以取得非常好的效能,這證明了端側的機器學習有非常強大的功能。

更加激動人心的領域是在於端側的語音識別,不久前我們,宣佈了最新研究的完全基於神經網路的端側語音識別,效果和基於伺服器端的效果十分接近,精度沒有太大的損失,這代表著端側機器學習時代的逐步到來,端側語音識別是比較難的問題,我們在這方面有很多進展,一方面是演算法和技術層面有很多突破,另外一方面依賴 TensorFlow Lite 的框架幫助大家取得很的高效能。

另外這樣的功能還可以離線執行,可以想像大家拿著手機在沒有訊號的時候語音識別都可以很好的工作。我們也依賴於很多壓縮的技巧,左側伺服器模型需要 2G 大小,右側只需要 80 兆。我們今年的 Google IO 我們也提到了 Live Caption,可以在手機端離線把語音轉換成文字。在未來,很多能力都可以在裝置端執行,並不需要到雲端。

端側機器學習在文字、語音、影象和音訊方面都有非常廣泛的想象空間。全球有超過 20 億的裝置上部署著 TensorFlow Lite,這個數字還在不斷增加當中。Google 自己的產品大量部署 Lite,比如 Google Assistant(部署在非常多元的裝置上,比如手機端、手錶、車載和智慧音響),Google Photos 等;也可以看到國際巨頭像 Uber,Airbnb 等,還有國內大的公司比如網易、愛奇藝等都在使用 TensorFlow Lite。還有更多元的 TensorFlow Lite 的場景。


TensorFlow亞太研發負責人李雙峰:TensorFlow Lite如何連線世界

第一個例子是閒魚,閒魚是閒置物品的交易市場,面臨的問題是更好服務非專業的賣家,通過使用機器學習的幫助,讓買賣雙方有更輕鬆的交易。自動給一些標籤,識別這個照片裡面有沒有傢俱,提高了釋出的效率。TensorFlow Lite 給閒魚的端側體驗提供了很好的幫助。另外一個例子來自於科沃斯,是國內家用機器人的領導者,如何讓使用者用更少的時間進行清掃工作是他們不斷追求的目標。科沃斯使用了機器視覺的幫助,可以識別這個過程中的一些障礙物,他們選擇了用 TensorFlow Lite 部署深度神經網路,將推理速度提高了 30%,提高了使用者的體驗。

TensorFlow Lite 也非常適合工業物聯智慧裝置的開發,因為它很好地支援如樹莓派及其他基於 Linux SoC 的工業自動化系統。創新奇智應用 TensorFlow Lite 開發智慧質檢一體機、智慧讀碼等工業軟硬一體化智慧產品,在 PC 端訓練模型,在端側部署模型。他們的工作已經被應用到工業質檢等場景,比如用於服裝廠的快速質檢。

還有一個例子是出門問問,是語音互動軟硬體為核心的智慧產品公司,熱詞喚醒是使用者對語音互動第一個印象,準確、實時、輕量化的喚醒非常重要。特別是待機的時候保持低能效,非常重要。通過 TensorFlow Lite 部署的端側模型,能夠給予保障高喚醒率和低錯誤率,同時保持執行環境非常輕量化。

最後我們談一個重要的話題,就是資料隱私。在不久前召開的 Google I/O 大會的主題演講當中提到的聯邦學習(Federated Learning),可以很好的解決的這個難題。聯邦學習是一種新的機器學習方法,它不需要從裝置中收集原始資料,每個裝置會計算一個區域性的模型,把這些區域性模型的引數更新安全地上傳到伺服器端,伺服器端就可以聚合大量的區域性模型,形成一個全域性模型,最後全域性模型發回到使用者手機中。可以看到,整個過程當中並不需要收集使用者真實的輸入資料,能夠很好的保證使用者隱私,同時實現更好的體驗。


TensorFlow亞太研發負責人李雙峰:TensorFlow Lite如何連線世界

谷歌鍵盤輸入法 Gboard 已經遷移到這項技術中,當一個新的單詞流行的時候,聯邦學習允許成千人在剛開始使用後就很快學會新的單詞。而 Google 本身並未看過你輸入的內容。

最後無論是個人開發者還是企業,TensorFlow 都希望提供不斷優化的開源技術,幫助大家解決問題,創造未來。謝謝大家。

本文作者:Moonshot


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2646899/,如需轉載,請註明出處,否則將追究法律責任。

相關文章