回顧特斯拉AutopilotAI總監AK上任以來的報告

2021年8月19日特斯拉的AI day,展示了其AI相關的技術,除了最強訓練節點晶片D1和“猶抱琵琶半遮面”的世界上最強大的AI訓練計算機Dojo,以及最新發布的類人機器人Tesla Bot,我們關心和感興趣的還是Autopilot的演算法。

回顧一下這些年,特斯拉在趕走David Nister和Chris Lattner之後,鋼鐵俠ELon Mask從Open AI挖來了斯坦福大學李飛飛的高徒Andrej Karpathy(AK),這個博士畢業剛剛1-2年的深度學習界“網紅”(講解過LSTM)。雖然AK博士畢業論文方向是image captioning,這時候他也要開始一個嶄新的自動駕駛探險旅程。(在特斯拉內部,就有傳說他剛開始搞不懂E矩陣和F矩陣區別的笑話)

回顧特斯拉AutopilotAI總監AK上任以來的報告

這裡就回顧一下自從他2017年6月加入特斯拉之後的出場,以及相關的報告。

AK第一次亮相是在2017。11。11在Medium發表的文章SW2。0,沒有理解錯的話,就是一個全神經網路平臺,端到端(E2E)的深度學習模型。

回顧特斯拉AutopilotAI總監AK上任以來的報告

他的解釋是:指定一些目標(例如,“滿足輸入輸出示例對的資料集”或“贏得圍棋比賽”),編寫程式碼的粗略骨架(即一種神經網路架構),識別要搜尋的程式空間子集,並使用計算資源來搜尋該空間尋找有效的程式;將搜尋限制在程式空間的一個連續子集,在神經網路的搜尋透過反向傳播(BP)和隨機梯度下降(SGD)變得高效。

回顧特斯拉AutopilotAI總監AK上任以來的報告

隨後,2018年在Spark+AI Summit‘18,AK再次闡述了這個SW 2。0理念:

回顧特斯拉AutopilotAI總監AK上任以來的報告

同時,在這個Spark有關的會議上,他介紹了特斯拉的AI工作:資料標註和資料閉環引擎

回顧特斯拉AutopilotAI總監AK上任以來的報告

回顧特斯拉AutopilotAI總監AK上任以來的報告

這個時候,他對資料的選擇使用的是“notice a problem“。

AK也講述了資料的不平衡問題,以及資料的清理困難:

回顧特斯拉AutopilotAI總監AK上任以來的報告

回顧特斯拉AutopilotAI總監AK上任以來的報告

2019年AK在Pytorch DevCon‘19介紹了特斯拉的AI訓練平臺和多工訓練框架:主要的特點是共享主幹和多頭結構

回顧特斯拉AutopilotAI總監AK上任以來的報告

回顧特斯拉AutopilotAI總監AK上任以來的報告

回顧特斯拉AutopilotAI總監AK上任以來的報告

他採用Pytorch的分散式訓練工具

回顧特斯拉AutopilotAI總監AK上任以來的報告

他提出了“operation on vacation”這個概念,可以解釋為自監督學習:

回顧特斯拉AutopilotAI總監AK上任以來的報告

AK第一次介紹了smart summon的建圖工作:

回顧特斯拉AutopilotAI總監AK上任以來的報告

回顧特斯拉AutopilotAI總監AK上任以來的報告

基本是一個occupancy tracking框架:

回顧特斯拉AutopilotAI總監AK上任以來的報告

採用自己的FSD晶片車端計算平臺,但是那時候沒有給出細節:

回顧特斯拉AutopilotAI總監AK上任以來的報告

隨後4月份的特斯拉Autonomy Day 2019,AK開始給投資人介紹Autopilot的核心技術:

回顧特斯拉AutopilotAI總監AK上任以來的報告

回顧特斯拉AutopilotAI總監AK上任以來的報告

這裡資料的選擇變成“inaccuracy”,就是找出對模型的不準確和不確定推理這些資料,同時提出基於shadow mode相關的trigger模式,比如如何尋找馬路上的動物為例:

回顧特斯拉AutopilotAI總監AK上任以來的報告

這次馬斯克和AK一起diss了鐳射雷達,當然AK也提供了“證據”,是一個視覺SLAM工作,不過他提到了谷歌的一個無監督深度估計的論文,不過這時候還沒有結果展示吧。

回顧特斯拉AutopilotAI總監AK上任以來的報告

回顧特斯拉AutopilotAI總監AK上任以來的報告

當時特斯拉還沒有拋棄毫米波雷達,仍然採用它輔助訓練視覺模型:

回顧特斯拉AutopilotAI總監AK上任以來的報告

資料成為了特斯拉最強大的武器,這也是大家慢慢接受現實AI應用面臨“長尾”問題的解決方法,包括AK介紹的path prediction和cut-in工作:

回顧特斯拉AutopilotAI總監AK上任以來的報告

回顧特斯拉AutopilotAI總監AK上任以來的報告

回顧特斯拉AutopilotAI總監AK上任以來的報告

雖然AK提到了模擬的作用(確實有模擬組存在),但是鋼鐵俠隨後補充到:模擬就是學生給自己佈置作業,和真實資料還是不可比的。

回顧特斯拉AutopilotAI總監AK上任以來的報告

他也提到了特斯拉的自動標註工具:

回顧特斯拉AutopilotAI總監AK上任以來的報告

另外,從Snap跳槽過來的Stuart Bowers,作為協助AK去佈置車端Auotopilot的工程VP,介紹了lane change工作,使用了大量的透過shadow mode獲取的資料進行模型訓練:

回顧特斯拉AutopilotAI總監AK上任以來的報告

不過,Stuart不被Elon欣賞,幾個月後不久就離開了。

回顧特斯拉AutopilotAI總監AK上任以來的報告

此外,特斯拉的晶片負責人Peter Bannon,出來透露了FSD晶片的更多細節:

回顧特斯拉AutopilotAI總監AK上任以來的報告

好快2個月之後ICML‘19,AK給了一個大會報告,這次他闡述的更加清楚MTL在特斯拉應用的具體方法,並且引用了兩篇斯坦福大學論文作為佐證:

回顧特斯拉AutopilotAI總監AK上任以來的報告

回顧特斯拉AutopilotAI總監AK上任以來的報告

回顧特斯拉AutopilotAI總監AK上任以來的報告

回顧特斯拉AutopilotAI總監AK上任以來的報告

重要的是loss函式的設定:其中他還舉例介紹operation on vacation如何做到的(用了好幾頁PPT)

回顧特斯拉AutopilotAI總監AK上任以來的報告

回顧特斯拉AutopilotAI總監AK上任以來的報告

時間來到了2020年,這時候的特斯拉已經是全球市值最大的車企。AK參加了在谷歌門口MV computer museum舉辦的Scaled ML conference‘20:

回顧特斯拉AutopilotAI總監AK上任以來的報告

FSD開始冒出來了:只是debug狀態

回顧特斯拉AutopilotAI總監AK上任以來的報告

回顧特斯拉AutopilotAI總監AK上任以來的報告

繼續透過強大的trigger mode獲取資料,這裡是stop sign為例:

回顧特斯拉AutopilotAI總監AK上任以來的報告

評估資料的unit test:

回顧特斯拉AutopilotAI總監AK上任以來的報告

第一次使用HydraNets描述MTL的框架:

回顧特斯拉AutopilotAI總監AK上任以來的報告

其實這個term已經有人用過:CVPR‘18 論文“HydraNets: Specialized Dynamic Architectures for Efficient Inference“,但是意義不一樣。

第一次採用BEVNet,解釋瞭如何從影象平面對映到BEV,而不是任務完成的late fusion(其實他解釋了,實驗結果證明影象平面估計的目標,如車道、路沿和障礙物等等,其位置轉換到BEV是誤差較大的)。其實這就是地圖的構建方法,只是當時是針對parking lot而言(注:可參考mobileye的REM)。

回顧特斯拉AutopilotAI總監AK上任以來的報告

最後,終於把depth estimation結果展示了,其中借用了當時的論文term “偽鐳射雷達(pseudo lidar)“。

回顧特斯拉AutopilotAI總監AK上任以來的報告

幾個月之後的CVPR‘20,AK出席了AV workshop,其中內容基本延續了scaled ML conference的思想:

回顧特斯拉AutopilotAI總監AK上任以來的報告

介紹了更多資料的挖掘工作:上次只是stop sign,這裡是其他traffic sign的資料

回顧特斯拉AutopilotAI總監AK上任以來的報告

毫無懸念的,BEVNet也採集街道的資料繪製地圖:

回顧特斯拉AutopilotAI總監AK上任以來的報告

另外他強調了scalability的問題:

回顧特斯拉AutopilotAI總監AK上任以來的報告

回顧特斯拉AutopilotAI總監AK上任以來的報告

在之後的一段時間,我們聽到了Elon Mask透露的4-D資料標註、professional labeller、強大的訓練節點晶片和超級快速的AI訓練計算機平臺Dojo;他還意味深長地宣佈,整個SW已經升級重寫過,Autopilot的介面也徹底改觀。還有一個重要的改變,特斯拉宣佈取消毫米波雷達,這樣變成了純視覺的解決方法。

這樣的背景下,CVPR‘21 AV workshop我們等來了AK一年後的報告。

回顧特斯拉AutopilotAI總監AK上任以來的報告

這時候FSD beta版已經上線:不少技術控的使用者還是願意嘗試的(“小白鼠”)

回顧特斯拉AutopilotAI總監AK上任以來的報告

這次毫米波雷達去除方面也做了介紹,並且舉例證明其效能反而得到提升:

回顧特斯拉AutopilotAI總監AK上任以來的報告

回顧特斯拉AutopilotAI總監AK上任以來的報告

再次強調自動標註工具的開發:

回顧特斯拉AutopilotAI總監AK上任以來的報告

展示了221個trigger模式去獲取資料:

回顧特斯拉AutopilotAI總監AK上任以來的報告

這是神經網路的架構圖:MTL下的multi head,其中backbone的multi-camera fusion採用了流行的transformer架構,multi-head的video module做多幀資料融合,可以是transformer、3-D CNN或者其他NN架構的融合方法,現在知道是spatial RNN的方式。

回顧特斯拉AutopilotAI總監AK上任以來的報告

賣個關子,介紹一下最近強大的計算群,還不是Dojo:

回顧特斯拉AutopilotAI總監AK上任以來的報告

這次提到了simulation的重要,但是沒有細節。

回顧特斯拉AutopilotAI總監AK上任以來的報告

介紹了一點自動標註的demo:

回顧特斯拉AutopilotAI總監AK上任以來的報告

兩個月之後的8月19日,我們看到,特斯拉在AI day曝露了更多的技術路線和工作demo:

回顧特斯拉AutopilotAI總監AK上任以來的報告

這裡除了AK以外,還有冒出來的軟體負責人Ashok Elluswamy:基本是CMU碩士畢業就在特斯拉一直待著

回顧特斯拉AutopilotAI總監AK上任以來的報告

工程負責人Milan Kovac:

回顧特斯拉AutopilotAI總監AK上任以來的報告

還有Dojo專案負責人Ganesh Venkataramana:在AMD工作14年的“老人”

回顧特斯拉AutopilotAI總監AK上任以來的報告

首先是AK的感知模組介紹:第一次給出了backbone構成,即RegNet,以及bottleneck構成,即BiFPN

回顧特斯拉AutopilotAI總監AK上任以來的報告

RegNet來自這篇FB論文“Designing Network Design Spaces“:一種高效的架構引數最佳化空間

回顧特斯拉AutopilotAI總監AK上任以來的報告

BiFPN來自谷歌論文“EfficientDet: Scalable and Efficient Object Detection”:

回顧特斯拉AutopilotAI總監AK上任以來的報告

這次他詳細地解釋了單目檢測然後融合的問題,不如直接在特徵空間融合後在multi-head做檢測和位置估計:

回顧特斯拉AutopilotAI總監AK上任以來的報告

這是transformer架構的應用:Key-Query-Value的自注意機制

回顧特斯拉AutopilotAI總監AK上任以來的報告

特別是AK指出了一個數據泛化問題,各種資料來自不同的車輛,而其calibration並不一致,這會造成預測時候的資料不一致性,故此提出了common virtual camera

回顧特斯拉AutopilotAI總監AK上任以來的報告

非常工程性的設計,不瞭解視覺的挑戰問題是想不到的:

回顧特斯拉AutopilotAI總監AK上任以來的報告

這是video 模型架構:考慮video上下文資訊,注意輸入的資訊除了camera,還有IMU(這是感知-定位的一體化架構)

回顧特斯拉AutopilotAI總監AK上任以來的報告

提出解決上下文的feature queue方法:類似cache的作用,這裡有time-based和space-based兩種,前者每隔27毫秒,適合動態狀態,比如運動中處理目標遮擋;後者每隔1米,適合靜止狀態,比如等紅綠燈時候不變的道路特性。

回顧特斯拉AutopilotAI總監AK上任以來的報告

回顧特斯拉AutopilotAI總監AK上任以來的報告

在video module採用了spatial RNN方法:fuse時域資訊,kinematic做spatial align,這裡AK視覺化其中學習的特徵圖(基本上這裡在線地圖的概念也得以體現)

回顧特斯拉AutopilotAI總監AK上任以來的報告

回顧特斯拉AutopilotAI總監AK上任以來的報告

最後的感知框架如圖:基本是端到端的設計

回顧特斯拉AutopilotAI總監AK上任以來的報告

Ashok負責P&C(規劃控制),自動標註(AK只負責手工標註)和模擬。首先是P&C:L2不需要,FSD需要規劃,三個最佳化目標,即安全、舒適度和有效率

回顧特斯拉AutopilotAI總監AK上任以來的報告

規劃確實比較複雜:

回顧特斯拉AutopilotAI總監AK上任以來的報告

這是特斯拉的解決方法:分級處理,首先透過粗搜尋找到一些候選,這樣在 精簡的convex corridor做下一步連續最佳化

回顧特斯拉AutopilotAI總監AK上任以來的報告

這裡實際上特斯拉解決的是multi-agents的規劃,而不僅僅是ego-agent,比如在街道(窄路)規劃:對方車輛的意圖也做了判斷和推理

回顧特斯拉AutopilotAI總監AK上任以來的報告

回顧特斯拉AutopilotAI總監AK上任以來的報告

以一個泊車為例,展示如何解決複雜交通問題的過程:採用MCTS和基於神經網路的policy+value學習,計算非常高效,實驗只是在模擬環境,估計還沒有上車部署吧

回顧特斯拉AutopilotAI總監AK上任以來的報告

其中MCTS在圍棋軟體alphago曾經揚名,這裡透過神經網路學習的狀態和動作分佈,然後在MCTS得到快速求解:

回顧特斯拉AutopilotAI總監AK上任以來的報告

這裡註釋了DeepMind的MuZero方法,即論文“Mastering Atari, Go, Chess and Shogi by Planning with a Learned Model“:AlphaZero改進版,基於模型的強化學習(RL)

回顧特斯拉AutopilotAI總監AK上任以來的報告

最後是整個FSD架構:Ashok說的控制基於 MPC,規劃也是視覺感知中間特徵訓練出來的神經網路輸出軌跡分佈和physics-based模型結合

回顧特斯拉AutopilotAI總監AK上任以來的報告

AK補充了手工標註團隊資訊:1000人的僱員,而不是外包。

回顧特斯拉AutopilotAI總監AK上任以來的報告

4-D標註“浮出水面”:竟然採用了路面拼接方法(不像SfM重建)

回顧特斯拉AutopilotAI總監AK上任以來的報告

Ashok再次出來介紹自動標註工具:研發了很多離線模型(速度要求低、可以全域性最佳化而不需要遵循時序)

回顧特斯拉AutopilotAI總監AK上任以來的報告

對靜態目標就是地圖構建:Ashok說這不是HD map,不會永久保留,只是標註訓練,who knows?

回顧特斯拉AutopilotAI總監AK上任以來的報告

回顧特斯拉AutopilotAI總監AK上任以來的報告

對動態目標就是障礙物:遮擋已經被解決(多視角融合,但是有些運動無法內插恢復),是例項分割而不是語義分割;有環境重建,有點兒像mobileye的ViDAR,但是後者是線上的

回顧特斯拉AutopilotAI總監AK上任以來的報告

回顧特斯拉AutopilotAI總監AK上任以來的報告

其實谷歌最近也推出一個自動標註的工具,主要是鐳射雷達資料做目標檢測,CVPR‘21論文“Offboard 3D Object Detection from Point Cloud Sequences“:其中也分成靜態目標和動態目標標註

回顧特斯拉AutopilotAI總監AK上任以來的報告

Ashok最後繼續介紹模擬部分:實際上模擬解決了真實資料採集的不足,特別是很少發生的事件,另外“數字孿生”技術可以將真實場景資料復現在虛擬環境,然後進行變化,類似於谷歌之前的“fuzziness”。

回顧特斯拉AutopilotAI總監AK上任以來的報告

他從5個特點介紹了特斯拉模擬器的工作:

1 感測器的模擬(攝像頭)

回顧特斯拉AutopilotAI總監AK上任以來的報告

2 結合傳統的ray-tracing和神經網路訓練的渲染(NeRF)

回顧特斯拉AutopilotAI總監AK上任以來的報告

3 多樣化的行人、車輛和其他運動物體

回顧特斯拉AutopilotAI總監AK上任以來的報告

4 規模化的場景合成:

除了手工和程式方法之外,還有機器學習的方法對抗場景生成

回顧特斯拉AutopilotAI總監AK上任以來的報告

這個Neural rendering也是目前的深度學習一個應用方向:比較原始影象和Neural rendering結果

回顧特斯拉AutopilotAI總監AK上任以來的報告

回顧特斯拉AutopilotAI總監AK上任以來的報告

感興趣的,可參考綜述論文“State of the Art on Neural Rendering“:ECCV‘20和CVPR’21 的最佳論文獎都是NeRF的工作,很“熱”的方向

回顧特斯拉AutopilotAI總監AK上任以來的報告

5 場景重建(數字孿生):就是基於神經渲染方法

回顧特斯拉AutopilotAI總監AK上任以來的報告

其實最近谷歌也推出了一個SurfelGAN的復現技術,參考論文“SurfelGAN: Synthesizing Realistic Sensor Data for Autonomous Driving”, 當然也有鐳射雷達資料做輸入產生surfel,只是texture來自影象資料

回顧特斯拉AutopilotAI總監AK上任以來的報告

模擬下一步的工作:注意有強化學習的引入

回顧特斯拉AutopilotAI總監AK上任以來的報告

此外,Milan過來主要介紹編譯器和排程:

回顧特斯拉AutopilotAI總監AK上任以來的報告

Ganesh 上臺就是機器學習訓練Dojo計算機的介紹:

回顧特斯拉AutopilotAI總監AK上任以來的報告

回顧特斯拉AutopilotAI總監AK上任以來的報告

回顧特斯拉AutopilotAI總監AK上任以來的報告

回顧特斯拉AutopilotAI總監AK上任以來的報告

回顧特斯拉AutopilotAI總監AK上任以來的報告

回顧特斯拉AutopilotAI總監AK上任以來的報告

回顧特斯拉AutopilotAI總監AK上任以來的報告

回顧特斯拉AutopilotAI總監AK上任以來的報告

回顧特斯拉AutopilotAI總監AK上任以來的報告

最後是Elon親自下場介紹特斯拉的類人機器人:Tesla Bot

回顧特斯拉AutopilotAI總監AK上任以來的報告

其實已經有媒體在說,Tesla這次AI day基本就是招兵買馬的目的,應該是很缺人。Tesla Bot也許就是噱頭,類人機器人首先要平衡站立住吧,其次手臂抓取也要求一定的精度。

另外,我們也要說,特斯拉autopilot團隊並沒有去解釋安全的問題。而如何估計模型uncertainty、對corner case和OOD檢測等已經是當前涉及安全的熱點技術,還有特斯拉團隊自身的self-supervised learning工作,也包括最近介紹的自動標註和模擬演算法,大家都是期待了解更多。

補充幾句:有些過於誇大或者盲目崇拜特斯拉技術也不好,當然這裡展示的工程化做的確實好

規劃控制,這是特斯拉第一次報道,也沒有什麼特別出彩的,看看谷歌和Uber的工作,基本都可以說絕對位元斯拉要深度一些;

模擬模擬測試,談到商業落地閉環,谷歌也完成了,但是有鐳射雷達輔助,參考Simulation City;數字孿生工作,應該一些創業公司都可以做,騰訊自動駕駛也做了;Uber也做了很多機器學習的模擬工作,在被賣給Aurora之後,有一個多倫多研發中心的博士直接去UIUC做教授去了,可以參考他們發表的一系列文章;英偉達除了做感測器渲染引擎(這是他們的強項)之外,也在研發基於機器學習的方法,在多倫多大學有一個教授就負責英偉達的研發中心做這個;

至於標註,一些標註公司也不差,比如矽谷估值73億美金的Scale AI,自身的研發演算法也是很強的。