深度神经网络(DNNs)最近在一系列现实世界的视觉和语言处理任务中取得了令人瞩目的成功,涵盖了从图像分类到许多其他下游视觉任务,如物体检测、跟踪和分割。然而,尽管以前成熟的深度神经网络在保持优越准确性的同时,网络结构越来越深和宽,必然需要大量的计算资源进行训练和推理。这一趋势进一步扩大了计算密集型深度神经网络与资源受限的嵌入式计算系统之间的计算差距,使得在现实世界的嵌入式计算系统上部署强大的深度神经网络以实现无处不在的嵌入式智能变得更加具有挑战性。
为了缓解上述计算差距并促进无处不在的嵌入式智能,本文综述重点讨论了近期针对嵌入式计算系统的高效深度学习基础设施,涵盖从训练到推理、从手动到自动、从卷积神经网络到变换器(transformer)、从变换器到视觉变换器(vision transformer)、从视觉模型到大规模语言模型、从软件到硬件、从算法到应用等多个方面。具体来说,我们从以下几个角度讨论了嵌入式计算系统的高效深度学习基础设施:
- 针对嵌入式计算系统的高效手动网络设计
- 针对嵌入式计算系统的高效自动化网络设计
- 针对嵌入式计算系统的高效网络压缩
- 针对嵌入式计算系统的高效设备端学习
- 针对嵌入式计算系统的高效大规模语言模型
- 针对嵌入式计算系统的高效深度学习软件与硬件
- 针对嵌入式计算系统的高效智能应用
此外,我们还展望了有潜力实现更广泛嵌入式智能的未来发展方向和趋势。
1 引言
随着大规模数据集和先进计算范式的日益普及,深度神经网络(DNNs)在广泛的智能应用中取得了显著的成功,并展示了强大的性能。这些智能应用可能涵盖从图像分类到下游视觉任务,如物体检测、跟踪、分割,再到自然语言处理(NLP)任务,如自动语音识别、机器翻译和问答。在随后的几年里,深度神经网络不断演化,网络结构变得越来越深,层数也越来越多,以保持在目标任务上的最先进准确度。与此同时,新的网络结构和先进的训练技术也相继出现,进一步推动了可达到的准确度。这些强大的深度学习(DL)网络和先进的训练技术,从 VGGNet 到 ResNet,标志着深度学习时代的到来。
深度神经网络的巨大突破随后吸引了学术界和工业界的广泛关注,推动了强大深度神经网络在现实嵌入式计算系统上的部署,包括移动电话、自动驾驶车辆和医疗健康领域,以促进嵌入式智能应用的发展。在实际应用中,这可能带来显著的益处。例如,嵌入式计算系统显著支持实时的设备端数据处理,极大地提高了处理效率,从而提升用户体验。此外,数据安全和隐私也得到了保障,因为所有数据可以在本地处理,无需上传到远程服务器。尽管上述潜在的好处,强大深度神经网络在现实嵌入式计算系统上的部署仍面临一些关键限制。一方面,为了维持竞争力的准确度,近年来代表性网络不断变得更深,层数达到数百层,因此导致了巨大的计算复杂度。例如,作为最具代表性的深度网络之一,ResNet50 包含超过 40 亿次浮点运算(FLOPs)和 2500 万个参数,且需要超过 87MB 的设备存储才能处理单个输入图像。另一方面,现实世界的嵌入式计算系统,如移动电话和自动驾驶车辆,通常具有有限的计算资源,以优化设备端的功率和能耗。综上所述,网络复杂性的不断演进继续扩大计算密集型深度神经网络与资源受限的嵌入式计算系统之间的计算差距,使得实现无处不在的嵌入式智能变得越来越具有挑战性。
为了弥合上述计算差距并促进无处不在的嵌入式智能,最近提出了大量模型压缩技术,包括网络剪枝、网络量化和网络蒸馏,这些技术努力寻求更好的准确度 - 效率平衡,以适应现实嵌入式场景中有限的计算资源。例如,网络剪枝主要通过去除冗余的网络单元,如权重、通道和层,来减少网络冗余,从而提升在目标硬件上的效率,并且对目标任务的准确度损失最小。除了网络压缩,另一个平行的选择是手动设计资源高效的网络,如 SqueezeNet、MobileNets、ShuffleNets 和 GhostNets,这些网络在高效网络设计方面主导了早期的进展。尽管这些高效网络能够表现出卓越的效率,但它们高度依赖人工专业知识,通过反复试验探索新的网络结构,这也需要大量的工程努力和不可忽视的计算资源。为了解决这些限制,最近的网络设计实践已经从手动设计转向自动化设计,也被称为神经网络架构搜索(NAS)或自动化机器学习(AutoML),其重点是自动探索新的网络结构。NAS 的巨大成功随后催生了许多硬件感知的 NAS 工作,如 MnasNet、ProxylessNAS、FBNet 和 Once-for-All,这些工作自动设计准确而高效的硬件网络解决方案,展示了强大的准确度 - 效率平衡,并广泛应用于现实嵌入式计算系统中,提供智能服务。
除了上述主要关注提升设备端推理效率的高效网络和技术,最近的研究还转向了设备端训练效率。其背后的理论是,尽管以前的代表性网络能够展现出卓越的准确度,但通常需要训练数百个周期,这可能需要在强大的 GPU 上训练数天。更糟糕的是,远程 GPU 上的昂贵训练过程无法允许在本地硬件上进行定制,尤其是在资源受限的嵌入式场景中。需要注意的是,设备端的本地定制具有进一步提高准确度的潜力,特别是当本地传感器不断收集来自用户的新数据时。为了克服这些限制,最近已经建立了几种高效的设备端学习技术,如设备端持续学习、设备端迁移学习和设备端联邦学习,使得在本地硬件上训练和微调强大的深度网络成为可能,以进一步提高性能。
最近,大型语言模型(LLMs),如 GPT-3 和 GPT-4,在各种现实世界的语言处理任务中取得了令人印象深刻的成功。然而,这些强大的 LLM 的强大学习能力也伴随着巨大的计算复杂度。例如,OpenAI 的 GPT-3,作为最具代表性的 LLM 之一,包含了 1750 亿个参数。此外,为了实现最先进的性能,最近的 LLM 继续朝着更大、更复杂的方向发展,模型规模也不断增大。这些都使得将最近强大的 LLM 部署到现代嵌入式计算系统上以实现智能语言处理服务变得愈加具有挑战性。为了克服这些限制,最近提出了一系列有效的技术,重点缓解 LLM 的计算复杂度,探索计算高效的 LLM,包括高效的 LLM 架构设计、高效的 LLM 压缩技术(即剪枝、量化和知识蒸馏),以及高效的 LLM 系统设计。
与强大深度网络和先进训练技术的迅速兴起并行,许多代表性的深度学习软件框架和硬件加速器也应运而生,旨在为嵌入式计算系统的高效深度学习解决方案提供支持,如 TensorFlow、PyTorch、Google 边缘 TPU、Nvidia 边缘 GPU 和 Intel 神经计算棒。这些深度学习软件和硬件已被广泛采用,并为深度学习时代带来了两个主要好处。一方面,这些深度学习软件和硬件消除了软件和硬件工程师面临的障碍,从而使他们能够快速开发智能嵌入式应用,如设备端物体检测、跟踪和分割,而无需过多的领域专门知识。另一方面,这些深度学习软件和硬件通常具有领域特定的优化,从而在最小的工程努力下实现卓越的准确度 - 效率平衡。例如,作为代表性 Nvidia Jetson 边缘 GPU 的 Nvidia Jetson AGX Xavier,支持使用 INT8(即 8 位权重)的精度开发智能嵌入式应用,在不降低目标任务准确度的情况下,相比全精度(32 位权重)显著提高了效率。


