0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何优化ML模型与硬件实现TinyML?Arm归纳出5种作法

jf_cVC5iyAO 来源:易心Microbit编程 2023-01-07 09:20 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

近几年,因应AI与ML应用趋势浪潮,越来越多企业开始尝试将这样的能力带到靠近数据源的边缘设备或IoT装置,来发展各种Edge AI或AIoT应用。例如结合语音指令来控制机器人作业,或是透过AI边缘摄影机来侦测机台设备有无故障。但受限于CPU效能、数据吞吐量、内存及数据储存的影响,想要在资源有限的IoT或嵌入式装置跑AI或ML推论模型,现在仍然不是一件容易的事。

近年来,一种微型机器学习新技术TinyML顺势而起,试图从优化硬件或模型来实现装置上的AI或ML应用,让ML的推论功能能够在资源有限的终端装置上来实现,可说是加速实现Edge AI或AIoT应用的重要关键。

TinyML是什么?引用GoogleTensorflow 行动部门负责人Pete Warden的定义,指的是每次执行ML模型推论时,其功耗必须小于1毫瓦(1mW)。

除了考虑到功耗,运算力不足也是实现Edge AI或AIoT应用的关键问题。以Inception v4深度学习模型为例,硬件能力需要的运算量就有240个GOPS(每秒执行10亿次运算) 但一般singleissue处理器,仅提供个位数的GOPS,甚至不只运算能力,连在内存中存取数据也会影响功耗,例如要从SRAM高速缓存来存取1TB的数据,一颗16奈米CPU每秒所消耗的功耗就超过1瓦。这些都是TinyML的挑战。

现阶段TinyML技术发展,主要是从ML模型与硬件优化来实现低功耗装置上的ML应用。归纳起来实现TinyML的5种常见ML模型架构和优化的方法,包括降低精度(Reduce Precision)、数据重复利用(Data re-use)、权重压缩(Weight compression)、转换(Transforms)、稀疏运算(Sparse computation)。

第一种作法是转换ML模型及权重的数据单元格式,来降低推论执行所需的运算量,例如将模型的权重从高精度FP32转成较低精度的FP16或INT8格式。因ML模型需要很多乘加法运算,而高精度ML模型又比低精度ML模型需要的运算量更高,也因此,改用较低精度的ML模型来执行运算,能大幅降低功耗,甚至因运算数据变少,也能因应更高的吞吐量需求。这是第一个可以运用到TinyML的方法。

除了从数据单元格式着手,减少数据重复使用是另一个可行方法。例如可以将CNN神经网络模型中经常重复使用的权重参数的数值,暂时集中存放到一处,不用每次都从内存来捞取数据,减少不必要任务处理,也能达到降低功耗的作用。

由于现在神经网络模型体积越来越大,结构越来越复杂,因推论执行需处理的模型参数数量也就越多,大量使用内存来存放这些庞大数据,也造成了不少功耗的损失,也因此有了第3种作法是,透过权重压缩技术,对于存入内存前的权重参数先进行压缩,需要时再解压缩拿来使用,,这样做好处是,一来可以减少内存的用量,二来能获得更高的带宽和更低功耗。

第4种作法则是采用转换矩阵运算domain的方式,来降低乘法运算的复杂度。一般AI或ML模型运算过程有6成以上都是矩阵的乘法运算,所以只要让乘法运算变少,就能减少运算量,这是能够降低运算和功耗的另一种方式。例如将复杂的矩阵运算domain转换到较简易Winograd卷积算法的domain做运算,就能降低乘法运算的复杂度。

最后一种方法是稀疏运算,像是运用Relu的激励函数,在CNN模型运算过程中,使其部分神经元的输出为零,可以让神经网络变得稀疏,在运算时只针对激励函数输入数值非零部分做运算,不处理数值为零的部分,透过这样的处理方式,同样能达到运算量与功耗降低的效果。

除了优化ML模型和架构外,现在硬件设计过程中,也有一些新作法,来因应TinyML需求。常见3种TinyML硬件平台,前两种是以低功耗和AI加速或优化的硬件设计为主,包括有低功耗通用SoC、低功耗micro-NPU,可分别对应到Arm Cortex-M55与Arm Ethos-U55系列IP产品。Arm Cortex-M55最大特色是支持最新的向量扩充指令,与Cortex-M44相比,在语音模型处理性能表现高出8倍之多。Arm Ethos-U55是ARM推出的另一款神经网络处理器IP产品,不仅省电,在AI处理效能获得百倍提升,甚至最新一款Arm Ethos-U6产品中,其运算能力可达到1 TOPS。

其中第3种硬件平台是采取内存运算的硬件架构平台,如Mythic IPU处理器等,就是采用闪存内运算来执行ML推论,足以支撑113M (百万)权重数量和每瓦4 TOPs运算能力。

目前TinyML技术上遇到的挑战,越来越多AI与ML应用,开始追求更高准确度,需要使用资源越来越多,包括运算、内存、功耗等,「但TinyML却又是要在有限资源下来实现或执行不同的模型或神经网络,这就是最大的Gap。」

举例来说,想要提高神经网络模型准确度,除了需要有大量的数据做训练,数据量越大需要做的矩阵运算就更多,还有大量的参数需要调整,而且随着架构越复杂,需要做很多层神经网络计算,使用海量存储器存取数据、参数和每一层计算结果。

尽管TinyML发展才刚起步,随着AIoT或Edge AI应用越来越火红,未来将会有越来越多嵌入式装置结合AI或ML功能,想要真正实现TinyML,这些装置硬件必须具备每秒兆次(trillions)的乘加法运算能力,而且这样的运算能力须考虑到硬件空间设计,还有兼顾功耗才行。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM
    ARM
    +关注

    关注

    135

    文章

    9501

    浏览量

    388890
  • ML
    ML
    +关注

    关注

    0

    文章

    154

    浏览量

    35395
  • 机器学习
    +关注

    关注

    66

    文章

    8541

    浏览量

    136242
  • TinyML
    +关注

    关注

    0

    文章

    44

    浏览量

    1782

原文标题:如何优化ML模型与硬件实现TinyML?Arm归纳出5种作法

文章出处:【微信号:易心Microbit编程,微信公众号:易心Microbit编程】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    构建CNN网络模型优化的一般化建议

    通过实践,本文总结了构建CNN网络模型优化的一般化建议,这些建议将会在构建高准确率轻量级CNN神经网络模型方面提供帮助。 1)避免单层神经网络:我们清楚神经网络本身是需要不断抽象
    发表于 10-28 08:02

    脉冲神经元模型硬件实现

    实现。所以现有的大部分 SNN 加速器的硬件实现上都采用LIF模型。 如图所示,设计的 SNN 神经核整体架构如图所示。 神经核主要由 LIF 神经元模块(LIF_neuron)、控
    发表于 10-24 08:27

    【技术讨论】智能戒指手势交互:如何优化PCBA成本与实现<20ms低延迟?

    ,是否需在MCU上部署轻量级AI模型(如TinyML)进行本地手势识别,以替代传统滤波算法,平衡实时性与准确性 最终的核心目标是在控制早期延迟的情况下,早期的PCBA成本(元器件+生产)单个控制在100以内。 诚邀各位嵌入式开发与硬件
    发表于 10-18 13:04

    利用超微型 Neuton ML 模型解锁 SoC 边缘人工智能

    才能做好。 现在,这些阻碍即将被解决。 Neuton 是一个自动生成 ML 模型的框架,其大小仅为 TensorFlow Lite 等传统框架的一小部分。对于开发人员来说,这意味着要训练一个高度优化、快速和准确
    发表于 08-31 20:54

    Arm KleidiAI与XNNPack集成实现AI性能提升

    INT4 矩阵乘法 (matmul) 优化以增强 Google Gemma 2 模型性能开始,到后续完成多项底层技术增强,Arm 在 XNNPack 上实现了显著的性能提升。
    的头像 发表于 08-08 15:19 2556次阅读
    <b class='flag-5'>Arm</b> KleidiAI与XNNPack集成<b class='flag-5'>实现</b>AI性能提升

    基于米尔瑞芯微RK3576开发板部署运行TinyMaix:超轻量级推理框架

    内存消耗 支持 INT8/FP32/FP16 模型,实验性地支持 FP8 模型,支持 keras h5 或 tflite 模型转换 支持多种芯片架构的专用指令
    发表于 07-25 16:35

    STM32U5‌(超低功耗MCU,支持TinyML)全面解析

    :在电机或设备中部署STM32U5,通过振动传感器数据训练TinyML模型,预测设备故障,避免停机损失。智能传感器 :集成14位ADC与MDF,实现高精度信号采集(如工业流量计),结
    的头像 发表于 04-08 17:38 3254次阅读
    STM32U<b class='flag-5'>5</b>‌(超低功耗MCU,支持<b class='flag-5'>TinyML</b>)全面解析

    Raspberry Pi Pico 2 上实现:实时机器学习(ML)音频噪音抑制功能

    Arm公司的首席软件工程师SandeepMistry为我们展示了一全新的巧妙方法:在RaspberryPiPico2上如何将音频噪音抑制应用于麦克风输入。机器学习(ML)技术彻底改变了许多软件应用
    的头像 发表于 03-25 09:46 955次阅读
    Raspberry Pi Pico 2 上<b class='flag-5'>实现</b>:实时机器学习(<b class='flag-5'>ML</b>)音频噪音抑制功能

    Vgg16模型无法使用模型优化器重塑怎么解决?

    Vgg16 模型无法使用模型优化器重塑。
    发表于 03-06 06:29

    使用OpenVINO™进行优化后,为什么DETR模型在不同的硬件上测试时显示不同的结果?

    通过模型优化优化了 DETR 模型。 在 SPR 计算机上使用优化模型(DETR
    发表于 03-05 10:27

    熵基科技实现BioCV TinyML与DeepSeek大模型融合

    近日,熵基科技宣布了一项重大技术突破。该公司自主研发的“BioCV TinyML模型”已成功与全球知名的LLM大模型DeepSeek实现接入与融合。 这一融合成果不仅彰显了熵基科技在智
    的头像 发表于 02-19 16:15 1116次阅读

    【「基于大模型的RAG应用开发与优化」阅读体验】+Embedding技术解读

    生成回答。在特定领域或任务中,可以通过微调Embedding模型来提高检索的相关性和准确性。Embedding在大模型RAG技术中发挥着至关重要的作用。它不仅实现了文本向量化,还为信息检索和文本生成提供了基础。通过不断
    发表于 01-17 19:53

    【「基于大模型的RAG应用开发与优化」阅读体验】+大模型微调技术解读

    今天学习<基于大模型的RAG应用开发与优化>这本书。大模型微调是深度学习领域中的一项关键技术,它指的是在已经预训练好的大型深度学习模型基础上,使用新的、特定任务相关的数据
    发表于 01-14 16:51

    Arm Corstone-320 FVP仿真平台介绍

    开发机器学习 (ML) 应用颇具挑战,尤其是涉及专用硬件时。好消息是,Arm Corstone-320 固定虚拟平台 (Fixed Virtual Platform, FVP) 简化了这个过程,无需物理
    的头像 发表于 12-24 14:20 1371次阅读

    利用Arm Kleidi技术实现PyTorch优化

    PyTorch 是一个广泛应用的开源机器学习 (ML) 库。近年来,Arm 与合作伙伴通力协作,持续改进 PyTorch 的推理性能。本文将详细介绍如何利用 Arm Kleidi 技术提升 A
    的头像 发表于 12-23 09:19 1635次阅读
    利用<b class='flag-5'>Arm</b> Kleidi技术<b class='flag-5'>实现</b>PyTorch<b class='flag-5'>优化</b>