什么是端智能?揭秘端智能
署名2021-01-08

端智能介绍

端智能是什么?做它有什么意义?

端智能(On-Device Machine Learning)是指把机器学习的应用放在端侧做。这里的“端侧”,是相对于云服务而言的。可以是手机,也可以是IOT设备等等。而端侧所做的机器学习,不仅包括模型的推理,也包括了模型的训练。

传统的机器学习,由于模型大小、机器算力的问题,很多是放在服务端做的。而随着以手机为代表的端侧设备算力的提高,以及模型设计本身的演进,大小更小、能力更强的模型逐渐能够部署到端上运行。端智能可以说是业界从Mobile First走向AI First的过程中必然会出现的产物。

很多人可能会有这样的疑问,模型可以放到端上跑,不一定代表它必须要放到端上跑。那我们为什么一定要做端智能呢?

来看一则新闻,有助于理解这个问题,这则新闻讲的是工信部正在加强对于侵害用户隐私的App的整治。以后想不经过用户的同意而获得他们的数据就没那么简单了。而机器学习的核心就在于数据。有许多研究表明,有了足够的数据,模型结构再简单,也能获得很好的结果。中国对于数据隐私性的重视在加强,国外就更不用说了。欧洲有极其苛刻的数据隐私保护法律 GDPR (General Data Protection Regulation)。

所以,隐私性是未来做机器学习不可脱离的一点。而端智能可以做到数据不离端而进行推理甚至模型训练,相比于云端机器学习有天然的隐私性优势。由 Google 推动的 Federated Learning 在这样的背景下产生,它能够让大量的端侧设备使用各自的数据协同训练出一个全部模型,并且保证训练数据不离端,隐私得到保护。这个就是端智能充分利用端侧设备的算力的一个例子。在手机淘宝,Federated Learning 也在布局之中。

除了隐私性上面的优势以外,端智能在算力方面还有天然的优势。先看一组数据比对:2018年,世界上最快的计算机“Summit”的算力是143.5 PFLOPS . 而在2018年,华为卖出了1700万台P20 。每台P20中的麒麟970 NPU的算力是1.92 TFLOPS 。这些NPU合起来的算力就有32640 PFLOPS,相当于227个“Summit”。端侧设备的算力不容小觑。可以说,它是一个算力的海洋。

除了隐私性、更大的算力资源,许多应用场景是“非端不可”的,因为这些场景有很强的实时性。比如Snapchat中的人脸贴纸功能,需要对视频流的每一帧进行处理,然后渲染。这就要求图像处理的模型(例如人脸关键点的检测模型)运行在端上。

总的来说,更好的隐私性,更大的算力资源池,实时性是端智能独特的优势,也是做端智能的原因。

端智能有哪些挑战

端智能的挑战有以下方面:

速度、

设备碎片化、

引擎大小、

模型大小、

内存占用

端智能的几个趋势

端智能行业是一个发展迅速的行业,我们在这样的大环境下,不前进就要后退。根据平时的调研,说4个趋势:

  1. 端上推理的重要性高于训练,但是补齐端上训练能力也有价值。
  2. 后摩尔时代到来,XPU 百花齐放。
  3. NLP 逐步走向成熟。
  4. 从手机端到AIOT端。