大模型涌現,BEV迎來新挑戰(zhàn)
目前,自動駕駛最主流的傳感器是攝像頭,頭部的一些主機廠也開始把攝像頭作為主傳感器。攝像頭的優(yōu)點在于:
像素大,信息量豐富;
比較常用,成本低廉。
近50年,計算機視覺整體上是step by step的發(fā)展模式。說到這里,不得不提馬爾計算理論(Marr's computational theory),是關于對象識別的計算機視覺理論。該理論指提取從圖像到圖像的一些基本要素,稱之為2.5維要素圖,最后根據2.5維表象形成信息,計算三維模型表征的一種邏輯。這一邏輯到今天依然成立,但是表達方式可能不再是step by step模塊化方式,它更多地使用神經網絡來去替代。在過去,我們在研究計算機視覺的過程中,有使用到行人檢測算法、人臉檢測算法、車輛檢測算法,現在這些都被統(tǒng)籌到了神經網絡算法當中。
深度學習成為主力,神經網絡取代手工代碼
從2012年開始,也就是在NIPS上發(fā)表Convolution Neural Network(卷積神經網絡)論文作為起點,深度學習開始成為計算機視覺的主力算法。這個算法有一個非常典型的特點,在規(guī)范了整個輸入和輸出以后,整個網絡內部是如何抽取這些經驗要素,以及最后如何處理這些經驗要素,組成語義信息輸出,其實是通過前向傳播之后再后向傳播的學習方式,而不是過去人工的方式,這樣大大地簡化了設計工作量,從而可以在更大規(guī)模、更加復雜的任務上得到更好的效果。今天對自動駕駛來說,不僅包括視覺感知,還包括局部定位、對目標長短期的行為預測、自車的規(guī)劃和控制,而這些都可以使用神經網絡完成,我們將其定義為軟件2.0。
和上一代相比,軟件2.0最大的區(qū)別在于,它可以通過神經網絡的設計替代過去通過人工來手寫代碼的方式完成任務。因此這對軟件工程師或者代碼量的要求,從比例上是開始縮減的,但是網絡規(guī)模上不斷增大。對自動駕駛來講,今天大部分的感知,或者稱之為“大感知”、“廣義感知”,都是通過數據來驅動的。除感知以外,定位融合、地圖定位融合、規(guī)劃控制等,也都在從基于規(guī)則、手寫代碼實現的軟件1.0方案,一步步轉向數據驅動。
GPT啟示下的端到端模型訓練
去年至今,發(fā)生了一場新的通用AI革命,即以大規(guī)模訓練模型引領的各種各樣的GPT,形成多種模型。而對于整個GPT模型來說,這跟之前深度學習的訓練方式存在一定的差別,GPT主要是通過海量數據預訓練,加少量數據監(jiān)督學習,然后強化學習,這三階段去完成。那我們把它映射到自動駕駛的這個系統(tǒng)里面,可以看到:
首先通過海量的預訓練,去訓練整個網絡的主干;
完成各個子任務模塊監(jiān)督訓練;
通過模仿,去學習人類駕駛行為;
再加上強化學習,矯正自動駕駛思維模式;
最終形成端到端的自動駕駛訓練方式,形成端到端的模型。
不過訓練是分階段訓練,不是一上來就大規(guī)模訓練。在軟件2.0的驅動下,整個自動駕駛算法的架構也產生了很大的變化,包括感知、定位融合、規(guī)劃控制,分模塊設計。
目前對于使用深度學習形成端到端的過程,行業(yè)已經形成共識:無論是攝像頭還是雷達,地圖或者其他信號包括導航,都可以通過一種編碼的方式Token化,比如卷積神經網絡就可以認為是一種編碼器,不同的傳感器將它編碼成想要的信息。同時,各種控制命令、信號都可以編碼,例如地圖格式的轉換,最后把這些信息形成一個完整的對外輸出的Token,輸出給認知和決策層。模型主要網絡也可以是Transformer類,或者類似的,最后通過decoding層直接生成最終的信號,給到車輛執(zhí)行器。在過去一年,地平線的同事以第一作者的身份,在 CVPR 發(fā)表了一篇文章《基于 Transformer框架實現自動駕駛端到端深度學習算法》,提到的架構如上所述。這樣的架構兼具可解釋性以及最終端到端的效果,在一些公開實驗上,已經看到了很好的潛力和表現。
這篇論文發(fā)表的時候附帶一個范例,有意思的是,雖然在整個訓練過程中沒有顯性地給出紅綠燈或者其他交通規(guī)則形式,但在整個大規(guī)模訓練后,汽車可以根據紅綠燈狀態(tài)啟停,這一過程中信息其實不在訓練數據里,而是數據標注里。
整個大模型其實對場景常識的認知是能夠自動通過預訓練和參考過程學習。大家可能會問這樣的算法架構模型這個規(guī)模有多大?其實,目前整個自動駕駛模型,例如我們常見的這種大語言模型還是小得多,我們整個GPT語言模型想取得不錯的效果,所需的數據訓練量在幾個T級別。但是隨著算力增長,計算效率提升,不斷增大算力,效果還會繼續(xù)提升的。目前來講,整個transformer都是T級起步,10T~20T,最大可能要幾百個T。
未來網絡越來越大,這些都依賴硬件基礎設施。對于云端來說,我們可以通過并行計算集群,實現大規(guī)模算力需求,但在車端,受限于車端面積、散熱功耗等一系列約束條件,可能需要使用單芯片或者雙芯片來實現算力,所以對端上單芯片算力、算效要求其實非常大。而隨著整個大算力需求增長,可以發(fā)現卷積神經網絡和Transformer在架構上最大的區(qū)別還在于帶寬的分配。
相比于卷積神經網絡來說,如果卷積神經網絡常見的帶寬和計算的比通常是1:100到1:1000,而到Transformer這樣的架構,通常計算帶寬的需求和算力的需求比例大概是1:1到1:10。未來架構里,芯片帶寬可能會成為新的核心瓶頸。從征程5到征程6,這兩大芯片都大幅度提高了片上帶寬以及帶寬相比算力的比值,從而能更好地支持BEV加transformer等更大模型的方案。BEV感知方面,這其實是相對于剛剛提到的端到端里第一個能夠落實到量產的計算平臺上的,最重要的一個感知算法。第一,過去我們都是先在2D圖像里做目標的檢測,然后把它通過攝像頭投射到3D里,這種技術的好處是整個計算非常直觀。但整個投影過程都是使用軟件的方式,沒辦法形成端到端。而BEV相比于這個傳統(tǒng)方案最大區(qū)別就是,它可以看到整個狀態(tài),通過一個上帝視角,對全局狀態(tài)有一個更好的感知和預測能力,更有全局意識。
基于BEV多模態(tài)前、中融合比較能夠容易地去融合多模態(tài)的傳感器,不同角度的攝像頭我們都可以通過一個全新網絡來對它進行編碼,然后編碼之后把它投影到BEV視角下的形式。而激光雷達天然就具備3D的視角空間,所以我們可以讓激光雷達通過一些方式在3D空間形成一個特征,然后就比較容易做特征級別的對齊,在特征級拼接形成多模態(tài)。
相似的技術也可以用于超聲波、毫米波,在BEV空間編碼,之后進行加工,最終形成感知結果。這種中融合的方式很容易去做多模態(tài)的傳感器融合,相較于后融合,整個架構更加簡單,易于訓練。
基于征程5的BEV感知
在征程5上,我們已經實現一套基于BEV的時空融合。除了這個空間和多模態(tài)以外,還有時間融合的框架,可以把多個攝像頭、多種傳感器,包括時間融合到整個框架里。這里面又可以分為輸入層,包括不同的傳感器,例如前視、周視、魚眼、激光雷達等。
通過BEV模型對整個圖像進行編碼,投影到BEV的空間,雷達鏈路也是一樣的,之后再通過時空維度轉換,把這些東西集中表達,最后通過一個神經網絡和transformer架構合成,到輸出層直接輸出。輸出包括3D檢測、物體跟蹤狀態(tài)、軌跡,以及車道線目標,車位靜態(tài)障礙物以及占用網絡及整個3D物體,整個端到端的系統(tǒng)可以從感知的目標檢測到預測,再到軌跡到預測,全部都可以輸出。這里面很多是我們實際場景的實驗結果,都是實車測試的:
第一,動靜態(tài)通過BEV生成動靜態(tài)結構,可以把所有的道路的動靜態(tài)要素檢測出來。
第二,通過這種架構,通過transformer不僅生成了道路相關的物理結構和信息,還生成了道路邏輯關系,例如車道之間的關聯信息,車道線之間的關系,這些信息對地圖都是非常有效的。
還有就是對所有目標物都可以預測行為軌跡,這種行為預測方法可以讓我們提前對目標物進行行為預測,對其他車輛行駛路徑可以預判,從而對自車行為進行干預。
另外,算法也可以實現相對復雜場景下的自動駕駛,例如左拐,右拐并線以及匝道口的博弈、匯出和對路邊靜止車輛自動規(guī)避和避讓。
連線互動:BEV對芯片帶來的挑戰(zhàn)
此環(huán)節(jié)包含主持嘉賓周琳、元戎啟行副總裁劉軒、復睿智行CTO 周軼以及直播觀眾與余軼南博士的探討。Q:特斯拉最近公布將在V12版本上推出端到端的技術,像transformer還是有很大容錯率的,自動駕駛對安全性要求很高,基于transformer大模型,我們可以通過哪些途徑提高安全性?A:安全的確是我們在自動駕駛上面臨的一個很大問題,自動駕駛安全可以分為兩個方面:
第一,是功能安全,主要指系統(tǒng)失效問題,包括隨機失效,或者是某些確定性的場景下失效。
行業(yè)對失效推出了很多的應對方式,例如硬件失效、軟件失效以及最近的模型失效可以通過監(jiān)控系統(tǒng)來診斷。如果系統(tǒng)失效,要將失效最小化從而降低風險。
第二,從某種意義上來講,AI是一種不確定的系統(tǒng)或者概率系統(tǒng),跟周邊的環(huán)境有關,
不同場景下失效概率其實很低,我們所要確保的是不同場景失效概率盡可能低。如果某種場景下的失效概率是10的負6次方,甚至到10的負9次方,那從統(tǒng)計上來說,系統(tǒng)是安全的。當然我們仍需要關注這種場景下失效的危險和風險是什么。如果失效后僅僅是需要安全停車,那么風險很小。如果失效后會發(fā)生嚴重的碰撞和事故,那么這種場景需要我們全行業(yè)一起去一步步地解決。失效問題一方面通過理論推導和實驗解決,一方面需要通過實踐去檢驗具體場景下的狀態(tài)。
Q:您剛剛介紹了在征程5上面的方案,地平線芯片目前已經支持了BEV的方案,之前是不支持的。那這個轉變是基于什么樣的契機呢?
A:最重要的一點是芯片算力足夠支撐這樣的算法和計算規(guī)模。BEV算法其實在2015、2016年在學術界已經被提出來了,那時我們的效果和2D效果還是有不少差距的。隨著近幾年芯片算力的提升,端到端系統(tǒng)算力指數級線性增加,有效算力增加。
Q:現在業(yè)內有很多BEV方案,不同方案需要不同的算子,而基于深度學習的方案需要其他算子,那地平線對這些算子是都可以支持還是支持其中一部分?支持的力度和廣度怎么樣?
A:大部分的算子都是支持的,最大的區(qū)別在于架構算力效率。如果整個計算是比較規(guī)整的,那效率很高,如果計算本身的跳變,例如內存里的跳變,這個不規(guī)整性比較強的話,整個計算的效率就低。學術界的算法是多種多樣的,但是產業(yè)界各家產品的BEV架構其實就兩種,這兩種模式算法其實各家做得都差不多,原因是在產品上要追求的不光是普通的實現,還有計算的效果。在這樣的算力下,最大化計算結果是怎樣的,以及幀率的約束,包括像素分辨率的約束,大家基本是趨同的。所以學術圈的算法很熱鬧,產業(yè)界還是殊途同歸的。
Q:無論是transformer、占據網絡、BEV技術還是沒有解決z軸上的一些問題,學術界和工業(yè)界對3D占據網絡還是比較感興趣的,這方面未來的規(guī)劃是怎樣的?
A:我們最近的量產項目已經上了占用網絡、3D感知、預測這些功能,但我們發(fā)現如何使用這些算法是巨大的問題。因為傳統(tǒng)算法,主要是規(guī)控算法如何在規(guī)控層面使用BEV的點列,因為過去像我們L2這樣的系統(tǒng),例如車道都是用三次方程的表達形式,但這種方式在城區(qū)這種場景下是完全不可以的,所以需要退回到最原始的表達方式,也就是點列的方式,但是點列對于規(guī)控需要如何使用呢?這就是一個新問題。
Q:您剛剛講到占用網絡如何使用的問題,那今天不光是每一個格被占用,同時每一個格x、y、z三個方向的速度如何,這些信息需要綜合起來,需要整個規(guī)控系統(tǒng)轉化為數據驅動,或者是優(yōu)化搜索的系統(tǒng),只有這樣才能使用。您剛剛提到規(guī)控是很重要的模塊,那么地平線有沒有針對規(guī)控有更特別的設計和優(yōu)化?
A:從神經網絡的角度來講,我個人認為,大部分的算法尤其是在后端,基本都趨于transformer加Token這種表達方式。其次,我們對transformer架構做了很多工作,例如我們的一篇文章,就有提到其實對整個后端,包括對目標、地圖的編碼以及對軌跡預測、使用,規(guī)控算法的使用來說,全是用一種方法調整去實現的。我們在一兩年前開始做下一代芯片,也是征程5的下一代芯片整個算力規(guī)劃的時候,我們的判斷是,感知未來自芯片算力上的規(guī)模需求可能只占1/3,甚至更少,剩下2/3或者1/3用來做什么,需要做環(huán)境理解。環(huán)境理解不是指感知的環(huán)境,感知部分其實已經把所有的車道線、道路邊緣等全部識別了,那環(huán)境理解最重要的是理解環(huán)境要素之間的關系。例如紅綠燈和十字路口的關系,這些需要感知和大量數據分析推理而來。對道路的表達形式已經開始變成點列,其實無非就是要在這些點位之間表達二階關系。對規(guī)控來說,其實就是要去講清楚自車形式軌跡,軌跡與軌跡之間也是有關聯的。從這個角度來講,其實所有后端的架構都可以被統(tǒng)一。
Q:剛剛聊到芯片算力,那目前地平線的合作伙伴也用了通用的芯片,那么從你們的角度出發(fā),基于征程5的BEV方案,相較于友商的芯片方案,性能上相比怎么樣?
A:這個問題需要深度橫評,因為我剛剛講到算力飆升只是代表了加陣列的數量以及整個計算的主頻,就相當于我有那么多計算單元,但是怎么把它用起來,怎么把計算結果保存,整個流程如何進行其實是很難確定的。而每家芯片這部分的技術都是核心,很難通過理論分析實現,尤其是作為第三方也很難評測。最好的方式就是像手機跑分一樣評測。
Q:我們的目標平臺是征程5,那在我們開發(fā)過程中,怎么保證我們未來轉到征程5不會做太多額外工作?
A:整個芯片來講:
第一,兼容大部分芯片,能夠使用我們的編程接口,能擴大一些自定義;
第二,假設我們今天已經有一個結構,那我們可以通過工具鏈里的工具來適配;
第三點,我們不但能去推動性能上的提升,還能告訴我們網絡設計者整個神經網絡節(jié)點信息,提供改進空間。
如果芯片的實際使用效率很低,這其實是一種巨大的浪費。
Q:在BEV時代,還是需要大量的數據標注,那地平線是如何降低人工標注數據在整個訓練環(huán)節(jié)中的依賴?
A:我們講軟件2.0,講端到端的網絡,包括我們現在講的大規(guī)模訓練,里面最大的挑戰(zhàn)不光來自模型結構本身,其實很大的挑戰(zhàn)來自怎么去準備訓練。過去我們可以在2D空間對圖片做手工標注,很小的一張圖的成本就有好幾千,但我們也可以通過一些大模型去做,我們通過人工的方式做,把成本控制住,做一套完整的自動化工序。目前友商有去下載一些模型,使用公開的數據,呈現的效果很好,但是這些東西放到實際的系統(tǒng)上去應用并不可行,因為里面缺少一套完整的端到端的系統(tǒng)。我們就做了這樣一套系統(tǒng),后續(xù)會命名,這套系統(tǒng)包括大規(guī)模數據標志、自動化標志、大模型的訓練和評測,這樣整個云端系統(tǒng)才能在后臺、在前臺的BBA層真正發(fā)揮作用。
Q:車展上我們公司發(fā)布了基于毫米波雷達加整個視覺的網絡算法,但我們認為這種算法只是解決了空間探測能力問題,但實際在自動駕駛中,像您剛剛說的語音識別,對不同目標行為預測,在自動駕駛中可能比感知更重要一點。那怎樣把網絡跟語音信息在同一個結構里展現出來,然后讓規(guī)控做得更好?是只用傳統(tǒng)網絡做?還是把這兩個結合做?
A:最大的挑戰(zhàn)不在于網絡本身,最大的問題在于數據怎么標注,因為需要做大規(guī)模數據訓練,所以整個數據散度以及規(guī)模都是比較大的。在我看來,今天能把這些事情做好的公司不多。另外還需要大規(guī)模數據采集,采集所有量產車的數據,還需要比較廉價的數據采集方式獲取數據,根據數據去做一些增強,從而生成我們所需的標準。這個過程需要清洗數據,具體的行為方式很像做眾包地圖,但跟眾包地圖不完全一樣,因為需要發(fā)現更多動態(tài)信息、關聯信息,這個過程是需要自動化的。學術界有一些算法可以去做這些事情,這也是我們下一步需要攻克的。
Q:關于地平線征程5甚至征程6芯片,如何對transformer進行硬加速?
A:這方面的網絡結構并不復雜,主要還是用一些傳統(tǒng)的算子,我們本身就是支持的,問題的核心是如何把算子跑到最高。經過我們測試發(fā)現,行業(yè)內典型芯片利用率基本在30%-40%,我們其實在做很多新型架構包括總線、帶寬方面一些優(yōu)化,希望把整個芯片的利用率做到50%以上。這也是我們必須做的。
Q:征程5目前是為理想Pro這個平臺搭建的,如果征程5不含激光雷達,我們是否會去做全場景的BEV方案,如果不使用激光雷達,它可以在哪些場景包括城市,是否可以開高階輔助駕駛。也就是說,不搭載激光雷達的方案能否實現純視覺BEV?
A:在我們的芯片上開發(fā)BEV算法其實與激光雷達無直接關系。剛剛講過,BEV這個架構可以支持多模態(tài),有無激光雷達皆可。有激光雷達的好處在于對于整個的方案準確度,尤其是近距離的準確度會更好,對于目標的距離角度的準確性、穩(wěn)定性會更好。激光雷達也有它的缺點,例如惡劣天氣,因為它是主動光,存在反射的問題。從認知上來講,第一基于BEV架構才有可能做城市NOA,高速NOA也可以拿來加強,但短期性能提升不明顯,長期是有幫助的。高速NOA也是可以用BEV做保持系統(tǒng)。征程5系統(tǒng)第一個量產項目里還未使用,但第二個會全部更新BEV架構,合作也會全部升級這個系統(tǒng)。BEV也可以優(yōu)化高速上一些方案,提升效率。
講述 | 余軼南
編輯 | Amy