網頁

2022-10-15

[openpilot] 開發速度勝過一切 - comma ai模型訓練流程

喜歡本文請押讚好,如果跳出確認視窗,要再押一次"確認"才能成功給我一個讚唷~

 

    隨著comma ai預計黑五前(11月底)要推出openpilot 0.9版,也就是第一版的縱向e2e控制版本,GH在推特上的內容也比較頻繁。另外CTO科技長Harald Schäfer也寫了一篇Blog模型訓練文章。一起看看這周comma ai有什麼新訊息吧。


一個科技網站報導說,GH認為自動駕駛產業有許多創新騙局,而V2V可能是答案。然後這篇文章被GH吐槽。

comma:什麼!?自動駕駛總有一天會出現。但車輛通信*永遠*不會成為一回事。comma 3已經擁有驚人的 V2V 技術,我們有數百萬個探測器,可以測量從其他汽車反射的高頻無線電波!

V2V是傳統車廠想要解決自動駕駛的思考方式之一,對於comma ai來說,只要人類不需要跟其他車溝通,那車子就不需要,一切的問題在於能不能實現擬人的人工智慧。GH甚至開玩笑,我們已經有V2V拉,我們C3上有個sensor可以感測其他車子反射的電波。他的意思就是他有鏡頭,可以接收光波,這已經足以取代V2V了。


comma轉貼Harald Schäfer的文章說:如果您需要投入越來越多的(硬體)資源,才能看到相同的進度,您終究將會失敗。

接下來我們進入Blog文章:開發速度勝過一切

隨著軟體品質越來越高(功能越來越完備),更重要的事情是,如何讓程式碼永遠保持簡潔。(多數的軟體隨著時間會越來越龐大,Windows如此、Adroid如此,IOS也是如此。)如果我們拿對於未來的硬體的需求來改進openpilot,那會是不值得的事情。

代碼簡潔化

comma花費大量精力讓程式碼簡潔化。行數雖然不能代表一切,但如果加上引入後隨時間的行數變化,可以展現簡潔化的能力。


這是30隔月內,引入不同程序之後,多數程式碼隨時間行數會趨於遞減,因此openpilot功能越來越多,但程式碼也越來越簡潔。

持續整合測試

程式碼簡化不是一切,一個完整的測試環境,可以讓開發版本更快提早發現錯誤,在C環境中模擬C3的運作,追蹤性能表現、CPU使用率、發熱....等等都能整合測試完成。

Software2.0

software2.0是另一種ML工具,software2.0是用更抽象的語言完成機器學習,有關software2.0可以參考Karpathy的medium上的介紹


24小時的訓練模型

一般來說訓練時間越長越好,但是comma採用了一種新的限制,只要一旦訓練模型超過24小時,他們就會砍掉重練。也就是說comma強迫自己要能開發出24小時以內能夠訓練完成的AI模型,而不在乎是否一定要是花費最久時間完成的完美訓練。他們開始考慮訓練AI的生產力。



訓練測試



24小時內的訓練限制,有助於幫助模型的版本更新頻率。如果要了解模型的表現,comma ai的trainer,可以不用上路,甚至可以在訓練還未完成時,開始模擬測試模型的表現。通常可以得到模型在真實路況的表現。

本地資料中心



comma ai的新辦公室有一個新的計算資料中心。約有3 PB的SSD存儲空間、約450個GPU、約 5000個CPU,以及與工作站的10Gbit的連接。對comma來說本地端資料中心,比透過雲端租用伺服器還划算。

範例:從鍵盤輸入到上車

這裡comma示範一個他們訓練的過程。他們修改了一個訓練,從擷取8個圖像對更改為40個圖像(2s at 4FPS to 2s at 20FPS)

然後它們git diff model的差異


所以comma在訓練器(Trainer)中修改不同的model



經過訓練過程,可以評估這個model是否可行,以及輸出它模擬的操控狀況。因為現在的新資料中心運算能力夠強,大約在10小時以內可以完成整個訓練工作。
接著就是把模型提交到openpilot的github上。


理論上這樣就可以上車測試了,但經過openpilot的CI測試,它失敗了。



這是因為訓練架構效率低落,如果在訓練過程再加入CI編譯的測試,那就可以提前發現。comma未來會努力改進這點。接下來的git diff可以修復這個問題。


然後comma重複編譯與git命令。假設我們想要在rav4上測試它,就這樣下指令:


現在這個model已經準備好在車上運作了。從訓練到修改,所有這些動作只需要幾個命令,並在此過程中,comma運行了大量自動檢測。這是一個簡單的更動,但希望它能讓你了解在comma的開發模型時進行更改是什麼樣的感覺,我們一直在努力改進。

以上就是comma訓練一個新的ai模型的範例。接下來回到Twitter的討論。



comma:特斯拉的幻影剎車很可能是由地面路況錯判引起的。例如您如果用雷達進行地面偵測,你會在橋樑之類的東西上得到錯誤訊息。所以乾淨的數據 = 好的模型。


comma:提醒一個悲哀的事情,我們仍然跟 Axel Nix ( @SmartpatPLC) 有訴訟。

想像一下,如果專利流氓都能被檢舉,美國經濟生產力就能提升了!打電話給你的國會議員或聘請說客之類的。這樣的改革有可能成真嗎?



comma轉推:迅速又有信心地對ML模型進行更新是保持領先的一個絕佳方法。comma從開發到部署的實踐,這種獨一無二的的做法值得借鏡。如果你還沒有做的話,comma的做法值得採用。

但你們如何在長期中防止過度內優化測試項目呢?


comma:我們要如何讓我們的模型從24小時變成24秒內訓練完成呢?


comma:駕駛是一種合作遊戲。

(在圍棋/撲克/Dota等兩人參與的零和遊戲中,有規則性的自我對戰RL(強化學習)會收斂出完美的策略。您只需要一個具有足夠容量/計算能力的可擴展演算法。但是,在*合作*遊戲中,單獨的RL可能無法與人類很好地配合,即使使用了*無限*的計算能力之後也是如此。)


那是因為合作遊戲,可能有許多不成文的約定,為了與人類玩得好,AI需要了解這些人類約定。語言就是其中一個例子。沒有人類數據的自我RL不會收斂於在具有交流的合作遊戲中使用語言。

這個部分有點深奧,就是說駕駛並不是一個個人遊戲,你要學會怎麼跟其他的人(車)互動,然後你要能識別道路上給人類看的標誌或是場景,那相當於是一種語言,道路與開車的語言。所以comma說駕駛是合作類遊戲,不是單機自我學習的遊戲。


這裡有個網路投票預測,到2030年之前,GH會不會自己成立晶片公司來跑它們的ai?結論是20%。

我個人認為機率是80%,只要IC設計公司還是保持一樣的態度,然後整個半導體產業持續產能吃緊,沒有公司會願意給comma ai這種有潛力的小公司更多資源。所以comma ai最後不得已只好自己設計晶片。這故事並不陌生,特斯拉HW3與HW4的SOC或apple M1都是類似這個情形下誕生的。



comma:接下來的兩個月你要做什麼?來我們位於聖地亞哥的 20,000 平方英尺的新辦公室,來設計和建造我們的CES展位吧! (費用 + 電子郵件請聯絡:alex@comma.ai )

意思是comma ai打算參加本屆的CES展,期待它們的表現吧。


comma:因為這則太受歡迎了,我們只好開始啟用另一個comma design的推特。來關注comma design來獲得熱門的設計與性感的裝飾(例如我們新辦公室的照片)。


我想有了comma的超級電腦,以後設計人員使用photoshop一定會光速快了。其實這就是標準的GH式幽默,不知道你看懂了沒有?哈。


comma:所有的神經網絡都是量化的,因此任何中間向量的通道容量都是有限的,你可以計算衡量它。(GH的意思是神經網路是有可分析性的,但是我們還未解決這個困難。)

通常是上限是32位元的通道,但我很好奇實務中的熵是多少。有人想過為一般模型測量它嗎?

我個人認為,這是GH在討論它們要把e2e訓練模型語言化以及透過統計來分析的一個概念,就像我們知道腦神經可以用,也知道腦神經不同區塊功能不同,但我們沒辦法利用神經網路的立體串聯結構來去分析邏輯的運作一樣。人腦如此,神經網路也是如此。


----------------------------------------------------------------------------------------------------------------

如果你是第一次來到這邊,歡迎加入下方社群,我都會在第一時間報導與解析Comma ai與openpilot的最新動態,快來一起follow吧!