机器学习有着很高的处理需求,而其通信成本意味着人们最终需要它在边缘的地方(智能手机)发挥作用。
如今,人们正在进入由人工智能(AI)驱动的新一轮技术创新时代,机器学习处于技术最前沿。即使在今天,机器学习也是任何设备体验的重要技术,为各种任务、功能、应用程序提供支持。从设备上的安全性(如面部解锁、面部识别和指纹识别),到智能手机摄像头和音频功能(允许用户通过诸如Socratic、Snapchat、FaceApp、Shazam等应用程序获得更智能和有趣的体验),经常使用各种基于机器学习的功能由消费者提供。
但是,对于创建大量数据的基于机器学习的任务,这些任务通常会转移到云端进行处理,然后再通过操作发送回设备。例如,Socratic和Shazam都在云中使用机器学习处理,而不是在设备上。这就带来了一个问题:在设备上进行机器学习处理会不会更简单、更快捷?
能够在设备或边缘上执行基于机器学习的任务,而不是将其发送到云端进行处理,许多人将其描述为“机器学习演进的下一个阶段”。有许多重要的限制,功耗、成本、延迟、隐私等限制因素使得在云端和设备之间来回传输的机器学习数据不切实际。几年前,机器学习在边缘领域似乎是一个“白日梦”,而设备的技术创新使它们能够处理计算密集型任务。
云计算的约束
云端的机器学习处理的所有约束都是相互关联的。
首先,处理云端的机器学习任务所需的大量数据的功率和成本是巨大的,更不用说通过不断增长的带宽需求产生的大量流量。早在2017年,就有人指出,如果每个人每天使用他们的Android语音助手三分钟,那么谷歌公司必须将其拥有的数据中心数量翻一番。
而在2019年,谷歌公司可能解决了这一特殊挑战——事实上,在最近的会议中,谷歌公司表示可以让500GB语音辅助模式缩小到0.5GB,因此它可以在移动设备上完全运行。然而,它确实说明了云端的机器学习可以处理巨大基础设施和经济需求。边缘的机器学习可以通过减少对基于云计算的机器学习所需的云计算服务和支持基础设施的依赖来减轻这些负担。
用于云端的机器学习处理的巨大经济成本可能最好通过开发人员的经验来说明。每台设备在服务器上进行一秒钟的计算大约需要0.00003美元。这显然是一个非常小的成本,但是当考虑到开发商的目标是尽可能多的受众时,其成本很快就会开始上升。例如,对于一百万台设备,服务器上一秒钟的计算成本是28美元,即每分钟1680美元。对于以1亿用户为目标的极其成功应用程序,开发商将支付每分钟160万美元的费用!
最重要的是,将云计算用于基于机器学习的任务根本不可行。即使距离很近,也需要大量的电力才能将数据发送到云端。在设备上,基于机器学习的处理所需的功率量要小得多。
在设备和云端之间来回发送数据将会产生明显的滞后或延迟,大多数基于机器学习的应用程序,特别是那些对时间要求严格的应用程序来说都是不能容忍的。改善延迟开启了基于机器学习的应用程序可以完成的新功能。例如,如果由于发送、处理、接收增强视频所花费的时间而在云端完成机器学习处理,那么Snapchat AR体验是不可能的。
通过逐步查看流程,可以很好地说明用于云端的机器学习处理的延迟问题。在当前的4G网络上以一种方式(从设备到云端)启动数据流提供50ms的理论延迟,这大约是4个视频帧的延迟。然后,为了处理云端的机器学习数据,一个视频帧可能延迟16ms。
最后,从云端回流到设备是50ms的延迟。因此,整个过程大约有10个视频帧的延迟,使得其延迟远远高于提供即时响应设备上的机器学习。5G技术确实有可能将此设备更改为边缘处理,因为其部署只有1ms的延迟,但5G技术的广泛应用仍需要一段时间。
最后,云计算与设备之间的持续交互创建了一个更容易受到隐私威胁的场景。用户可以更容易地在他们的设备上处理他们的个人数据,而不是将其发送到云端。如果为机器学习任务生成的数据经过数百英里到达云端,然后返回到设备并做出决定,那么很有可能受到影响。基本上,防止攻击用户隐私的最佳方法是确保敏感数据不会离开设备。
开发人员希望机器学习处于边缘
开发人员的需求最适合边缘的机器学习处理。机器学习正在改变开发人员编写算法的方式。在以往,针对特定用例需要人工编写代码,这非常耗时,并且使用机器学习有时容易出错,开发人员不再需要编写代码。相反,他们创建了一个模型,并用数据集对其进行训练,与人工编写代码相比,这种方法更加强大。
机器学习多年来一直为开发人员所熟知,但主要用于数据中心的高计算设备。直到最近,它才被用于移动设备,因为它们的计算效率变得更高,并且能够运行更复杂的机器学习模型。将最新的设备创新与开发人员的需求结合起来,使机器学习成为了首选。
设备上的机器学习处理通过实时处理和低延迟为开发人员提供即时结果,同时允许他们在没有网络连接的情况下执行机器学习任务。
云计算机器学习处理有时可能是适当的
尽管面临各种挑战,但数据处理的云计算模型意味着可以不断更改和升级机器学习算法。因此,任何与云计算交互的设备也可以改进其处理机器学习任务的方式。此外,还有一些需要大量计算,并对时间不敏感的任务。因此,云计算的延迟并不是一个大问题。
其例子包括无人机的数据处理,这些无人机为研究、工业、军队提供详细图像或视频输入,或者对患者进行放射学或X射线检查等医学成像。虽然仍然很重要,但边缘的机器学习并不一定是所有基于机器学习的任务的“一刀切”解决方案。
所有参与机器学习处理的团队(从开发人员到原始设备制造商)都需要确定设备上的哪些任务能从边缘的机器学习中获益。
边缘的机器学习是未来的需求
利用各种基于机器学习的任务和应用程序的移动设备已经被全世界数十亿人使用。大多数情况下,需要设备上的实时响应,而边缘的机器学习将提供这种响应。用户和开发人员不希望依赖云计算技术,因为云计算的功率、成本、隐私和速度受到限制。
对于智能设备来说,现在还处于起步阶段,但机器学习将是未来发展的最佳选择。