自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

大模型真能解決一切嗎?關(guān)于知識驅(qū)動自動駕駛的一些思考

人工智能 智能汽車
今年是自動駕駛非常卷的一年。無論是工業(yè)界還是學(xué)術(shù)界,都不斷有新技術(shù)新發(fā)現(xiàn)新思想「涌現(xiàn)」出來。

本文經(jīng)自動駕駛之心公眾號授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請聯(lián)系出處。

上個星期受邀在外面做了一次關(guān)于「知識驅(qū)動自動駕駛」的講座,剛好借這個機(jī)會把之前我和團(tuán)隊(duì)的一些學(xué)術(shù)上的思考整理凝練了一下。感覺里面一些內(nèi)容還是挺值得拿出來分享&討論的,所以開這么個帖子把其中一些關(guān)鍵的內(nèi)容分享出來。其一是年底作為一個階段性整理回顧一下我們團(tuán)隊(duì)的一些工作;其二則是能夠以此出發(fā)闡述一下我對自動駕駛未來發(fā)展的一些看法;其三則是希望能從這些內(nèi)容出發(fā),引起一些回歸學(xué)術(shù)本源的討論。那么話不多說,進(jìn)入正題。

注1:因?yàn)檫@個是用Slides改的Post,所以可能內(nèi)容會有些零碎和割裂,大家多多包涵。如果后續(xù)大家感興趣的話我再專門寫一些邏輯鏈更完善的純文章。

今年是自動駕駛非常卷的一年。無論是工業(yè)界還是學(xué)術(shù)界,都不斷有新技術(shù)新發(fā)現(xiàn)新思想「涌現(xiàn)」出來。一方面,關(guān)于自動駕駛的研究正逐漸趨同——無論是之前做感知、決策、規(guī)控的同事,都想拿大模型來試一試;但另一方面,任何新技術(shù)的出現(xiàn)都將意味著格局的重新洗牌,大家又回到了同一起跑線上開始。如果從趨勢上來說,我認(rèn)為2023年自動駕駛包括但不限于以下的一下演進(jìn):

首先,傳統(tǒng)的感知正在向認(rèn)知轉(zhuǎn)變:如同深度學(xué)習(xí)時代的CV領(lǐng)域早期,以圖像分類、目標(biāo)檢測、語義分割等任務(wù)為主。其本質(zhì)是通過下游任務(wù)來(我最近很認(rèn)同的一句話:評價方式引導(dǎo)發(fā)展方向。)來讓整個系統(tǒng)具備「智能」的表現(xiàn)。然而,能夠很好完成這些視覺任務(wù)的模型,真的是「智能」的模型嗎?從行為主義上來說,大量工作確實(shí)能夠很好地完成這些任務(wù),甚至其性能可以達(dá)到甚至超過人類水平,體現(xiàn)出了智能的行為。但諸如一些對抗攻擊在內(nèi)的工作讓我們發(fā)現(xiàn):原來這些SOTA在對抗樣本面前是如此的不堪一擊,這里真正意義上的「人工智能」還很遙遠(yuǎn)。于是在2010年前后,CV界逐漸有一波熱潮開始探索「認(rèn)知」,包括一些更加神奇的任務(wù)、以及引入了文本等其他模態(tài)的數(shù)據(jù),來完成Image Captioning,Grounding,VQA甚至是Scene Graph這種復(fù)雜結(jié)構(gòu)支持下的復(fù)雜任務(wù)。還記得好像是16年左右,有些好事者分析過當(dāng)時的頂會標(biāo)題,如果帶著「semantic」這個詞,中稿幾率大大提升??梢妼W(xué)術(shù)界對于「認(rèn)知」、「語義」、「理解」、「知識」等等這些概念的追捧。而現(xiàn)在,我深刻感覺到自動駕駛也在經(jīng)歷這個類似的時刻。前兩年自動駕駛感知方向,大家關(guān)注的還都是檢測、分割之類的經(jīng)典任務(wù)。而近期大家的關(guān)注點(diǎn)開始向更加「Fancy」的方向傾斜,例如大家開始注意到自動駕駛場景的描述(Captioning)、問答(VQA)等與「理解」密不可分的任務(wù)。

第二,大家期待的端到端自動駕駛,正在以一種知識驅(qū)動的方式到來:我個人認(rèn)為,端到端自動駕駛還是可以再細(xì)分為兩種。一種是如2023年CVPR Best Paper之一的UniAD一樣,由多個模塊的級聯(lián)實(shí)現(xiàn)。其整體構(gòu)型屬于一種能夠損失傳導(dǎo)的Multi-Task Learning:通過將多個模塊級聯(lián)+每個模塊的損失作為約束,使得各個模塊在訓(xùn)練過程中朝著「整體最優(yōu)」的方向進(jìn)行,有更大的可能在整體優(yōu)化過程中找到端到端的流形空間。另一類則是完全端到端,從訓(xùn)練端即實(shí)現(xiàn)data-in、policy(control)-out。這個過程和人類駕駛行為相似:以眼睛作為視覺輸入信號,直接作用在方向盤和剎車油們踏板上。但這種端到端最大的挑戰(zhàn)在于如何實(shí)現(xiàn)持續(xù)學(xué)習(xí)?這種直接端到端變相地擴(kuò)大了模型的搜索空間,需要用更多的數(shù)據(jù)、更大的模型、更強(qiáng)的算力才能防止系統(tǒng)過擬合在特定的場景中。

第三,大模型的出現(xiàn)為自動駕駛打開了更多的研究機(jī)會。尤其是大模型在海量開放領(lǐng)域數(shù)據(jù)訓(xùn)練所獲得的通用感知能力具備很強(qiáng)的泛化性,甚至具有解決自動駕駛場景各種Corner Case的能力。現(xiàn)在逐漸有一種聲音(以工業(yè)界為主),就是很多人認(rèn)為大模型將會是實(shí)現(xiàn)端到端的一種可能。但我感覺不能簡單地將大模型與端到端劃等號,甚至大模型到底能否被用來進(jìn)行自動駕駛,也是一個需要考慮的問題。但大模型真的能解決一切問題嗎?有朝一日我們能否見到由大模型控制的自動駕駛系統(tǒng)?我其實(shí)是比較悲觀的,因?yàn)榇竽P痛嬖谔嗵鄦栴}了。與其期待教會大模型直接開車,還不如多關(guān)注一下大模型在AI Agent和具身智能方面的進(jìn)展。

我和我的團(tuán)隊(duì)目前所研究的方向我們管他叫「知識驅(qū)動自動駕駛」,這也是這篇文章主要的話題:重新思考自動駕駛——從知識驅(qū)動到數(shù)據(jù)驅(qū)動。

首先介紹一下背景,現(xiàn)在的自動駕駛系統(tǒng)仍然存在諸多挑戰(zhàn)。

圖片

比如長尾難例問題一直困擾著高階自動駕駛在開放場景的應(yīng)用。

例如,如左圖所示,當(dāng)我們從零構(gòu)建一個自動駕駛系統(tǒng)的感知模塊。冷啟動的算法期初無法分辨工程車輛。但識別到樁桶,可能會讓自動駕駛系統(tǒng)誤以為在修路。最終,錯誤的感知做出錯誤的決策。

為了解決長尾難例,我們可以增加數(shù)據(jù)采集的覆蓋性。例如通過采集更多的工程車輛并標(biāo)注成車來提高車輛樣本的數(shù)量。隨著數(shù)據(jù)的增加,我們可能確實(shí)能夠handle這種裝滿交通錐的工程車輛的識別問題。但如果樣本是右邊這張圖呢?總會有無窮無盡的corner case的出現(xiàn),甚至很多corner case在直到發(fā)生之前,我們都難以想象的。

圖片

這張圖來源于ISO 21448 SOTIF關(guān)于自動駕駛預(yù)期功能安全的標(biāo)準(zhǔn)。橫軸分為安全、不安全;縱軸分為已知、未知。

對于Safe-known的綠色區(qū)域,是算法能夠解決的問題。而Unsafe是指我們算法仍然無法解決的問題。我們希望調(diào)整算法,通過更好的學(xué)習(xí),來讓很多Unsafe的場景變得Safe。另一方面,為了壓縮Unknown的區(qū)域,我們可以通過進(jìn)行更多的路測來提高數(shù)據(jù)覆蓋度。但「提高覆蓋度」這件事是有邊際效應(yīng)的,在沒有外部知識參與的情況下,我們總會有無窮無盡的Out-of-distribution的場景,也就是一些偶發(fā)的Corner Case,導(dǎo)致整個系統(tǒng)的失效。

而自動駕駛不同于其他很多領(lǐng)域,是存在木桶效應(yīng)的。所以如何解決這些甚至在設(shè)計(jì)算法時都未曾考慮到的場景將會是至關(guān)重要的。例如如果一個目標(biāo)檢測系統(tǒng)從設(shè)計(jì)上只考慮了人、車、非機(jī)動車。那他可能就無法區(qū)分地上的樁桶和塑料袋。所以后來出現(xiàn)的一些針對開放詞表目標(biāo)檢測的研究,或者像Tesla針對Occupancy的研究,都試圖想從感知問題的定義上,讓他有足夠大的解空間,才能覆蓋盡可能多的解。

圖片

我們可以說,現(xiàn)在絕大多數(shù)自動駕駛系統(tǒng),都是基于這樣數(shù)據(jù)驅(qū)動的模式構(gòu)建的。與此也伴生出了像數(shù)據(jù)閉環(huán)等重量級的中間件:就是通過反復(fù)的路測、數(shù)據(jù)采集、數(shù)據(jù)標(biāo)注、模型訓(xùn)練,再進(jìn)行路測,重新采集數(shù)據(jù)訓(xùn)練模型,循環(huán)往復(fù)不斷進(jìn)行。通過將這些流程制度化來降低成本。但從本質(zhì)上仍然未解決問題。

為什么?因?yàn)槌藷o窮無盡的corner case以外,還有很關(guān)鍵的一個因素:現(xiàn)有的很多系統(tǒng)都是基于優(yōu)化的方法。而優(yōu)化就存在一個問題,遺忘災(zāi)難。所有優(yōu)化的本質(zhì)就是當(dāng)我們找不到一個全局最優(yōu)解的情況下,只能妥協(xié)地達(dá)成一個局部最優(yōu)解。這就意味著那些經(jīng)常出現(xiàn)的common case才會主導(dǎo)因素,而偶爾發(fā)生的corner case甚至要被當(dāng)做是異常的離群點(diǎn)忽略掉,從而才能使整個系統(tǒng)處于一個低熵的穩(wěn)定狀態(tài)。反過頭來,如果太關(guān)注corner case,當(dāng)模型capacity不夠大的時候,有可能反而讓common case變得更差。按下葫蘆起了瓢的效果。而這與自動駕駛系統(tǒng)追求安全的事實(shí)是相反的。

圖片

所以我們能夠總結(jié)出數(shù)據(jù)驅(qū)動自動駕駛系統(tǒng)的不可能三角:想要一個又安全又便宜的自動駕駛系統(tǒng),那一定效率不高(例如掃地機(jī)器人?);想要便宜高效,那一定很不安全(橫沖直撞那效率可杠杠的);又安全又高效那一定非常貴。

盡管數(shù)據(jù)驅(qū)動不可以三者兼得,但人類卻能在這三者之間找到平衡。

圖片

所以我們需要分析為什么人類這么厲害?

2022年LeCun在他的一項(xiàng)關(guān)于通用人工智能的工作中開篇即提了這樣兩個問題:1. 為什么一個人類青少年能夠在大約20分鐘的練習(xí)里就可以學(xué)會基本的車輛駕駛技能?2. 而為什么人類能夠在遇到一些之前從來沒見過的場景時仍然能做出正確的反應(yīng)和決策?

其實(shí)這里面的關(guān)鍵因素就在于知識和推理的運(yùn)用。例如上圖里那5張圖很多人都見過:數(shù)據(jù)通過打標(biāo)簽成為信息,而后融會貫通從知識逐漸變成智慧。

如果將自動駕駛系統(tǒng)與之相對應(yīng),我大概認(rèn)為。之前的數(shù)據(jù)驅(qū)動自動駕駛僅僅能運(yùn)用數(shù)據(jù)和信息,難以挖掘信息之間的關(guān)聯(lián)性。因?yàn)殛P(guān)聯(lián)性才決定了是否具備舉一反三的能力。所以我們覺得,現(xiàn)在正是一個好的時機(jī),從知識驅(qū)動自動駕駛的視角出發(fā),探索AD2.0。(當(dāng)然,AD2.0這個概念不是我們提的,是Wayve等一些公司題的)。

圖片

總的來說,現(xiàn)階段我認(rèn)為,自動駕駛的第一性原理是知識。

如何直接和間接地利用好人類的知識,跨域的知識,通用的知識,來處理好各種各樣的問題,來讓自動駕駛系統(tǒng)有更高的泛化性、Robust,是我們團(tuán)隊(duì)一直以來的研究方向,也是這篇文章的主題。

那接下來就介紹一下我認(rèn)為什么是知識驅(qū)動的自動駕駛。

圖片

我們宏觀上可以把自動駕駛系統(tǒng)分成三個大類。

規(guī)則驅(qū)動的方法是由人類通過觀察真實(shí)場景,融入自己的思考之后將其抽象成一些可解釋可執(zhí)行的規(guī)則。這種方法能夠很好地反應(yīng)駕駛場景的本質(zhì)。但由于規(guī)則編寫本身是一件復(fù)雜,互相牽制的事情。完全由人工來進(jìn)行則難以規(guī)?;?/p>

而數(shù)據(jù)驅(qū)動的方法則是試圖建立從輸入到輸出的映射關(guān)系。在這個過程中,通過將駕駛場景轉(zhuǎn)換到壓縮的表征空間來盡可能提取。因?yàn)橛幸粋€說法是壓縮即智能。但這個空間很有可能因?yàn)橄掠稳蝿?wù)的限制,overfit到了任務(wù)空間而不是真正的理解了交通場景。Data-driven更像是一種行為主義(behaviorism),只是體現(xiàn)了智能行為,但并不是真的理解了場景,所以性能存在邊界。

而知識驅(qū)動的自動駕駛首先需要具備場景理解的能力,歸納出通用的一般性規(guī)律,再進(jìn)而推演到真實(shí)的理解空間中。但由于「知識」這個概念就像「智能」一樣很難定義,所以我們只能從行為主義的角度來觀察如何才能實(shí)現(xiàn)知識驅(qū)動自動駕駛。

圖片

我們認(rèn)為,知識驅(qū)動自動駕駛的三個關(guān)鍵特征是:泛化性、可解釋性終身學(xué)習(xí)的能力。

想要實(shí)現(xiàn)知識驅(qū)動自動駕駛并落地,可能需要滿足這三個特征。

首先來說說泛化性

圖片

如前面所述,由于數(shù)據(jù)驅(qū)動的方法在面對out-of-domain問題時難以解決。例如我們很難在任務(wù)設(shè)計(jì)時就考慮路上有飛機(jī)迫降這種極端的cornercase。

圖片

而知識驅(qū)動的方法通過大量在Open Domain數(shù)據(jù)上預(yù)訓(xùn)練所獲得的通用知識,使得我們有可能對out-of-distribution的數(shù)據(jù)進(jìn)行理解。

圖片

泛化性是解決Unknown的關(guān)鍵,能把工程師從處理Corner Case的重復(fù)性勞動中解放的希望。我們用這張圖來解釋一下。上面一排指場景空間,下面一排是駕駛能力的空間。

對于Single Domain的數(shù)據(jù)驅(qū)動方法來說,我們從場景空間中采集數(shù)據(jù)并訓(xùn)練模型,學(xué)會其到駕駛能力空間的映射,同時對該domain產(chǎn)生一些泛化性的外溢,舉個不嚴(yán)謹(jǐn)?shù)睦樱褐挥酶咚俟窋?shù)據(jù)訓(xùn)練的模型,在高架上可能同樣適用。但對于domain外的泛化性還是較弱。例如只用高速數(shù)據(jù)訓(xùn)練的模型,在梧桐區(qū)(上海某個開車停車都很費(fèi)勁的開放街道)就不能用了。

于是大家從數(shù)據(jù)采集的角度入手,增加數(shù)據(jù)覆蓋率,并將各種數(shù)據(jù)混合到一起,形成了Multiple Domain的數(shù)據(jù)。然后得到的模型不但能夠處理各自domain的能力,還具備了一些初步的泛化性。例如收集了晴天、雨天數(shù)據(jù)訓(xùn)練的模型,在陰天可能仍然能用。然而這種數(shù)據(jù)采集也只是解鎖了一些不同的場景,對于非常偶然出現(xiàn)的corner case,仍然不能像人一樣從場景理解的角度出發(fā)來給出正確的分析和解釋。

而第三列表示的是知識驅(qū)動的方法。如果我們有一種方法能夠挖掘到海量不同domain的數(shù)據(jù)內(nèi)在的關(guān)聯(lián),具備一些初步的通用理解能力,那就有可能對偶爾出現(xiàn)的場景如同人類一樣實(shí)現(xiàn)舉一反三。實(shí)現(xiàn)最終的泛化能力。

所以說,泛化性不但是自動駕駛領(lǐng)域研究關(guān)注的重點(diǎn),也會是知識驅(qū)動的一個特性和體現(xiàn)。

圖片圖片圖片

再來說說第二點(diǎn),可解釋性。為什么可解釋性重要?

  1. 首先,它可以作為「理解」和「知識」的佐證:可解釋是智能的充分不必要條件。可以聯(lián)想到圖靈測試。
  2. 第二,一個完全的黑盒只能通過數(shù)據(jù)驅(qū)動來訓(xùn)練,又走回了老路。所以完全端到端,我個人反而是不太相信的。
  3. 第三,對解釋的反思能夠更直接地修正模型:非梯度方法。例如當(dāng)我們讓模型自己反思哪里做錯了,如果能解釋出個所以然來,說明模型具備了很強(qiáng)的能力。
  4. 第四,我們認(rèn)為可解釋性是實(shí)現(xiàn)Life-long Learning的一種顯式的方式和先決條件。

例如我們嘗試?yán)么竽P蛠砻枋鲆幌轮暗膱鼍?,我們發(fā)現(xiàn)一旦操作變得可解釋,那這些決策就會變得可信且合理起來。(這個是比較早的嘗試,當(dāng)時用的LLaMA-Adapter實(shí)現(xiàn)圖片描述,用GPT3.5試試做決策和判斷)

圖片

第三點(diǎn),Life-long Learning。

為什么Life-long Learning非常重要?因?yàn)閺臋C(jī)器人或者具身智能的角度出發(fā),一個Agent的腦中其實(shí)蘊(yùn)含了對真實(shí)環(huán)境的建模。而Life-long Learning的能力決定了這個腦中世界和真實(shí)世界的差異程度。

像是現(xiàn)在的數(shù)據(jù)驅(qū)動方法,由于人工框定的任務(wù)限制了它施展能力的范圍,導(dǎo)致其只能用「管中窺豹」的方式來建模世界,最終只能成為一個井底之蛙,認(rèn)為的世界就和別人讓他看到的世界一樣。

而參考人類的思維方式,經(jīng)驗(yàn)只會隨著年齡不斷積累。新司機(jī)可以通過積累經(jīng)驗(yàn)成為老司機(jī)。并且很多駕駛經(jīng)驗(yàn)并不來源于駕駛本身,而是從很多其他領(lǐng)域持續(xù)學(xué)習(xí)得來經(jīng)驗(yàn)。

而Life-long Learning也是將整個系統(tǒng)落地上車的決定性因素。在這里插一句,我感覺像之前特斯拉展示的End-to-end的一些方法看起來很fancy,但實(shí)操起來會有很多挑戰(zhàn)。最大的挑戰(zhàn)是,在缺乏對中間過程的supervise的情況下,如何對規(guī)模龐大的模型實(shí)現(xiàn)持續(xù)學(xué)習(xí)/終身學(xué)習(xí)?所以可能UniAD這種中間可以插入supervise的方法舉例落地會更現(xiàn)實(shí)一些。(除非World Model真的實(shí)現(xiàn),后面再細(xì)聊

在介紹完知識驅(qū)動自動駕駛基本定義之后,再來聊一下最近出現(xiàn)的LLM是否對知識驅(qū)動自動駕駛能有所幫助。

其實(shí)一直以來我的一個思想是:知識驅(qū)動是第一性原理,但LLM不是。LLM只是在現(xiàn)階段能夠?qū)崿F(xiàn)體現(xiàn)出知識運(yùn)用能力的一種工具,它雖然具備基礎(chǔ)的通用理解能力,但不見得所有事情都要靠LLM。讓LLM開車并不是一個長久的方向。

圖片

首先來統(tǒng)一一下術(shù)語。

我們發(fā)現(xiàn)工業(yè)界引入「大模型」這個概念的時候發(fā)生了大量的術(shù)語混淆。難道「大號的模型」就是大模型嗎?比如像SAM算大模型嗎?BEV算法屬于大模型嗎?甚至一些人在到處講,Transformer就是大模型。

但從學(xué)術(shù)上,LLM其實(shí)是有著明確的指向的。

圖片圖片

(下面這段關(guān)于LLM的整理不是很嚴(yán)謹(jǐn),請批判性閱讀)

并不是用了transformer或者數(shù)據(jù)量大就是LLM,應(yīng)該是采用LLM或者VLM架構(gòu)且在大規(guī)模數(shù)據(jù)上進(jìn)行訓(xùn)練,并且跟隨scaling law出現(xiàn)了涌現(xiàn)的現(xiàn)象,才是我們討論的LLM。

想要解釋清楚LLM發(fā)展的來龍去脈需要比較長的篇幅,也不是本文要講的重點(diǎn)。所以這里就簡要概述一下。

早期的大模型,是在Transformer之后出現(xiàn)的如BERT、ELMo、GPT等在內(nèi)的語言模型。其本質(zhì)就是一個語言模型,用來建模一句話的發(fā)生概率。其訓(xùn)練方式是輸入第1到t-1個token,預(yù)測第t個token應(yīng)該是什么。并且在那個時候利用海量純文本數(shù)據(jù),通過隨機(jī)對一些詞進(jìn)行mask,或者對兩句話交換順序等各種各樣的下游任務(wù),迫使模型能夠更好地理解一句話內(nèi)包含的語義。那個時候是NLP的黃金時代,因?yàn)榇竽P屯ㄟ^海量的數(shù)據(jù)獲得了基本的語言理解能力,使得很多任務(wù)都利用大模型實(shí)現(xiàn)了突破。

而后大模型也面臨一個life-long learning的問題。之前很多大模型還是以研究為主,直到后來出現(xiàn)了一些工作,發(fā)現(xiàn)大模型是可以隨著堆料性能不斷增加的。這就刺激到了工業(yè)界。工業(yè)界就喜歡這種力大磚飛的模式,因?yàn)槊恳环皱X的投入都有可以計(jì)算的預(yù)期收益。然后就掀起了現(xiàn)在大模型研究的熱潮。隨后又出現(xiàn)了In-Cotext Learning, Chain-of-Thought等等各種技術(shù),甚至催生了提示詞工程這個行業(yè)。

時至今日,大模型的范式基本是統(tǒng)一的,首先就一個參數(shù)量巨大的Foundation Model,再利用部分和任務(wù)相關(guān)的數(shù)據(jù)進(jìn)行Instruct-tuning。像ChatGPT就是在GPT這個Foundation Model中用少量高質(zhì)量的對話數(shù)據(jù)對齊的能夠?qū)υ挼哪P?。后面這個過程通常不被稱為是訓(xùn)練而是對齊,我個人感覺可能是因?yàn)椋現(xiàn)oundation Model已經(jīng)具備了很強(qiáng)的能力,而少量的Instruction-tuning只是為了向大模型展示任務(wù)需要,讓大模型的表現(xiàn)對齊到人類預(yù)期的行為之上。

解釋一下大模型的一個有趣的現(xiàn)象,就是可以通過In-context-learning實(shí)現(xiàn)few-shot來完成一些任務(wù)。而我們也可以通過SFT來將這些能力內(nèi)化到大模型內(nèi)部。

近期出現(xiàn)了大量的LLM+AD的工作,這里快速介紹一下,不是本文的重點(diǎn)。

圖片

LanguageMPC利用LLM進(jìn)行了細(xì)粒度的決策,通過將場景結(jié)構(gòu)化成文本送入大模型,來和環(huán)境進(jìn)行交互。通過接了一個具體的行為控制模塊實(shí)現(xiàn)具體的駕駛行為的輸出。其主要是利用了大模型對場景進(jìn)行編碼的能力。

圖片

DriveGPT4則是試圖引入一個帶有視覺的VLM,實(shí)現(xiàn)對輸入視頻的理解,并且能夠根據(jù)prompt完成一些QA任務(wù)。包括生成控制信號等等。

圖片

↑這篇工作則同樣是利用大模型來處理控制的工作。通過將場景向量化表征,并且通過一些數(shù)據(jù)對大模型進(jìn)行了SFT使其變成了能夠輸出控制信號的大模型。

和上面這些LLM+AD的工作區(qū)分開,下面這頁Slides才是我想表達(dá)的重點(diǎn):

圖片

這些LLM+AD的工作真的能解決一切問題嗎?我不認(rèn)為。

我覺得大模型盡管能展現(xiàn)出generalization和interpretability。但仍然存在諸多問題:

  1. 幻覺:因?yàn)長LM的訓(xùn)練方式導(dǎo)致其必然會輸出一些文本。直接影響安全性和正確性。
  2. 響應(yīng)速率低下:影響實(shí)時性,最終導(dǎo)致安全和效率都會受損。
  3. 對齊稅:朝著自動駕駛?cè)蝿?wù)SFT,反而會喪失一部分通用性和泛化性。
  4. 并且SFT成本高,難以通過SFT的方式實(shí)現(xiàn)Life-long Learning。

其實(shí)一直以來我的一個思考是:知識驅(qū)動是第一性原理,但LLM不是。LLM只是在現(xiàn)階段能夠?qū)崿F(xiàn)體現(xiàn)出知識運(yùn)用能力的一種工具,它雖然具備基礎(chǔ)的通用理解能力,但不見得所有事情都要靠LLM。讓LLM開車并不是一個好主意。所以我們需要的是借助LLM的能力,而不是all in在LLM上,讓LLM成為一個萬能的工具。

受到最近一些Multi-agent和Embodied AI研究的啟發(fā),我們認(rèn)為,LLM可以作為一個CPU,利用好它的generalization和interpretability,配合memory實(shí)現(xiàn)life-long learning,結(jié)合外部的專家系統(tǒng)、Retrieval Augmented Generation技術(shù)來解決幻覺問題,共同構(gòu)建成一個Driver Agent。

所以接下來介紹一個我心目中的知識驅(qū)動自動駕駛的架構(gòu)

圖片

讓我們先跳出LLM的制約,從認(rèn)知的角度先來討論一個通用的知識驅(qū)動的框架。它更像是一種Embodied AI的架構(gòu)在AD的應(yīng)用。

上圖展示了一種利用Agent來操作工具、進(jìn)行規(guī)劃,并結(jié)合Memory機(jī)制最終產(chǎn)生Action的架構(gòu)。這個架構(gòu)和人類認(rèn)識世界和做決策的框架是類似的。

更進(jìn)一步,我們認(rèn)為其實(shí)知識驅(qū)動的自動駕駛也可以利用這樣的框架進(jìn)行(如上圖下部分)。其核心是Driver Agent,通過對環(huán)境進(jìn)行Observe,并從Memory中Query一些過往的經(jīng)驗(yàn),最終綜合做出決策,并利用決策的執(zhí)行情況作為修正信號來修正Memory。

圖片

我們再進(jìn)一步將其對應(yīng)到自動駕駛場景中。首先我們利用場景理解系統(tǒng)來進(jìn)行場景表征。并且基于這些表征進(jìn)行決策。在決策過程中將會有過去的經(jīng)驗(yàn)參與。如果決策是正確的,則會將其作為經(jīng)驗(yàn)的一部分積累到記憶模塊中。如果決策發(fā)生了錯誤,則也會要求系統(tǒng)能夠反思錯誤,并將糾正好的正確經(jīng)驗(yàn)重新加回到記憶系統(tǒng)中。整個系統(tǒng)不斷迭代。最終記憶就成為了知識的一種表現(xiàn)。

圖片

在整個系統(tǒng)中,我們可以讓LLM參與到部分工作,但是并不是僅僅依賴LLM,于是我們構(gòu)建了這樣的系統(tǒng)。這篇叫做DiLu: A Knowledge-driven Approach to Autonomous Driving with Large Language Models。(To the best of our knowledge, 這篇應(yīng)該算是非常早期探索LLM+Agent+AD的工作了,還有我們另一篇工作Drive Like A Human可能是第一篇探索大模型是否能和自動駕駛相結(jié)合的工作。)

整個系統(tǒng)包括了Reasoning、Reflection、Memory三個模塊。首先在Memory模塊中保存了一些駕駛經(jīng)驗(yàn)行為。本質(zhì)上是一個向量數(shù)據(jù)庫。其中Key是場景的語義向量化表征(相似場景vector相似,不同場景vector不相似)。而Value則保存了這個場景曾經(jīng)做出的決策,以自然語言文本來描述的。

在推理模塊中,我們首先對環(huán)境進(jìn)行編碼,利用這個編碼從記憶模塊中query相似場景。并將這個信息作為prompt,和當(dāng)前場景一起輸入到大模型中。也就是說,此時大模型既輸入了當(dāng)前場景的描述,又輸入了記憶中相似場景和當(dāng)時所作出的決策作為共同信息,并且最終給出一個決策意見。我們將這個決策轉(zhuǎn)換成Environment的控制信號,控制一個在虛擬環(huán)境中的車輛進(jìn)行駕駛。

在駕駛過程中,我們可以知道這個決策是否正確。如果決策正確,我們會將這里的場景表征向量作為key,決策說明作為value來更新記憶模塊中的經(jīng)驗(yàn)。另一方面,如果決策出錯,例如發(fā)生了碰撞或者其他危險行為,我們會借助大模型進(jìn)行自我反思,并將整個反思過程一起加入到記憶模塊中。

從這里就能看出之前我們提到的三個特性:generalization、interpretability、life-long learning的重要性。首先,泛化能力保證了對各種out-of-domain的場景的通用理解能力。而我們利用可解釋的信息作為記憶系統(tǒng),一方面能夠追溯所有做出的決策,另一方面也能夠用人類能夠理解的方式來完成反思等復(fù)雜的內(nèi)容。另外,也正是因?yàn)榻?jīng)驗(yàn)是以自然語言定義的可解釋的文本,而這些文本常常是放之四海皆準(zhǔn)的信息,不隨domain變化而產(chǎn)生太大的漂移的。而整個經(jīng)驗(yàn)庫是在不斷積累的,從而實(shí)現(xiàn)一個Life-long Learning。

還有就是這篇文章的Reasoning模塊和Reflection模塊,具體細(xì)節(jié)我就不介紹了,可以看看論文。

圖片圖片

這里有一個縮時演示的視頻。我們采用了Highway Env作為仿真環(huán)境,每一步都是由大模型參與進(jìn)行決策并交給仿真器來執(zhí)行的。

圖片這只是張圖片動不了的,視頻請點(diǎn)下面的鏈接

視頻請點(diǎn)擊鏈接:DiLu: A Knowledge-Driven Approach to Autonomous Driving with Large Language Mode_嗶哩嗶哩_bilibili

Slides后面有一些實(shí)驗(yàn)分析,這里我就不具體展開了不然文章篇幅太長了。(寫到現(xiàn)在已經(jīng)快1w字了)。一句話總結(jié)就是我們有這樣幾個發(fā)現(xiàn):

  1. Memory機(jī)制真有用,這種類似于RAG(Retrieval Augmented Generation)的方法能夠在不SFT模型的情況下,實(shí)現(xiàn)Continuous Learning的功能(但Life-long Learning還沒試過,主要是Highway Env太toy了)。
  2. 真有泛化性:我們用Domain A的場景得到的Memory,直接在Domain B中用,發(fā)現(xiàn)
  3. 真有可解釋性:Memory中的key是場景表征向量,value可就是純文本啊。無論決策做對了還是做錯了都是一目了然的,甚至可以reflect來修正記憶。

這里我們展示了反思模塊的一些能力。例如這里進(jìn)行了一個錯誤的決策。

圖片

此時我們讓大模型分別針對碰撞原因、其中的經(jīng)驗(yàn)教訓(xùn)進(jìn)行解釋,并產(chǎn)生一份revised decision。我們會將整個這些文本都作為經(jīng)驗(yàn)保存到記憶模塊中。

圖片圖片

這篇工作作為一個非常初步的工作,其所選擇的環(huán)境、能進(jìn)行的決策空間等等非常有限,屬于一個早期的toy性質(zhì)的研究。所以也留下了很多Open Problems:

  1. 場景理解:Key該如何構(gòu)建?
  2. 記憶該如何表征:顯式地用自然文本?圖像?還是隱式的representation?
  3. 是記答案?還是記「決策過程」?
  4. 進(jìn)一步從人類思考的視角出發(fā),如何與System I(快系統(tǒng))和System II(慢系統(tǒng))相結(jié)合?

另外再提一個我覺得很有意思的工作Agent-Driver([2311.10813] A Language Agent for Autonomous Driving (arxiv.org)),也是采用了Agent而非教大模型開車的模式。不過當(dāng)時做Slides的時候忘記介紹了,后面有機(jī)會再補(bǔ)上。

除了DiLu以外,再介紹一些我們認(rèn)為和Knowledge-driven相關(guān)的工作。其中部分工作也是我們團(tuán)隊(duì)正在進(jìn)行的。

圖片

首先,暢想一下未來,我們認(rèn)為未來的自動駕駛系統(tǒng)有可能發(fā)展成這個樣子。這張圖來自于我們最近的一篇Survey(說是Survey,但其實(shí)也包含了我們很多思考):Towards Knowledge-driven Autonomous Driving。

一方面從真實(shí)世界中提取信息積累常識知識。另一方面利用真實(shí)世界的數(shù)據(jù),構(gòu)建高質(zhì)量的虛擬的仿真引擎。并通過在仿真引擎中積累交互知識。反復(fù)重復(fù)這個過程實(shí)現(xiàn)life-long learning。

圖片

所以這就引發(fā)了三個探索的方向,我們認(rèn)為是目前學(xué)術(shù)界比較火熱的方向(換句話說:很卷的方向):自動駕駛的Foundation Model(完成場景理解、輔助決策)、知識驅(qū)動的Autonomous Driver Agent(Memory機(jī)制、RAG)、高一致性的仿真引擎。

圖片

首先是我們該如何利用Foundation Model?這可能依賴于通用大模型的理解能力,也需要一些利用大模型針對自動駕駛追至領(lǐng)域SFT的探索。

但我覺得大模型在這個環(huán)節(jié)的參與可能體現(xiàn)在場景理解和Decision Making上。因?yàn)檫@些功能充分體現(xiàn)了大模型處理out-of-distribution問題的能力,以及宏觀決策能力。并且由于不是直接將方向盤交給大模型,所以能夠從一定程度上緩解幻覺的問題。

圖片

另一塊我覺得非常有趣且有潛力的方向就是世界模型。

世界模型早在2018年甚至更早就被已提出,其架構(gòu)的本質(zhì)是利用下一幀預(yù)測來讓模型理解整個世界。我覺得世界模型的一個應(yīng)用點(diǎn)在于場景理解:因?yàn)槟苷_預(yù)測出下一幀的樣子,說明中間的vector包含了對整個場景的編碼表征。

圖片

基于世界模型的思路,Wayve提出了GAIA-1,可能是第一個自動駕駛領(lǐng)域的世界模型。

圖片

還有國內(nèi)一家叫做極佳科技和清華大學(xué)合作推出的DriveDreamer。我們跟他們交流比較多,不過目前看來不得不屈服于市場:用World Model來生成數(shù)據(jù)賣。

圖片

DriveDreamer主要是支持多種prompt輸入,包括文本、參考圖像、HDMap和3D Box與對應(yīng)的action。而后由模型在這些信號進(jìn)行控制的情況下輸出未來幀的視頻。

圖片

還有上個月剛公開的ADriver-I則是利用VLM進(jìn)行圖像生成的工作。有種把世界模型和LLM相結(jié)合的感覺。

第二個值得重點(diǎn)關(guān)注的方向就是仿真。

自動駕駛的仿真引擎并不算一個很新的topic。其實(shí)目前也有很多仿真引擎被廣泛應(yīng)用,例如Carla、VTD等等。但這些仿真引擎仍然存在諸多問題。比如傳感器仿真不夠逼真、交通流很多也是基于規(guī)則或者機(jī)理模型,導(dǎo)致難以進(jìn)行端到端的閉環(huán)仿真測試。

所以其實(shí)我們團(tuán)隊(duì)過去兩年中花了大量的精力在構(gòu)建一個高質(zhì)量的端到端閉環(huán)仿真引擎。

圖片

為了獲得高一致性的仿真?zhèn)鞲衅鲾?shù)據(jù),我們采用了神經(jīng)渲染的思路。這種方法能夠用自動化的方法高質(zhì)量地對場景和物體進(jìn)行三維重建。

圖片

我們構(gòu)建了名為OASim的基于神經(jīng)渲染的自動駕駛仿真器(將會在近期開源)。

它能夠進(jìn)行相機(jī)、激光雷達(dá)等在內(nèi)的傳感器仿真。并且由于我們的技術(shù)路線不同于NeRF的體渲染,而是采用了SDF-based的表面渲染,使得我們能夠同時重建好形狀和外觀,甚至可以用來進(jìn)行數(shù)據(jù)生成并幫助感知模型訓(xùn)練。

圖片本來是段Demo的錄屏的,后面有機(jī)會開源的時候再release圖片

所以我們打通了從重建,到泛化,再到生成的整個鏈路。甚至我們可以仿真生成激光雷達(dá)的數(shù)據(jù):

圖片圖片

第三點(diǎn),就是將Agent與自動駕駛相結(jié)合,也是我們DiLu的后續(xù)研究方向。并不是簡單地教大模型開車,而是利用大模型的通用理解能力,通過各種外部工具,務(wù)實(shí)地實(shí)現(xiàn)自動駕駛。不能為了用LLM而用。

目前我們在探索閉環(huán)評測,因?yàn)槲矣X得只在開環(huán)數(shù)據(jù)集上進(jìn)行訓(xùn)練和評測已經(jīng)略顯疲態(tài)。盡管有一些基于仿真引擎做閉環(huán)訓(xùn)練的工作已經(jīng)出現(xiàn),但評測終究是開環(huán)的。我們目前正在嘗試構(gòu)建一套基于全功能Agent的pipeline,實(shí)現(xiàn)自動駕駛的incremental learning甚至是life-long learning。

最后再介紹一些我覺得和Knowledge-driven AD相關(guān),但可能還需要一些時間才能看到的工作和方向。

圖片

首先:小大模型的上車,比如一些1B的模型可能已經(jīng)具備了在邊端推理(甚至訓(xùn)練)的能力。以及一些線性Transformer的工作,如果真有一天能夠上車就有趣了。因?yàn)楝F(xiàn)在大模型動輒規(guī)模這么大還是因?yàn)槠浔举|(zhì)是個通用模型。但如果我們只需要通用模型在某個子領(lǐng)域的一小部分能力,是不是不需要這么大也可以了?

第二,最近的一個概念:Superalignment。就是我們是否有空了能用小尺寸的大模型來supervise大尺寸的大模型。因?yàn)橄啾扔眯∧P蜕珊线m的語料喂給大模型來訓(xùn)練,可能用小模型來為大模型的訓(xùn)練提供supervise可能是個更容易的任務(wù)。OpenAI可能會用它來取代RLHF等簡單任務(wù)中的人力,但仔細(xì)想想,這是不是下一代的「影子模式」?

第三,直接在世界模型中訓(xùn)練AD算法:其實(shí)這才是我覺得World Model的本質(zhì)啊。一個能夠建模整個世界的模型,一定能夠完美地理解世界,也能夠用來將自己對世界的理解拿來supervise自動駕駛算法本身?

第四,重建即感知:這也是最開始入坑多模態(tài)傳感器融合感知時候的思考。即:其實(shí)無論多模態(tài)傳感器融合、環(huán)視相機(jī)融合還是什么融合算法,其實(shí)本質(zhì)就是在做「對齊」。這些算法的目標(biāo)就是把各種不同位置不同模態(tài)的數(shù)據(jù)對齊到一個Unified Space。然后后面的算法再從這個Unified Space出發(fā)。其實(shí)仔細(xì)想想,無論是Pillar、Voxel,還是后來的BEV,和Occupancy,其本質(zhì)都是一個一個用來對其的Unified Space。既然space這么多,究竟哪個Space最好?通常意義上來說,我們期待學(xué)習(xí)一種從輸入空間到流形空間(關(guān)于流形空間很多年前我有過一個回答大家可以看看:求簡要介紹一下流形學(xué)習(xí)的基本思想?)的映射。那么什么空間是最標(biāo)準(zhǔn)的對齊空間呢?我覺得就是3D空間啊。不同模態(tài)的傳感器,都對齊到同一的3D空間。其實(shí)這件事本質(zhì)就是做三維重建了。。。所以我覺得冥冥之中,「三維重建」和「場景理解」這兩件事情總有一天會合二為一。重建即感知。

寫到這里,這篇文章基本就結(jié)束了??赡軓U話有些多,主要都是我最近一段時間的思考,和我們團(tuán)隊(duì)的一些努力。最后回顧一下主旨

  1. LLM+AD的出現(xiàn),意味著大家意識到了這是一個從數(shù)據(jù)驅(qū)動到知識驅(qū)動的時機(jī)
  2. 知識驅(qū)動可能有三個特性和目標(biāo):泛化性、可解釋性、持續(xù)學(xué)習(xí)
  3. 我個人認(rèn)為,沒必要非要追求用LLM實(shí)現(xiàn)端到端的自動駕駛。因?yàn)榇竽P痛嬖诨糜X、推理速度慢等非常多的問題。我們應(yīng)該利用的是LLM的知識運(yùn)用能力、推理能力,并從Agent的角度出發(fā),探索出一種能夠利用LLM但不依賴LLM的架構(gòu),漸進(jìn)式地構(gòu)建新一代的自動駕駛系統(tǒng)。
責(zé)任編輯:張燕妮 來源: 自動駕駛之心
相關(guān)推薦

2019-12-02 10:23:49

人工智能機(jī)器學(xué)習(xí)技術(shù)

2017-12-21 07:54:07

2018-02-25 05:45:35

2020-10-22 15:35:35

自動駕駛美團(tuán)人工智能

2012-12-19 09:36:49

測試自動化測試

2024-05-15 10:15:00

自動駕駛模型

2023-09-22 11:56:57

模型駕駛

2018-01-17 09:15:52

負(fù)載均衡算法

2018-01-05 14:23:36

計(jì)算機(jī)負(fù)載均衡存儲

2020-09-11 10:55:10

useState組件前端

2023-11-08 10:14:02

模型學(xué)習(xí)

2021-06-10 10:02:19

優(yōu)化緩存性能

2024-03-07 10:29:43

端到端自動駕駛

2021-02-28 09:47:54

軟件架構(gòu)軟件開發(fā)軟件設(shè)計(jì)

2018-11-23 11:17:24

負(fù)載均衡分布式系統(tǒng)架構(gòu)

2021-02-19 23:08:27

軟件測試軟件開發(fā)

2024-04-15 11:40:37

自動駕駛端到端

2020-01-09 08:42:23

自動駕駛AI人工智能

2020-08-20 10:16:56

Golang錯誤處理數(shù)據(jù)

2024-12-27 10:51:53

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號