近年来,Transformer架构在各种自动驾驶应用中表现出了良好的性能。另一方面,其在便携式计算平台上的专用硬件加速已成为在真正的自动驾驶汽车中实际部署的下一个关键步骤。这篇综述对基于Transformer的模型进行了全面的概述、基准测试和分析,这些模型专门为自动驾驶任务(如车道线检测、分割、跟踪、规划和决策)量身定制。
作者回顾了用于组织Transformer输入和输出的不同架构,如编码器-解码器和仅编码器结构,并探讨了它们各自的优缺点。此外,作者还深入讨论了与Transformer相关的Operator及其硬件加速方案,并考虑了量化和运行时间等关键因素。
作者还特别说明了卷积神经网络、Swin Transformer和Transformer与4D编码器的层之间的Operator比较。本文还强调了基于Transformerbased模型的挑战、趋势和当前见解,在长期自动驾驶应用的背景下解决了它们的硬件部署和加速问题。
1、简介
近年来,自动驾驶已成为一个快速发展的领域,旨在为人类驾驶员提供自动化和智能系统。自动驾驶技术的成功部署有望显著提高交通系统的安全性和效率。在过去的二十年里,为自动驾驶开发了一系列数据驱动技术,从传统的基于规则的方法到先进的机器学习方法。
传统的自动驾驶方法主要依靠具有分析表达式和二进制编码交通规则的算法来感知环境、规划轨迹和控制车辆;有关详细信息,请参阅2010年代初至中期的综述文章,例如,城市场景、运动规划和控制以及同步定位和地图绘制(SLAM)任务的方法。然而,这些传统方法在处理复杂的现实世界场景时往往面临挑战,例如动态目标、遮挡和不确定的环境。
相比之下,深度学习方法,特别是深度神经网络(DNN),在从数据中学习复杂模式和进行预测方面表现出了显著的性能。例如,卷积神经网络,一种利用卷积层检测局部空间特征并将其分层组合以识别复杂模式的DNN,已被广泛用于自动驾驶应用。
在之前的调查中,已经对不同自动驾驶任务的深度学习方法进行了回顾和讨论,包括一般性讨论;使用强化学习的模型;用于目标检测、轨迹和行为预测、多模态融合、规划和决策、可解释性人工智能和场景生成的模型。
最近,与传统的CNN模型相比,Transformer架构在各种自动驾驶任务中表现出了令人印象深刻的性能。因此,人们对在便携式硬件上部署Transformer模型和Operator加速方案越来越感兴趣。这篇调查论文旨在全面深入地概述基于Transformer的模型的最新研究,特别强调自动驾驶的Operator加速技术。
「引入了注意力机制」,以进一步提高基于CNN的方法在自动驾驶中的性能。注意力机制背后的主要思想是允许模型根据输入的不同部分与当前上下文的相关性来权衡它们。例如,在序列到序列模型的情况下,注意力机制使解码器能够在生成目标序列的同时专注于源序列的特定部分。这种选择性聚焦使该模型能够比传统的递归神经网络更有效地捕捉更长范围的依赖性和关系。
如图1所示,注意力机制可以描述为一个函数,该函数根据输入值与给定query(Q)的兼容性,计算一组输入值的加权和,也称为“value”(V)。注意力机制使用注意力评分函数计算每个关键query对的注意力得分,然后使用函数对这些得分进行归一化以产生注意力权重。这些权重用于计算值的加权和,表示注意力机制的输出。通过选择性地关注相关信息,注意力机制可以提高学习过程的效率和鲁棒性。
Transformer架构最初是基于自然语言处理(NLP)任务的注意力机制开发的,但其建模长期依赖性和捕获全局上下文的能力使其对自动驾驶中的感知任务具有吸引力。它旨在处理和捕获输入数据中的依赖性,从而消除了对递归或卷积层的需求,从而实现高度并行化的计算。
典型的Transformer由编码器-解码器结构组成。编码器由一堆相同的层组成,每个层包含两个主要组件:多头自注意机制(如图1所示)和位置前馈神经网络。多头注意力模块使模型能够同时权衡输入序列的不同部分相对于彼此的重要性,从而捕获长期依赖关系。Transformer架构还包含位置编码,它注入关于输入元素的相对或绝对位置的信息,因为注意力机制并不固有地捕捉位置信息。
Transformer架构的硬件加速成为真实自动驾驶场景中模型实现的一个重要领域。人工智能芯片上的硬件加速包括使用专用处理器或专用硬件单元来比通用CPU或GPU更有效地执行特定操作。另一方面,Transformer的Operator是执行基本数学运算的Transformer架构的基本构建块,如矩阵乘法、注意力计算和前馈神经网络计算。
Transformer Operator的优化对于充分利用硬件加速器的功能以及实现基于Transformerbased模型的快速、高效部署和执行至关重要。通过调整这些Operator以利用人工智能芯片的优势,如并行性、低精度算术和专用功能单元,可以显著提高Transformer模型的整体性能。人工智能加速器通常采用低精度算术、数据压缩和并行处理等技术来加速计算并降低功耗。
本文的其余部分组织如下:
- 第2节介绍了Transformer的基本模型和不同自动驾驶任务中的各种Transformer变体;
- 第3节介绍了便携式人工智能设备中不同的Transformer编码器-解码器结构、Operator和硬件加速进展;
- 第4节讨论了基于Transformer的深度学习实现的挑战和趋势,并得出了结论。
2、Transformer模型和任务
注意力机制和Transformer架构的开发历史可以通过一系列关键的开发和里程碑论文来追溯,如图2所示。Bahdanau等人首先在神经机器翻译的背景下引入了注意力机制,提出了源序列和目标序列之间的动态对齐方法。这种方法克服了早期序列到序列模型中固定长度上下文向量的限制。
Luong等人通过呈现局部和全局注意力,进一步完善了注意力机制,前者关注较小的源序列子集,后者考虑所有源词进行可变长度对齐上下文计算。Vaswani等人首次介绍了Transformer体系结构,这是该领域的一个里程碑。这一创新显著提高了各种NLP任务的性能。
随后,Devlin等人提出了BERT(来自Transformer的双向编码器表示),这是一种使用Transformer架构的双向表示的预训练模型。当对下游任务进行微调时,BERT在NLP任务中实现了前所未有的性能。在另一项研究中,Radford等人提出了GPT(Generative Pre-trained Transformer)模型,该模型采用单向Transformer架构进行语言模型预训练。在特定任务上对GPT进行微调,产生了实质性的性能改进,随后的迭代(GPT-2、GPT-3和GPT-4)继续推进最先进的技术。
最近,Dosovitskiy等人用Vision Transformer(ViT)模型证明了Transformer架构对计算机视觉任务的适用性。通过将图像划分为不重叠的Patch并使用线性嵌入,作者在图像分类任务中获得了与传统CNN模型相比具有竞争力的结果。ViT也是图像处理任务中后续基于Transformer的模型的基本架构之一。
2.1、图像处理的基本模型
作为基于Transformer的图像处理模型的先驱架构,ViT用自注意力层取代了传统CNN的卷积层。
如图3所示,它将图像划分为一系列不重叠的Patch,然后将这些Patch输入Transformer编码器,以学习图像的表示。Transformer编码器由几个自注意力层和前馈层组成。自注意力机制允许网络关注图像中的相关Patch,而忽略不相关的Patch。
为了使ViT适用于更大的图像,作者引入了一种混合方法,将卷积层与自注意力层相结合。卷积层被用来降低图像的空间分辨率,而自注意力层则捕捉到了Patch之间的长距离依赖关系。
受ViT的启发,Swin Transformer引入了一种新的层次结构,将自注意力机制组织成一个多层次结构,其中每个层次由一组不重叠的Patch组成。这种方法的动机是观察到,由于自注意力机制的二次复杂性,Vision Transformer的可扩展性有限。
Swin Transformer的主要创新是使用了移位窗口,这使得Patch能够照顾到它们的邻近结果,同时避免与相邻的Patch重叠。这减少了计算自注意力所需的计算次数,并使体系结构能够扩展到更大的图像大小。它还引入了一种新的Token化方案,将图像划分为固定大小的不重叠Patch,然后在层次结构的每个级别将Patch递归分组为更大的“宏Patch”。这种方法有助于保存空间信息,并使模型能够捕捉局部和全局上下文。许多感知模型使用Swin Transformer作为Backbone来获得图像特征,如BEVFusion、BEVFusions和BEVerse。
在自动驾驶应用中,基于Transformer的架构已被广泛用于各种子任务,包括目标检测、车道线检测和分割、跟踪和定位、路径规划和决策。此外,最近的研究探索了Transformer在构建自动驾驶端到端深度学习模型中的应用。这些模型利用注意力机制,进一步提高其专注于相关信息的能力,并在复杂的现实世界驾驶场景中有效执行。
在本节的其余部分中,根据任务回顾了基于Transformer的模型,如表I所示。
主要将任务分为3类:
- 3D和一般感知任务(包括目标检测、跟踪和3D分割);
- 2D和平面任务(包括车道线检测、分割和高清(HD)地图生成);
- 其他任务(包括轨迹预测、行为预测和端到端任务)。
2.2、3D和一般的感知任务
3D和一般感知,包括目标检测、跟踪和3D分割任务。这是过去几年中开发的基于Transformer的模型最受欢迎的研究领域之一。这类任务旨在分割、识别和跟踪物体,如车辆、行人和环境中的其他元素。
在各种基于Transformer的模型中,DETR是一个早期的重要模型,它启发了许多后续工作,尽管它最初是为2D检测而设计的。DETR将目标检测视为一个使用预生成框的预测问题,并消除了传统的Anchor。它采用了基于匈牙利算法的二分匹配方法来直接预测一对一的目标集。
已经提出了诸如可变形DETR之类的变体模型,通过引入可变形注意力来提高模型的收敛速度和位置查询模糊性。在DETR架构的基础上,DETR3D将Transformer应用于多个相机,用于鸟瞰(BEV)空间中的3D目标检测。它首先将点云数据(来自激光雷达)转换为3D体素表示,然后将其输入到修改的DETR架构中,该架构使用多尺度特征融合来捕获全局和局部上下文信息。
FUTR在架构上也与DETR相似,但使用了多传感器(图像+激光雷达+雷达)。多模态输入被融合成BEV特征,然后被提升以实现3D BBOX。在FUTR的基础上,FUTR3D将3D目标检测扩展到多模式融合。它在结构上类似于DETR3D,但增加了模态不可知特征采样器(MAFS),能够处理各种传感器配置并融合不同的模态,包括2D相机、3D激光雷达、3D雷达和4D成像雷达。
PETR v1,v2是将位置嵌入变换用于多视图3D目标检测的另一个最新发展。它将3D坐标位置信息编码为图像特征,产生3D位置感知特征。在推理过程中,3D位置坐标可以离线生成,并用作额外的输入位置嵌入。
CrossDTR结合了PETR和DETR3D的优势,创建了一个跨视图和深度引导的框架,该框架实现了与其他方法相当的精度,同时由于较少的解码器层而提供了快速的处理时间。
BEVFormer v1、v2采用了不同的方法,采用时空转换器架构来实现统一的BEV表示,以提高性能,而不依赖于多模态输入。它结合了空间和时间融合,利用历史信息来提高性能。BEVFormer采用时间自注意力模块从历史BEV特征中提取特征,用于运动目标速度估计和遮挡目标检测,并在垂直方向上扩展空间交叉注意,用于BEV Z方向上的柱状查询。
相比之下,UVTR专注于通过使用图像和激光雷达输入之间的跨模态交互来增强深度推断,在没有高度压缩的情况下为BEV中的每个模态生成单独的体素空间,然后通过知识蒸馏和模态融合来融合多模态信息。这种方法为扩大3D occupancy研究提供了一个很有前途的方向。
在3D分割任务中,TPVFormer通过将Voxel转换为3个BEV平面来解决基于Transformer的方法的效率问题,显著减少了计算负担,同时有效地预测了空间中所有Voxel的语义占用。VoxFormer使用2D图像通过深度预测生成3DVoxel查询建议,然后根据这些建议从2D图像特征中进行可变形的交叉注意力查询。之后,它应用Mask自动编码器通过自注意力传播信息,并通过上采样网络细化体素以生成语义占用结果。
SurroundOcc从多视图和多尺度2D图像特征中执行3D BEV特征查询,向Transformer层添加3D卷积,并逐步对Voxel特征进行上采样。当产生多级BEV特征时,其3D卷积网络可以将这些特征组合起来,以产生密集的空间占用。
2.3、二维和平面任务
除了2D/3D感知任务外,Transformer架构还用于其他任务,如预测、规划和决策。此外,最近的研究探索了使用Transformer为整个自动驾驶管道构建端到端DNN模型,旨在将感知、规划和控制统一到一个集成系统中。
对于轨迹或行为预测,标准CNN模型的特征提取存在实际挑战,尤其是其建模长期交互的能力有限。然后开发基于Transformer的模型来解决这个问题。开发VectorNet是为了将这些几何形状(来自道路标记或车辆轨迹)转换为矢量格式输入。它引入了一种分层图神经网络,该网络使用向量表示对HD地图和代理轨迹进行编码,还利用了单个道路组件的空间局部性并对其相互作用进行建模。
TNT基于每条轨迹的端点定义了车辆模式,并通过将其转换为端点预测问题来简化轨迹预测。然而,作为一种基于Anchor的技术,TNT在预测端点之前需要启发式Anchor定义。开发DenseTNT是为了通过直接预测端点的概率分布来克服这一限制,从而实现Anchor-free预测。
mmTransformer提出了一种堆叠的Transformer架构,用一组固定的独立建议在特征级别对多模态进行建模。然后制定了一项基于区域的训练战略,以诱导生成的proposals的多模式化。该策略降低了运动预测的复杂性,同时确保了多模态行为输出。
AgentFormer允许一个代理在特定时间的状态直接影响另一个代理的未来状态,从而消除了对单个维度中编码的中间特征的需求。这种方法能够同时学习时间信息和交互关系。它还确保了代理的当前关系通过不同时间的关系来反映,从而减少了在传统的Transformer注意力机制中,在相同输入元素状态下通常发生的时间和代理信息的损失。对于更复杂的情况,其中输入包含静态和动态数据(例如,道路几何形状、车道连通性、红绿灯等),标准Transformer对广泛的多维序列建模是具有挑战性的,因为它对自注意和昂贵的位置前馈网络的输入序列长度具有二次依赖性。WayFormer通过分析输入的预融合、后融合和层次融合来缓解这一问题,并保持效率和质量之间的平衡。该方法避免了设计模态特定模块的复杂过程,使模型更容易扩展和扩展。
2.4、预测与决策
最后,端到端模型被广泛归类为规划和决策任务,因为端到端任务的最终目标是输出决策信号。在过去几年中出现了一些工作,例如,TransFuser使用多个Transformer模块进行数据处理、中间数据融合和特征图生成。在整个特征提取器中以多个分辨率(64×64、32×32、16×16和8×8)应用数据融合,从图像和激光雷达BEV流中产生512维特征向量输出,然后通过元素求和将其组合。该方法考虑了ego车辆前方32m和两侧16m范围内的传感区域,从而包括32m×32m的BEV网格。网格被划分为0.125m×0.125m的块,得到256×256像素的分辨率。
NEAT提出了一种对场景的语义、空间和时间结构进行有效推理的表示。它构建了一个连续函数,将BEV场景坐标中的位置映射到路点和语义,使用中间注意力映射将高维2D图像特征迭代压缩为紧凑的表示。
基于TransFuser架构,InterFuser提出了一种单阶段架构来融合来自多模式多视图传感器的信息,并获得了更好的性能。该框架通过开发安全控制滤波器来约束Transformer输出动作,从而增强了端到端模型的安全性。模型的安全不敏感输出包括10个航路点路径,而安全敏感输出包括交通规则信息和物体密度图,该地图具有车辆、行人和自行车等物体的七个特征。这些输出是通过融合多视图图像输入和激光雷达点云数据产生的,该数据覆盖了ego车辆前方28米和侧面14米的区域。分析区域尺寸为20m x 20m,分为1m x 1m网格。
除了相机和激光雷达信号外,MMFN还在端到端任务中使用了矢量化高清地图和雷达。它探索了作为网络输入的高清地图上的不同表示,并提出了一个融合四种类型数据的框架。另一项名为STP3的工作提出了一种以自我为中心的对齐累积方案,该方案将2D转换为3D并对齐目标特征。其预测模块集成了来自时间t的障碍物和时间t−n的障碍物位置的信息。
与上述主要为端到端任务设计的工作不同,UniAD提出了一个面向规划的框架。该论文认为,以前的工作没有考虑到规划所需的某些组成部分,新的设计可以适当地组织之前的任务,以便于规划。
总之,最近的Transformer模型被设计为集成各种任务,旨在实现更端到端的结构。预计未来对端到端Transformer模型的研究更有可能迅速发展,重点关注其效率和多功能性。
2.5、Transformer模型基准
作者在NVIDIA GPU 3090上对主要的基于Transformer的模型进行基准测试,考虑了输入大小、运行时间、准确性和数据集等指标。
如表II所示,对于使用Nuscenes数据集的3D目标检测任务,DETR3D和FUTR3D由于其相似的结构而表现出相当的性能。BEVFormer通过生成BEV特征并根据这些特征查询3D目标而优于DETR3D。PETR和CrossDTR使用CNN网络将2D特征转换为3D特征,加快了查询过程,并产生了比DETR3D更好的性能。与ResNet50相比,ResNet101的精度更高,这可归因于其可变形的卷积机制和增加的卷积深度,尽管代价是运行速度较慢。
另一方面,基于Transformer的道路元素检测研究表现出更大的变化,对2D车道(TuSimple)、3D车道(OpenLane)和局部地图(Nuscenes)等任务具有不同的模型和评估标准。车道和局部地图Transformer查询比目标检测更快,这是因为更少的关键点查询和使用较浅层特征的较小CNN主干。如表底部所示,端到端Transformer是一个新兴的研究领域。然而,它主要依赖于CARLA等不切实际的模拟器平台中的模拟数据,这限制了它在现实世界场景和实际实现中的适用性。
3、Transformer结构、Operator和硬件加速
本节重点介绍Transformer组件、Operator和硬件加速分析。作者首先分析编码器-解码器结构,强调其在处理输入数据和生成输出预测中的作用。讨论了关键组件,包括层归一化、矩阵乘法和softmax。然后,探索了提高Transformer模型计算效率的方法,详细介绍了应用于softmax、层归一化、激活函数和矩阵乘法等运算符的定点算法的硬件加速技术。
3.1、编码器-解码器设计
尽管Transformer模型在自动驾驶应用中实现了最先进的性能,但其可观的存储和计算开销对便携式或边缘设备的部署和高效推理提出了挑战。
感知任务的Transformer模型主要利用BEV特征,编码器负责生成这些特征(图4(b)和(d))。编码器将BEV特征扩展为矩阵,长度为Channel,用作Transformer中的Query。这些特征是使用相机本征矩阵从多视图相机的2D特征导出的。为了保留2D空间信息,位置嵌入被添加到查询中,然后作为编码器的输入(图4(b))。为了更快地收敛,Encoder迭代以前的BEV特性,并将当前Query作为自我关注的输入。此外,车辆的位置姿态信息在前框架和后框架的像素级别上匹配(图4(d))。
在感知任务中,CNN Head被Transformer块取代,以使用查询生成障碍物的3D边界框,以及2D/3D车道线和局部地图(图4(a)、(c)、(e)、(f))。
3D障碍感知任务有两种类型的查询:
- 显式
- 隐式
显式查询依赖于BEV特征(图4(e)),而隐式查询直接使用多视图相机的2D特征(图4(a))。隐式查询减少了编码器的计算需求。
为了进一步减少Transformer上的计算负载,可以在使用CNN架构从相机透视图转换为2D/3D BEV后查询转换后的BEV特征(图4(c))。车道和局部地图任务主要利用BEV特征进行查询,将车道和局部图的物理关键点作为查询目标,并将其特征(xyz,属性)作为向量。
与障碍物任务相比,道路信息查询需要对BEV特征进行更高程度的网格细化;然而,BEV特征所需的距离范围较低。车辆同时关注周围的道路信息(通常为60米x 30米)和障碍物(通常为100米x 100米),以及高速场景中的远处障碍物。由于道路信息是静态的,因此可以使用具有历史信息的前视图摄像机来构建,而动态障碍物则需要侧面摄像机的参与。因此,Transformer的交叉注意力机制可以根据这些要求,针对不同的应用进行灵活设计和优化。
3.2、不同架构中的Operator
在上一节中,分析了Transformer用于感知任务的编码器和解码器的一般框架,其中最复杂的组件是编码器结构(图4(d))。BEVformer中采用的这种结构在空间和时间上分别融合了多视图相机和历史信息,使其成为自动驾驶应用程序的复杂开源Transformer。现在根据Operator对编码器进行拆解,以获得详细的模型,供后续硬件加速参考。
在本节中,特别比较了Operator的3种主要架构的层:ResNet、Swin Transformer和BEVFormer的编码器。如图5(a)所示,ResNet具有一个称为Bottleneck的基本单元,由包含类似Bottleneck网络的多个阶段组成。这些网络包括3x3卷积、1x1卷积、批量归一化(BN)和激活函数(ReLU,校正线性单元),要求适度的计算并行性和芯片内存。在自动驾驶任务中,ResNet通常用于2D相机图像特征提取,作为骨干网络。
图5(b)显示了包含多个阶段单元的Swin Transformer,包括data rearrangement、 Layer Normalization(LN)、Matrix Multiply(32x32)、Softmax、全连接(FC)层和激活函数(GELU,高斯误差线性单元)。
与ResNet相比,Swin Transformer表现出更大的Operator多样性和更大的矩阵乘法维度。Softmax和FC层通常作为CNN网络中的最后一层出现在每个Swin Transformer阶段,需要在单元内加速。尽管Swin Transformer可以取代ResNet成为自动驾驶任务的骨干组件,但由于增益和加速性能之间的权衡,CNN网络在部署的产品中仍然是主流。作为一个基本的Transformer网络,Swin Transformer可作为各种NPU制造商硬件加速的初始参考,实现3 FPS/TOPS或更高的性能水平。
为自动驾驶加速变形金刚的主要挑战来自编码器和解码器模型,这些模型包含自注意力和交叉注意力模块。交叉注意力将向量从一个空间(PV)转换到另一个空间,比自注意力更复杂。
如图7所示,以BEVFormer的编码器为另一个例子,它包括时间自注意力、空间交叉注意力、LN和FFN。LN和FFN结构类似于Swin Transformer的结构,但具有更大的输入和输出特征尺寸,需要更大的计算能力。
时间自注意力模块中的可变形注意力采用可学习的注意力像素地址,需要从数据缓存中的相应位置获取数据。这个过程涉及大矩阵乘法(512*128)和对大量矩阵的操作,使其比Swin Transformer的自注意力更复杂。时间自注意力模块使用自注意力机制融合当前和历史BEV特征。
空间交叉注意力模块与时间交叉注意力模块有相似之处,但由于大量的数据操作和更大的矩阵乘法维度(512*256),检索多相机和多尺度特征的注意力像素地址变得更加复杂。自动驾驶中感知任务的模型复杂性显著高于Swin Transformer和传统CNN骨干网络,这导致对Operator加速和芯片存储的需求增加。
此外,在图6中展示了一个用于在便携式硬件上实现Transformer架构的Operator列表示例。整个过程分为26个特定于Operator的步骤,每个步骤都报告了各种指标,如操作类型、多头数量、重复次数和以微秒为单位的Operator时间。
可以看出,第2-5项(Q、K、V和注意力矩阵计算)、第11项(注意力解决头部矩阵计算),第21项(解决FFN矩阵计算)和第23项(线性矩阵计算)占据了大多数运算计数。
3.3、Operator加速度分析
Transformer架构包含大量矩阵乘法运算符和相应的数据承载Operator、Softmax运算符、激活函数和LN运算符。量化权重和输入可以通过将浮点运算调整为整数来加速推理。作者已经设计了这些Operator在定点上的硬件加速。
1、Softmax
softmax函数在深度学习中被广泛使用,经常出现在输出层。先前的工作已经研究了DNN应用中softmax的硬件加速,而一些研究也探索了基于视觉Transformer的softmax的量化和加速。给定,标准softmax激活可以定义为:
为了防止分母中的多项式求和溢出,需要在硬件加速期间执行数值稳定的处理,定义并执行低精度,将底部替换为2以获得:
在在线操作过程中,专注于并行化和存储优化,并观察到整个过程的时间复杂度为,空间复杂度为。该方法需要3个循环并存储个中间结果。为了进一步优化过程,将全局最大值替换为局部最大值,使计算能够在2个循环中完成。这将时间复杂性降低到,并减少了中间结果的存储。
在定点试验中,输入采用有符号S6.9和S5.2,而输出采用无符号U1.15和U1.7。中间累积结果使用U10.10。
测试结果如表III所示。可以看出,16位输入和输出的准确性约为1%。然而,8位输入的精度明显较低,并且8位输出导致显著的量化误差。因此,作者建议对输入和输出使用16位量化,以确保Softmax函数的硬件加速的准确性。
2、Layer Normalization
Layer Normalization与Batch Normalization的不同之处在于,它跨通道而非批量进行规范化,解决了Transformer模型在通道方向上的大量计算。这种归一化技术有效地缓解了Transformer模型训练过程中的梯度消失和爆炸问题。此外,Layer Normalization涉及除法、平方和平方根等操作,Layer Normalization的替换以及整数Transformer中的注意力完全支持INT8推理。
Layer Normalization的原始计算公式为:
根据量化公式:
其中是量化的定点激活值,是scale,是输入零点。β和γ是输入参数(浮点数)。导出后,Layer Normalization计算公式可以表示为:
作者为给定的公式设计并测试了一个定点硬件加速器。测试使用了8位U8和S7输入,16位S8.7输出,以及具有不同量化精度的中间结果。平均值采用S8.7,而标准偏差采用U8.6。
作者评估了2个不同测试数据集(称为案例1和案例2)的性能,并在表III(第4行至第5行)中报告了结果。测试结果显示S7和U8的输出结果具有可比性。最大错误百分比主要出现在序列的最小值处。尽管绝对误差值仍然很小,但由于Golden值相对较小,误差百分比似乎更大。孤立地评估Layer Normalization表明,使用8位输入可能会带来一些风险。然而,必须全面评估对整个模型的影响,以确定其整体效果。
3、Activation Functions
激活函数调节神经网络中神经元之间的信号传输,包括线性(例如,)和非线性函数(例如,、、)。非线性函数对于解决复杂问题至关重要,因为单独的线性函数只会产生输入的线性组合。因此,神经网络采用了非线性函数来更有效地建模和处理复杂的非线性问题。本研究开发了激活函数的各种定点表示,如GELU、Relu、Leaky Relu、ELU、SELU、Sigmoid和Tanh。
GELU作为讨论激活函数的硬件定点设计的示例。GELU的原始计算公式定义为:
同样,利用反量化公式,可以将GELU计算转换为:
按照与在Softmax中类似的方法,对分母进行了一个低精度的替换,将基数更改为基数2,有:
经过一些推导,可以得到GELU的近似公式:
基于近似公式开发了GELU函数的定点实现。使用S6.9和S3.4作为输入,使用签署的S5.10和S3.4进行输出来测试实施。测试结果显示在表III中(最后三行)。对于16位输入和输出,平均误差低于1%。然而,由于某些值接近零,因此最大误差不适用。当将输入更改为8位时,平均误差增加到5%。进一步将输出减少到8位导致大约28%的平均误差,这表明输出位宽显著影响了结果的准确性。
4、Matrix Multiplication
矩阵乘法构成了Transformer的重要组成部分,占其计算负载的80%以上。作者分析了各种公开可用的感知算法模型,发现了这种研究有比较高占比。
在Transformer中,乘法累加运算发生在通道方向上,每个通道都需要完成。通道长度可达256,因此在设计过程中必须考虑定点计算和溢出问题。电路设计提供了INT4、INT8和INT16的定点运算,使用INT4多聚体作为基本单元。通过采用移位运算,将2个INT4单元用于INT8,将4个INT4单位用于INT16实现。
此外,作者使用2个INT4单元和旁路设计实现了FP8,包括用于乘法累加运算的E4M3和E5M2格式。FP8,一种IEEE浮点格式,已经证明了与16位精度相当的训练精度,同时为Transformer和计算机视觉应用提供了显著的加速。中间结果使用FP16/FP32或Int32格式,部分和使用与比例因子组合的浮点格式。
矩阵乘法加速不仅需要定点设计,还需要精确的量化设计。作者试图通过针对特定数据和模型定制量化设计来解决这个问题,因为它们对应的量化值范围和范围不同。这种方法有助于防止溢出,这种溢出很容易发生,因为乘法累加运算的维数很大。
5、Section Summary
采用了各种优化技术来改进基于Transformer的模型。数据重组运算符,如reshape、permute、split、concat和transpose,用于处理不规则数据,依赖片上存储器进行中间结果存储。软件编译器优化,包括operator合并和运算符映射,被用来优化这些operator。
模型量化是加速模型推理的关键技术,它用整数多项式近似方法或函数近似方法取代了Transformer网络中的非线性算子。对于矩阵乘法加速,也考虑了替代量化方法,如指数量化。模型结构的改进,如使用有效的注意力机制或轻量级结构,有助于进一步优化。
还研究了模型压缩方法,如剪枝和知识蒸馏。剪枝涉及从训练的模型中删除不重要的参数或连接,各种方法侧重于多头自注意力(MHSA)、通道、token或整个Transformer结构。
知识蒸馏将知识从大的教师模型转移到小的学生模型。将模型量化与知识提取相结合,减少了内存开销,提高了性能。视觉Transformer蒸馏技术检查了特征图和注意力,特征图蒸馏将地图划分为patch,注意力蒸馏使用额外的蒸馏token进行知识转移。
对Transformer硬件加速的研究主要集中在NLP模型(如BERT)和视觉Transformer模型(如ViT)上。2022年,Transformer在自动驾驶领域的应用迅速发展,这导致人们对其实施的兴趣增加。然而,自动驾驶Transformer模型的硬件加速仍处于初级阶段。
NPU制造商的现有基准揭示了Swin Transformer和Vision Transformer型号的加速性能,但关于DETR3D、PETR和BEVFormer等较新型号的加速的公开信息有限。随着Transformer车型在自动驾驶领域的不断发展,主要的NPU制造商和研究机构正在积极探索这些车型的加速技术,旨在将其部署在量产车中。在这项工作中,作者剖析了典型的自动驾驶模型,并为生成的operator开发了定点实现。
4、挑战和趋势
基于Transformer的深度学习方法在改进自动驾驶系统方面显示出了潜力,但它们面临着收集高质量训练数据、确保安全和提供可解释性等挑战。多模态融合和可解释性是该领域日益增长的趋势,而使用基于Transformer的模型已经成功地完成了感知和预测任务。前景包括优化实时处理和开发端到端学习模型。然而,应对挑战并利用趋势和前景需要持续的研究努力。
Transformer模型已经从最初用于3D障碍感知任务发展到各种感知任务。自动驾驶的未来需要更大的系统安全性和确定性,单模态视觉感知在边际增益方面已经达到饱和。需要多模式融合来提高边际增益,这对于高水平的自动驾驶至关重要。为了满足这一需求,未来可能会生成具有4D时空输入/输出的更大尺寸、多模式和多任务的Transformer模型。这对模型训练和加速提出了新的挑战,需要在算法设计、硬件架构和系统集成方面取得进展。
自动驾驶中的跟踪、规划和决策任务也开始从传统的DNN模型过渡到基于变换的模型。考虑到Transformer模型日益复杂,这可能需要更好的硬件加速方案来提高硬件部署中的模型推理效率。一种很有前途的方法是将多个级别和类型的Transformer模型级联到一个端到端系统中。然而,这在加速整个系列模型方面带来了挑战,因为每个模型可能都有独特的硬件要求。在基于感知的模型中,主要输入是图像或雷达数据,这些数据通过CNN进行处理以提取特征。然后将这些特征输入到BEV感知Transformer模型中,用于从BEV的角度检测障碍物和静态地面标记。将BEV感知结果与高精度地图相结合,进一步编码为网格格式,并输入到类似NLP的Transformer模型中,以完成预测和规划任务。
除了基本模型的激活函数、LN、Softmax和大矩阵乘法加速之外,自动驾驶任务中的Transformer模型还有一个特殊的可变形注意力算子。其可学习的位置参数会导致与每个查询相关的数据出现一些不规则性,这增加了图像数据硬件上的缓存压力,并使并行加速变得困难。除了优化软件编译器调度外,还需要为此类模型专门设计硬件。
Transformer模型的混合精度量化是加速模型的一项重要任务,它直接影响计算能力和存储,是未来的主要研究方向之一。高位量化确保了高精度,但需要更大的内存使用量和计算资源,而低位量化提供了较低的精度,但减少了内存和计算需求。固定比特量化无法在精度和计算能力之间实现细粒度的权衡,因此必须使用混合精度量化(MPQ)进行有效的模型压缩。MPQ采用了各种量化位宽,包括8位、16位、32位,甚至4位和2位。除了成熟的线性量化方法外,还考虑了其他方法,如基于FP8的对数量化,其中基于FP8量化和加速是一个突出的研究领域。
Transformer的注意力机制在将空间序列转换为另一个空间序列方面发挥了优势,因为矩阵乘法可以将向量从一个空间转换到另一空间,大矩阵可以进行多维空间转换,并且这些矩阵中的参数是可学习的。经过空间转换后,信息关系查询变得更加容易。
然后,注意力中的网格样本可以从相关像素中收集所需的特征,并且网格样本的位置也是可以学习的。矩阵变换和网格采样使Transformer非常适合需要将多视图数据转换为BEV范式的自动驾驶任务。Transformer模型的参数和计算能力远远超过了CNN网络,使其更适合在大型数据集上推广各种角点情况和过拟合。然而,这也增加了模型的复杂性,并需要仔细优化以确保高效的性能。
因此,有必要为自动驾驶中的Transformer模型开发更好的可解释和可解释技术,因为这些技术对于确保安全和建立对系统的信任至关重要。例如,可以使用基于注意力的显著性图来在视觉上突出输入数据中最重要的区域,例如相机或激光雷达,该模型用于做出驾驶决策。这将为模型的决策过程提供见解,使工程师和用户能够更好地理解和信任系统。
5、总结
本文全面概述了专门为自动驾驶任务量身定制的基于Transformer的模型。作者研究了用于组织Transformer输入和输出的不同架构,并评估了它们各自的优缺点。
深入探讨了Transformer相关operator及其硬件加速分析,并考虑了量化和定点运行时间等关键因素。为任务和operator的定点测试提供了基准比较。最后,强调了基于Transformer的模型中的挑战、趋势和当前见解,并在现实世界应用中长期部署Transformer的背景下讨论了它们的硬件部署和加速问题。
6、参考
[1].Transformer-based models and hardware acceleration analysis in autonomous driving: A survey.
作者:小书童
文章来源:集智书童
推荐阅读
- 全新YOLO模型YOLOCS | 改进YOLOv5的Backbone/Neck/Head
- 特斯拉FSD技术优化改进分析
- 小目标检测技巧 | 全局上下文自适应稀疏卷积CEASA | 助力微小目标检测涨点
- 车道线模型落地技巧 | LGAD注意力蒸馏让模型更鲁棒
- 基于YOLOv5改进再设计 | M2S全面提升小目标精度
- YOLOv8官方支持多目标跟踪 | ByteTrack、BoT-SORT都已加入YOLOv8官方
更多嵌入式AI干货请关注嵌入式AI专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。