社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

面向资源受限环境的轻量级深度学习:综述

专知 • 1 年前 • 413 次点击  

在过去的十年中,深度学习在人工智能的各个领域,包括自然语言处理、计算机视觉和生物医学信号处理中,显示出了显著的主导地位。尽管模型准确性有了显著提高,但在移动电话和微控制器等轻量级设备上部署这些模型受到了有限资源的制约。在这篇综述中,我们为这些设备提供了全面的设计指导,详细介绍了轻量级模型的精细设计、压缩方法和硬件加速策略。这项工作的主要目标是探索在不影响模型准确性的前提下,如何绕过硬件限制的方法和概念。此外,我们还探讨了未来轻量级深度学习的两条值得注意的路径:TinyML 和大型语言模型的部署技术。尽管这些路径无疑具有潜力,但它们也带来了重大挑战,鼓励对未探索领域的研究。

https://arxiv.org/abs/2404.07236

近年来,神经网络(NN)的重要性急剧上升,其应用已渗透到日常生活的各个方面,并扩展到支持复杂任务【18, 84, 222】。然而,自2012年AlexNet【110】发布以来,一直流行着创建更深、更复杂的网络以提高准确性的趋势。例如,Model Soups【215】在ImageNet数据集上取得了显著的准确性,但代价是超过18.43亿个参数。同样,GPT-4【10】在自然语言处理(NLP)基准测试中表现出色,尽管其拥有惊人的1.76万亿参数。值得注意的是,Amodei等人【4】指出,从2012年到2018年,深度学习(DL)的计算需求急剧增加,大约增长了300,000倍。这种尺寸的急剧增加为本文探讨的挑战和发展奠定了舞台。

同时,近几年来Green AI【169, 188】已成为突出的关注点,因其对显著的GPU和训练时间需求标记出不适合使用的重量级DL模型,这可能导致环境退化。Strubell等人【178】对在多GPU上训练的语言模型的碳足迹进行了广泛分析。与此同时,轻量级设备因其多功能应用和便携性而受到增加的关注。根据Sinha【174】的说法,2022年连接的IoT设备数量增长了18%,达到了144亿,并预计到2027年将增长到290亿。自2016年以来生产的超过2亿部iPhone证明了这种需求的增长。另一方面,边缘设备提供了比移动设备更优越的自动化和能效,特别是在如起搏器和额温计等设备中部署的超低成本微控制器(MCU)【46】。

为了应对上述实际需求,近年来出现了大量研究,重点是轻量级建模、模型压缩和加速技术。连续在CVPR 2021-2023年期间举行的年度移动AI(MAI)研讨会【139–141】,主要强调在ARM Mali GPU和Raspberry Pi 4等资源受限的设备上部署DL模型用于图像处理。此外,在ICCV 2019、ICCV 2021和ECCV 2022【3】举办的图像操作进步(AIM)研讨会组织了围绕在移动设备上进行图像/视频操作、恢复和增强的挑战。

通过我们的研究,我们发现从设计阶段到部署,分析高效轻量级模型发展的最有效方法涉及到将三个关键元素整合到流程中:NN架构设计、压缩方法和轻量级DL模型的硬件加速。以前的综述【11, 62, 69, 121, 165】通常只关注这一流程的特定方面,例如仅讨论量化方法,提供那些部分的详细见解。然而,这些综述可能无法提供整个过程的全面视图,可能忽视了重要的替代方法和技术。相比之下,我们的综述涵盖了轻量级架构、压缩方法和硬件加速算法。

1.1 神经网络设计

在本文的第一部分,第2节中,我们考察了经典的轻量级架构,将它们归类为系列族以提高清晰度。其中一些架构通过引入创新的卷积块取得了重大进展。例如,深度可分离卷积[35]优先考虑高精度和降低计算需求。Sandler等人[168]引入了反向残差瓶颈来增强梯度传播。其他架构,如ShuffleNet[248],能够开发优化的卷积操作,该操作应用了群卷积[110]以实现并行设计,并通过洗牌操作进一步提高数据组间的转移能力。ShiftNet[217]实现了与传统卷积相等的效果,但不需要参数或浮点运算(FLOPs)。AdderNet[21]用加法操作取代乘法操作,大大降低了计算需求。

还需注意的是,参数和FLOPs与推理时间并不总是一致相关。早期的轻量级架构,如SqueezeNet[98]和MobileNet[89],旨在减少参数和FLOPs。然而,这种减少常常会增加内存访问成本(MAC)[138],导致推理速度变慢。因此,我们旨在通过提供更全面和深入的综述来促进轻量级模型的应用。

1.2 神经网络压缩

除了轻量级架构设计外,第3节还提到了可以应用于压缩给定架构的各种高效算法。例如,量化方法[97, 132, 230]旨在减少数据存储需求,常通过用8位或16位数字甚至使用二进制值代替32位浮点数来实现。最简单的剪枝算法[54, 67, 114]从模型中移除参数,以消除网络内不必要的冗余。更复杂的算法可能会从网络中移除整个通道或滤波器[81, 135]。知识蒸馏(KD)技术[62, 85]探讨了从一个模型(称为“教师”)向另一个模型(称为“学生”)转移知识的概念。教师代表一个具有所需知识的大型预训练模型,而学生则是一个未训练的小型模型,负责从教师中提取知识。随着方法的演进,一些算法[5, 239]通过使用相同的网络两次,消除了额外教师模型的需要。随着这些各种压缩方法的进展,常见的是采用两种或更多技术的融合,例如在同一模型中结合剪枝和量化方法。

1.3 神经网络部署

在第4节中,我们浏览了专用于DL应用的常见硬件加速器的概况,包括图形处理单元(GPUs)、现场可编程门阵列(FPGAs)和张量处理单元(TPUs)。此外,我们描述了各种数据流类型[23, 65, 103, 128]并深入探讨了数据局部性优化方法[146, 177, 241],探索支撑DL工作流中高效处理的复杂技术。本篇综述还讨论了加速DL过程的流行DL库[1, 24, 153],这些库和框架在优化硬件加速器的利用中发挥了关键作用。此外,我们还研究了共同设计的解决方案[32, 152, 212],在加速DL中实现优化和整体的成果需要仔细考虑硬件架构和压缩方法。

1.4 挑战与未来工作

最后,在第5节中,我们开始探索旨在在极低功耗设备上执行DL模型的新兴TinyML技术,这些设备通常的功率消耗不到1毫瓦。此外,我们的论文还深入探讨了大型语言模型(LLMs),这些模型在资源有限的设备上部署时面临挑战,因为它们的模型尺寸巨大。在计算机视觉领域,将这些方法部署在边缘设备上对于广泛应用至关重要。

1.5 贡献

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

(1) 以前的综述仅简要参考了少数关于轻量级架构的作品。我们将轻量级架构组织成系列,例如将MobileNetV1-V3和MobileNeXt归类为MobileNet系列,并提供了从其开始到现在的轻量级架构的历史。(2) 为了全面覆盖轻量级DL应用,我们还涵盖了压缩和硬件加速方法。与许多其他综述不同,我们的综述明确建立了这些技术之间的联系,提供了每个领域的彻底概览,以便全面了解它们的相互关系。(3) 作为轻量级DL领域前沿进展的一部分,我们回顾了当前的挑战并探索了未来的工作。首先,我们探讨了TinyML,这是一种为在资源极其有限的设备上部署DL模型而设计的新兴方法。随后,我们调查了各种当代倡议,这些倡议在轻量级DL领域的边缘设备上利用LLMs,这是一个有前景的方向。


专知便捷查看

便捷下载,请关注专知公众号(点击上方蓝色专知关注)

  • 后台回复或发消息“DRCE” 就可以获取《面向资源受限环境的轻量级深度学习:综述》专知下载链接

点击“阅读原文”,了解使用专知,查看获取100000+AI主题知识资料

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/169057
 
413 次点击