边缘计算与端智能
日益增长的业务实时性需求使边缘和端侧计算能力变得越来越重要,IDC 预测,到 2023 年,接近 20% 的用于人工智能工作负载的服务器将部署在边缘。
云计算为人工智能提供了基础架构,目前云端是承载海量数据处理和大规模计算的重要载体。在新技术的驱动下,5G 等连接技术降低了数据的传输和处理速度,为了分担数据中心的计算压力并且也能提高实时响应速度,人工智能在边缘侧的处理将成为企业的一个关键增长领域。
人工智能在边缘以及端侧将有广泛的应用场景,从自动驾驶到工业制造,再到消费者智能家居和可穿戴设备,处于端侧、边缘侧的人工智能芯片需要在功耗、计算性能、形状和物料成本之间取得平衡。
边缘计算
云计算指的是通过网络"云"将巨大的数据计算处理程序分解成无数个小程序,然后通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。
云计算可以提供了庞大的计算能力、海量的数据存储能力,极大的促进互联网的发展。
借助云计算的强大计算能力,很多行业实现了跨越式发展,例如物联网行业物联网设备连接数量和产生的数据呈海量增长趋势。
一方面传统的采用集中处理方式的云计算模型已无法处理因各类接入设备产生的海量数据,让云端不堪重负,造成更大的数据瓶颈;另一方面,万物互联背景下,应用服务需要低延时、高可靠性以及数据安全,而传统云计算模式在实时性、隐私保护和能耗等问题上无法满足需求。
为了更加实时和分析来自终端设备的海量数据并减轻网络传输压力,人工智能的算力会逐渐向边缘转移。那什么是边缘计算那?
边缘计算指的是在网络边缘结点来处理、分析数据。边缘结点指的就是在数据产生源头和云中心之间任一具有计算资源和网络资源的结点。比如手机就可以是人与云中心之间的边缘节点,网关是智能家居和云中心之间的边缘结点。
通常来说边缘计算把更多的计算进程放到边缘节点,云端运行较少的进程。这样,就可以实现在数据产生源附近计算、分析数据,最大限度减少客户端与云端的数据流转,进而减少云端响应时间和网络服务不稳定性。
如果还是不能理解边缘计算,小包来举个栗子: 大家都听说过章鱼吧
不知道大家了不了解章鱼,章鱼具有"概念思维",能够独自解决复杂的问题,是自然界中智商最高的无脊椎动物。这与它的记忆系统有关,章鱼有两个记忆系统,一个是大脑,具有5亿神经元;另外一个是八个爪子上的吸盘,也就是说,章鱼的八个爪可以思考和解决问题。
章鱼的大脑就类似于云计算,八个小爪子就是边缘计算,每个爪子就是一个小型的机房。云计算把握整体,边缘计算把握局部。
由于边缘计算更靠近数据,因此边缘计算会具备下列优势:
- 数据本地化: 数据无需发往云端,解决云端存储及隐私问题;
- 计算本地化: 在边缘节点进行部分计算,降低了云端的计算压力,解决云端计算过载问题;
- 低通信成本: 不用与云端进行交互,可以实现低时延和实时性较强的场景,同时也节省了通信成本;
- 去中心化计算,故障规避与极致个性化。
我们可以举几个边缘计算典型案例来体验边缘计算的优点:
- 在人脸识别领域,边缘计算可以将响应时间由 900ms 减少为169ms;
- 把部分计算任务从云端卸载到边缘之后,整个系统对能源的消耗能够减少 30%-40% ;
- 系统数据在整合、迁移等方面耗时将会缩减到原来的 1/20 ;
但需要注意,虽然边缘计算非常牛,但是边缘计算并非是云计算的"取代品",不能将云计算一刀切(虽说章鱼爪子能思考,但也不能把大脑切掉光靠爪子生活啊)。如果说云计算更注重把控全局,那边缘计算则聚焦于局部,本质上是对云计算的补充和优化,边缘计算更靠近数据源头,能低时延近实时的解决问题。
IDC 预测,到 2023 年,将有 20% 的边缘服务器用来处理 AI 工作负载,70% 的企业将在物联网边缘运行不同级别的数据处理。
边缘计算同样会存在很多挑战:
- 边缘计算中心与不同数据采集测通讯协议的不一致
- 边缘应用场景碎片化,无法形成规模化场景。
- 边缘计算具有潜在能量的数据丢失: 边缘计算的数据往往不会送往云存储,边缘计算处理后会丢弃
端智能
与云计算到边缘计算类似,人工智能的发展也正在经历从云到端的过程。 我们回想一个人工智能应用的开发流程,一般有下列四步:
- 数据的采集与预处理
- 模型的选取与训练
- 模型效果评估
- 模型的服务部署和推理
模型推理的方案一般是部署在云端或者服务器端,对外提供 API 给客户端。这种模式存在很多优势,云服务器空间资源充足,可以存储海量数据;算力强大,能进行复杂的模型推理。但不免出现类似云计算的问题:
- 响应速度: 数据的传输与响应依靠网络传输,稳定性和响应速度无法保持稳定,对于实时问题或低时延问题几乎无解。比如无人驾驶汽车,驾驶过程中遇到了十字路口,但此时恰好出现了网络波动,联系不到云端,那该向左还是向右那?
- 数据隐私性: 19 年工信部发出《关于开展APP侵害用户权益专项整治工作的通知》,说明我国对个人数据隐私性的重视在加强,应用想要获得大量数据发往云端变得困难,没有数据的云端就好比"巧妇难为无米之炊"。
端智能简单来说就是在端侧完成模型推理过程。相比于云智能来说,端智能有着以下几点显著优势:
- 低延时: 模型推理在端上进行,无需与云端进行网络请求,降低了响应时间。低延时对于一些实时性要求高的场景极为重要。
- 安全性: 数据无需传往云端,可以更好地保护用户隐私数据。
- 定制化: 根据用户习惯进行本地训练,步步优化,可以更好的实现"千人千面"
- 节省资源: 在端侧处理,利用端侧算力和存储空间,可以节省大量的云端计算和存储资源
但端智能也存在比较致命的缺陷——低算力。端侧的算力和存储与云服务器相比还相差甚远,无法做大规模高强度的计算。
为了尽可能压榨算力,就需要对硬件平台进行适配,做指令级的优化;同时压缩模型,在时间和空间上减少消耗。
同时,由于端侧只是单用户数据,数据量小,在算法上无法做到最优。用户数据有限,端侧数据并不适合长期大量存储,端侧可用数据有限。
端智能应用
近年来,端智能的应用场景越来越多,广泛应用于人脸识别、手势识别、图像搜索、互动游戏等,但可以粗略的分成两类:
- 利用 AI,创建新的交互方式: 手淘美妆 AR : 基于端侧 AI 的⼈脸检测能⼒结合 AR 应⽤可以给消费者更加真实的购物体验。支付宝扫福;飞猪双十一互动游戏"找一找";AR应用、游戏: 美颜相机、虚拟试妆
- 利用 AI 新技术,实现更个性化,时效性等的工作流程
- 端侧重排: 通过实时识别用户意识,重新排列服务器推荐算法生成的 feeds 流,使内容推荐更精准。
- 个性化: 手机淘宝"猜你喜欢"页面
端智能挑战
端智能的应用已经非常广泛和普遍,但端智能的发展也面临着一些挑战。
- 设备的碎片化: 端侧设备严重碎片化,复杂多样的操作系统和系统版本。如何保证模型适配各种设备且充分利用加速,是端智能发展的挑战之一。
- 模型与引擎大小: 模型太大会影响加载速度,运行时也会占用巨量内存。推理引擎需要集成到app中,app太大也会占据大量存储。
- 内存占用: 运行时会占用大量内存,会影响用户体验。
端智能趋势
总结出几大趋势: 端上推理与训练端上的推理高于训练,但仍需要补齐端上的训练能力。
IDC预测,用于推理工作负载的服务器市场份额将在不久的将来超过训练,并在预测期内保持这一趋势。
后摩尔时代与XPU
摩尔定律在过去的几年逐渐失效,general-purpose CPU 性能的增长速度已经平滑。但人工智能模型对算力的要求越来越高。因此很多公司推出了针对 AI 特殊加速的 "XPU"。
未来端智能算力主要靠各式各样的 XPU 来提供。如何适配碎片化的 XPU ,充分利用硬件能力,是未来推理引擎要重点突破的领域。
由手机端到AIOT端
未来几年,全球的手机出货量不会像往年一样大幅增长,而是平稳甚至下滑(见下图全球手机出货量趋势),但 AIOT 端产品一方面种类多样,比如像安防领域的指纹锁、监控摄像头、无人机等等。
另一方面随着云计算的发展,物联网界正进行着跨越式的发展,AIOT 端数量会越来越多
端智能框架发展
经过近几年的发展,已经有一些比较成熟的端侧推理引擎:
- Google/TensorFlow Lite
- Facebook/PyTorch
- 腾讯/NCNN
- 字节/Pitaya
- 百度/Paddle-Lite
- 淘宝/MNN