當前位置: 華文星空 > 汽車

聊聊端到端與下一代自動駕駛系統

2024-04-13汽車

最近一個月由於眾所周知的一些原因,非常密集地和行業內的各種老師同學進行了交流。交流中必不可免的一個話題自然是端到端與火爆的特斯拉FSD V12。想借此機會,整理一下在當下這個時刻的一些想法和觀點,供大家參考和討論。

如何定義端到端的自動駕駛系統,應該期望端到端解決什麽問題?

按照最傳統的定義,端到端的系統指的是一套系統,輸入傳感器的原始資訊,直接輸出任務關心的變量。比如在影像辨識中,CNN相對於傳統的特征子+分類器的方法就可以叫做端到端。在自動駕駛任務中,自然想到的一個定義便是,輸入各種傳感器的數據(相機/LiDAR/Radar/IMU…),直接輸出車輛的控制訊號(油門/方向盤轉角)。為了考慮不同車型之間的適配問題,也可以將輸出放寬為車輛的行駛軌跡。這便是一個傳統意義上,或者我叫做 狹義端到端 的定義。在這樣的一個基礎上,也衍生出了例如UniAD這樣模組化端到端的概念,即在最終輸出控制訊號或者路點之外,也引入了一些相關的中間任務的監督來提升效能。

然而,除了這樣狹義的定義之外,我們還應該從本質上思考一下,端到端的本質是什麽? 我認為端到端的本質應當是感知資訊的無失真傳遞。 我們先回想一下在非端到端系統中,感知和PnC模組的介面是什麽樣子的。一般我們會有針對白名單物體(車,人,etc)的檢測/內容分析/預測,會有對靜態環境的理解(道路結構/限速/紅綠燈,etc),如果做的更細致一些的話,還會做通用障礙物的一些檢測工作。 從宏觀的角度來講,感知輸出的這些資訊,都是對復雜駕駛場景的一種抽象,而且是人工定義的顯式抽象。 然而,對於一些非常見場景中,現在的顯式抽象難以充分表達場景中會影響駕駛行為的因素,亦或是我們需要定義的任務過多過瑣碎,也難以列舉盡所有需要的任務。所以端到端系統,提供了一種(也許是隱式)全面表示,希望能夠自動地無失真地將這樣的資訊作用於PnC。我認為,所有能滿足這樣的系統,都可以叫做 廣義端到端

至於其他的問題,比如對動態互動場景的一些最佳化,我個人的觀點認為至少並非只有端到端才能解決這些問題,端到端可能也不是解決這些問題最好的一個方案。傳統方法是可以解決好這些問題的。當然,在數據量足夠大的時候,端到端可能會提供一個還不錯的solution。關於這個事情是否有必要,會在後幾個問題中展開討論。

關於端到端自動駕駛的一些誤區?

一定要輸出控制訊號和路點才是端到端

如果能認同上面所講的廣義端到端的概念,那麽這個問題就很容易理解了。端到端更應該強調的是資訊的無失真傳遞,而不一定要直接輸出任務量。這樣狹義的端到端做法,其實帶來和非常多不必要的麻煩,需要大量的兜底方案來保證安全,然而這樣也會有很多的問題,在後面會展開。

端到端系統一定要基於大模型或者純視覺

端到端自動駕駛的概念和大模型自動駕駛以及純視覺自動駕駛沒有任何必然的聯系。這三個概念是完全獨立存在的,一個端到端的系統不必一定是傳統意義上的大模型驅動的,也不一定就是純視覺。三者之間有一些關聯,但不等同。

之前我有一篇文章詳細闡述過這些概念之間的關系,詳見:

長遠來看,上述狹義的端到端系統有沒有可能實作L3級別以上自動駕駛?

其實我先想來吐槽一句, 號稱要用大模型來顛覆L4的人,都沒有實際做過L4;號稱端到端包治百病的人,也都從來沒做過PnC。 於是和很多對端到端狂熱的人聊下來,就變成了一個純粹的無法證實也無法證偽的宗教信仰之爭。我們做前沿研發的同學,還是應該更實事求是,講究證據一些。。。最起碼對想要顛覆的東西有一些基礎認知和了解一下其中棘手的問題,這是應該有的基本科學素質。。。

言歸正傳,目前來看,我是悲觀的。暫且不論目前號稱是純端到端的FSD,效能還遠遠不能達到L3級別以上所需要的可靠性和穩定性,未來就算是統計意義上這個車輛和人是一樣安全的,還要面臨如何和人類駕駛員的錯誤做align的問題。更直白一點來說,就是說,一個自動駕駛系統想要讓大眾和輿論接受,關鍵可能不在於一個絕對的事故率和致死率,而是在於大眾是否能接受有一些場景中,對於人類是相對輕松解決,而機器會犯錯的。這個需求對於純端到端系統來說更難以實作。更具體的在我21年的一個回答中有闡述,詳見:

舉在北美的Waymo和Cruise為例,其實分別都出過不少事故,但是為什麽Cruise最後一次出現的事故讓監管和大眾尤為不能接受呢?這個事故發生了兩次傷害,第一次的碰撞,對於人類駕駛員也是相當難以避免的,其實也是可以被接受的。但是在這一次的碰撞發生之後,發生了嚴重的二次傷害:系統錯誤地判斷了碰撞位置和傷員位置,為了不阻塞交通,降級到了靠邊停車的模式,將傷員拖拽很久。這樣的一個行為,是任何一個正常的人類駕駛員都不會做出的事情,而且影響非常惡劣。這個事情直接導致了Cruise後續的一些動蕩。這個事情其實也給我們敲響了警鐘,如何避免這樣的事情發生,應該是自動駕駛系統研發和營運中認真考慮的問題。

那麽站在現在的這個時刻,下一代量產輔助駕駛系統中切實可行的方案是什麽?

簡單來說,我認為一個合適的系統應當是首先充分挖掘傳統系統的能力上限,然後再去結合端到端的靈活和普適性,也就是一個 漸進式端到端 的方案。當然這兩者如何有機地結合就是個付費內容了,哈哈。。。但是我們可以分析一下,現在所謂的端到端或者learning based planner實際落地在做的事情是什麽。

以我有限的了解,目前所謂端到端模型在行車中使用的時候,在輸出的軌跡之後都會去接一個基於傳統方法兜底的方案,或者是這樣的learning based planner和傳統的軌跡規劃演算法會同時輸出多條軌跡,再透過一個selector來選擇一條執行。如果這樣設計系統架構,這麽一個級連系統的效能上限其實是被這樣的兜底方案和selector限制住的。如果這樣的方案仍然是基於純feedforward learning的,仍會有不可預測的失效,本質上並不能達到兜底的目的。如果考慮在這樣輸出的軌跡上使用一個傳統的規劃方法再去最佳化或者選擇, 那相當於learning based方法出的軌跡,只是給這樣的一個最佳化和搜尋問題做了一個初始解,我們為何不直接去最佳化和搜尋這樣的軌跡呢?

當然有同學會跳出來講,這樣的一個最佳化或者搜尋問題是非凸的,狀態空間很大不可能在車載系統上跑到即時。我請大家在這裏仔細想這樣一個問題:在過去10年中,感知系統至少吃到了100x的算力紅利發展,但是我們的PnC模組呢?如果我們同樣允許PnC模組使用大算力,結合上近幾年先進最佳化演算法的一些發展,這樣的結論仍然成立嗎?針對這樣的問題,我們不應該固步自封,路徑依賴,而是應該從第一性原理思考什麽才是對的。

數據驅動和傳統方法之間關系如何調和?

其實和自動駕駛非常類似的一個例子就是下棋,剛好在今年2月份的時候Deepmind發表了一篇文章(Grandmaster-Level Chess Without Search https:// arxiv.org/abs/2402.0449 4 )就在探索只用數據驅動,拋棄AlphaGo和AlphaZero中的MCTS search是否可行。類比到自動駕駛中就是,只用一個網路直接輸出action,拋棄掉後續所有的步驟。 文章的結論是,在相當的規模的數據和模型參數下,不用搜尋仍然可以得到一個還算合理的結果,然而和加上搜尋的方法比,還有非常顯著的差距。 (文章中這裏的對比其實也不盡公平,實際差距應該更大)尤其是在解一些困難的殘局上,純數據驅動效能非常糟糕。這類比到自動駕駛中,也就是意味著,需要多步賽局的困難場景或corner case,仍然很難完全拋棄掉傳統的最佳化或者搜尋演算法。像AlphaZero一樣合理地運用各種技術的優勢,才是最為高效提升效能的方式。

傳統方法 = rule based if else?

這個觀念也是我在和很多人的交流中需要反復糾正的。按照很多人的定義,只要不是純數據驅動,就叫做rule based。還是舉下棋這個例子,去死記硬背定式和棋譜是rule based,但是像AlphaGo和AlphaZero一樣透過搜尋和最佳化賦予模型reasoning的能力,我認為並不能叫做rule based。這恰恰也是目前大模型本身所欠缺的,也是研究者透過CoT等方式試圖賦予一個learning based model的。然而人開車每一個動作都是有明確的動機的,這和需要純數據驅動的影像辨識等無法清晰描述原因的任務不同。在一個合適的演算法架構設計下,決策軌跡都應該成為變量,在一個科學的目標指引下統一最佳化。而不是透過強行打patch和調參去修各種case。這樣的一個系統自然也不會存在各種hardcode的奇怪的rule。

總結

最終總結一下,端到端也許是一個很有希望的技術路線,但是這樣一個概念如何付諸實踐還有很多有待探索的事情。是不是狂堆數據和模型參數就是唯一正確的解決方案,目前在我看來並不是的。我覺得,任何時刻作為一個前沿研究的技術人員,我們都應該真正奉行馬斯克所講的第一性原理和工程師思維,從實踐中思考問題的本質,而不是將馬斯克本身變成第一性原理。想要真正遙遙領先,就不應該放棄思考,人雲亦雲,否則就只能在不斷想要彎道超車。