从云智能到端智能可能有很多人纳闷不是要聊端智能么?怎么还牵扯到边缘计算了,莫不是为了凑字数?实际上从云智能到端智能的延伸实际上也是云计算到边缘计算的扩展。我们知道云计算自身有着许多的优点,比如庞大的计算能力,海量的数据存储能力等等。现在很多对外提供服务的 APP 本质上都是依赖各种各样的云计算,比如直播平台、电商等等。但新型用户体验追求更加及时,稳定性的服务,这就促使我们想要将服务尽可能的部署在物理设备所在位置,最终推动了边缘计算的发展。
从云智能到端智能,本质也是如此。以无人驾驶为例,总不能在驾驶过程由于网络波动导致汽车停止对路况的计算吧,或者说在万分之一秒内还不确定是要刹车还是加速吧?
c3c55b5d81d54269973c987f98e49d13~tplv-k3u1fbpfcp-watermark.jpg
那究竟什么是边缘计算呢?边缘计算与所谓的端智能又有什么联系?继续往下看~
边缘计算边缘计算是一种致力于使计算尽可能靠近数据源,以减少延迟和带宽使用的网络概念。通常来说边缘计算意味着在云端运行更少的进程,将更多的进程移动到本地设备,比如用户的手机,IOT 设备或者一些边缘服务器等。这样做的好处就是,将计算放到网络边缘可以最大程度减少客户端和服务器之间的通信量及保持服务稳定性。
不难发现,边缘计算本质是一种服务,类似于我们现在的云计算服务,但这种服务非常靠近用户,能够给用户提供更快速的响应,简单点说就是干啥啥快。
6f6ad60a8bcc4536af2a9a8c35d51f90~tplv-k3u1fbpfcp-watermark.jpg
需要注意的是,边缘计算并非用来取代云计算的,如果说云计算更注重把控全局,那边缘计算则聚焦于局部,本质上边缘计算是对云计算的一种补充和优化,可以帮我们从数据源头近乎实时地解决问题,凡是在需要减少时延或追求实时目标的业务场景下,都有它的用武之地,比如:计算密集型工作,人工智能等场景。这里的人工智能的场景就涉及到我们下面要说的端智能了。
端智能的本质对于人工智能,想必我们已经见怪不怪了,尤其是以头条/抖音/快手为代表的应用,都是将机器学习用到极致的产品,此外像扫地机器,无人车等硬件设备也是人工智能落地的最佳示例。那我们要说的端智能又是什么角色呢?
和从云计算到边缘计算的发展类似,人工智能的发展也经历从云到端的过程,我们常说的端智能实际上就是把机器学习放在端侧去做。这里的端侧是想相对于云端而言的,除了我们常见的智能手机外,端侧设备也包括各种 IOT 设备,嵌入式设备等,如语言翻译器、监控摄像头等,当然无人车也属于该领域。
9e5715301d9d48a0a18a9aedbb215c3d~tplv-k3u1fbpfcp-watermark.jpg
从 2006 年开始,人工智能进入第三次发展阶段,并以 AlphaGo 先后战胜李世石和柯洁宣告新时代的到来,这背后得益于:

  • 大数据的发展及硬件算力提升,CPU、GPU 及专用计算单元;
  • 深度学习算法及框架不断演进,从 Torch、Caffe 到 TensorFlow、PyTorch 等。
与此同时,端侧设备同样在算力,算法及框架有了突飞猛进的发展:

  • 算力:CPU、GPU 性能提升,手机算力不断增长,以及专门用于 AI 的神经网络处理芯片逐渐成为标配,已经能够不同程度上支持算法模型的运行;
  • 框架:面向移动端的机器学习框架的诞生让我们能更轻松的在端侧应用机器学习。在手机侧,Apple 的 Core ML,Google 的 NNAPI 提供了系统级别的支持,除此之外业内也有很多优秀的端侧框架:TensorFlow Mobile/Lite、Caffe2、NCNN、TNN、MACE、Paddle&Paddle Lite、MNN 及 Tengine 等;
  • 算法:模型压缩技术不断发展,其中量化已经非常成熟,基本能够实现在不降低精度的情况下将模型缩小为原来的 1/4~1/3;此外,针对端侧的算法模型在不断的优化过后,架构设计变得越来越成熟,对于端侧设备的兼容性也愈加友好。
当然,我们都知道最终驱动云智能和端智能发展的根本动力是实实在在的产品需求。从端智能的角度来看,由需求驱动的 AI 场景应用已经在软硬件多方面成为产品的主要卖点,比如手机摄像能力的提升,除了摄像头等硬件的发展外,各种图片处理算法的发展也功不可没;再像抖音、快手等应用的各种模型特效,在简化创作的同时也极大改善了产品的形态。
为什么要做端智能?要知道为什么做端智能本质就是需要搞清楚当前云智能面临什么样的问题。正如之前所说,云智能的发展建立在现代需求之上,它主要的优势是:

  • 面向海量数据,这意味我们能通过不断的累积数据,寻求问题的最优解;
  • 设备资源充足,算力强大;
  • 算法规模庞大,空间不受限制;
但这种依赖云端的架构方式也有着相应的缺陷:

  • 响应速度:依赖于网络传输,稳定性和响应速度无法得到保障,对于实时性要求高的情况而言,该问题近乎于无解;
  • 非实时性,脱离即时 Context,用户敏感度差;
而端智能的优势恰好能作为云智能劣势的补充:

  • 响应速度快:在端侧直接获取数据进行处理,不依赖网络传输,稳定性和响应度 OK;
  • 实时性高:端侧设备实时触达用户,不存在中间商赚差价,能够实时感应用户状态;
除此之外,由于数据和生产和消费都是在端侧完成,对于敏感数据可以保证隐私性,规避法律风险;另外我们可以进行更精细化策略,有可能实现真正的实现千人千面。
端智能的局限前文我们说了端侧智能能够补充云智能的几个缺点,但它也有着自己的问题:

  • 和云侧硬件设备相比,端侧资源&算力相对有限,无法进行大规模持续计算,模型不宜过于复杂;
  • 端侧往往只是单用户数据,数据规模小,全局最优解难寻。此外由于端侧应用生命周期不可控,数据周期往往较短。
在这两个条件的制约下,端智能往往意味着是只做推理,即云端训练模型下发到本地后做推理。
023c026c9a91478aa6f119618e5df5a9~tplv-k3u1fbpfcp-watermark.jpg
当然随着技术的演进,现在我们也开始探索联邦学习,它本质上是一种分布式机器学习技术,主要希望在保证数据隐私安全及合法合规的情况下,可以有效解决数据孤岛问题,让参与方在不共享数据基础上实现联合建模,提升模型的效果。在这里,端上能做的就不仅仅是推理了还有学习过程。
5G 与端智能之前有同学提到过既然 5G 又快又好,那完全没必要搞端智能啊。这里简单谈谈我自己的理解。(如有不对之处,请找隔壁小哥)
5G 的高速连接和超低时延,目的在于帮助规模化实现分布式智能,也就是云-端智能一体化。来具体解释下:5G 给端和云之间的连接提供了更稳定,更无缝的的支撑,此时网络就不再是端云互通的瓶颈了,但伴随万物互联时代的到来,数据规模将会进一步暴增,进入超大数据规模的时代,此时服务端的算力就会成为瓶颈,那么此时在端侧对于数据的预处理和理解也就更加重要,这就需要端智能的介入。
举个安防领域的例子,现在很多家庭摄像头都支持云存储,如果我们希望只在有人活动的时候才会将视频保存到云端,该怎么做呢?最好的方式是先在端侧借助 AI 进行图像识别,然后将包含人的视频片段上传到云端,而不是先将所有视频上传到云端再进行图像处理(裁剪掉无用的视频片段),前者既可以节省流量带宽,又可以节省云侧算力,这里端侧对视频的处理也就是我们刚才说的对数据的预处理和理解。
33801f0604094e338338f005f694b69b~tplv-k3u1fbpfcp-watermark.jpg
对于 AR 来说,端智能为 AR 提供交互能力,5G 则能满足 AR 需要的网络传输能力,在这两者的加持下,具备互动性,高品质的 AR 技术会促进真实世界与虚拟环境的融合。



作者:字节跳动技术团队