最新综述一览!自动驾驶中基于Transformer的模型和硬件加速分析

点击下方卡片,关注“自动驾驶之心”公众号

ADAS巨卷干货,即可获取

今天自动驾驶之心为大家分享自动驾驶中基于Transformer的模型和硬件加速分析的最新综述!如果您有相关工作需要分享,请在文末联系我们!

>>点击进入→自动驾驶之心【模型部署】技术交流群

论文作者 | Juan Zhong

编辑 | 自动驾驶之心

论文链接:https://arxiv.org/abs/2304.10891

近年来,Transformer架构在各种自动驾驶应用中表现出了良好的性能。另一方面,其在便携式计算平台上的专用硬件加速已成为在实际自动驾驶汽车中实际部署的下一个关键步骤。我们这篇调查论文提供了基于Transformer的模型的全面概述、基准和分析,这些模型专门为自动驾驶任务(如车道检测、分割、跟踪、规划和决策)量身定制。我们回顾了用于组织Transformer输入和输出的不同架构,如编码器-解码器和仅编码器结构,并探讨了它们各自的优缺点。此外深入讨论了与Transformer相关的运算符及其硬件加速方案,并考虑了量化和运行时间等关键因素。我们还特别说明了卷积神经网络、Swin Transformer和Transformer与4D编码器的层之间的操作员级比较。该论文还强调了基于Transformer的模型的挑战、趋势和当前见解,在长期自动驾驶应用的背景下解决了它们的硬件部署和加速问题。

Transformer模型和任务

注意力机制和Transformer架构的发展历史可以通过一系列关键的发展和里程碑论文来追溯,如图2所示。Bahdanau等人首先在神经机器翻译的背景下引入了注意机制,提出了源序列和目标序列之间的动态对齐方法。这种方法克服了早期序列到序列模型中固定长度上下文向量的局限性。Luong等人通过呈现局部和全局注意力,进一步完善了注意力机制,前者关注较小的源序列子集,后者考虑所有源词进行可变长度对齐上下文计算。

2cab5023ea137097014d6f685ae87bef.png

Vaswani等人首次介绍了Transformer体系结构,这是该领域的一个里程碑。这一创新显著提高了各种NLP任务的性能。随后,Devlin等人提出了BERT(来自Transformer的双向编码器表示),这是一种使用Transformer架构的双向表示的预训练模型。当对下游任务进行微调时,BERT在NLP任务中获得了前所未有的性能。在另一个研究领域,Radford等人提出了GPT(Generative Pre-trained Transformer)模型,该模型采用单向Transformer架构进行语言模型预训练。在特定任务上微调GPT产生了实质性的性能改进,随后的迭代(GPT-2、GPT-3和GPT-4)继续推进最先进的技术。最近,Dosovitskiy等人用视觉转换器(ViT)模型证明了Transformer架构对计算机视觉任务的适用性。通过将图像划分为不重叠的补丁并使用线性嵌入,作者在图像分类任务中获得了与传统CNN模型相比具有竞争力的结果。ViT也是图像处理任务中后续基于Transformer的模型的基本架构之一。

A.图像处理的基础模型

作为基于Transformer的图像处理模型的先驱架构,ViT用自注意力层取代了传统CNN的卷积层。如图3所示,它将图像划分为一系列不重叠的补丁,然后将这些补丁输入Transformer编码器,以学习图像的表示。Transformer编码器由几个自注意层和前馈层组成。自注意力机制允许网络关注图像中的相关补丁,而忽略不相关的补丁。为了使ViT适用于更大的图像,作者引入了一种将卷积层与自注意力层相结合的混合方法。卷积层用于降低图像的空间分辨率,而自注意力层则捕获了补丁之间的长程依赖关系。

54aefa98f516fa9d11a27be39b6cea7a.png

受ViT的启发,Swin Transformer引入了一种新的层次结构,将自注意力机制组织成多层次结构,其中每个层次由一组不重叠的补丁组成。这种方法的动机是观察到,由于自注意力机制的二次复杂性,ViT的可扩展性有限。Swin Transformer的主要创新是使用了移位窗口,这使得补丁能够照顾到它们的邻居,同时避免与相邻的补丁重叠。这减少了计算自注意力所需的计算次数,并使架构能够扩展到更大的图像大小。它还引入了一种新的标记化方案,将图像划分为固定大小的不重叠补丁,然后在层次结构的每个级别将补丁递归分组为更大的“宏补丁”。这种方法有助于保存空间信息,并使模型能够捕捉局部和全局上下文。许多感知模型使用Swin Transformer作为主干来获得图像特征,例如BEVFusion和BEVerse。

在自动驾驶应用中,基于Transformer的架构已被广泛用于各种子任务,包括目标检测、车道检测和分割、跟踪和定位、路径规划和决策。此外,最近的研究探索了Transformer在构建自动驾驶端到端深度学习模型中的应用。这些模型利用注意力机制,进一步提高其关注相关信息的能力,并在复杂的现实世界驾驶场景中有效执行。在本节的其余部分中,我们根据任务回顾了基于Transformer的模型,如表I所示。我们主要将任务分为三类:3D和一般感知任务(包括目标检测、跟踪和3D分割);2D和平面任务(包括车道检测、分割和高清(HD)地图生成);以及其他任务(包括轨迹预测、行为预测和端到端任务)。

c6e95b36f68b23efa0031c448f4f9276.png

B.3D和一般感知任务

第一类任务是3D和一般感知,包括目标检测、跟踪和3D分割任务。这是过去几年中开发的基于Transformer的模型最受欢迎的研究领域之一。这类任务旨在分割、识别和跟踪物体,如车辆、行人和环境中的其他元素。在各种基于Transformer的模型中,DETR是一个早期的重要模型,它启发了许多后续工作,尽管它最初是为2D检测而设计的。DETR将对象检测视为使用预生成框的预测问题,并消除了传统的锚点。它采用了基于匈牙利算法的二分匹配方法来直接预测一对一的对象集。已经提出了可变模型,如可变形DETR,通过引入可变形注意力来提高模型的收敛速度和解决查询模糊性。在DETR架构的基础上,DETR3D将Transformer应用于多个相机,用于鸟瞰(BEV)空间中的3D对象检测。它首先将点云数据(来自激光雷达)转换为3D体素表示,然后将其输入到修改的DETR架构中,该架构使用多尺度特征融合来捕获全局和局部上下文信息。FUTR在架构上也类似于DETR,但使用了多传感器(图像+激光雷达+雷达)。多模态输入被融合成纯电动汽车特征,然后被提升以实现3D BBOX。在FUTR的基础上,FUTR3D将3D目标检测扩展到多模式融合。它在结构上与DETR3D类似,但增加了模态不可知特征采样器(MAFS),能够处理各种传感器配置并融合不同的模态,包括2D相机、3D激光雷达、3D雷达和4D成像雷达。

PETR是将位置嵌入变换用于多视图3D检测的另一个最新发展。它将三维坐标位置信息编码为图像特征,产生三维位置感知特征。在推理过程中,3D位置坐标可以离线生成,并用作额外的输入位置嵌入。CrossDTR结合了PETR和DETR3D的优势,创建了一个跨视图和深度引导的框架,该框架实现了与其他方法相当的精度,同时由于解码器层较少而提供了快速的处理时间。BEV公式采用了不同的方法,采用时空变换器架构进行统一的BEV表示,以提高性能,而不依赖于多模态输入。它融合了空间和时间融合,利用历史信息提高了性能。BEVFormer采用时间自注意模块从历史BEV特征中提取特征,用于运动目标速度估计和遮挡目标检测,并在垂直方向上扩展空间交叉注意,用于BEV Z方向上的柱状查询。相反,UVTR专注于通过使用图像和激光雷达输入之间的跨模态交互来增强深度推断,在没有高度压缩的情况下为BEV中的每个模态生成单独的体素空间,然后通过知识转移和模态融合融合多模态信息。这种方法为扩展三维占有率研究提供了一个很有前途的方向。

在3D分割任务中,TPVFormer通过将体积转换为三个BEV平面来解决基于Transformer的方法的效率问题,显著减少了计算负担,同时有效地预测了空间中所有体素的语义占用。VoxFormer使用2D图像通过深度预测生成3D体素查询建议,然后根据这些建议从2D图像特征中执行可变形的交叉关注查询。之后,它应用掩码自动编码器通过自关注传播信息,并通过上采样网络细化体素以生成语义占用结果。SurroundOcc从多视图和多尺度2D图像特征中执行3D BEV特征查询,向Transformer层添加3D卷积,并逐步对体积特征进行上采样。当产生多级BEV特征时,其3D卷积网络可以将这些特征组合起来,以产生密集的空间占用。

在3D跟踪任务中,大多数现有的方法都依赖于使用空间和外观相似性的启发式策略。然而,它们往往无法有效地对时间信息进行建模。最近基于Trasnformer的模型旨在缓解这一问题。例如,MOTR扩展了DETR模型,并构建了多目标跟踪(MOT)框架。它引入了一种“跟踪查询”来对整个视频中被跟踪的实例进行建模,旨在利用视频序列中的时间变化,隐式学习目标的长期时间变化,从而避免了对显式启发式策略的需要。与依赖于基于运动和基于外观的相似性启发式和后处理技术的传统方法不同,MOTR在不需要轨迹NMS或IoU匹配的情况下处理目标跟踪。MUTR3D通过采用基于空间和外观相似性的跨相机和跨帧目标关联,同时执行检测和跟踪。这种方法利用3D轨迹查询来直接建模目标的3D状态和外观特征随时间的变化以及跨多个相机的变化。在每一帧期间,3D轨迹查询对所有可见相机的特征进行采样,并学会启动、跟踪或终止轨迹。

基于Transformer的方法在3D和一般感知任务方面取得了令人印象深刻的进展,强调了在更复杂和逼真的自动驾驶场景中为更广泛的感知任务开发专门的注意力机制的潜力。

C. 2D和平面任务

与3D任务类别相反,我们将第二个任务类别分类为2D和平面任务,其中模型主要处理车道检测、分割和HD地图生成等任务。

对于车道检测任务,我们进一步将模型分为两组。第一组模型生成BEV特征,然后是CNN语义分割和检测头。例如,BEVSegFormer使用交叉注意力机制来查询多视图2D图像特征。在Transformer之后添加了语义解码器,将查询解码为BEV道路语义分割结果。PersFormer使用CNN提取图像特征,并将其分为两条路径。第一路径连接到基于CNN的2D车道检测头,而第二路径使用逆透视映射(IPM)方法将透视图(PV)视图特征转换为纯电动汽车视图特征,连接到Transformer网络用于纯电动汽车特征查询和增强。第二组模型使用多项式、关键点、向量和多段线等各种表示直接查询和生成道路结构。例如,LSTR用二阶或三阶多项式近似平面单车道道路标线。Transformer查询用于更新多项式的参数,匈牙利匹配损失优化了路径相关的回归损失。LSTR采用了轻量级的Transformer架构,以实现更高效的查询。CurveFormer通过直接从2D图像中生成车道线而无需进行特征视图转换,从而加快了推理速度。它采用了Transformer解码器,使用曲线查询将3D车道检测公式转换为曲线传播问题,并使用曲线交叉点关注模块计算曲线查询与图像特征之间的相似性。

除了车道检测,Transformer架构也用于分割任务。例如,TIiM提出了一种用于瞬时映射的序列到序列模型,该模型将图像和视频转换为开销映射或BEV表示。通过假设图像中的垂直扫描线和俯视图中的射线之间的一一对应,TIiM被认为是一种数据高效和空间感知的方法。Panoptic SegFormer提出了一种结合语义和实例分割的全景分割框架。它提出了监督掩码解码器和查询解耦策略来执行有效的分割。

对于HD地图生成任务,STSU将车道表示为BEV坐标中的有向图,并基于简单多层感知器(MLP)学习贝塞尔控制点和图连通性。它采用了DETR类型的查询方法,将前视图摄像机图像转换为BEV道路结构。VectorMapNet是第一个实现高精度地图端到端矢量化的Transformer网络,使用BEV视图中的稀疏折线基元对几何形状进行建模。它采用了两阶段流水线,包括用于检测粗略关键点的集合预测和用于预测地图元素的下一点的序列生成。MapTR开发了一个在线矢量化高精度地图生成框架,该框架将地图元素建模为具有一组等效包络的点集。它引入了一种分层查询嵌入方案来灵活地对实例级和点级信息进行编码,并学习了地图元素的结构化二分匹配。这些模型已被证明可以有效地将多视图特征合并到统一的BEV视图中,促进端到端的在线高精度地图构建,这对其他下游任务至关重要。

D.预测与决策

除了2D/3D感知任务外,Transformer架构还用于预测、规划和决策等其他任务。此外,最近的研究探索了Transformer在构建整个自动驾驶管道的端到端DNN模型中的应用,旨在将感知、规划和控制统一到一个集成系统中。

对于轨迹或行为预测,标准CNN模型的特征提取存在实际挑战,尤其是其建模长程交互的能力有限。然后开发基于Transformer的模型来解决这个问题。开发VectorNet是为了将这些几何形状(来自道路标记或车辆轨迹)转换为矢量格式输入。它引入了一种层次图神经网络,该网络使用向量表示对HD地图和代理轨迹进行编码,还利用了各个道路组成部分的空间局部性并对其相互作用进行了建模。TNT基于每条轨迹的端点定义了车辆模式,并通过将其转换为端点预测问题来简化轨迹预测。然而,作为一种基于锚点的技术,TNT在预测端点之前需要启发式锚点定义。DenseTNT的开发是为了通过直接预测端点的概率分布来克服这一限制,从而实现无锚预测。mmTransformer提出了一种堆叠的Transformer架构,用一组固定的独立建议在特征级别对多模态进行建模。然后制定了一项基于区域的培训战略,以促使所产生的建议具有多模式性。该策略降低了运动预测的复杂性,同时确保了多模式行为输出。AgentFormer允许一个代理在特定时间的状态直接影响另一个代理的未来状态,从而消除了对单个维度中编码的中间特征的需求。这种方法能够同时学习时间信息和交互关系。它还确保了代理的当前关系通过不同时间的关系来反映,减轻了在传统的Transformer注意力机制中,在输入元素状态相同的情况下通常发生的时间和代理信息的损失。对于更复杂的情况,其中输入包含静态和动态数据(例如,道路几何形状、车道连通性、红绿灯等),标准Transformer对广泛的多维序列建模是具有挑战性的,因为它对自注意和昂贵的位置前馈网络的输入序列长度具有二次依赖性。WayFormer通过分析输入的预融合、后融合和层次融合来缓解这一问题,并保持效率和质量之间的平衡。该方法避免了设计模态特定模块的复杂过程,使模型更容易扩展和扩展。

最后,端到端模型被广泛归类为规划和决策任务,因为端到端任务的最终目标是输出决策信号。在过去几年中出现了一些工作,例如,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米的区域。

总之,最近的Transformer模型被设计为集成各种任务,旨在实现更端到端的结构。预计未来对端到端Transformer模型的研究更有可能迅速发展,重点关注其效率和多功能性。

E.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等不切实际的模拟器平台中的模拟数据,这限制了它在现实世界场景和实际实现中的适用性。

aa1ed97110033dca2426f8ac7bd480eb.png

Transformer结构、算子和硬件加速

本节重点介绍Transformer组件、操作员和硬件加速分析。我们首先分析编码器-解码器结构,强调其在处理输入数据和生成输出预测中的作用。讨论了关键组件,包括层归一化、矩阵乘法和softmax。然后,我们探索了提高Transformer模型计算效率的方法,详细介绍了应用于softmax、层归一化、激活函数和矩阵乘法等运算符的定点算法的硬件加速技术。

A.Encoder-Decoder涉及

尽管Transformer模型在自动驾驶应用中实现了最先进的性能,但其可观的存储和计算开销对便携式或边缘设备上的部署和高效推理提出了挑战。

感知任务的Transformer模型主要利用BEV特征,编码器负责生成这些特征(图4(b)和(d))。编码器将BEV特征扩展为长度为Channel的H X W矩阵,用作Transformer中的查询。这些特征是使用相机外部矩阵从多视图相机的2D特征导出的。为了保留2D空间信息,位置嵌入被添加到查询中,然后作为编码器的输入(图4(b))。为了更快地收敛,Encoder迭代以前的BEV特性,并将当前Query作为自关注的输入。此外,车辆的位置姿态信息在前框架和后框架的像素级别上匹配(图4(d))。

8ea1a5286dcd05b520e4a043a6d1a82e.png

在感知任务中,CNN头被Transformer块取代,以使用查询生成障碍物的3D边界框,以及2D/3D车道线和局部地图(图4(a)、(c)、(e)、(f))。三维障碍感知任务有两种类型的查询:显式和隐式。显式查询依赖于BEV特征(图4(e)),而隐式查询直接使用多视图相机的2D特征(图四(a))。隐式查询降低了编码器的计算要求。为了进一步减少Transformer上的计算负载,可以在使用CNN架构从相机透视图转换为2D/3D BEV后查询转换后的BEV特征(图4(c))。车道和局部地图任务主要利用BEV特征进行查询,车道和局部图的物理关键点作为查询对象,其特征(xyz,属性)作为向量。与障碍物任务相比,道路信息查询需要对纯电动汽车特征进行更高程度的网格细化;然而,纯电动汽车特征所需的距离范围较低。车辆同时关注周围的道路信息(通常为60米 x 30米)和障碍物(通常为100米 x 100米),以及高速场景中的远处障碍物。由于道路信息是静态的,因此可以使用具有历史信息的前视图摄像机来构建道路信息,而动态障碍物则需要侧面摄像机的参与。因此,Transformer的交叉注意机制可以根据这些要求,针对不同的应用进行灵活设计和优化。

B.不同结构中的算子

在上一节中,分析了Transformer用于感知任务的编码器和解码器的一般框架,其中最复杂的组件是编码器结构(图4(d))。BEVformer中采用的这种结构在空间和时间上分别融合了多视图相机和历史信息,使其成为自动驾驶应用的复杂开源Transformer。我们现在根据运算符分解编码器,以获得详细的模型,供后续硬件加速参考。

在本节中,我们特别比较了算子级别的三种主要架构的层:ResNet、Swin Transformer和BEVFormer的编码器。如图5(a)所示,ResNet具有一个称为瓶颈的基本单元,由包含类似瓶颈网络的多个阶段组成。这些网络包括3x3卷积、1x1卷积、批量归一化(BN)和激活函数(ReLU,校正线性单元),要求适度的计算并行性和芯片内存。在自动驾驶任务中,ResNet通常用于2D相机图像特征提取,作为骨干网络。

83b713aebe4d6d3831d03a11f1c57687.png

图5(b)显示了包含多个阶段单元的Swin Transformer,包括数据重排、层归一化(LN)、矩阵乘法(32x32)、Softmax、全连接(FC)层和激活函数(GELU,高斯误差线性单元)。与ResNet相比,Swin Transformer表现出更大的算子多样性和更大的矩阵乘法维数。Softmax和FC层通常是CNN网络中的最后一层,在每个Swin Transformer阶段都有,因此需要在单元内加速。尽管Swin Transformer可以取代ResNet成为自动驾驶任务中的骨干组件,但由于增益和加速性能之间的权衡,CNN网络在部署的产品中仍然是主流。作为一个基本的Transformer网络,Swin Transformer可作为各种NPU制造商硬件加速的初始参考,实现3 FPS/TOPS或更高的性能水平。

为自动驾驶加速Transformer阶段都有的主要挑战源于编码器和解码器模型,这些模型包含自注意力和交叉注意力模块。交叉注意力将向量从一个空间(PV)转换到另一个空间,比自注意力更复杂。如图7所示,我们以BEVFormer的编码器为另一个例子,它包括时间自注意力、空间交叉注意力、LN和FFN。LN和FFN结构类似于Swin-Transformer,但具有更大的输入和输出特征尺寸,需要更大的计算能力。时间自注意力模块中的可变形注意力采用可学习的注意力像素地址,需要从数据缓存中的相应位置获取数据。这个过程涉及大矩阵乘法(512*128)和对大量矩阵的操作,使其比Swin Transformer的自注意力更复杂。时间自注意力模块使用自注意力机制融合当前和历史BEV特征。空间交叉注意力模块与时间交叉注意力模块有相似之处,但由于大量的数据操作和更大的矩阵乘法维度(512*256),检索多相机和多尺度特征的注意力像素地址变得更加复杂。自动驾驶中感知任务的模型复杂性显著高于Swin Transformer和传统CNN骨干网络,这导致对算子加速和芯片存储的需求增加。

0bf95ee554ccd7a5163e4c274305e054.png

此外,在图6中,我们展示了一个用于在便携式硬件上实现Transformer架构的操作员列表示例。整个过程分为26个特定于操作员的步骤,每个步骤都报告了各种指标,如操作类型、多头数量、重复次数和操作员时间(以微秒为单位)。可以看出,第2-5项(Q、K、V和注意力矩阵计算)、第11项(注意力解决头部矩阵计算),第21项(解决FFN矩阵计算)和第23项(线性矩阵计算)占据了操作计数的大部分。

05a416250efd86b5a1c26dd36ccc1380.png

C.算子加速分析

Transformer架构包含大量矩阵乘法运算符和对应的数据承载运算符、Softmax运算符、激活函数和LN运算符。量化权重和输入可以通过将浮点运算调整为整数、来加快推理。我们已经在一个定点上设计了这些算子的硬件加速。

1)Softmax:Softmax函数在深度学习中被广泛使用,经常出现在输出层。

e2da990a51c44f3ad759f4f372a7f9b1.png

为了防止分母中的多项式求和溢出,需要在硬件加速期间执行数值稳定的处理,我们定义m=max(x)并执行低精度,将底部e替换为2以获得

77db491ca4ea8b9c3378c0c762b18dc6.png

在在线操作过程中,我们专注于并行化和存储优化,并观察到整个过程的时间复杂度为3 O(n),空间复杂度为S(n+1)。该方法需要三个循环并存储N+1个中间结果。为了进一步优化过程,将全局最大值替换为局部最大值,使计算能够在两个循环中完成。这将时间复杂性降低到2 O(n),并减少了中间结果的存储。

2)Layer Normalization:LN与BN的不同之处在于,它跨通道而非批量进行规范化,解决了Transformer模型在通道方向上的大量计算。这种规范化技术有效地缓解了Transformer模型中的梯度消失和解释问题。此外,层归一化涉及除法、平方和平方根等运算,层归一化的替换以及整数Transformer中的注意力完全支持INT8推理。层归一化的原始计算公式为:

222342e794be2616d80e6a35ea6826ee.png abb71cdc917a7d4eed991618a75e6cb0.png e8a09064fb33119a4a70199eea232e82.png

根据量化公式:

3720c0720edf8768cab3ae969d20acf6.png

导出后,层归一化计算公式可以表示为:

34ef319952cf3768f542a70ff209f92f.png

我们评估了两个不同测试数据集(称为案例1和案例2)的性能,并在表III中报告了结果(第4行至第5行)。最大误差百分比主要出现在序列的最小值处。尽管绝对误差值仍然很小,但由于Golden值相对较小,误差百分比似乎更大。孤立地评估层归一化算子表明,使用8位输入可能会带来一些风险。然而,必须全面评估对整个模型的影响,以确定其整体效果。

2ad74b502932cec9bf694a6b47239667.png

3)激活函数:激活函数调节神经网络中神经元之间的信号传输,包括线性(例如,x=f(x))和非线性函数(例如,Sigmoid、Tanh、Relu)。非线性函数对于解决复杂问题是必不可少的,因为单独的线性函数只会产生输入的线性组合。因此,神经网络采用了非线性函数来更有效地建模和处理复杂的非线性问题。本研究开发了各种激活函数的定点表示,如GELU、Relu、Leaky Relu、ELU、SELU、Sigmoid和Tanh。GELU是讨论激活函数的硬件定点设计的一个示例。

GELU的原始计算公式定义为:

ca18d1eb950f5eb9188823491a25fbac.png

类似地,使用逆量化公式,我们可以将GELU计算转换为:

6a356a645c263c06ad3aad7477d5201b.png

按照与Softmax中类似的方式,我们对分母执行低精度替换,将基数e更改为基数2,我们得到:

98a3de54837bfd4f1de566fac5eadafe.png

经过一些推导,我们可以得到GELU的近似公式:

9c0906e128f9d6d6dc7912d158c423e5.png

我们基于近似公式开发了GELU函数的定点实现。测试结果如表III所示(最后三行)。对于16位输入和输出,平均误差低于1%。然而,由于某些值接近零,因此最大误差不适用。当我们将输入更改为8位时,平均误差增加到5%。进一步将输出减少到8位导致大约28%的平均误差,表明输出位宽显著影响了结果的准确性。

4) 矩阵乘法:矩阵乘法构成了Transformer的重要组成部分,占其计算负载的80%以上。我们分析了各种公开可用的感知算法模型,发现了这种高比例。

在Transformer中,乘法累加运算发生在通道方向,每个通道都需要完成。通道长度可达256,因此在设计过程中必须考虑定点计算和溢出问题。我们的电路设计为INT4、INT8和INT16提供了定点运算,使用INT4乘法-累加作为基本单元。通过采用移位运算,我们为INT8使用2个INT4单元,为INT16实现使用4个INT4单位。此外,我们使用2个INT4单元和旁路设计实现了FP8,包括用于乘法累加运算的E4M3和E5M2格式。FP8,一种IEEE浮点格式,已经证明了与16位精度相当的训练精度,同时为Transformer和计算机视觉应用提供了显著的加速。中间结果使用FP16/FP32或Int32格式,部分和使用与比例因子组合的浮点格式。

矩阵乘法加速不仅需要定点设计,而且需要精确的量化设计。我们试图通过针对特定数据和模型定制量化设计来解决这个问题,因为它们对应的量化值范围和范围不同。这种方法有助于防止溢出,这种溢出很容易发生,因为乘法累加运算的维数很大。

5)章节总结:采用了各种优化技术来改进基于Transformer的模型。数据重组运算符,如重新整形、置换、拆分、连接和转置,用于处理不规则数据,依赖片上存储器进行中间结果存储。软件编译器优化,包括运算符合并和运算符映射,被用来优化这些运算符。模型量化是加速模型推理的关键技术,它用整数多项式逼近方法或函数逼近方法取代了Transformer网络中的非线性算子。对于矩阵乘法加速,还考虑了替代量化方法,如指数量化。模型结构的改进,如使用有效的注意力机制或轻量级结构,有助于进一步优化。

还研究了模型压缩方法,如裁剪和知识蒸馏。裁剪涉及从训练有素的模型中删除不重要的参数或连接,各种方法侧重于多头自注意(MHSA)、通道、令牌或整体Transformer结构。知识蒸馏将知识从大的教师模型转移到小的学生模型。将模型量化与知识蒸馏相结合,减少了内存开销,提高了性能。视觉Transformer蒸馏技术检查了特征图和注意力,特征图蒸馏将地图划分为补丁,并使用额外的蒸馏令牌进行注意力蒸馏以进行知识转移。

对Transformer硬件加速的研究主要集中在NLP模型(如BERT)和视觉Transformer模型(如ViT)上。2022年,Transformer在自动驾驶领域的应用迅速发展,这导致人们对其实施的兴趣增加。然而,自动驾驶Transformer算法的硬件加速仍处于起步阶段。NPU制造商现有的基准测试揭示了Swin Transformer和Vision Transformer算法的加速性能,但关于DETR3D、PETR和BEVFormer等较新算法的加速公开信息有限。随着Transformer在自动驾驶领域的不断发展,主要的NPU制造商和研究机构正在积极探索这些算法的加速技术,旨在将其部署在量产车中。在这项工作中,我们剖析了典型的自动驾驶模型,并为结果运算符开发了定点实现。

挑战和未来趋势

基于Transformer的深度学习方法已显示出改进自动驾驶系统的潜力,但它们面临着收集高质量训练数据、确保安全和提供可解释性等挑战。多模态融合和可解释性是该领域的发展趋势,而感知和预测任务已经成功地使用基于Transformer的模型完全完成。前景包括优化实时处理和开发端到端学习模型。然而,应对挑战并利用趋势和前景需要持续的研究努力。

Transformer模型已经从最初用于3D障碍感知任务发展到各种感知任务。自动驾驶的未来需要更大的系统安全性和确定性,单模态视觉感知在边际增益方面已经达到饱和。多模式融合需要提高边际增益,这对于高水平的自动驾驶至关重要。为了满足这一需求,未来可能会生成具有4D时空输入/输出的更大尺寸、多模态和多任务的Transformer模型。这对模型训练和加速提出了新的挑战,需要在算法设计、硬件架构和系统集成方面取得进展。

自动驾驶中的跟踪、规划和决策任务也开始从传统的DNN模型转变为基于Transformer的模型。考虑到Transformer模型日益复杂,这可能需要更好的硬件加速方案来提高硬件部署中的模型推理效率。一种很有前途的方法是将多个级别和类型的Transformer模型级联到一个端到端系统中。然而,这在加速整个系列模型方面提出了挑战,因为每个模型可能都有独特的硬件需求。在基于感知的模型中,主要输入是图像或雷达数据,这些数据通过CNN进行处理以提取特征。然后将这些特征输入到BEV Transformer模型中,用于BEV的障碍物和静态地面标记检测。BEV感知结果与高精度地图相结合,被进一步编码为网格格式,并输入到类似NLP的Transformer模型中,以完成预测和规划任务。

除了基本模型的激活函数、LN、Softmax和大矩阵乘法加速度外,自动驾驶任务中的Transformer模型还有一个特殊的可变形注意力算子。其可学习的位置参数会导致与每个查询相关的数据出现一些不规则性,这增加了图像数据硬件上的缓存压力,并使并行加速变得困难。除了优化软件编译器调度之外,还需要为此类模型专门设计硬件。Transformer模型的混合精度量化是加速模型的一项重要任务,它直接影响计算能力和存储,是未来的主要研究方向之一。高bit量化确保了高精度,但需要更大的内存使用量和计算资源,而低bit量化提供了较低的精度,但减少了内存和计算需求。固定比特量化无法实现精度和计算能力之间的细粒度权衡,因此必须使用混合精度量化(MPQ)进行有效的模型压缩。MPQ采用了各种量化位宽,包括8位、16位、32位,甚至4位和2位。除了成熟的线性量化方法外,还考虑了其他方法,如基于FP8的对数量化,其中基于FP8量化和加速是一个突出的研究领域。

Transformer的注意力机制在将空间序列转换为另一个空间序列方面发挥了优势,因为我们知道矩阵乘法可以将向量从一个空间转换到另一空间,大矩阵可以进行多维空间转换,并且这些矩阵中的参数是可学习的。经过空间转换,信息关系查询变得更加容易。然后,注意力中的网格样本可以从相关像素中收集所需的特征,并且网格样本的位置也是可学习的。矩阵变换和网格采样使Transformer非常适合于需要将多视图数据转换为BEV格式的自动驾驶任务。Transformer模型的参数和计算能力远远超过了CNN网络,使其更适合在大型数据集上推广各种corner case和过拟合。然而,这也增加了模型的复杂性,并需要仔细优化以确保高效性能。因此,有必要为自动驾驶中的Transforme模型开发更好的可解释和可解释技术,因为这些技术对于确保安全和建立对系统的信任至关重要。例如,基于注意力的显著性图可以用于在视觉上突出输入数据中最重要的区域,例如相机或激光雷达输入,该模型用于做出驾驶决策。这将为模型的决策过程提供见解,使工程师和用户能够更好地理解和信任该系统。

结论

本文全面概述了专门为自动驾驶任务定制的基于Transformer的模型。我们研究了用于组织Transformer输入和输出的不同架构,并评估了它们各自的优缺点。深入探讨了Transformer相关算子及其硬件加速分析,并考虑了量化和定点运行时间等关键因素。为任务和算子级别的定点测试提供了基准比较。最后,我们强调了基于Transformer的模型的挑战、趋势和当前前景,并在现实世界应用中长期部署Transformer的背景下讨论了它们的硬件部署和加速问题。

论文

[1] Transformer-based models and hardware acceleration analysis in autonomous driving: A survey

① 全网独家视频课程

BEV感知、毫米波雷达视觉融合、多传感器标定、多传感器融合、3D目标检测、目标跟踪、Occupancy、cuda与TensorRT模型部署、协同感知、语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码免费学习)

bfc54fb2bfbfd7fad7e62c5673c44c57.png 视频官网:www.zdjszx.com

② 国内首个自动驾驶学习社区

近2000人的交流社区,涉及30+自动驾驶技术栈学习路线,想要了解更多自动驾驶感知(2D检测、分割、2D/3D车道线、BEV感知、3D目标检测、Occupancy、多传感器融合、多传感器标定、目标跟踪、光流估计)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频,期待交流!

5b08237e8fdaf3f06a098add1f203e55.png

③【自动驾驶之心】技术交流群

自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、Occupancy、多传感器融合、大模型、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、产品经理、硬件配置、AI求职交流等方向。扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)

ce4bb38c701cbffb5e7cf3b84da26657.jpeg

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值