自動駕駛中基于 Transformer 的模型和硬件加速分析
本文經自動駕駛之心公眾號授權轉載,轉載請聯系出處。
題目:Transformer-based models and hardware acceleration analysis in autonomous driving: A survey
名稱:自動駕駛中基于 Transformer 的模型和硬件加速分析:一項調查
論文:https://arxiv.org/abs/2304.10891
0.摘要
近年來,Transformer架構在各種自動駕駛應用中表現出了良好的性能。另一方面,它在便攜式計算平臺上的專用硬件加速已成為真正自動駕駛汽車實際部署的下一個關鍵步驟。這份調查報告提供了一個全面的概述,基準,并分析了基于Transformer的模型,專門為自動駕駛任務量身定制,如車道檢測,分割,跟蹤,規劃和決策。我們回顧了用于組織Transformer輸入和輸出的不同架構,例如編碼器-解碼器和僅編碼器結構,并探討了它們各自的優點和缺點。此外,考慮到量化和運行時間等關鍵因素,我們深入討論了Transformer相關算子及其硬件加速方案。我們具體說明了卷積神經網絡、Swin -Transformer和Transformer具有4D編碼器的層之間的算子級比較。本文還重點介紹了基于Transformer模型的挑戰、趨勢和當前見解,并在長期自動駕駛應用的背景下解決了其硬件部署和加速問題。
索引術語:Transformer,硬件加速,自動駕駛,深度學習
1.介紹
近年來,自動駕駛已經成為一個快速發展的領域,旨在通過自動化和智能系統輔助人類駕駛員。自動駕駛技術的成功部署有望顯著提高交通系統的安全性和效率。在過去的二十年里,一系列數據驅動技術已經被開發出來用于自動駕駛,從傳統的基于規則的方法[1]、[2]到先進的機器學習方法[3]。傳統的自動駕駛方法主要依靠解析表達式和二進制編碼交通規則的算法來感知環境、規劃軌跡和控制車輛;詳見2010年代早期到中期的綜述文章,例如,城市場景的方法[4],運動規劃和控制[5],[6],以及即時定位及建圖(SLAM)任務[7]。
然而,這些傳統方法在處理復雜的現實場景時經常面臨挑戰,例如動態對象、遮擋和不確定環境。相比之下,深度學習方法[8],特別是深度神經網絡(DNN),在從數據中學習復雜模式和做出預測方面表現出色。例如,卷積神經網絡(CNN)[9]是一種使用卷積層檢測局部空間特征并分層組合以識別復雜模式的DNN,已廣泛應用于自動駕駛應用。在之前的調查中,已經對不同自動駕駛任務的深度學習方法進行了回顧和討論,包括一般性討論[3],[10],[11],[12],[13];使用強化學習的模型[14];目標檢測模型[15]、軌跡與行為預測模型[16]、[17]、多模態融合模型[18]、規劃與決策模型[19]、[20]、[21]、可解釋性人工智能模型[22]、場景生成模型[23]。
最近,Transformer架構[24]在各種自動駕駛任務中比傳統CNN模型表現出了令人印象深刻的性能。因此,人們對在便攜式硬件上部署Transformer模型和開發操作員級加速方案越來越感興趣。本文旨在對基于Transformer的模型的最新研究進行全面深入的概述,特別強調自動駕駛的算子級加速技術。
為了進一步提高基于CNN的方法在自動駕駛中的性能,引入了注意機制[25]。注意機制背后的主要思想是允許模型根據輸入的不同部分與當前上下文的相關性來權衡它們。例如,在序列到序列模型的情況下,注意機制使解碼器能夠在生成目標序列時專注于源序列的特定部分。這種選擇性聚焦使模型能夠比傳統的循環神經網絡更有效地捕獲更長期的依賴關系和關系。如圖1所示,注意力機制可以被描述為一個函數,該函數根據與給定查詢(Q)的兼容性計算一組輸入值(也稱為“值”(V))的加權和。注意機制使用注意評分函數計算每個鍵查詢對的注意分數,然后使用Softmax函數對這些分數進行規范化以產生注意權重。這些權重用于計算值的加權和,這代表了注意力機制的輸出。注意機制通過選擇性地關注相關信息,提高了學習過程的效率和魯棒性。
圖1:左圖描繪了Self-Attention(或縮放點積注意),右圖顯示了包含幾個注意層的Multi-Head-Attention,如圖[24]所示。
Transformer架構[24]最初是基于自然語言處理(NLP)任務的注意機制開發的,但它們模擬長期依賴關系和捕捉全局環境的能力,使它們在自動駕駛的感知任務中具有吸引力。它旨在處理和捕獲輸入數據中的依賴關系,從而消除了對循環或卷積層的需求,從而實現高度并行計算。典型的Transformer由編碼器-解碼器結構組成。編碼器由一堆相同的層組成,每個層包含兩個主要組件:Multi-Head-Attention機制(如圖1所示)和位置編碼前饋神經網絡。Multi-Head-Attention模塊使模型能夠同時權衡輸入序列中不同部分相對于彼此的重要性,從而捕獲長期依賴關系。Transformer架構包含位置編碼,它注入有關輸入元素的相對或絕對位置的信息,因為Attention機制本身并不捕獲位置信息。
因此,Transformer架構的硬件加速成為實現實際自動駕駛場景模型的一個重要領域。人工智能芯片上的硬件加速涉及使用專用處理器或專用硬件單元來比通用CPU或GPU更有效地執行特定操作。另一方面,Transformer算子是Transformer體系結構的基本構建塊,用于執行基本的數學運算,例如矩陣乘法、注意力計算和前饋神經網絡計算。Transformer算子的優化對于充分利用硬件加速器的功能并實現基于Transformer的模型的快速、高效部署和執行至關重要。通過定制這些運算符來利用AI芯片的優勢,如并行性、低精度算法和專門的功能單元,Transformer模型的整體性能可以顯著提高。人工智能加速器通常采用低精度算術、數據壓縮和并行處理等技術來加快計算速度并降低功耗。
本文的其余部分組織如下。第二節介紹了基本的Transformer模型以及不同自動駕駛任務中的各種Transformer變體。第三節介紹了便攜式AI設備中不同的Transformer編碼器-解碼器結構、操作符和硬件加速進展。第四節討論了基于Transformer的深度學習實現的挑戰和趨勢,并給出了結論。
2.Transformer模型和任務
注意機制和Transformer架構的發展歷史可以通過一系列關鍵的發展和里程碑式的論文來追溯,如圖2所示。[25]首先在神經機器翻譯的背景下引入了注意機制,提出了一種源序列和目標序列之間的動態對齊方法。這種方法克服了早期序列到序列模型中固定長度上下文向量的局限性。Luong等人[26]通過提出局部關注和全局關注進一步改進了注意機制,前者關注較小的源序列子集,后者考慮所有源詞進行變長對齊上下文計算。
圖2:一個時間軸圖,說明了Attention機制和Transformer架構研究的歷史和關鍵里程碑。
這條路線的一個里程碑是由Vaswani等人提出的,他們首次引入了Transformer體系結構。這一創新顯著提高了各種NLP任務的性能。隨后,Devlin等人提出了BERT(來自Transformer的雙向編碼器表示),這是一個使用Transformer架構進行雙向表示的預訓練模型。當對下游任務進行微調時,BERT在NLP任務中取得了前所未有的性能。
在另一項研究中,Radford等人提出了GPT(生成預訓練Transformer)模型,該模型采用單向Transformer架構進行語言模型預訓練。在特定任務上對GPT進行微調產生了實質性的性能改進,隨后的迭代(GPT-2、GPT-3和GPT-4)繼續推進最先進的技術。
最近,Dosovitskiy等人用vision Transformer (ViT)模型證明了Transformer架構對計算機視覺任務的適用性。通過將圖像劃分為不重疊的小塊并使用線性嵌入,作者在圖像分類任務中取得了與傳統CNN模型相比具有競爭力的結果。ViT也是后續圖像處理任務中基于transformer的模型的基本架構之一。
2.1 針對圖像處理的基礎模型
作為基于Transformer的圖像處理模型的先驅架構,ViT[29]用self-attention取代了傳統CNN的卷積層。如圖3所示,它將圖像劃分為一系列不重疊的patchs,然后將其輸入Transformer編碼器以學習圖像的表示。Transformer編碼器由幾個自關注層組成,然后是前饋層。自注意機制允許網絡關注圖像中相關的patchs,而忽略無關的patchs。為了使ViT適用于更大的圖像,作者引入了一種混合方法,將卷積層與self-attention層結合起來。卷積層用于降低圖像的空間分辨率,而自關注層用于捕獲patchs之間的遠程依賴關系。
圖3:ViT架構,左圖為圖像分割和位置嵌入過程,右圖為包含多頭關注層的標準編碼器架構,如圖[29]所示。
受ViT的啟發,Swin-Transformer[30]引入了一種新的分層體系結構,將self-attention機制組織成多層次的層次結構,其中每一層由一組不重疊的patch組成。這種方法的動機是觀察到由于self-attention的二次復雜性,視覺Transformer具有有限的可擴展性。Swin-Transformer的主要創新之處在于使用了可移動的窗口,這使得patchs能夠關注相鄰的patchs,同時避免與相鄰的patchs重疊。這減少了計算自關注所需的計算次數,并使體系結構能夠擴展到更大的圖像尺寸。它還引入了一種新的標記化方案,將圖像劃分為固定大小的非重疊patchs,然后在層次結構的每個級別將補丁遞歸分組為更大的“宏patchs”。這種方法有助于保存空間信息,并允許模型捕捉本地和全局背景。許多感知模型使用SwinTransformer作為主干來獲取圖像特征,如BEVFusion[31]、[32]和BEVerse[33]。
在自動駕駛應用中,基于Transformer的架構已被廣泛應用于各種子任務,包括物體檢測、車道檢測和分割、跟蹤和定位、路徑規劃和決策。此外,最近的研究還探索了Transformer在構建自動駕駛端到端深度學習模型中的應用。這些模型利用注意力機制進一步提高其專注于相關信息的能力,并在復雜的真實駕駛場景中有效執行。在本節的其余部分中,我們將根據它們的任務回顧基于Transformer的模型,如表1所示。我們主要將任務分為三類:3D和一般感知任務(包括目標檢測,跟蹤和3D分割);2D和平面任務(包括車道檢測、分割和高清地圖生成);以及其他任務(包括軌跡預測、行為預測和端到端任務)。
表1:各類Transformer在標準nvidia gtx3090 gpu上的基準性能。backbone描述每個模型的主干架構,parameter表示模型參數的大小。Gflops代表每秒千兆浮點運算,fps表示幀數每秒,map表示模型的平均精度。最后一列表示每個模型使用的基準數據集。
2.2 3D通用感知任務
第一類任務是3D和一般感知,包括目標檢測,跟蹤和3D分割任務。這是近年來基于Transformer的模型研究的熱門領域之一。這種類型的任務旨在分割、識別和跟蹤物體,如車輛、行人和環境中的其他元素。在各種基于transformer的模型中,DETR[67]是一個早期的重要模型,它啟發了許多后續作品,盡管它最初是為2D檢測而設計的。
DETR將目標檢測視為使用預生成框的預測問題,并消除了傳統的錨點。采用基于匈牙利算法的二分匹配方法直接預測一對一的目標集。已經提出了變形DETR[68]等變體模型,通過引入變形注意來提高模型的收斂速度并解決查詢歧義問題。在DETR架構的基礎上,DETR3D[34]將Transformer應用于多個攝像機,用于鳥瞰(BEV)空間的3D物體檢測。它首先將點云數據(來自激光雷達)轉換為3D體素表示,然后將其輸入到改進的DETR架構中,該架構使用多尺度特征融合來捕獲全局和局部上下文信息。
FUTR[69]在架構上也與DETR相似,但使用了多傳感器(圖像+激光雷達+雷達)。將多模態輸入融合成BEV特征,然后提升以實現3D BBOX。在FUTR的基礎上,FUTR3D[35]將3D目標檢測擴展到多模態融合。它在結構上與DETR3D類似,但增加了一個模態不可知特征采樣器(maffs),能夠處理各種傳感器配置并融合不同的模態,包括2D相機、3D激光雷達、3D雷達和4D成像雷達。
PETR[36],[37]是另一個最近的發展,使用位置嵌入變換進行多視圖3D物體檢測。將三維坐標位置信息編碼為圖像特征,生成三維位置感知特征。在推理過程中,可以離線生成三維位置坐標,并將其用作額外的輸入位置嵌入。
CrossDTR[38]結合了PETR和DETR3D的優勢,創建了一個橫向視圖和深度引導框架,實現了與其他方法相當的精度,同時由于解碼器層數較少,提供了快速的處理時間。
BEVFormer[39]、[40]采用了不同的方法,采用時空Transfomer架構實現統一的BEV表示,從而在不依賴多模態輸入的情況下提高性能。它結合了空間和時間融合,利用歷史信息來增強性能。BEVFormer利用時間自注意模塊從歷史BEV特征中提取特征,用于運動目標速度估計和遮擋目標檢測,并在垂直方向上擴展空間交叉注意,用于BEV Z方向的柱狀查詢。
相比之下,UVTR[41]側重于利用圖像和LiDAR輸入之間的跨模態交互來增強深度推斷,在沒有高度壓縮的情況下,在BEV中為每個模態生成單獨的體素空間,然后通過知識轉移和模態融合來融合多模態信息。該方法為擴大三維占位研究提供了有希望的方向。
在3D分割任務中,TPVFormer[42]通過將體積轉換為三個BEV平面,解決了基于Transformer的方法的效率問題,大大減少了計算負擔,同時有效地預測空間中所有體素的語義占用。VoxFormer[43]利用2D圖像通過深度預測生成3D體素查詢建議,然后基于這些建議的2D圖像特征的3D體素查詢進行可變形的交叉注意查詢。然后,利用掩碼自編碼器自關注傳播信息,利用上樣本網絡對體素進行細化,生成語義占用結果。
SurroundOcc[44]從多視角和多尺度2D圖像特征中執行了3D BEV特征查詢,并為其添加了3D卷積。Transformer層,并逐步上采樣的體積特征。當生成多級BEV特征時,其三維卷積網絡可以將這些特征組合在一起,生成密集的空間占用。
在三維目標跟蹤任務中,大多數現有方法依賴于利用空間和外觀相似性的啟發式策略。然而,它們往往不能有效地模擬時間信息。最近基于Transformer的模型旨在緩解這個問題。例如,MOTR[45]擴展了DETR模型,構建了一個多目標跟蹤(MOT)框架。它引入了一個“跟蹤查詢”來模擬整個視頻中的跟蹤實例,旨在利用視頻序列中的時間變化,并隱式地學習目標的長期時間變化,避免了對顯式啟發式策略的需要。與依賴基于運動和基于外觀的相似性啟發式和后處理技術的傳統方法不同,MOTR處理對象跟蹤時不需要跟蹤NMS或IoU匹配。
MUTR3D[46]通過基于空間和外觀相似性的跨相機和跨幀目標關聯,同時進行檢測和跟蹤。這種方法利用3D軌跡查詢直接建模對象的3D狀態和外觀特征,隨著時間的推移和跨多個相機。在每一幀中,3D軌跡查詢從所有可見攝像機采樣特征,并學會啟動,跟蹤或終止軌跡。
基于Transformer的方法在3D和一般感知任務中取得了令人印象深刻的進展,強調了在更復雜和現實自治的更廣泛的感知任務中開發專門注意機制的潛力駕駛場景。
2.3 2D和平面任務
與3D任務類別相反,我們將第二個任務類別分類為2D和平面任務,其中模型主要處理車道檢測,分割和高清地圖生成等任務。對于車道檢測任務,我們進一步將模型分為兩組。第一組模型生成BEV特征,然后是CNN語義分割和檢測頭。
例如,BEVSegFormer[47]使用了交叉注意機制來查詢多視圖2D圖像特征。在Transformer之后添加語義解碼器,將查詢解碼為BEV道路語義分割結果。
PersFormer[48]使用CNN提取圖像特征,并將其分成兩條路徑。第一個路徑連接到基于CNN的二維車道檢測頭,第二個路徑使用逆透視映射(IPM)方法將透視圖(PV)視圖特征轉換為BEV視圖特征,連接到Transformer網絡進行BEV特征查詢和增強。第二組模型使用多項式、關鍵點、向量和折線等各種表示直接查詢和生成道路結構。
例如,LSTR[49]用二階或三階多項式逼近平坦的單車道道路標記。使用Transformer查詢更新多項式的參數,匈牙利匹配損失優化了路徑相關的回歸損失。LSTR采用了輕量級的Transformer體系結構,以實現更高效的查詢。
CurveFormer[50]通過直接從2D圖像中生成車道線,而不需要特征視圖變換,加快了推理速度。采用Transformer解碼器,利用曲線查詢將三維車道檢測公式轉化為曲線傳播問題,利用曲線相交關注模塊計算曲線查詢與圖像特征的相似度。
除了車道檢測之外,Transformer架構還用于分割任務。例如,TIiM[51]提供了一個用于瞬時映射的序列到序列模型,該模型將圖像和視頻轉換為開銷映射或BEV表示。通過假設圖像中的垂直掃描線與架空地圖中的射線之間存在一對一的對應關系,TIiM被認為是一種數據高效和空間感知的方法。
Panoptic SegFormer[52]提出了一種結合語義分割和實例分割的Panoptic分割框架。提出了監督掩碼解碼器和查詢解耦策略,實現了有效的分割。
對于高清地圖生成任務,STSU[53]將車道表示為BEV坐標下的有向圖,并基于簡單多層感知器(MLP)學習Bezier控制點和圖連通性。采用DETR型查詢方法將前視攝像頭圖像轉換為BEV道路結構。
VectorMapNet[54]是第一個實現高精度地圖端到端矢量化的Transformer網絡[70],使用BEV視圖中的稀疏折線原語建模幾何形狀。它采用兩階段的流水線,包括集合預測(用于檢測粗糙關鍵點)和序列生成(用于預測映射元素的下一個點)。
MapTR[55]開發了一個用于在線矢量化高精度地圖生成的框架,該框架將地圖元素建模為具有一組等效包絡的點集。引入分層查詢嵌入方案,靈活編碼實例級和點級信息,學習映射元素的結構化二部匹配。
這些模型已被證明可以有效地將多視圖特征合并為統一的BEV視圖,從而促進端到端在線高精度地圖構建,這對其他下游任務至關重要。
2.4 預測和決策
除了2D/3D感知任務外,Transformer架構還用于預測、規劃和決策等其他任務。此外,最近的研究探索了使用Transformer構建整個自動駕駛端到端深度神經網絡模型,旨在將感知、規劃和控制統一到一個集成系統中。對于軌跡或行為預測,標準CNN模型的特征提取存在實際挑戰,特別是其模擬遠程相互作用的能力有限。然后開發基于Transformer的模型來解決這個問題。
VectorNet[56]的開發是為了將這些幾何形狀(從道路標記或車輛軌跡)轉換為矢量格式輸入。它引入了一個分層圖神經網絡,該網絡使用矢量表示對高清地圖和代理軌跡進行編碼,并利用單個道路組件的空間局部性并對其相互作用進行建模。
TNT[78]根據每條軌跡的端點定義車輛模式,將軌跡預測轉化為端點預測問題,簡化了軌跡預測。然而,作為一種基于錨點的技術,TNT在預測端點之前需要啟發式錨點定義。
DenseTNT[57]通過直接預測端點的概率分布來克服這一限制,從而實現無錨點預測。mmTransformer[58]提出了一個堆疊的Transformer架構,通過一組固定的獨立提案在功能級別對多模態進行建模。然后制定了一項基于區域的培訓戰略,以誘導所產生的建議的多模態。該策略在保證多模態行為輸出的同時降低了運動預測的復雜性。
AgentFormer[59]允許代理在特定時間的狀態直接影響另一個代理的未來狀態,消除了在單一維度中編碼的中間特征的需要。這種方法可以同時學習時間信息和交互關系。它還確保代理的當前關系通過不同時間的關系得到反映,從而減輕了在傳統Transformer注意機制中通常在相同輸入元素狀態下發生的時間和代理信息損失。對于更復雜的情況,其中輸入包含靜態和動態數據(例如,道路幾何形狀,車道連接,交通燈等),由于自關注和昂貴的位置前饋網絡對輸入序列長度的二次依賴,標準Transformer對廣泛的多維序列進行建模是具有挑戰性的。
WayFormer[60]通過分析輸入的融合前、融合后和分層融合來緩解這一問題,并在效率和質量之間保持平衡。該方法避免了設計模態特定模塊的復雜過程,使模型更容易擴展和擴展。
最后,端到端模型被廣泛地歸類為規劃和決策任務,因為端到端任務的最終目標是輸出決策信號。過去幾年出現了一些工作,例如,Transferuser[61]使用多個Transformer模塊進行數據處理、中間數據融合和特征圖生成。在整個特征提取器中應用了多個分辨率(64×64, 32×32, 16×16和8×8)的數據融合,從而從圖像和LiDAR BEV流中輸出512維特征向量,然后通過元素求和將其組合在一起。該方法考慮了自駕車前方32米內和兩側16米內的傳感區域,從而包含了一個32m × 32m的BEV網格。網格被劃分為0.125m × 0.125m的塊,得到256 × 256像素的分辨率。
NEAT[62]提出了一種對場景的語義、空間和時間結構進行有效推理的表示。它構建了一個連續函數,將BEV場景坐標中的位置映射到路點和語義,使用中間注意映射迭代壓縮高維二維圖像特征為緊湊的表示。
在Transferuser架構的基礎上,Interuser[63]提出了一種單階段架構來融合來自多模態多視圖傳感器的信息,獲得了更好的性能。該框架通過開發安全控制過濾器來約束Transformer輸出操作,從而增強了端到端模型的安全性。模型的安全敏感輸出包括10個路點路徑,而安全敏感輸出包括交通規則信息和具有7個特征的物體密度圖,如車輛、行人和自行車。些輸出是通過融合多視圖圖像輸入和激光雷達點云數據產生的,該數據覆蓋了自動駕駛汽車前方28米和兩側14米的區域。分析的區域尺寸為20m × 20m,劃分為1m × 1m的網格。除了Camera和LiDAR信號外,MMFN[64]還在端到端任務中使用了矢量化的高清地圖和雷達。探索了高清地圖作為網絡輸入的不同表示形式,并提出了融合四種類型數據的框架。另一項名為STP3的研究[65]提出了一種以自我為中心的對齊積累方案,該方案將2D轉換為3D并對齊目標特征。其預測模塊綜合了時刻t的障礙物信息和時刻tn的障礙物位置信息。
與上述主要為端到端任務設計的作品不同,UniAD[66]提出了一個面向規劃的框架。
本論文認為,以前的作品沒有考慮到規劃所需的某些組件,新的設計可以適當地組織之前的任務,以方便規劃。
2.5 Transformer模型基準
我們在NVIDIA GPU 3090上對主要基于Transformer的模型進行基準測試,考慮輸入大小、運行時間、準確性和數據集等指標。如表2所示,對于使用Nuscenes數據集的3D物體檢測任務[73],由于結構相似,DETR3D和FUTR3D表現出相當的性能。BEVFormer通過生成BEV特征和從這些特征查詢3D對象來優于DETR3D。
PETR和CrossDTR使用CNN網絡將2D特征轉換為3D特征,加速了查詢過程,性能優于DETR3D。與ResNet50相比,ResNet101的更高精度可歸因于其可變形卷積機制和增加的卷積深度,盡管以較慢的運行速度為代價[79]。另一方面,基于transformer的道路要素檢測研究呈現出更大的差異,對于2D車道(TuSimple)、3D車道(OpenLane)和局部地圖(Nuscenes)等任務,存在不同的模型和評估標準。
Lane和local map Transformer查詢比目標檢測更快,因為關鍵點查詢更少,CNN骨干網更小,利用了更淺的層特征。如表底部所示,端到端Transformer是一個新興的研究領域。然而,它主要依賴于CARLA等非現實模擬器平臺中的模擬數據[77],這限制了它在現實場景和實際實現中的適用性。
3.Transformer架構、算子和硬件加速
本節重點介紹Transformer組件、操作符和硬件加速分析。我們首先分析編碼器-解碼器結構,強調其在處理輸入數據和生成輸出預測中的作用。討論了關鍵組件,包括層歸一化,矩陣乘法和softmax。然后,我們探討了提高Transformer模型計算效率的方法,詳細介紹了應用于算子(如softmax、層歸一化、激活函數和矩陣乘法)的定點算法的硬件加速技術。
3.1 編碼器-解碼器設計
盡管Transformer模型在自動駕駛應用中實現了最先進的性能,但它們相當大的存儲和計算開銷對便攜式或邊緣設備的部署和高效推理構成了挑戰。
用于感知任務的Transformer模型主要利用BEV特征,而Encoder負責生成這些特征(圖4(b)和(d))。編碼器將BEV特征擴展成長度為信道的H * W矩陣,作為Transformer中的查詢。這些特征是利用相機外部矩陣從多視圖相機的二維特征中導出的。為了保留二維空間信息,將位置嵌入添加到Query中,然后將其作為Encoder的輸入(圖4(b))。為了更快的收斂,編碼器迭代之前的BEV特征,并將當前查詢作為自關注的輸入。此外,車輛的位置姿態信息在像素級匹配前、后幀(圖4(d))。
在感知任務中,用Transformer塊替換CNN頭部,生成障礙物的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米× 30米),也要關注障礙物(通常為100米× 100米),以及高速行駛時遠處的障礙物。由于道路信息是靜態的,因此可以使用具有歷史信息的前視攝像頭來構建道路信息,而動態障礙物則需要側面攝像頭的參與。因此,Transformer的交叉注意機制可以根據這些需求靈活地設計和優化不同的應用程序。
3.2 不同架構的算子
在上一節中,分析了Transformer用于感知任務的編碼器和解碼器的一般框架,其中最復雜的組件是編碼器結構(圖4(d))。BEVformer采用這種結構,分別在空間和時間上融合多視角相機和歷史信息,使其成為自動駕駛應用的復雜開源Transformer。我們現在根據運算符對編碼器進行拆解,以獲得后續硬件加速參考的詳細模型。
在本節中,我們特別比較了操作員級別的三種主要架構層:ResNet [80], SwinTransformer和BEVFormer的編碼器。如圖5(a)所示,ResNet具有一個稱為瓶頸的基本單元,由包含類似瓶頸網絡的多個階段組成。這些網絡包括3x3卷積,1x1卷積,批歸一化(BN)和激活函數(ReLU,整流線性單元),要求適度的計算并行性和片上存儲器。在自動駕駛任務中,ResNet通常用于2D相機圖像特征提取,作為骨干網絡。
圖5:ResNet和SwinTransformer中的圖層:(a) ResNet基本單元,稱為瓶頸,由1x1和3x3卷積、批歸一化(BN)和ReLU激活函數組成。(b)SwinTransformer的第一階段包括層歸一化、多頭自關注和前饋網絡(FFN)。自注意機制包括矩陣乘法、軟最大化、換位、連接和重塑操作。FFN包括一個全連接層和GELU激活函數。此外,SwinTransformer涉及額外的數據重組操作,如窗口分區和展開,使其結構比ResNet更復雜。
圖5(b)顯示了由多個級單元組成的SwinTransformer,包括數據重排、層歸一化(LN)、矩陣乘法(32x32)、Softmax、完全連接(FC)層和激活函數(GELU,高斯誤差線性單元)。與ResNet相比,SwinTransformer具有更大的運算符多樣性和更大的矩陣乘法維度。在CNN網絡中,Softmax和FC層通常作為最后一層出現在每個SwinTransformer階段,因此需要在單元內加速。雖然SwinTransformer可以取代ResNet作為自動駕駛任務的骨干組件,但由于增益和加速性能之間的權衡,CNN網絡仍然是已部署產品的主流。作為基本的Transformer網絡,Swin-Transformer作為各種NPU制造商硬件加速的初始參考,實現3 FPS/TOPS或更高的性能水平。
加速用于自動駕駛的Transformer的主要挑戰來自包含自注意和交叉注意模塊的編碼器和解碼器模型。
交叉注意是將向量從一個空間(PV)變換到另一個空間(BEV)的過程,它比自注意更為復雜。
如圖7所示,我們以BEVFormer的編碼器為例,它由時間自注意、空間交叉注意、LN和FFN組成。LN和FFN結構類似于SwinTransformer,但具有更大的輸入和輸出特征尺寸,需要更大的計算能力。可變形自注意模塊中的變形注意采用可學習的注意像素地址,需要從數據緩存中的相應位置獲取數據。這個過程涉及大型矩陣乘法(512* 128)和對大量矩陣的操作,使其比SwinTransformer的自我關注更為復雜。
圖7:Transformer4D編碼器結構:BEVformer編碼器結構編碼器層,與SwinTransformer相同,BEVformer編碼器具有層歸一化,FFN。
時間自我注意和空間交叉注意是兩種復雜的注意機制。時間自注意對由前一個BEV特征和當前BEV特征初始化的BEV查詢進行變形注意,并進行自我信息校準。與SwinTransformer不同的是,有一個網格樣本會從相關位置收集特征,這些位置可以從特征和矩陣變換中學習。空間交叉注意將有助于從2D環繞相機特征中查詢BEV特征,并采用可變形注意機制。該查詢是一個多級多攝像機查詢,因此增加了2個模塊,一個是攝像機掩模模塊,它將在BEV空間中生成每個攝像機掩模,一個是多級偏移模塊,它將獲得4級參考點偏移。除了圖層歸一化、激活、Softmax、矩陣乘法,BEVFormre編碼器還有很多數據重組過程,如重塑、分割、連接、排列等。BEVformer的結構比SwinTransformer更復雜,加速也更困難。
時間自關注模塊使用自關注機制融合當前和歷史的BEV特征。空間交叉注意模塊與時間交叉注意模塊有相似之處,但由于數據操作操作較多,矩陣乘法維度較大(512* 256),多相機和多尺度特征的注意力像素地址檢索更為復雜。自動駕駛中感知任務的模型復雜度明顯高于SwinTransformer和傳統CNN骨干網,導致對操作員加速和片上存儲的需求增加。
此外,在圖6中,我們展示了在可移植硬件上實現Transformer體系結構的操作符列表示例。整個過程分為26個操作步驟,每個步驟都有各種指標報告,如操作類型、多頭次數、重復次數和操作時間(以微秒為單位)。可以看到,第2-5項(Q、K、V和注意矩陣計算)、第11項(注意求解頭矩陣計算)、第21項(求解ffn矩陣計算)和第23項(線性矩陣計算)占據了大部分操作計數。
圖6:表格列出了將示例Transformer模型部署到可移植硬件的主要操作符。參數類別:
N表示輸入序列長度,也稱token長度,表示圖像中特征映射的HxW, C表示通道維數,h表示Multi-head被分割成h個head, N encode表示encode重復的次數,N decode表示decode重復的次數。我們將該過程分為26個操作員明智的步驟,并報告指標,包括操作類型,多頭數量,重復計數和操作員時間(微秒)。右邊較小的表顯示了主表的摘要。
3.3 算子加速分析
Transformer架構包含大量的矩陣乘法算子和相應的數據承載算子、Softmax算子、激活函數、LN算子。量化權重和輸入可以通過將浮點運算調優為整數來加快推理速度[81],[82],[83]。我們設計了這些算子的定點硬件加速。
3.3.1 Softmax
Softmax函數在深度學習中應用廣泛,經常出現在輸出層。先前的工作[84],[85],[86]研究了DNN應用中softmax的硬件加速,而一些研究也探索了基于vision transformer的softmax的量化和加速[87],[81]。給定x = [x0;x1;:::;xN 1],標準的softmax激活可以定義為:
為了防止分母中多項式求和溢出,需要在硬件加速時進行數值穩定處理,我們定義m = max(x),并進行低精度處理,將底部的e替換為2,得到:
在在線運行過程中,我們重點關注并行化和存儲優化,觀察到整個過程的時間復雜度為30 (n),空間復雜度為S(n + 1)。該方法需要三個循環并存儲N + 1個中間結果。為了進一步優化過程,將全局最大值替換為局部最大值,使計算分兩次循環完成[87]。這將時間復雜度降低到20 (n),并減少了中間結果的存儲。
在定點測試中,輸入使用帶符號的S6.9和S5.2,而輸出使用無符號的U1.15和U1.7。中間累積結果∑j=0,N-1:2(xj-M),使用U10.10。試驗結果見表三。我們可以看到16位輸入和輸出的精度大約是1%。然而,8位輸入的精度明顯較低,8位輸出導致大量量化誤差。因此,作者建議使用16位量化輸入和輸出,以確保Softmax功能硬件加速的準確性。
3.3.2 層歸一化
層歸一化(LN)[88]、[89]與批歸一化的不同之處在于,它是跨通道而不是批量進行歸一化的,解決了Transformer模型在通道方向上的大量計算。歸一化技術有效地緩解了Transformer模型訓練過程中的梯度消失和爆炸問題。此外,層歸一化涉及除法、平方、平方根等操作,層歸一化的替換以及Integer Transformer中的注意完全支持INT8推理[90]。
層歸一化的原始計算公式[91]為:
根據量化公式:
式中,XQ為量化的定點激活值,S為比例因子,zp為輸入零點。b和y是輸入參數(浮點數)。
推導后,層歸一化計算公式為:
針對給定的公式,設計并測試了一個定點硬件加速器。測試使用8位U8和S7輸入,16位S8:7輸出,以及具有不同量化精度的中間結果。均值采用S8:7,標準差采用U8:6。我們在兩個不同的測試數據集(稱為case1和case2)上評估了性能,并在表iii(第4到第5行)中報告了結果。測試結果顯示S7和U8的輸出結果相當。最大錯誤率主要發生在序列的最小值處。雖然絕對誤差值保持較小,但由于Golden相對較小,誤差百分比顯得較大價值。單獨地評估層規范化操作符表明,使用8位輸入可能會帶來一些風險。但是,必須綜合評估對整個模型的影響,以確定其整體效果。
3.3.3 激活函數
激活函數調節神經網絡中神經元之間的信號傳遞,包括線性函數(如x = f(x))和非線性函數(如Sigmoid, Tanh, Relu)。非線性函數對于解決復雜問題至關重要,因為單獨的線性函數只會產生輸入的線性組合。因此,神經網絡采用非線性函數來更有效地建模和解決復雜的非線性問題。本研究開發了各種激活函數的不動點表示,如GELU[92]、Relu[93]、Leaky Relu[94]、ELU[95]、SELU[96]、Sigmoid[97]和Tanh。GELU作為討論激活函數的硬件定點設計的一個說明性示例。
原GELU計算公式[98]定義為:
同樣,利用逆量化公式,我們可以將GELU的計算轉化為:
按照與Softmax類似的方式,我們對分母執行低精度替換,將以e為底改為以2為底,我們有:經過一些推導,我們可以得到GELU的近似公式:
我們基于近似公式開發了GELU函數的定點實現。我們對實現進行了測試,使用帶簽名的S6:9和S3:4作為輸入,使用帶簽名的S5:10和S3:4作為輸出。
測試結果顯示在表III中(最后三行)。對于16位輸入和輸出,平均誤差低于1%。然而,由于一些值接近于零,最大誤差不適用。
當我們將輸入改為8位時,平均誤差增加到5%。進一步將輸出減小到8位導致平均誤差約為28%,表明輸出位寬度顯著影響結果的準確性。
表3:對Softmax、層歸一化(LN)和GELU操作符采用不同量化的定點,分別采用8位和16位的位寬I/O組合。分析與32位fp32 I/O結果相比的平均誤差和最大誤差。
3.3.4 矩陣乘法
矩陣乘法是Transformer的重要組成部分,占其計算負荷的80%以上。我們分析了各種公開可用的感知算法模型,發現這個比例很高[99]、[100]、[101]、[102]、[103]、[104]、[105]、[106]。
在Transformer中,乘法累加運算發生在通道方向上,每個通道都需要完成。通道長度可以達到256,需要在設計時考慮定點計算和溢出問題。我們的電路設計適用于INT4、INT8和INT16的定點算法,使用INT4乘法累加作為基本單元。通過使用移位操作,我們為INT8使用2個INT4單元,為INT16實現使用4個INT4單元。此外,我們實現FP8,包括E4M3和E5M2格式的乘法累加操作,使用2個INT4單元和旁路設計。FP8是一種IEEE浮點格式,已經證明了與16位精度相當的訓練精度,同時為Transformer和計算機視覺應用提供了顯著的加速。中間結果采用FP16/FP32或Int32格式,部分和使用結合比例因子的Float格式。
矩陣乘法加速不僅需要定點設計,還需要精確的量化設計。為了解決這個問題,我們嘗試將量化設計剪裁為特定的數據和模型,作為它們對應的量化值范圍和范圍不同。這種方法有助于防止溢出,這種溢出很容易由于乘-累加操作的大維度而發生。
3.3.5 章節小結
采用各種優化技術改進基于Transformer的模型。數據重組算子,如重塑、排列、分割、連接和轉置,用于處理不規則數據,依賴于片上存儲器作為中間結果存儲。軟件編譯優化,包括操作符合并和操作符映射,來優化這些操作符。模型量化是加速模型推理的關鍵技術,用整數多項式近似方法或函數近似方法代替Transformer網絡中的非線性算子。替代量化方法,如指數量化,也考慮了矩陣乘法加速。模型結構的改進,如使用有效的注意力機制[107]、[108]或輕量化結構**,有助于進一步優化。
研究了模型壓縮方法,如剪枝和知識蒸餾。修剪涉及從訓練良好的模型中刪除不重要的參數或連接[109],[110],[111],各種方法側重于多頭自注意(MHSA),通道,token或整個Transformer結構[112],[113],[114],[115],[116]。知識蒸餾將知識從大的教師模型轉移到小的學生模型[117],[118],[119]。將模型量化與知識蒸餾相結合可以減少內存開銷,提高性能[120],[121],[122]。VisionTransformer蒸餾技術檢查了特征圖和注意力,其中**特征圖蒸餾將地圖劃分為小塊,并使用用于知識轉移的額外蒸餾令牌進行注意力蒸餾[**123],[124],[122]。
對Transformer硬件加速的研究主要集中在NLP模型,如BERT和視覺Transformer模型,如ViT。Transformer在自動駕駛領域的應用在2022年迅速發展,這導致人們對其實施的興趣增加。然而,用于自動駕駛Transformer模型的硬件加速仍處于起步階段。
NPU制造商的現有基準測試顯示了SwinTransformer和VisionTransformer型號的加速性能,但關于DETR3D、PETR和BEVFormer等最新型號的加速性能的公開信息有限。隨著Transformer車型在自動駕駛領域的持續發展,主要NPU制造商和研究機構正在積極探索這些車型的加速技術,旨在將其部署到量產車輛中。在這項工作中,我們剖析了典型的自動駕駛模型,并為由此產生的操作員開發了定點實現。
4.挑戰和趨勢
基于Transformer的深度學習方法已經顯示出改善自動駕駛系統的潛力,但它們面臨著收集高質量訓練數據、確保安全性和提供可解釋性等挑戰。多模態融合和可解釋性是該領域的發展趨勢,而基于Transformer的模型已經成功地完成了感知和預測任務。前景包括優化實時處理和開發端到端學習模型。然而,應對挑戰和利用趨勢和前景需要持續的研究工作。
Transformer模型從最初的3D障礙物感知任務發展到現在的各種感知任務。未來的自動駕駛需要更高的系統安全性和確定性,單模態視覺感知在邊際增益方面已經達到飽和。為了提高邊際增益,需要多模態融合,這對高級自動駕駛至關重要。為了滿足這一需求,未來可能會產生更大尺寸、多模態、多任務、4D時空輸入輸出的Transformer模型。這對模型訓練和加速提出了新的挑戰,需要在算法設計、硬件架構和系統集成方面取得進展。
自動駕駛中的跟蹤、規劃和決策任務也開始從傳統的DNN模型過渡到基于Transformer的模型。考慮到Transformer模型日益復雜,這可能需要更好的硬件加速方案來提高硬件部署中的模型推理效率。一種有希望的方法是將多個級別和類型的Transformer模型級聯到端到端系統中。然而,這在加速整個系列模型方面提出了一個挑戰,因為每個模型可能有獨特的硬件要求。
在基于感知的模型中,主要輸入是圖像或雷達數據,通過CNN對其進行處理以提取特征。然后將這些特征輸入到BEV感知Transformer模型中,用于從BEV角度檢測障礙物和靜態地面標記。將BEV感知結果與高精度地圖結合,進一步編碼為網格格式,輸入到類似NLP的Transformer模型中,完成預測和規劃任務。
自動駕駛任務中的Transformer模型除了具有基本模型的激活函數、LN、Softmax和大矩陣乘法加速度外,還具有一個特殊的Deformable Attention算子。其可學習的位置參數導致每次查詢相關數據存在一定的不規則性,增加了圖像數據對硬件的緩存壓力,使并行加速變得困難。除了優化軟件編譯器調度外,還需要針對這些模型專門設計硬件。
Transformer模型的混合精度量化是加速模型的重要任務,它直接影響到計算能力和存儲能力,是未來的主要研究方向之一。高比特量化保證了高精度,但需要更多的內存和計算資源,而低比特量化精度較低,但減少了內存和計算需求。
固定位量化無法在精度和計算能力之間實現細粒度的權衡,因此需要使用混合精度量化(MPQ)來實現有效的模型壓縮。MPQ采用了各種量化比特寬度,包括8位、16位、32位,甚至4位和2位。除了成熟的線性量化方法外,還考慮了基于FP8的對數量化等替代方法,其中基于FP8的量化和加速是一個突出的研究領域。
Transformer的注意機制在將一個空間序列轉換為另一個空間序列方面具有優勢,我們知道矩陣乘法可以將一個向量從一個空間變換到另一個空間,大矩陣可以進行多維空間變換,這些矩陣中的參數是可學習的。經過空間變換后,信息關系查詢變得更加容易。
注意中的網格樣本可以從相關像素中收集到需要的特征,并且網格樣本的位置也是可學習的。矩陣變換和網格采樣使Transformer非常適合需要將多視圖數據轉換為BEV格式的自動駕駛任務。Transformer模型的參數和計算能力遠遠超過CNN網絡,可以更好地泛化各種角落案例和對大型數據集的過擬合。然而,這也增加了模型的復雜性,需要仔細優化以確保高效的性能。因此,有必要為自動駕駛中的Transformer模型開發更好的可解釋和可解釋的技術,因為這些對于確保安全性和建立系統信任至關重要。例如,基于注意力的顯著性映射可以用來在視覺上突出顯示輸入數據中最重要的區域,例如攝像頭或激光雷達饋送,模型使用這些數據來做出駕駛決策。這將提供對模型決策過程的洞察,使工程師和用戶更好地理解和信任系統。
5.總結
本文全面概述了專為自動駕駛任務量身定制的基于Transformer的模型。我們研究了用于組織Transformer輸入和輸出的不同架構,并評估了它們各自的優點和缺點。深入探討Transformer相關算子及其硬件加速分析,考慮量化、定點運行等關鍵因素。對任務級和操作員級定點測試進行了基準比較。最后,我們強調了基于Transformer的模型中的挑戰、趨勢和當前見解,并在實際應用程序中長期Transformer部署的背景下討論了它們的硬件部署和加速問題。
原文鏈接:https://mp.weixin.qq.com/s/QIBO0ZYUQkjoARgHj1RYMg