
所以,机器学习想要继续开疆扩土,一个主要的方向就是要使资源更加简单,计算能力更加有限的微处理器(MCU)也能跑得更快,玩得起机器学习。总之,MCU与微处理器或x86这样的嵌入式计算体系结构相比,具有低功耗、低成本、开发周期短、上市快、实时性好、市场规模大等特点,如果能与高能量的机器学习相结合,它的想象空间无疑是巨大的。
在许多人眼中,人工智能(AI)只是一部科幻电影中不明觉厉的存在,而与普通人的生活却相去甚远。但这种情况正在发生变化,在未来5-10年,AI将以超乎我们想象的速度渗透到我们生活的各个方面。怎么会这样说?共同向下望去。
AI物联网的基本模式
所以我们和AI之间会有一种“距离感”,BC213主要是因为之前玩AI是一种比较奢侈的行为。这一点主要体现在:AI实现所依赖的机器学习(ML),在训练和推理过程中对算力提出了很高的要求。针对这一挑战,通过云计算集中计算力来进行数据处理,这也是机器学习的经典实现方式。
但在物联网时代,此类模式面临着挑战——集中式云计算带宽和存储资源消耗巨大,实时数据传输耗电量大,终端与云端之间数据传输延迟长,以及在云端集中存储过程中存在安全风险。这样的弊端让人们意识到单纯的云计算并不能解决所有问题。
所以作为经典云计算的补充,边缘计算越来越受到人们的关注。根据边缘计算的定义,把大多数计算任务直接放到边缘设备上处理,而只在必要时将一些预处理过的数据传送到云端进行“精加工”,这样不仅提高了边缘端实时响应的速度和智能水平,而且为网络传输通道和云端数据中心减轻了负担,所以这种混合计算模式显然是对传统云计算痛点的完美改观。
这一计算体系结构的变化,也对机器学习的模式产生了影响,使它从以计算为中心的模式转变为以数据为中心的模式。其中,前一种模式是将机器学习的训练和推理都放到云端数据中心来完成,后一种模式则是将推理放在边缘设备上完成,这就形成了实施人工智能物联网(AIoT)的基本范式。
扩大机器学习在MCU上的边界
很明显,边缘计算使得机器学习的范围大大扩大,使它从数据中心的机房向更加多样化的网络边缘智能方向发展。但是对物联网应用来说,这似乎是不够的。由于在边缘设备上进行推理,还需要相对强大的运算能力,这通常需要更复杂的异构微处理器,包括ML协处理器,以实现加速,这样的配置在嵌入式领域已经非常“高端”了。单是这一条,就会把很多对功耗、成本、实时性等敏感的应用排除在机器学习之外。
所以,机器学习想要继续开疆扩土,一个主要的方向就是要使资源更加简单,计算能力更加有限的微处理器(MCU)也能跑得更快,玩得起机器学习。据ICInsights的研究数据,2018年MCU在全球的发货量为281亿颗,到2023年将达到382亿颗,同时全球的MCU存量也将数以千亿计,谁能在机器学习领域玩得起这样规模的设备,其前景和资金来源都将是不可限量的!
但是对任何梦想来说,现实往往显得更“骨感”。在MCU中部署机器学习就像把一头大象塞进冰箱里一样,而这个问题的答案当然不会是一个脑筋急转弯的玩笑,而是需要从两个方面仔细考虑技术问题。
精简了机器学习模型
首先,就是考虑如何对ML模型这只“大象”进行“瘦身”,即开发相应的技术,使之能够在单片机上部署,运行“微型”机器学习推理模型。该模型瘦了以后,需要满足以下条件:
操作模式终端功耗一般在mW级,甚至更低。
内存占用通常在几百kB以下。
推论的时间是ms级,通常需要在1秒内完成。
TinyML技术就是为了实现这样的目标而产生的。正如其名称所示,这种技术可以使ML模型“变小”。TinyML就像AIoT机器学习的基本范式一样,它需要从云端收集数据并进行训练,区别在于训练后模型的优化和部署——为了适应MCU有限的计算资源,TinyML必须通过模型的蒸馏(Distillation),量化(Quantization),编码(Encoding),编译(Compilation)等一系列操作,将模型部署到边缘终端。
这些关键技术包括:
精馏:指模型经过训练后,通过剪枝(pruning)和知识精馏等技术手段,改变模型,创造出更紧凑的表现形式。
定量分析:在模型提取后,通过定量分析以较少位数的数据类型近似表示32位浮点型数据,从而在可接受的精确度损失范围内,降低模型大小、消耗内存和加快模型推理。
编码:就是通过更高效的编码方法(例如Hoffman编码)存储数据,进一步缩小模型规模。
编译器:经过上述压缩后的模型,将被编译成C或C++代码,大多数MC++U都可以使用,并通过设备上的TFLite和TFLiteMicro等网络解释器运行。
最近两年来,我们明显感觉到TinyML技术正在升温,厂商在这方面的投入也在增加。据SilentIntelligence预测,TinyML将在未来5年内创造超过700亿美元的经济效益,并维持27.3%的复合年增长率。
创建机器学习的MCU新物种。
将“大象装冰箱”,除了要在“大象”(即ML模型)上下功夫外,另一个方面就是改造“冰箱”,即优化和改造我们所熟悉的MCU,使之能满足运行ML的需要。
例如,MaximIntegrated为满足在IoT边缘设备中进行复杂机器学习的需求,推出了一款专用的低功耗ML微控制器MAX78000。内置ArmCortex-M4F处理器(100MHz),32位RISC-V协处理器(60MHz),以及卷积神经网络加速器,支持64层网络深度,可在电池供电应用中进行AI推理,只需消耗微焦耳能量。这种基于硬件加速的方案与传统的软件方案相比,可以将复杂的AI推理的能耗降低到原来的1%,而推理的速度可以提高100倍。
预期具有相似ML特征的新品种,将成为未来各大MCU产品路线图上的一个重要分支。
总结
总之,MCU与微处理器或x86这样的嵌入式计算体系结构相比,具有低功耗、低成本、开发周期短、上市快、实时性好、市场规模大等特点,如果能与高能量的机器学习相结合,它的想象空间无疑是巨大的。
为了实现二者的“融合”,如果MCU的“新物种”能够支持开发者的机器学习能力,如果能够提供完整的开发工具链,使ML模型的优化和部署更加容易,那么,将机器学习“大象”放入MCU的“冰箱”就会变得轻而易举。
暂无评论哦,快来评论一下吧!
