天天看点

听说你缺GPU?送你一份轻量级深度学习的最全总结!

作者:3D视觉工坊

来源:3D视觉工坊

添加小助理:dddvision,备注:方向+学校/公司+昵称,拉你入群。文末附行业细分群

标题:Lightweight Deep Learning for Resource-Constrained Environments: A Survey

作者:Hou-I Liu, Marco Galindo, Hongxia Xie, Lai-Kuan Wong, Hong-Han Shuai, Yung-Hui Li, Wen-Huang Cheng

机构:国立阳明交通大学、吉林大学、多媒体大学、鸿海研究所、国立台湾大学

原文链接:https://arxiv.org/abs/2404.07236

过去的十年里,深度学习的主导地位在人工智能的各个领域中占据了主导地位,包括自然语言处理、计算机视觉和生物医学信号处理。虽然模型准确性有了显著提高,但在轻量级设备上部署这些模型,比如手机和微控制器,受到资源限制的约束。在这项调查中,我们提供了专门针对这些设备的全面设计指南,详细介绍了轻量级模型的精心设计、压缩方法和硬件加速策略。这项工作的主要目标是探索方法和概念,以克服硬件限制,而不损害模型的准确性。此外,我们还探讨了未来轻量级深度学习的两条显著途径:TinyML 和大型语言模型的部署技术。尽管这些途径无疑具有潜力,但它们也带来了重大挑战,鼓励研究未开发的领域。

近年来,神经网络(NNs)的重要性急剧上升,它们的应用渗透到日常生活的各个方面,并扩展到支持复杂任务。然而,自2012年AlexNet发布以来,创建更深层次、更复杂的网络以提高准确性的趋势已经普遍存在。例如,Model Soups在ImageNet数据集上取得了显著的准确性,但代价是超过18.43亿个参数。同样,GPT-4在自然语言处理(NLP)基准测试上表现出色,尽管参数多达1.76万亿。深度学习(DL)的计算需求急剧增加,从2012年到2018年增加了约300,000倍。这种规模的急剧增加为本文探讨的挑战和发展奠定了基础。

针对上述实际需求,近年来出现了大量的研究,重点放在轻量级建模、模型压缩和加速技术上。年度移动人工智能(MAI)研讨会已连续举办了CVPR 2021-2023,重点是在资源受限的设备上部署DL模型,例如ARM Mali GPU和树莓派4上的图像处理。此外,在ICCV 2019、ICCV 2021和ECCV 2022进行的图像处理(AIM)研讨会组织了围绕图像/视频处理、恢复和增强在移动设备上的挑战。

从这篇工作,作者发现了分析高效轻量级模型的发展的最有效方法,从设计阶段到部署阶段,涉及将三个关键元素纳入流程中:NN架构设计、压缩方法和轻量级DL模型的硬件加速。以往的调查往往只专注于此流程的特定方面,比如只讨论量化方法,提供了这些领域的详细见解。然而,这些调查可能无法提供对整个流程的全面了解,可能忽视了重要的替代方法和技术。相比之下,这篇综述涵盖了轻量级架构、压缩方法和硬件加速算法。

作者研究了经典的轻量级架构,并将它们分类为系列以提高清晰度。这些架构中的一些通过引入创新的卷积块取得了重大进展。例如,深度可分离卷积优先考虑高准确性和降低计算需求。值得注意的是,参数和FLOPs与推理时间并不一致。早期的轻量级架构,如SqueezeNet和MobileNet ,旨在减少参数和FLOPs。然而,这种减少通常会增加内存访问成本(MAC),导致推理速度较慢。因此,作者的目标是通过提供更全面和富有见地的审查来促进轻量级模型的应用。

听说你缺GPU?送你一份轻量级深度学习的最全总结!

除了轻量级架构设计外,作者提到了可以应用于压缩给定架构的各种高效算法。例如,量化方法 旨在减少数据所需的存储空间,通常是通过用8位或16位数字代替32位浮点数,甚至使用二进制值表示数据。修剪算法,在其最简单的形式中,从模型中删除参数以消除网络内部的不必要的冗余。然而,更复杂的算法可能会从网络中删除整个通道或过滤器。知识蒸馏(KD)技术探索了从一个模型(称为"老师")转移知识到另一个模型(称为"学生")的概念。老师代表具有所需知识的大型预训练模型,而学生代表一个未经训练的较小模型,负责从老师那里提取知识。然而,随着方法的发展,一些算法通过两次使用相同的网络修改了方法,消除了额外的老师模型的需要。随着这些各种压缩方法的进展,通常会观察到两种或更多技术的采用,例如在同一模型中融合修剪和量化方法。

听说你缺GPU?送你一份轻量级深度学习的最全总结!
听说你缺GPU?送你一份轻量级深度学习的最全总结!
听说你缺GPU?送你一份轻量级深度学习的最全总结!

此外,作者讨论了神经架构搜索(NAS)算法,这是一组旨在自动化模型创建过程的技术,同时减少人类干预。这些算法自主搜索定义搜索空间内的最佳因素,如网络深度和过滤器设置。该领域的研究主要集中在优化搜索空间的定义、遍历和评估,以在不过度消耗时间和资源的情况下实现高准确性。

作者深入探讨了专用于DL应用的流行硬件加速器的景观,包括图形处理单元(GPUs)、现场可编程门阵列(FPGAs)和张量处理单元(TPUs)。此外,描述了各种数据流类型,并深入探讨了数据局部性优化方法,探索支撑DL工作流程的高效处理的复杂技术。随后,讨论了专为加速DL过程而量身定制的流行DL库。这一审查涵盖了多样化的工具和框架,在优化硬件加速器的利用方面发挥了重要作用。此外,调查了协同设计解决方案,在加速DL方面取得了优化和全面结果,需要认真考虑硬件架构和压缩方法。

听说你缺GPU?送你一份轻量级深度学习的最全总结!
听说你缺GPU?送你一份轻量级深度学习的最全总结!

这项综述探讨了轻量级模型、压缩方法和硬件加速等复杂领域,展示了它们在广泛的通用应用领域中的先进技术能力。然而,在资源受限的环境中部署这些模型仍然面临着重大挑战。本节致力于揭示在微型机器学习(TinyML)和LLMs中加速和应用深度学习模型的新技术,重点关注需要进一步研究的未解决问题。

TinyML是一种新兴技术,可以使深度学习算法在功耗低于1mW的超低端物联网设备上运行。 然而,极度受限的硬件环境使得设计和开发TinyML模型具有挑战性。低端物联网设备主要采用MCU,因为它们的成本效益高于CPU和GPU。然而,MCU库(如CMSIS-NN和TinyEngine)通常是平台依赖性的,不像PyTorch和TensorFlow等GPU库提供跨平台支持。因此,TinyML的设计重点更多地倾向于专用应用,而不是促进通用研究,这可能会妨碍整体研究进展的速度。

基于MCU的库。 由于TinyML中的资源受限环境,基于MCU的库通常设计用于特定用例。例如,CMSIS-NN是在ARM Cortex-M设备上开发的基于MCU的库的开创性工作,它提出了一个高效的内核,分为NNfunctions和NNsupportfunctions。NNfunctions执行网络中的主要函数,如卷积、池化和激活。NNsupportfunctions包含数据转换和激活表。CMIX-NN提出了一种开源的混合和低精度工具,可以将模型的权重和激活量化为8、4和2位任意位数。MCUNet提出了一个针对商用MCU的DL实现的协同设计框架。该框架整合了TinyNAS,以有效地搜索最准确和轻量级的模型。此外,它利用了TinyEngine,其中包括基于代码生成器的编译和原地深度卷积,有效地解决了内存约束问题。MCUNetV2引入了一种基于补丁的推断机制,只在特征图的小空间区域上运行,进一步减少了峰值内存使用。MicroNet采用了可微分NAS(DNAS)来搜索具有低操作数量的高效模型,并支持开源平台Tensorflow Lite Micro(TFLM)。MicroNet在所有TinyMLperf行业标准基准任务上取得了最先进的结果,即视觉唤醒词、谷歌语音命令和异常检测。

什么阻碍了TinyML的快速发展? 尽管取得了进展,但TinyML的增长受到几个固有关键约束的限制,包括资源约束、硬件和软件异构性以及缺乏数据集。极端的资源约束,如SRAM的极小尺寸和不到1MB的闪存内存大小,在设计和部署边缘设备上的TinyML模型时带来了挑战。此外,由于硬件异构性和缺乏框架兼容性,当前的TinyML解决方案被调整以适应每个单独设备,使得TinyML算法的广泛部署变得复杂。此外,现有数据集可能不适用于TinyML架构,因为数据可能不符合边缘设备外部传感器的数据生成特征。需要一组适用于训练TinyML模型的标准数据集,以推动有效TinyML系统的发展。在能够在物联网和边缘设备上进行大规模部署之前,这些开放性研究挑战需要解决。

轻量级大型语言模型的构建。 在过去的两年中,LLMs在各种任务中始终表现出色。LLMs在实践中具有重要的应用潜力,尤其是与人类监督配对时。例如,它们可以作为自主代理人的副驾驶员,或者作为灵感和建议的来源。然而,这些模型通常具有数十亿规模的参数。将这样的模型部署到推断中通常需要GPU级别的硬件和数十吉字节的内存,这给日常LLM利用带来了重大挑战。例如,Tao等人发现很难对生成式预训练语言模型进行量化,因为词嵌入是同质的,权重分布各异。因此,将大型、资源密集的LLM模型转化为适合部署在资源受限移动设备上的紧凑版本已成为未来研究的一个突出方向。

世界知名企业在LLM部署方面取得了重大进展。 2023年,高通展示了文本到图像模型稳定扩散和图像到图像模型控制网络在移动设备上的独立执行,从而加速了大型模型部署到边缘计算环境。谷歌还推出了其最新通用大型模型PaLM 2的几个版本,其中包括专为移动平台量身定制的轻量级变体。这一进展为将大型模型从基于云的系统迁移到边缘设备创造了新的机会。然而,某些大型模型仍然需要数十吉字节的物理存储和运行时内存。因此,正在努力实现少于1GB的内存占用,这意味着在这个领域仍然需要进行大量工作。本节概述了在资源受限环境中简化LLM实施的一些关键举措。

不需重新训练的剪枝。 最近,大量工作应用常见的DL量化和剪枝技术构建轻量级LLMs。一些方法专注于实现量化,其中数值精度大大降低。SparseGPT首次证明,可以在单一步骤中将大规模生成式预训练Transformer(GPT)模型剪枝至至少50%的稀疏度,而无需任何后续重新训练,并且准确度损失最小。随后,Wanda(Pruning by Weights and Activations)专门设计用于在预训练的LLMs中引入稀疏性。Wanda剪枝了具有最小幅度的权重,不需要重新训练或权重更新。剪枝的LLM可以直接使用,增加了其实用性。值得注意的是,Wanda超越了幅度剪枝的已建立基线,并与最近涉及大量权重更新的方法有效竞争。这些工作为未来设计LLM剪枝方法而不需要重新训练设定了重要的里程碑。

模型设计。 从模型设计的角度来看,可以从一开始就创建轻量级LLMs,重点是减少模型参数的数量。在这方面的一个有前景的途径是提示调优,它旨在在保持效率和模型大小的同时优化LLMs的性能。在这方面的一个值得注意的方法是视觉提示调优(VPT),它成为视觉相关任务中大规模Transformer模型的全面微调的高效和有效替代方法。VPT在输入空间内引入了仅占一小部分,小于1%的可训练参数,同时保持了模型骨干的完整性。另一个值得注意的贡献是CALIP,它引入了无参数的注意机制,以促进视觉和文本特征之间的有效交互和通信。它产生了文本感知的图像特征和视觉引导的文本特征,有助于开发更加简洁和高效的视觉-语言模型。在不久的将来,推进轻量级LLM设计的一个有前景的途径是开发自适应微调策略。这些策略将动态调整模型的架构和参数,以与特定任务要求对齐。这种适应性确保了模型能够在特定应用中优化其性能,而不会产生不必要的参数膨胀。

构建轻量级扩散模型。 近年来,基于去噪扩散的生成模型,特别是基于得分的模型,在创建多样化和真实数据方面取得了显著进展。然而,将扩散模型的推断阶段转移到边缘设备上面临着重大挑战。推断阶段反转了转换过程,从高斯噪声生成真实数据,通常称为去噪过程。此外,当这些模型被压缩以减少其占用的空间和计算需求时,存在严重降低图像质量的风险。压缩过程可能需要简化、近似或甚至删除必要的模型组件,这可能会对模型从高斯噪声准确重建数据的能力产生不利影响。因此,在减小模型尺寸的同时保持高质量图像生成之间出现了关键问题,从而在资源受限场景下开发扩散模型面临着严峻挑战。

部署视觉Transformer(ViTs)。 尽管轻量级ViTs越来越普遍,但在硬件受限环境中部署ViT仍然是一个持续关注的问题。根据报道,移动设备上的ViT推断的延迟和能耗是CNN模型的40倍。因此,如果不加修改,移动设备无法支持ViT的推断。ViTs中的自注意操作需要计算图像补丁之间的成对关系,并且随着补丁数量的增加,计算量呈二次增长。此外,与注意力层相比,FFN层的计算时间更长。通过去除冗余的注意力头和FFN层,DeiT-Tiny可以将延迟降低23.2%,几乎不损失0.75%的准确性。

一些工作设计了用于嵌入式系统(如FPGA)的NLP模型。 最近,DiVIT和VAQF提出了ViTs的硬件-软件协同设计解决方案。DiVIT提出了一种在算法级别利用补丁局部性的差分注意的增量补丁编码。在DiVIT中,使用节省位的技术设计了带有差分数据流通信的差分注意处理引擎阵列。此外,指数操作使用查找表执行,无需额外计算,且硬件开销最小化。VAQF首次将二进制化引入ViTs中,可用于FPGA映射和量化训练。具体来说,VAQF可以根据目标帧率生成所需的量化精度和加速器描述,用于直接软件和硬件实现。

为了在资源受限设备中无缝部署ViTs,作者重点介绍了两个潜在的未来方向:

1)算法优化。 除了描述的设计高效ViT模型外,还应考虑ViTs的瓶颈。例如,由于MatMul操作在ViTs中造成了瓶颈,可以加速或减少这些操作。此外,可以考虑整数量化和运算融合的改进。

2)硬件可访问性。 与CNN不同,大多数移动设备和AI加速器都支持CNNs,而ViTs没有专门的硬件支持。例如,ViT无法在移动GPU和英特尔NCS2 VPU上运行。根据我们的研究结果,某些重要操作符在特定硬件上不受支持。具体而言,在移动GPU上,连接操作符在TFLiteGPUDelegate中需要4维输入张量,但ViTs中的张量为3维。另一方面,英特尔VPU不支持LayerNorm,在变压器架构中存在,但在CNN中不常见。因此,需要进一步调查在资源受限设备上ViTs的硬件支持。

本文旨在简单但准确地描述如何利用轻量级架构、压缩方法和硬件技术来实现在资源受限设备上的准确模型。主要贡献总结如下:

(1) 以往的调查只简要提及少数轻量级架构的作品。作者将轻量级架构组织成系列,例如将MobileNetV1-V3和MobileNeXt分组到MobileNet系列中,并提供了从它们诞生到现在的轻量级架构的历史。

(2) 为了涵盖整个轻量级DL应用,这篇文章还涵盖了压缩和硬件加速方法。与许多其他调查不明确建立这些技术之间联系的不同,对每个领域提供了全面的概述,深入了解它们之间的相互关系。

(3) 作为轻量级DL前沿进展的一部分,作者审查了当前的挑战并探索未来的工作。首先,探索了TinyML,这是一种新兴的方法,专为在资源极度有限的设备上部署DL模型而设计。随后,调查了在边缘设备上利用LLMs的各种当代倡议,这是轻量级DL领域的一个有希望的方向。

最近,计算机视觉应用越来越注重能源节约、碳足迹减少和成本效益,突显了轻量级模型在边缘人工智能背景下的重要性。本文对轻量级深度学习(DL)进行了全面考察,探讨了MobileNet和Efficient变换器变体等重要模型,以及用于优化这些模型的流行策略,包括剪枝、量化、知识蒸馏和神经结构搜索。除了详细解释这些方法外,还提供了定制轻量级模型的实用指导,通过分析它们各自的优势和劣势来提供清晰度。此外,讨论了DL模型的硬件加速,深入探讨了硬件架构、不同数据流类型和数据局部性优化技术,以增强对加速训练和推断过程的理解。这项调查揭示了硬件和软件之间的复杂互动关系(协同设计),提供了从硬件角度加速训练和推断过程的见解。最后,作者将目光转向未来,认识到在TinyML和LLM技术中部署轻量级DL模型存在挑战,需要在这些不断发展的领域探索创造性解决方案。

对更多实验结果和文章细节感兴趣的读者,可以阅读一下论文原文~

本文仅做学术分享,如有侵权,请联系删文。

3D视觉工坊交流群

目前我们已经建立了3D视觉方向多个社群,包括2D计算机视觉、大模型、工业3D视觉、SLAM、自动驾驶、三维重建、无人机等方向,细分群包括:

2D计算机视觉:图像分类/分割、目标/检测、医学影像、GAN、OCR、2D缺陷检测、遥感测绘、超分辨率、人脸检测、行为识别、模型量化剪枝、迁移学习、人体姿态估计等

大模型:NLP、CV、ASR、生成对抗大模型、强化学习大模型、对话大模型等

工业3D视觉:相机标定、立体匹配、三维点云、结构光、机械臂抓取、缺陷检测、6D位姿估计、相位偏折术、Halcon、摄影测量、阵列相机、光度立体视觉等。

SLAM:视觉SLAM、激光SLAM、语义SLAM、滤波算法、多传感器融合、多传感器标定、动态SLAM、MOT SLAM、NeRF SLAM、机器人导航等。

自动驾驶:深度估计、Transformer、毫米波|激光雷达|视觉摄像头传感器、多传感器标定、多传感器融合、自动驾驶综合群等、3D目标检测、路径规划、轨迹预测、3D点云分割、模型部署、车道线检测、Occupancy、目标跟踪等。

三维重建:3DGS、NeRF、多视图几何、OpenMVS、MVSNet、colmap、纹理贴图等

无人机:四旋翼建模、无人机飞控等

除了这些,还有求职、硬件选型、视觉产品落地、最新论文、3D视觉最新产品、3D视觉行业新闻等交流群

添加小助理: dddvision,备注:研究方向+学校/公司+昵称(如3D点云+清华+小草莓), 拉你入群。

3D视觉工坊知识星球

3DGS、NeRF、结构光、相位偏折术、机械臂抓取、点云实战、Open3D、缺陷检测、BEV感知、Occupancy、Transformer、模型部署、3D目标检测、深度估计、多传感器标定、规划与控制、无人机仿真、三维视觉C++、三维视觉python、dToF、相机标定、ROS2、机器人控制规划、LeGo-LAOM、多模态融合SLAM、LOAM-SLAM、室内室外SLAM、VINS-Fusion、ORB-SLAM3、MVSNet三维重建、colmap、线面结构光、硬件结构光扫描仪,无人机等。

继续阅读