人工智能算法猶如電影的主演,我們很多時候看電影只看到主演們的精彩,但其實電影的創意和呈現都來自于背后的導演和制片等團隊。而人工智能算法背后的有關數據的軟件,設施,虛擬猶如電影的導演和制片等團隊。他們是塑造算法,成就算法的核心力量。本文我將通過2022特斯拉AI Day發布的信息,繼上文Tesla AI Day -特斯拉自動駕駛FSD的進展和算法軟件技術之算法當算法植入到終端(車或者機器人),終端通過算法感知環境,規劃路徑,確保安全,平順前進。- Occupancy 算法,也就是可活動空間探測
- Lane & Objects 車道以及物體算法,交通中的信息語義層也就是車道線,物體識別以及運動信息。之后分享下算法背后的數據以及相關軟件設施,大體框架如下:- 訓練數據的設施,超算中心用來支持數據處理,算法訓練。- 人工智能算法的編譯器以及推理,就是訓練算法的框架以及軟件方法。- 自動標注算法,訓練環境感知算法必須需要已經具有標簽的數據,自動標注算法就是標注數據,訓練環境感知算法識別這類場景或者物體。
- 數據引擎,現實場景車輛,測試軟件獲取真實場景環境數據,閉環數據引擎,更正標簽等。算法都是基于數據訓練出來的,也就是需要大數據喂出來。特斯拉表示需要訓練Occupancy Networks算法,特斯拉目前已經從采集視頻中提取出14.4億張圖片,需要訓練這些數據,需要10萬個GPU滿負荷工作一個小時到90度的計算。
但現實中特斯拉構建的3個超算中心,采用了1.4萬個GPU,其中4000個用于自動標注數據,其中10000個用于訓練算法。目前有30PB分布式視頻緩存,1PB=1048576GB你想想30PB多大。其中抽取了1600億張圖片。而且這些數據不是靜態的,是動態流轉的,每天50萬個視頻輪流緩存更替,每秒40萬個視頻轉化。所以顯然,特斯拉當前這數據中心按照正常的方法肯定行不通,同時可想而知特斯拉對于GPU超算的饑渴程度,另外特斯拉還想加速他的計算能力,這樣決定了特斯拉必須自己搞芯片。但是僅僅有了芯片就行了?顯然海量數據的管理和訓練方法都是難題。就成了特斯拉現在考慮的問題,特斯拉給出的答案是從數據的存儲,到數據的加載,最后處理,形成一個倒漏洞的形狀,最大限度的壓榨計算資源。要實現這些,必須考慮數據量的分配,數據流的帶寬,CPU,內容,機器學習的框架,而多臺GPU同步運算你要考慮延遲,考慮GPU之間的帶寬。這是非常復雜的。
首先視頻是動態和復雜的,不是簡單的圖片機器學習,特斯拉的視頻到圖片再到學習處理過程是動態,所以第一步加速視頻庫可以增加30%的訓練速度。
特斯拉采用Pytorch ,進行視頻壓縮類的工作,加速視頻庫,例如下圖中I 幀(幀內編碼圖片)是完整的圖像,例如JPG或BMP圖像文件。P幀(預測圖片)僅保存圖像與前一幀相比的變化。例如,在汽車穿過靜止背景的場景中,只需要對汽車的運動進行編碼。編碼器不需要在 P 幀中存儲不變的背景像素,從而節省空間。P 幀也稱為增量幀。另外就是視頻數據的歸類,說實話比較復雜,以后有時間有價值再仔細看吧。總的來講通過這種方式,特斯拉實現了2.3倍的訓練速度增加,現在特斯拉用1024塊GPU可以實現幾天內從頭開始聚合這些數據。另外數據源源不斷的壓進計算中心,就輪到了計算芯片,如何最優處理算法呢?這里就提到了算法編譯器compiler以及reference推理。
了解這節時候我們先要了解什么是算法編譯器compiler,他將AI算法模型映射到高效的指令集和數據流。它還執行復雜的優化,例如層融合、指令調度和盡可能重用片上內存。其實特斯拉的人工智能算法代碼運行會并行,重復以及回滾,那么特斯拉想要解決的問題是,如何高效的讓代碼運行在芯片上面,例如不重復計算,計算之間編排緊湊不空閑不堵塞,這樣可以減少延遲,降低功耗。
特斯拉設計了一個Arc Max 以及一個中央操作來將稀疏(例如車道的空間位置)編碼到首頁,然后選擇學習算法過程鏈接到首頁。然后在靜態內存SRAM中構建一個查詢表格,把重復算法存入緩存,這樣就不需要重復計算,只需要查詢調用。所以特斯拉表示就在FSD車道識別算法中,這項編碼提升了其算法9.6ms的延遲,能耗大概只有8w。
特斯拉表示這種編碼的思維貫穿到整個特斯拉FSD算法中,特斯拉構建了一個新的算法編譯器用來編譯超過1000多個算法信號這樣特斯拉通過編譯器和推理的優化,確保優算力,低功耗,低延遲的AI 計算,這也就是大家常說的不拼算力,拼算法軟件。那么分享完算法優化,計算優化,接下來就是關于數據。數據標注,這個毋庸置疑,人工智能的基礎就是基于現實數據,總結出規律,然后產生公式用于預測,這就是形成了算法。數據喂的越多,那么算法公式也就越精準。所以海量數據是精準算法的基礎,而海量數據的前提是這些數據需要有標簽也就是告訴機器這些數據是什么?數據標注有兩種方法,第一種就是人類標注,依靠人給數據打標簽,這是非常龐大的耗時耗人力的方式,但現實中確實是這么干的,還有些只有是人干。第二種就是自動標注,還記得之前文章《被美國禁售的A100和H100 ,MI250人工智能芯片能干啥?》中人工智能算法三個基礎數學,其中有一個是cluster你可以認為他是歸類,自動標注就是用歸類方法去標注。自動標注顯然是省時省力的事情,所以看特斯拉如何利用自動標注。拿上文的車道算法舉例,特斯拉認為他要實現十字路口車道算法,大概需要幾千萬個駕駛旅程,經過大概百萬個十字路口。特斯拉目前大概每天有50萬個旅程,但是要把這些旅程轉化成可訓練的數據是非常難的課題,特斯拉表示嘗試了各種人工和自動標注方法,顯然不太可能。
所以特斯拉開發的新自動標注算法對一萬個駕駛旅程的12個小時自動標注,可以抵充500萬個小時的人工標注。特斯拉表示其車道算法的自動標注,主要采用以下三個步驟來實施:
首先通過車輛獲取車輛的高精軌跡信息,之后通過算法將多旅程重構到一張地圖中然后自動標注車道信息網絡。詳細步驟如下:1. 高精軌跡獲取,上面提到特斯拉每天可以獲取到50萬個旅程,這些旅程的采集信息為車輛的視頻,車輛運動IMU陀螺儀,速度作為原始信號輸入,之后在車上的2個CPU線程(所有開通FSD的車輛產生這些信息)去跟蹤優化,特征提取輸出車輛6個自由度100hz的運動軌跡以及3D結構的道路細節。2. 多旅程重構,因為所有的車輛信息都是來自于不同的車輛,所以需要基于他們的高精軌跡信息,進行旅程的道路信息的匹配,重構,接縫優化,包面優化,最后人工分析師最后把關,形成了多重旅程的軌跡信息。3. 自動標注旅程,當然自動標注只會去標注新添加的旅程,而不是去重構所有的片段,所以大概半個小時標注一段旅程而不是人工標注的幾個小時。特斯拉宣稱,這種標注方式極其容易規?;?,只需要有計算單元以及駕駛旅程信息,如上圖所示,就視屏的時間內,來自于53臺車的數據,就自動標注了50組數據。當然特斯拉也表示自動標注的方法應用在特斯拉算法的各個方面。
但特斯拉表示現實的數據,獲取困難同時很難去標注,但是傳統的3D的場景的重構卻異常緩慢。?所以特斯拉表示在虛擬驗證方面其應用新的方法5分鐘就能夠構建3D虛擬場景。
特斯拉的建模是首先把場景的真值(Ground truth)輸入3D建模軟件Houdini,先開始構建道路的邊緣,在構建路面地理特征,之后將車道信息投影進入路面,接下來使用道路中間的邊緣形成綠化島。這樣基本的主要特征形成,那么道路兩邊的樹以及建筑物都可以隨機構建。
有了這些基礎之后,引入地圖交通信息,例如紅綠燈和停車,車道信息,甚至道路的真實名字。
之后偶發性的引入行人,車輛交通形成了場景的基礎。再后可以去改變場景的天氣,光線等形成模擬無窮無盡的場景,供自動駕駛驗證。當然特斯拉表示以上僅僅為基本的,這個其實應該很多自動駕駛公司都能做到例如之前文章《Cruise以及其自動駕駛技術》中提到通用的Cruise 也采用,特斯拉更進一步去改變道路的真值形成新的場景,例如之前算法中將到的十字路口車道線場景,可以改變里面的車道信息,創建更多基于真實場景的變種場景,來幫助算法訓練,而不是只能通過現實采集。
所以特斯拉有了虛擬數據,可以快速的進行各種場景的虛擬測試去優化算法,而省去實際測試費時費力的時間。特斯拉表示其主要創新和亮點是虛擬驗證的架構,他可以確保所有的東西串起來運行。
如上文介紹虛擬世界的建模,先有道路交通真值信息,然后元素創造者將交通信息標簽轉換成元素,例如上文將到的車道線,馬路牙子,建筑物等都屬于元素。再通過元素提取工具將這些信息分成幾何信息和交通實例元素放到150平米Geohash中,并給他命名ID 方便使用加載調用。
這樣建模信息更加簡潔,更容易加載和渲染,然后使用元素加載器工具,特斯拉可以使用Geohash ID編碼去加載任意數量的緩存切片,一般虛擬的時間就加載感興趣的地點以及周邊。最后是虛擬引擎生成場景。這樣特斯拉就讓一個工程師工作2周就可以生成舊金山的街道虛擬世界,而非幾個月甚至年來做單位。同樣特斯拉可以利用此項PDG技術快速拓展到其他地方或者城市國家,或者更新原有的虛擬世界,確保數據依據現實動態發展。其實在看這一章的時候,想了想特斯拉的仿真能力這么強,還要現實跑車去采集數據干啥?其實很多corner case 極端的場景,都需要通過真實場景去發現,然后優化數據,幫助解決人員介入。
首先看這個場景,特斯拉的FSD正在進入彎路口,通過這里的時候,看到旁邊有一個車子,現有算法下的特斯拉會認為有車子在等待通行,所以特斯拉自動駕駛車子會減速,但現實這是一個沒有人在里面的奇怪停車。這種場景估計任何腦洞大開的虛擬驗證都不會想到,必須要有實際場景來識別這類corner case極端場景,所以自動駕駛真實場景數據的收割必須要有,而且還是動態發展的,不同時間,不同城市,不同文化的數據都會不一樣。所以特斯拉構建了一個工具去識別錯誤的判斷并去糾正標簽,并把這個片段歸類為需要重新評估的系列。這個場景特斯拉把它診斷為挑戰性的在轉彎處有停車的場景,目前特斯拉識別了126個這樣的場景,挖掘以及促進訓練了1.39萬視頻數據,來提升預測準確性。需要解決這類場景,特斯拉需要挖掘成千上萬這種場景,而特斯拉可以利用數據采集車輛(客戶的車,或者自己試驗車),以及設備去采集和更正標簽來解決這種瑣碎的場景。
特斯拉把這種數據引擎框架實施到所有算法的持續優化中,特斯拉的數據引擎,是一個完整的從實驗車型,虛擬驗證,終端用戶的流。無論它們是 3D多機位視頻數據,是否人工標記 自動標記或模擬數據無論是離線模型還是在線模型。
特斯拉能夠大規模的的使用數據引擎的基礎設施為特斯拉的算法提供數據食物,的主要原因還有其龐大的車隊:終端用戶汽車影子模式傳輸客戶使用FSD時候的介入信息,實驗車隊的再確認數據。看完這個特斯拉的算法,數據等結構之后,我的第一想法是“高級的碼農玩的是思維方式和藝術結構,而不是按照規則去交付”。當然我肯定無法評價這個算法結構是好還是壞,但可以肯定的是特斯拉的智能駕駛算法是一種堅定的態度思維。
特斯拉的算法態度和思維是“基于視覺的人工智能算法,一定能夠汽車或機器人自動駕駛和導航,猶如人類僅僅使用眼睛和大腦實現安全駕駛或行走到達目的地”。這種態度和思維如人工智能算法的數學基礎“任意兩點之間一定存在一條可以將他們連接起來的直線”。當然特斯拉的最終理想是將此類算法拓展到AGI(Artificial general intelligence,通用人工智能( AGI ) 理解或學習人類可以完成的任何智力任務的能力。),讓我們拭目以待,不過可以肯定的是這條道路必定是坎坷的,每一個人類基本上花大概18年才成年才具備進入社會獨立的能力,而且一生都不斷的接觸新東西不斷學習,所以何況是剛剛起步的人工智能。參考文章以及圖片
特斯拉AI?Day視頻
*未經準許嚴禁轉載和摘錄-獲取參考資料方式:
加入我們的知識星球Vehicle?可以下載公眾號海量參考資料包含以上參考資料。。

Tesla 特斯拉AI day - 關于特斯拉機器人的進展和技術
Tesla AI Day -特斯拉自動駕駛FSD的進展和算法軟件技術之算法
保時捷IPO -給追夢人的汽車品牌的資本追夢
2000TOPs的英偉達和高通要把智能汽車帶向何方?
大疆能否在智駕賽道“能上天”?
安霸的智能汽車芯片軟件布局和雄圖
芯片產業鏈101
從大眾新CEO的十個工作重點看大眾汽車電氣化,軟件定義汽車的方向和方法
芯片和操作系統 - 當前汽車供應鏈面臨的關鍵問題思考
五圖看懂自動駕駛AI半導體生態鏈