APP下载

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

消息来源:baojiabao.com 作者: 发布时间:2024-05-13

报价宝综合消息如何优化ML模型与硬件实现TinyML?Arm归纳出5种作法
图片来源: 

图片来源: 2021 台湾人工智能年会

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

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

TinyML是什么?Arm应用工程总监徐达勇引用Google Tensorflow 行动部门负责人Pete Warden的定义,指的是每次执行ML模型推论时,其功耗小于1毫瓦(1mW)。

不过,在边缘装置上执行ML推论,不只需考虑到运算能力,连在内存中存取资料也会影响功耗消耗,例如要从 SRAM快取内存来存取1TB的资料,一颗16奈米CPU每秒所消耗的功耗就需要超过1瓦。

徐达勇表示,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。”

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

例如Inception v4模型执行需要的运算量要有240个GOPS  但是一般single issue处理器,仅提供个位数的GOPS,如果今天要追求更高的准确度,不仅内存要大,运算能力也要跟上提升,这是TinyML的挑战。

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

2021-11-02 18:47:00

相关文章