在设计新的物联网系统时,须要进行许多权衡,以肯定在系统的不一样组件(设备,边缘和云)之间分配机器学习算法的最佳方法。电池寿命,物理尺寸,成本,实时链接需求,隐私问题以及调试/故障排除需求只是系统架构师在设计系统时须要考虑的一些问题。前端
典型的物联网系统架构包括部署在物理空间中而且一般包括一个或多个传感器的设备(或节点); 在通讯协议之间桥接而且位于相对靠近设备的集线器(或网关或边缘); 存储和处理数据的集中式云环境,以及用户能够与之交互,探索数据和获取通知的前端设备。显然,有些设备直接与云环境通讯,设备充当前端设备的场景,但从逻辑上讲,这种架构描述了设置中的常见角色。git
传感器会生成大量数据。以16Khz采样的高质量麦克风将产生256Kbps,若是以30帧/秒采样,则640x480灰度相机可产生大约100Mbps。要实时计算设备的位置和方向,咱们须要每秒对加速度计进行100次采样。算法
典型的物联网系统可能包括数百甚至数千个设备,每一个设备都有多个传感器,所以物联网和大数据是两个常常被一块儿说起的流行语并不奇怪。安全
为了从这个庞大的数据流中得到对用户的相关看法,咱们一般须要使用机器学习和信号处理算法来处理数据。大多数时候,这些算法须要大量的计算资源,例如CPU,GPU和内存,它们既耗电又昂贵。能够将计算资源放置在系统的每一个组件上:设备,集线器和云,而后能够处理经过或存储在那里的数据。所以,系统架构师决定如何在这些组件之间拆分/分配处理,以及如何根据权衡标准优化“成本”功能。网络
如下是影响有关如何跨设备,边缘和云分布机器学习算法的决策的常见示例。架构
咱们已经提到了为何亚马逊决定在设备上本地检测“Alexa”这个词而不是云端的缘由。例如,他们能够分析设备上的全部语音,或者在云中运行全部语音和NLP处理。决定以这种方式拆分算法还有一些好处:机器学习
成本:经过完善和优化设备算法以准确检测一个单词,亚马逊成功地大幅下降了设备成本。另外一方面,若是他们决定检测设备自己的全部可能的短语,他们将须要更强大和更昂贵的CPU。工具
TCO:经过在多个Alexa设备之间共享云计算资源,亚马逊设法下降整个解决方案的TCO。从统计上来讲,假设每一个设备天天只生成几分钟的录音,一个云NLP处理器能够处理数百个Alexa设备。性能
性能改进,支持更多技能并避免设备固件升级:每次用户向Alexa发出请求时,亚马逊都会将原始语音数据发送到他们的云(AWS),在那里进行处理,而后将其存储数月,多是永久性的(I我在这里作一个假设...)。当亚马逊的数据科学家添加更多技能或更新他们的NLP算法时,他们拥有运行新软件对历史数据所需的一切,并自动验证他们没有下降性能(使用某种CI / CD管道)。所以,咱们每隔两周就会看到Alexa中集成了新技能,这让他们本身很容易测试和部署软件更新,并设法避免将数百万台设备的远程固件升级复杂化,这并不奇怪。学习
设计师必须作出的权衡是:
在如下状况下,支持在设备上或边缘运行机器学习算法:
在如下状况下支持在云上运行机器学习算法:
虽然有时咱们的网络和云基础架构能够扩展并承受几乎任何负载,但实际上,因为许多缘由,咱们没法将全部原始数据发送到云并在那里处理。根据个人经验,每一个用例都有不一样的挑战,须要仔细分析(这是乐趣的一部分)。我见过系统设计人员在选择无线协议或选择物联网设备的CPU时作出过快关键决策的状况。几个月后,当他们制造数百台设备并投入建设他们的知识和技能时,他们意识到他们没法向云发送足够的数据,没法远程升级他们的算法或达到预期的性能。
另外一个重要且相关的教训是,若是您的物联网设备上有强大的CPU,并不老是意味着您必须使用它。尽管使用它颇有吸引力,但远程配置管理和相关功耗的额外开销也会有其代价。
关于如何在整个系统中分发机器学习算法,没有一个公式或启发式方法。咱们老是会有相互矛盾的约束,咱们须要作出权衡,软件工程很快就会变得容易,相反,它会变得更加困难。
更多文章欢迎访问 http://www.apexyun.com/
联系邮箱:public@space-explore.com
(未经赞成,请勿转载)