標籤:

從伺服器端到移動端的轉折,On Device AI革命進行時

本文由 【AI前線】原創,推薦閱讀:t.cn/RHNgd73

作者|王小輝

編輯|Emily

AI 前線導讀:」很多年以後,當我們回望 2017 年,會意識到對於移動互聯網的發展來說,這一年是一個重要的里程碑。晶元製造商、移動操作系統提供商、深度學習框架社區以及移動應用開發者都開始轉向 On Device AI,同時,這個趨勢同樣惠及於 IoT 產業的 Edge 端設備。本文就從這幾個方面來解讀一下這個趨勢。」

移動端 AI 現狀——正在發生的移動平台的 AI 革命

首先,為什麼我們需要 On Device AI 能力呢?在 Edge 端設備上的 AI 能力可以帶來這幾個好處:

  • 降低網路依賴,使得終端設備具備識別和決策的能力;
  • 降低伺服器端帶寬和計算成本,因為可以將計算前置到 Edge 端設備;
  • 降低延時,提高 AI 能力響應速度;
  • 降低用戶的移動流量成本,因為不需要上傳大量原始數據到伺服器端處理。

那麼,Edge 端設備的硬體計算能力畢竟有限,能否支持 AI 模型的 Inference 呢?

晶元製造商

2017 年 3 月 ARM 提出了面向 AI 的新架構 DynamlQ 技術。

「Cortex-A CPUs that are designed based on DynamIQ technology can carry out advanced compute capabilities in Machine Learning and Artificial Intelligence. Over the next three to five years, DynamIQ-based systems will deliver up to a 50x* boost in AI performance. This is achieved through an aggressive roadmap of future DynamIQ IP, integrated with new Arm architectural instructions, microarchitectural improvements, and further software optimizations to the Arm Compute Libraries.」

ARM 表示未來 3 到 5 年內實現比基於 Cortex-A73 的設備高 50 倍的人工智慧性能,最多可將 CPU 和 SoC 上特定硬體加速器的反應速度提升 10 倍。

緊接著,ARM 在 4 月份開源了支持 Context-A 系列 CPU 和 Mali 系列 GPU 的 Compute Library,讓機器學習和深度學習演算法在 ARM 平台更高效地運行。

2017 年 8 月高通對外發布了支持 Caffe/Caffe2 和 TensorFlow 的 Neural Processing Engine SDK,讓深度學習可以利用 GPU 和 DSP 的計算能力

實際上,在 2017 年 4 月,Facebook 發布了針對 Edge 端設備的深度學習框架 Caffe2,其主要作者賈揚清在 F8 大會上演講時就提到:「Android 系統上的 GPU 也類似,我們與高通合作開發了『驍龍神經處理引擎』(SNPE),如今高通驍龍 SoC 晶元為大量的手機服務,現在是 Caffe2 的首要概念( first class concept),我們可以利用這些 CPU 和 DSP,從本質上提升能效和性能。」

高通在 2017 年 12 月發布最新晶元驍龍 845 時提到:「In addition to the existing support for Google』s TensorFlow and Facebook』s Caffe/Caffe2 frameworks, the Snapdragon Neural Processing Engine (NPE) SDK now supports TensorFlow Lite and the new Open Neural Network Exchange (ONNX), making it easy for developers to use their framework of choice, including Caffe2, CNTK and MxNet. Snapdragon 845 also supports Google』s Android NN API.」

也就是說,SNPE 不但支持 Caffe、Caffe2、TensorFlow 和 Edge 設備端專用的 TensorFlow Lite 等深度學習框架,也支持由 Facebook 和微軟發起的 ONNX(Open Neural Network Exchange),一個 Intermediate Representation,讓 Caffe2、CNTK、PyTorch 以及 MXNet 這些框架可以實現模型互通,方便晶元廠商可以針對一個標準進行硬體級別優化。

2017 年 9 月,華為發布了麒麟 970,內置中科院寒武紀 -1A NPU,可以加速神經網路在手機端的運行。

在發布旗艦設備 Mate 10 之後,華為推出了 HiAI 移動計算平台業務,踐行在麒麟 970 發布會上的承諾,打造一個開放式的 AI 生態系統,讓開發者可以通過這個平台為華為 Mate 10 這樣搭載了最新麒麟晶元的設備上提供具有 AI 能力的應用。

2017 年 9 月,Apple 在年度產品發布會上,發布了將會搭載在 iPhone 8、iPhone 8 Plus 和 iPhone X 上的 A 11 Bionic SoC,用於支持 iOS 系統機器學習和深度學習模型的框架 CoreML 和增強現實框架 ARKit,並且升級了圖形處理晶元 Metal 2,用於加速深度學習模型的 Inference。

2017 年 11 月,Google 發布了 Android 8.1 Beta 最終版本,正式支持在今年發布的新款旗艦 Pixel 2 中搭載的 IPU(Image Processing Unit),用於加速圖像處理和機器學習的 Inference:「Also, for Pixel 2 users, the Android 8.1 update on these devices enables Pixel Visual Core -- Googles first custom-designed co-processor for image processing and ML -- through a new developer option. Once enabled, apps using Android Camera API can capture HDR+ shots through Pixel Visual Core.」

移動操作系統提供商

2017 年 5 月,Google 在年度 I/O 大會上,宣布會推出 TensorFlow Lite,運行在下一代 Android 系統將會新增的 Neural Network API 之上,使得開發者可以將 TensorFlow 深度學習框架創建的模型移植到移動端運行。10 月 25 日,Google 發布了 Android 8.1 Beta 開發者預覽版,正式推出了 NN API:

11 月 14 日,Google 發布的 TensorFlow Lite 已經支持 NN API 了,而 DNNLibrary 是一個 GitHub 上開源的庫,支持運行通過 DNN Convert Tool 轉換的 Caffe 模型。

2017 WWDC 上,Apple 發布了支持 Caffe、TensorFlow 等深度學習框架,以及 SVM、XGBoost 、 sklearn 等機器學習模型的 CoreML。12 月 5 日,Google 發布文章 Announcing Core ML support in TensorFlow Lite,宣布已經和 Apple 合作使得 CoreML 支持 TensorFlow Lite。

深度學習框架

2017 年 4 月,Facebook 宣布開源面向 Edge 端設備的深度學習框架 Caffe2,其主要作者 賈揚清在 F8 上說:「在移動端進行機器學習任務有以下好處:保護隱私,因為數據不會離開你的移動端;避免網路延遲和帶寬問題;提升用戶體驗,比如優化 feed ranking 功能。所以我們開始著手,從底層建造一個專門為移動端優化的機器學習框架。」

2017 年 9 月,百度發布了 Mobile Deep Learning library,騰訊早些時候也開源了類似的 ncnn 框架。

2017 年以來,Google 開源了專為移動端優化的 MobileNets 模型;Face++ 提出了適合移動端的 ShuffleNet 模型。OpenCV 3.3 內置了支持多種深度學習框架的 DNN。

應用開發者

從上面的內容可以看到,從晶元製造商到移動操作系統提供商,再到深度學習框架社區,都為 On Device AI 做了很多準備,而且,從 GitHub 和國內外的開發者博客上,我們看到了非常多基於 CoreML、基於 TensorFlow 等深度學習框架的移動端應用案例,體現了開發者對這個趨勢的極大熱情。無論我們是哪個移動平台的開發者,都應該清晰認識到這個趨勢,及時點亮自己的技能點,為用戶提供更智能、更人性化的應用。

移動端 AI 的應用場景

AI 在智能手機上有哪些應用場景呢,對於不同的開發者來說,如何確定自家的應用是否需要 AI ?如果需要,如何引入?

智能手機製造商(比如 Apple、華為等)和數以萬計的應用開發者都可以在自己的 apps 中應用 AI 相關的技術,讓自家的 apps 更好地服務用戶的同時,提高競爭力和市場佔有率。

本部分將從智能手機製造商和應用開發者這兩種角色出發,分別進行討論。

智能手機製造商

2017 年,最具有明星氣質的兩款配備 AI 能力的手機是 iPhone X 和 華為 Mate 10,這兩款手機有以下共同點:

  • 搭載了專門針對 AI Inference 能力優化的硬體晶元。iPhone X 搭載了 A11 Bionic 晶元,可以加速神經網路模型運行,支持 Metal 2 的 GPU 計算能力,也可以用於深度學習模型的 Inference。
  • 為開發者提供了 Inference 加速能力的 API。Apple 在最新的 iOS 11 中提供了 CoreML,通過 coremltools 將常見的傳統機器學習演算法模型(比如 XGBoost、SKLearn)和主流深度學習框架訓練得到的模型轉化為自有格式 .mlmodel (一個整理 CoreML 格式模型的網站:coreml.store),之後該格式的模型可以打包在應用安裝包裡面,並在運行時載入進行 Inference;華為在 Mate 10 發布後推出了 HiAI 移動計算平台業務 ,進行之前發布有 NPU 的麒麟 970 晶元組時提到的 OpenAI 生態系統建設。
  • 在系統應用中應用了 AI 能力。iPhone X 的 Face ID 、動態表情包和 Siri 就用到了面部識別、語音識別以及 NLP 等相關 AI 能力;華為的智能相機應用、機器翻譯和語音助手等也具備 Image Classification、Object Detection 等 AI 能力。
  • 如果大家之前對這兩款機型有關注和了解,對這些應該不陌生。接下來,我們整理了對於智能手機製造商來說,移動端 AI 有那些應用場景。

智能相機

  • 實時識別正在被拍攝的對象和場景,進行攝像頭拍攝參數的優化

  • 識別自拍或者人像拍攝,提供背景虛化。
  • 拍攝時放大畫面,進行自動像素增強。

  • 人臉識別,結合專用攝像頭陣列,提供 Face ID。
  • 實時翻譯:自動實時將攝像頭拍攝到的文字翻譯為另一種語言。

智能語音助理

  • 語音識別:將語音轉化為文字,這部分能力可以用於語音備忘錄;如果再通過 NLP 處理,理解用戶所說的話的意思,並結合上下文進行智能建議(推薦附近的餐廳、影院等)或者直接完成任務(設置定時器、訂購機票以及撥打電話等)。
  • 自動翻譯:實時將語音翻譯為另一種語言。

智能系統優化

  • 基於用戶的設備使用情況,智能管理設備的後台進程,減少耗電量,並且學習在合適的時候進行用戶觸達。
  • 基於感測器數據進行用戶行為識別,結合位置數據,進行 life style profiling,讓設備被更好地理解自己的使用者,變得越來越個性化和智能化。

應用開發者

對於智能手機製造商來說,能夠提供的系統應用畢竟是有限的,更多的用戶需求需要應用開發者提供各自的解決方案。對於應用開發者來說,其實也可以提供基礎類應用,比如拍照應用、智能語音助理等,如果能夠藉助手機製造商提供的硬體計算能力,達到比系統自帶的基礎類應用更好的效果,也會得到用戶的歡迎。比如 Google 的輸入法在 iOS 平台就比較受歡迎,該應用採用了 Google 於上半年提出的 Federated Learning,能夠在提供個性化能力的同時,在線優化輸入法的預測模型,並在整個過程中不上傳用戶的輸入數據記錄,保護了用戶隱私。

除了基礎類應用,下面這些應用場景對開發者來說也非常值得考慮:

  • AR:Apple 的 ARKit 和 Google 的 ARCore 的推出意味著移動應用開發的新趨勢出現,優秀的增強現實類應用將通過更好的用戶體驗和交互獲得用戶的肯定,而為了讓自家的這類應用脫穎而出,開發者除了用好 AR 框架,還需要更好的理解現實場景的能力,比如風格遷移、物體檢測等都有相應的適用場景。
  • 個性化內容推薦:基於用戶的使用記錄為用戶推薦感興趣的內容,提高用戶粘性。

最後,我們還需要強調的是,無論是智能手機製造商還是應用開發者,都需要考慮對用戶隱私的保護。當我們可以在移動端高效運行機器學習以及深度學習模型時,有很多任務可以在移動端做,用戶的數據無需上傳到伺服器進行處理,在保護隱私的同時,也減少了流量消耗和伺服器成本。上面提到的 Google 推出的 Federated Learning 就是這樣做的,Apple 也在自己的官方機器學習博客中介紹了自己的類似做法:Learning with Privacy at Scale。

關注後回復「AI」你懂的


推薦閱讀:

semantic web 語義網路是如何工作的?
用APP來預防失明?16歲的少女為此還研發了一套AI
還在擔心核武器?真正滅絕人類的更可能是人工智慧! | 一勺思想
來,開復想找你聊聊和 AI 相處的事
機器人學習路徑與書單推薦(平衡小車之家)

TAG:人工智能 |