當前位置:外匯行情大全網 - 外匯開戶 - 基於Journey 5的變壓器定量配置實踐與體會

基於Journey 5的變壓器定量配置實踐與體會

3月28日,智東西公開課舉辦的“自動駕駛新青年講座”第16期講座圓滿結束。本次講座中,地平線工具鏈核心開發者楊誌剛以“基於征途5的變壓器量化部署實踐與經驗”為主題進行了現場講座。

楊誌剛首先介紹了Transformer的發展趨勢及其在嵌入式智能芯片上的部署,然後以Journey 5為例重點介紹了嵌入式智能芯片的算法開發過程,並以SwinT為例對量化精度提升和部署性能優化做了詳細解讀。最後,他分析了如何在Journey 5上又快又好地部署Transformer模型。

本講座分為講座和問答;壹個兩個鏈接,以下是對演講者的評論:

大家好,我叫楊誌剛,在地平線主要負責天宮吳凱工具鏈的開發,比如征途2、征途3、征途5上壹系列量化工具和算法工具的開發和驗證。因此,我們與公司內部的算法團隊和編譯器團隊進行了深入的接觸。

今天我分享的話題是“基於征途5的Transformer量化部署的實踐與體會”,接下來我將從量化和部署兩個方面來分析如何讓Swin-Transformer在征途5上又快又好的運行。

以下是本次講座的主要內容,分為四個部分:

1和變壓器的發展趨勢及其在嵌入式智能芯片上的部署

2.以Journey 5為例的嵌入式智能芯片的算法開發過程。

3.以SwinT為例,提高量化精度,優化部署性能。

4.如何在征途5上又快又好的部署變形金剛模型?

01

變壓器發展趨勢

以及在嵌入式智能芯片上部署的問題。

第壹部分是變壓器的發展趨勢及其在嵌入式智能芯片上的部署。最近變形金剛勢不可擋的趨勢我估計大家都知道了,它在NLP領域甚至圖像領域真的起到了不可替代的作用。例如,自2017提出Transformer以來,Transformer的模型結構由於其優越的序列建模和全局建模能力,實際上在整個智能模型結構中發揮著越來越重要的作用。

壹方面引領了壹個大模型的趨勢(當然這個趨勢主要是指NLP領域)。比如最近流行的基於變壓器的模型如伯特和GPT,實際上已經在NLP領域做了壹些根本性的改變,GPT等模型的參數從1億到1000億不等。我們可以看到變壓器的容量和型號的發展趨勢都在向越來越大的方向發展。當然,成長的前提是我們可以通過更大的模型獲得更高的精度,所以這個數量級基本上已經從十億到了千億、萬億。

另壹方面,Transformer不僅引領了NLP領域大模型的潮流,在圖像領域也發揮著越來越重要的作用。我這裏切的圖(如圖1)主要是主幹上的趨勢圖,也就是分類ImageNet。可以看出,隨著計算量和參數的增加,其精度會越來越高。

事實上,當它列出常見的基本任務(如檢測、分割、跟蹤等常見任務)時。),我們可以看到前幾名基本上都被《變形金剛》的影子籠罩著。所以比如常見的以Swin-Transformer為例的編碼器,以DETR為例的解碼器,還有時序,BEV等。,其中使用了Transformer進行特征融合,無論在圖像領域的哪個階段,我們都可以將Transformer的特征與CNN結合起來,甚至取代CNN的模型結構。無論是取代CNN還是與CNN結合,這兩個發展方向都已經成為視覺領域的通行做法,所以從整體來看,《變形金剛》是當前圖像領域不可回避的模型結構。

其實我在題目裏加了壹個新句子“通向通用人工智能的壹扇門”。當然,這句話我不敢說。我也是在其他壹些資料上看到的。現在基本上認為在特征提取階段,Transformer是通用人工智能的壹個組件,所以也叫門,但這不是我們今天要分享的重點。

Transformer確實在模型結構中扮演著越來越重要的角色,但另壹方面,它在嵌入式端的部署也會受到越來越多的關註。具體來說,變壓器的尺寸越來越大和嵌入式智能芯片的部署是有區別的。例如,變壓器模型在發展中越來越大,但嵌入式智能芯片因為成本和功耗的限制,在計算能力、帶寬和其他許多功能方面都受到限制,導致當前嵌入式智能芯片的略大或略小的變壓器模型部署存在壹些困難。

這裏我就講三個主要的例子。第壹,由於嵌入式智能芯片受到成本和功耗的限制,其計算能力、帶寬、內存等方面都會受到限制,這直接導致像Transformer這樣的大型號部署會受到限制。因為如果用大型模型部署計算能力較小的平臺,即使不是Transformer或者只是普通的CNN,性能也可能明顯極差,更何況像Transformer這樣的大型模型部署在計算能力較小的平臺上,顯然會有壹些缺陷。

第二個特點是,市場上流行的嵌入式智能芯片通常以低精度的方式處理部署的模型。當然,除了精度低之外,還會有少量具有壹定精度的浮點支持。這個原因和計算能力和帶寬的限制是壹樣的,主要是從成本和功耗方面考慮,所以這直接導致了如果妳想將其部署在嵌入式智能芯片上,那麽這個模型可能要進行壹定的量化,但同時量化又不能有壹定的精度損失。否則在精度損失比較大的情況下,這種部署是沒有意義的。

第三點,芯片的發展其實是滯後於算法的。這壹點在我們公司羅老師之前的分享(《地平線博士:如何打造好的自動駕駛AI芯片》)中有詳細的描述。有興趣的可以看看。簡單來說,壹個芯片從設計到正式量產需要很長時間,可能需要2-4年。所以現在市面上流行的嵌入式智能芯片基本都是源於1-2年前甚至更久的設計,而當時設計的嵌入式智能芯片很可能沒有考慮到《變形金剛》的情況,因為當時市面上流行的機型大部分都是基於CNN的,所以這就造成了現在的嵌入式智能芯片大部分對CNN非常友好,但是對《變形金剛》的部署有壹定的差距。今天我們就來討論壹下這個差距從何而來。

我們來詳細拆解壹下剛才提到的問題:Transformer部署過程中會遇到哪些問題?

第壹個是量化。其實現在很多社區論文或者壹些博客都可以看到Transformer的量化。首先,為什麽要量化?我只是簡單說了壹下,是從成本和功耗方面考慮的。如果用int8或者低位量化來部署,其好處是顯而易見的,比如降低功耗,提高運算速度,減少內存和存儲的占用。這裏有壹個數據對比。實際上,Transformer的部署存在壹些常見的問題。如果熟悉量化訓練的話,應該清楚變壓器模型中有大量的非線性函數,比如GeLU和LayerNorm。因此,其激活值的輸出會與高斯分布有較大差異,這直接導致了CNN之前常用的很大壹部分對稱量化方法,可能存在明顯的精度問題。

如果要解決Transformer的量化精度問題,社區有很多共同的經驗。我在這裏舉兩個例子,比如用非對稱量化來處理分布不均勻或者高斯分布差異大的情況,而在某些情況下,妳可能會直接在硬件上使用浮點SoftMax或者LayerNorm,這樣肯定可以解決量化問題,但實際上我們需要和硬件結合,硬件能否支持浮點或者非對稱量化是我們需要考慮的另壹個問題。我們今天要講的征途5的平臺是壹個純int8的嵌入式智能平臺。在純int8的嵌入式智能平臺上部署壹個浮點SoftMax或者LayerNorm顯然是不合理的。甚至在某些情況下,即使是純int8,也可能不支持非對稱量化,所以要想解決變壓器量化不友好的問題,需要結合硬件的特點來考慮。

變壓器模型部署的第二個問題是變壓器需要更高的計算能力。如開頭所述,Transformer是近年來最受關註的神經網絡模型,而Transformer在機器視覺領域最重要、最徹底的應用就是Swin Transformer,而這項工作也獲得了機器視覺領域的最高獎Mar獎。這裏我們以Swin-Transformer為例。我們考慮最小的模型Swin-Transformer,其計算量約為4.5G。

很多人可能沒有直觀的概念去說4.5G我做了兩個簡單的對比,大概相當於我們常見機型中的EfficientNetB 4和ResNet50。說到ResNet50,很多人都有壹個概念。如果以ResNet50的水平來部署,其實市面上很多計算能力稍低的嵌入式智能芯片的部署會有點困難。如果有人了解Horizon的歷史,比如上壹代的Horizon芯片可以運行ResNet50,但是效率不是很高,也是CNN的部署效率。如果用於變壓器,效率會進壹步降低。這樣,整個SwinT部署的前提條件就是芯片的計算能力滿足壹定的要求。

除了剛才提到的SwinT的依據,還有壹個更重要的問題:我們壹直在說的Transformer和CNN的模型有什麽區別?為什麽我可以說我的芯片可以部署ResNet50,卻不能部署Transformer?其實這是CNN模型和Transformer模型的壹個重要區別。如果我們熟悉CNN的模型,就會知道CNN基本上從頭到尾只有壹個卷積,或者有幾個反卷積算子,比如RoiAlign。所以整個CNN模型實際上是基於卷積和矩陣乘法的。換句話說,這類算子的特點主要是計算密集型算子。為什麽我們早期的智能芯片並發能力很強?因為智能芯片的設計壹開始就是基於這種CNN模型,其重點是利用並發來解決計算密集型問題。

但是在《變形金剛》中,情況就不壹樣了。在Transformer中,除了我們剛剛談到的卷積和矩陣乘法,還有很多像Elementwise和Reduce這樣的內存密集型運算符。內存訪問密集型操作符和計算密集型操作符會有明顯的區別,會對我的內存訪問帶寬或者內存訪問能力要求比較高,同時會有更多不規則的數據處理。不像CNN,壹個4d張量可以從頭到尾用,我的4d張量的規律可能非常明顯:W/H維會下載,C維會更長。四維張量的這個特性對整個嵌入式智能平臺非常友好。

但是,在Transformer中會有更多不規則的數據處理,比如Swin-Transformer。我們在做窗口劃分和窗口反轉的時候,會有很多刷新和轉置的操作,而這個操作帶來的問題就是效率會進壹步降低。其實這個問題是整個變壓器或者整個芯片行業都會遇到的問題,不僅嵌入式智能芯片會有這樣的問題,訓練芯片也會有類似的問題。

記得幾年前NVIDIA對OPS做了壹個簡單的統計,這個細節我就不說了。總的來說,結論是純粹的計算算子,比如卷積和矩陣乘法,大約占計算量的99.8%,但實際上它在NVIDIA芯片上的執行時間(就訓練芯片而言)只有60%。換句話說,訓練芯片本身有大量的非計算性算子,但這些算子花費了40%的時間。當Transformer部署嵌入式智能芯片時,這個問題會被大大放大。常見的嵌入式智能芯片可能會在內存訪問操作符和不規則數據處理上浪費大量時間。

總結第壹部分,由於成本和功耗的限制,嵌入式智能芯片的設計思路與實際需要部署的變壓器模型存在較大差異。

02

以征途5為例。

嵌入式智能芯片的算法開發流程

第二部分重點介紹了嵌入式智能芯片的發展歷程。雖然這裏以征途5為例,但實際上通過我們目前的研究或者就大多數嵌入式智能芯片而言,開發過程基本相同,所以換句話說,我們要解決的問題基本相似。

首先我簡單說壹下征途5的基本情況,在之前的系列課中有充分的描述。是關於Journey 5是怎麽設計的,然後我就不說智能駕駛平臺有多創新或者有用了。在這裏,我將主要談談這些基本情況如何滿足變壓器部署的先決條件。那麽這也對應了我們剛剛提到的嵌入式智能芯片部署的常見缺陷。

第壹點是大計算平臺。首先,我們要有壹個大的計算平臺作為前提,才能部署Transformer系列機型。如果是少量的計算能力,比如我剛才說的,在《征途3》最後壹代部署《變形金剛》可能會更困難。

第二點是豐富的運營商支持。我們也可以看到為什麽這個在剛才Transformer的結構圖中更重要。CNN模型的主體是卷積,還有少量其他算子,比如RoiAlign。不過Transformer裏其實還有很多雜七雜八的運算符,比如LayerNorm,SoftMax,shape,Transpose等等。因此,在智能芯片中部署Swin-Transformer或其他變壓器的前提條件不僅是計算能力大,還需要非常豐富的操作員知識。

此外,它還是計算性能最強的。我覺得我們的Transformer的部署沒有太大的參考價值,因為它是基於CNN的模型,也就是基於計算密集型的模型,但是Transformer的能力和這個還是有很大差距的。

最後壹點是超低功耗,這個需要多說,因為這也是征途5的亮點之壹。地平線征途5和天宮吳凱工具鏈其實已經積累了壹套比較完整的軟件工具。這個軟件工具從用戶訓練的浮點模型開始,然後進行量化、訓練、編譯、部署、優化等。,最後部署到嵌入式端。以量化為例,基本上整個芯片工具鏈都會提供PTQ的後量化和QAT的量化訓練。在優化編譯階段可以提供Checker、Calibrator、analysis、simulation等工具,最終可以保證用戶的模型經過量化和優化後部署到嵌入式端。這裏有必要說壹下,早期整個工具鏈的積累,其實都是基於CNN模型的。後面我還會講,為什麽基於CNN模型積累的整個芯片工具鏈,在處理變壓器模型時,無論是定量還是最優部署,都存在壹定的缺陷。

以下是如何利用整個天工吳凱工具鏈幫助用戶快速部署浮點模型到嵌入式芯片。這是我壹開始說的。芯片工具鏈和嵌入式智能芯片的部署流程已經變得相同。整體來說,從算法遷移的代價足夠小的角度考慮,基本上是壹個標準流程。那麽我們來看看這個過程,從浮點訓練開始,經過PTQ後量化校準,如果後量化精度滿足要求,就可以直接編譯優化,最後部署;如果不符合要求,可以依次做量化感知訓練。量化感知訓練的目的是使精度達到要求,最終定義模型。所以如果要處理變壓器調配優化這個過程,需要處理的兩個關鍵點是定量優化和編制優化,主要是利用定量公式來提高定量的準確性。第二是在編譯期間手動或自動獲得更好的部署性能。

天工吳凱工具鏈首次在征途5上部署了Swin-Transformer。其實並沒有遇到太多的困難。當然,我剛才講的是這個前提。壹是計算能力大,二是運營商知識豐富。我們在Journey 5上的部署過程相對簡單。下面簡單說壹下支持哪些運算符。其實了解Swin-Transformer的人應該都知道,比如shape,roll,LayerNorm,matmul等等。為什麽您需要全面的運營商支持?我們第壹次做這個東西的時候,發現ONNX opset並不完全支持roll,所以在測試其他品牌Swin-Transformer的結果時,需要單獨處理roll。最近我們發現在opset上已經支持了roll,但另壹方面也說明了壹些嵌入式智能芯片平臺完全支持運營商是有壹定門檻的,無論是由於使用工具的限制,還是最後部署的芯片。

& ltP class="ql-al本文來自車易作者,版權歸作者所有。如以任何形式轉載,請聯系作者。內容僅代表作者觀點,與車改無關。

  • 上一篇:現在黃金好做嗎?
  • 下一篇:建設銀行美金入賬預處理時間
  • copyright 2024外匯行情大全網