# 喬治·霍茲：Comma.ai、OpenPilot 與自動駕駛

> 駭客出身的創業者談用低成本方案做輔助駕駛、開源 OpenPilot 與自動駕駛的技術路線。

- 原標題：George Hotz: Comma.ai, OpenPilot, and Autonomous Vehicles
- 期數：特別節目
- 釋出日期：2019-08-05
- 嘉賓 / 主題：喬治·霍茲
- 網頁版：https://lex.qiaomu.ai/tw/ep/george-hotz/
- 官方頁面：https://lexfridman.com/george-hotz/
- 精讀字數：約 7782 字（閱讀約 17 分鐘）

> 本文為 lex.qiaomu.ai 基於原始訪談的 AI 改寫中文精讀，非官方翻譯；引用請註明出處並連結網頁版。

人類在高速上開一個小時，平均會碰到車道線兩次。openpilot 一次都不會。

喬治·霍茲（George Hotz）說這句話的時候語氣很平，就像在陳述一個再普通不過的工程指標。但這個數字裡藏著他對整個自動駕駛行業最尖銳的判斷：**今天所有真正在改變普通人生活的自動駕駛功能，本質上有且只有一個，就是車道居中。**

他是 comma.ai 的創始人。公司 12 個人，燒錢速度每月 20 萬美元，收入每月 10 萬美元。他對這個行業的評價是：Waymo 那套東西，是一個更貴、更慢的 Uber。

他的心態也值得說一句。當被問到“給你 10 億美元你會做什麼”時，他的回答是“我不知道怎麼規模化，我只是想把系統做得更好”。在一個人人都在講宏大敘事的行業裡，這種回答反而顯得不正常。

## 模擬、駭客與看穿事物

訪談一開場，Lex 問了個老問題：我們是不是活在模擬裡。

霍茲的回答很乾脆：是，但這件事可能永遠無法證偽。他舉的例子是虛擬機器。一個設計得足夠好的虛擬機器，執行在裡面的程式根本不知道自己跑在虛擬機器上。他甚至提到自己離開 comma 期間學過 Coq，一種依賴型別（dependently typed）的數學證明語言。用這種語言寫的程式碼，只要編譯器透過，就天然是正確的。

真正有意思的地方在後來。Lex 反問：任何足夠複雜的系統都會有進出的漏洞，這是駭客的基本常識。

霍茲沒有硬撐。他說，如果這個模擬有一個排定的結束時間，那它就不需要追求完備性。而看起來它確實有，熱力學第二定律就是那個終止時間。

這段對話的價值不在答案。霍茲的思維習慣在這裡露得很清楚：**他不問“這個說法對不對”，他問“這個說法在什麼條件下成立”。**

> “你學到的是不要按別人說的那樣去理解事物，而是看它實際在做什麼。”（喬治·霍茲）

這句話是他整個職業生涯的底色。2007 年 8 月他解鎖第一臺 iPhone，用的不是軟體漏洞，是一根實體地址線。他自己承認，那時候放出來的程式碼“糟糕透頂”，用 C 寫的一個破碎狀態機，因為那時他還不會程式設計。

他真正學會程式設計，靠的不是上課。第一次去 Google 實習，做街景的硬體，寫配套的軟體庫，程式碼寫得一塌糊塗，但有他尊重的人直接告訴他：別這麼寫。他說，光拿到反饋不夠，真正的轉折點是他想做一個能單步回退 ARM 二進位制的工具，因為他受不了一邊看偵錯程式、一邊猜 CPU 在幹什麼。

## 寫了四遍的 Kara

這個工具後來叫 Kara，全稱 timeless debugger，中文一般譯作時無損偵錯程式。它能記錄程式執行過程中計算機狀態的變化，往前回放和往後回退一樣容易。用他的話說，就像給計算機裝了 Git，每一次記憶體訪問都是一次提交。

他說，這個工具他寫了四遍。

第一遍很糟，第二遍很糟，第三遍在 Facebook 的時候“勉強能用”，第四遍是 2014 年再次去 Google 實習時寫的，那一次他終於覺得“這個可以用了”。

這個故事值得單獨拎出來，因為它解釋了他後來所有的工程判斷標準。**他不相信一次成功的產物，他相信迭代的次數。**後來他在 comma 寫了一個 200 行的分散式檔案系統，替代那些動輒上萬行的開源方案。他說那 200 行的質量之所以好，是因為那是他寫的第四個版本，前面三個全扔了。

同一套邏輯也解釋了為什麼他說話那麼不留情面。他看過太多系統，知道真實的質量分佈長什麼樣。

## 他為什麼說 Python 撐不住大專案

霍茲在 Twitch 上直播寫程式碼出了名，打字極快，切視窗像打遊戲。Lex 說自己看他的直播時常常開著當背景音，因為看著一個人高速幹活本身就讓人有動力。

霍茲承認自己在鏡頭前誇張了。他說自己的風格有明顯短板：讓一個沒文件的 API 跑起來，他能極快搞定，因為他的辦法就是不停往上扔東西直到它工作。如果讓他把一個向量旋轉 90 度再沿 XY 平面翻轉，他能瞎寫兩個小時出不來，因為這種事需要拿張紙想清楚。

然後他談了一段很實在的技術判斷。openpilot 裡有大量 Python 程式碼，但他現在明白為什麼 Python 撐不起大型程式碼庫：**沒有型別檢查，編譯器什麼都告訴不了你。**拼錯變數名，lint 有時候能抓到，型別錯誤卻完全抓不到。他的原話是，編譯器基本上幫不上忙。

他喜歡依賴型別的語言，但吐槽那些語言的語法停留在 80 年代。他對 JavaScript 生態的評價更狠：npm 把一個包從 0.2 更新到 0.5，你的 Babel 就壞了，而 Babel 是把 ES6 轉成……不能跑的東西。他問了個很樸素的問題：為什麼我的 JavaScript 還需要被編譯一次？

他的結論倒是很務實。他說 JavaScript 會像蟑螂一樣活下去，因為它在瀏覽器裡，而且快，而瀏覽器可能是未來計算的主要場所。comma 自己的日誌分析工具全是 JavaScript 寫的，因為他認為網頁是目前最好的 UI 工具包，沒有之一。

## 馬斯克給了他一筆 1200 萬美元的賭約

2015 年前後，一個朋友跟他說，今天最酷的應用問題是自動駕駛，你要不要見見馬斯克。當時特斯拉還在用 Mobileye，馬斯克在找替代方案。

給出的條件很直接：做出 Mobileye 同等水平的視覺系統，1200 萬美元；每延遲一個月，扣 100 萬。

霍茲當時的想法是，就算做 10 個月，也還有 200 萬，不虧。他心裡對這個任務的定義很簡單：不解決 L5，把車道保持做好。他看過 Mobileye 的輸出，覺得那不過是兩條車道線加一輛前車的位姿，採集資料集、訓個網路，幾周的事。

會面裡他犯了個錯。他建議在每一個攝像頭後面掛一顆 GPU，讓計算留在本地。

走出會議室十分鐘後他自己就意識到這主意蠢透了。正確的做法是把所有攝像頭的資料匯到一個大 GPU 上。

> “平時我說蠢話，人們往往注意不到，我可以自己圓回來。但 Elon 當場就指出來了。”（喬治·霍茲）

他第二次見馬斯克時準備充分得多。但合同最後還是黃了，原因跟那次失言無關。

真正讓這段對話有分量的是後半段。馬斯克後來說，做 Autopilot 比“一個喬治·霍茲”複雜得多，需要兩年時間和一個十人團隊。霍茲的回應是：四年過去了，我這裡有 12 個人，我覺得還得再來兩年。

這句自我修正比任何豪言壯語都可信。

## 一千零二十四維的感知輸出

訪談裡最硬的一段，是霍茲和 Lex 關於「感知和規劃之間能不能畫一條線」的爭論。

Lex 是機器人學科班出身，他的直覺是：感知輸出一個狀態向量，規劃器在這個向量上做搜尋，這是標準做法。他甚至舉了 Waymo 的例子，說 Waymo 的模擬器能把這兩層分開，回放感知資料去測規劃器。

霍茲的回答是：**不存在一個人類可理解的、把感知和規劃分開的狀態向量。**

他舉了個例子。場景裡有一叢灌木，人類看到這叢灌木，會下意識知道後面可能藏著車。一份“可行駛區域 + 物體列表”的規格文件裡，沒有這個資訊。你說那就加一個遮擋區域欄位，他可以再舉十個你加不進去的例子。

他的推論是：**如果你的感知系統輸出能被寫成一份規格文件，那這份規格就是不完整的。**

然後他說了 comma 實際在做什麼。他們的感知輸出是一個 1024 維的向量，裡面每一個維度代表什麼，沒人知道。它是在真實資料上端到端學出來的。

Lex 追問：那你連模擬都沒法做。霍茲說，對，我們現在的模擬器只用來測試，一旦開始用它訓練，就徹底不測了。他把模擬器分成兩類，一類是完全虛擬的，一類是載入真實路測資料回放的。對前者，他的評價是：你並沒有解決計算機視覺問題，你只是把問題換成了計算機圖形學問題。而你可以把圖形做得極其逼真，但你做不出真實的人類行為模型。**開車的定義，就是人類開車時的樣子。**這一點沒法在模擬裡憑空造出來。

## 三個駕駛問題

霍茲把駕駛拆成了三層，這是整場訪談裡結構最清晰的一段。

**第一層是靜態問題。**假設路上只有你一輛車，剩下的就是地圖加定位。農場裡的自動駕駛之所以早就跑起來了，就是因為它們只需要處理這一層，可以靜態排程每一臺拖拉機的路徑，保證它們永遠不會撞上。這一層靠鐳射雷達和 HD 地圖可以做到釐米級，問題基本可解。

順帶一提，他對鐳射雷達的態度是：是柺杖，而且不是根好柺杖。但他承認，如果你要釐米級定位，沒有鐳射雷達確實很難。他用鐳射雷達和視覺融合能把可靠性做到十萬英里量級，再配一個退化保護，保證自己永遠不會在“偏得很遠卻不自知”的狀態下繼續跑。

**第二層是動態問題。**路口停著一輛車，你不知道它下一秒還在不在，所以不能寫進地圖，必須實時檢測，還要預測它接下來會怎麼動。這一層需要行為模型，但依然是可以做的。

**第三層是反事實問題。**你的動作會改變別人的行為。你併線，旁邊的車會讓；你不併，它就走了。霍茲說這一層他目前不知道怎麼解，唯一的思路是等車隊規模起來之後，在真實世界裡做強化學習。

> “靜態和動態，我們現在的橫向方案可以完全覆蓋。反事實這一層，我還沒有辦法，唯一的辦法是在世界上做強化學習，因為其他智慧體是人。”（喬治·霍茲）

這個三層拆解的價值在於，它把“自動駕駛難在哪”這個模糊問題變成了三個可以分別判斷難度的問題。大部分公司宣稱的進展，其實都還停在第一層和第二層。

## 變道的秘密：一個位元位

Lex 問，怎麼讓變道感覺自然。他的吐槽很具體：導航輔助駕駛（Navigate on Autopilot）每次變道都一模一樣，機械得像程式，因為你確實在跑一段寫死的策略，一個工程師在房間裡寫完，去 280 號公路上測了幾次。

霍茲說他們已經解決了橫向控制。做法樸素到讓人意外。

模型有一個輸入位，表示當前是否在變道。訓練端到端模型時，這個位被人工置位，置位的方式是全自動的：車道線穿越的瞬間打標籤，準確率大概 95%，不需要精確。測試時想要變道，就把這位撥到 1。

這樣學出來的變道，會繼承訓練資料裡所有人類變道的微妙差異。有的人變道慢，有的人變道快，模型自動學會根據場景決定用哪一種。

那怎麼處理“有些人的變道本身就是爛的”這個問題？

他的假設是：**所有好司機好在同一個地方，所有爛司機爛得各有各樣。**好司機的變道會聚成少數幾個簇，爛司機的變道散落各處。所以只要學到那個主簇，就等於學到了“好”這件事。他說已經看到一些資料支援這個假設。

如果這個假設成立，那麼資料清洗這件苦活可以被自動完成：不用人工標註誰開得好，聚類本身就會把好司機篩出來。

## Waymo 的三年領先，換不來一個網路效應

聊到商業模式，霍茲的判斷變得很不客氣。

他承認 Waymo 技術領先，如果那套棧能跑通，大概領先三到五年。但他認為 Waymo 為了這個領先燒掉的錢太多，回收週期長到不划算。

更根本的問題是：**L5 自動駕駛沒有網路效應。**

他拿 Uber 做對比。Uber 在奧斯汀開城，必須同時吸引司機和乘客，兩邊互相依賴，誰先走誰虧，所以有先發優勢和切換成本。就算新玩家只抽 5% 而不是 10%，也沒人願意換，因為切換成本大於這點差價。

自動駕駛不是這樣。你有資本，有乘客，沒有司機。想鋪一個新的城市，買一批現成的自動駕駛車投進去就行。**這更像共享滑板車，誰有支票本誰就能鋪滿一座城市。**結果是十家公司在同一個城市互相壓價，誰都不賺錢。滑板車本身就是個糟糕的生意，因為滑板車對被投放到哪座城市沒有話語權。

他也順帶講了 Cruise。GM 花 10 億美元買下 Cruise，他的評價是：這是 GM 給 Waymo 買的一份保險。如果 Waymo 的技術跑通了，Google 最多壟斷三年，之後 GM 至少還有牌可打。這 10 億買的是三年時間，勝負另算。

至於融資和 BD，他的態度更直接。有人建議他把資料賣給車廠，做成聯盟，他說這個想法理論上很好，實際上對方會派一個 BD 來跟他開會，而那個人聽不懂他說的絕大部分詞。他的條件是：一封三行的郵件，寫明願意付多少錢、接受什麼隱私條款，他就接。但現實裡那封郵件不會長這樣。

他提到 Mobileye 2015 年前後的研發投入在晶片公司裡排很低，但你去看人員構成，全是 BD，因為車廠太難打交道了。

## 駕駛員監控這件事，他和馬斯克正面對上了

霍茲對 L2 系統的態度，比很多人想的要保守。

他說在 1.0 版本之前，comma 的產品不會叫消費級產品，因為駕駛員監控還沒做到“無法作弊”。他剛剛招了一個全職的人專門做這件事，目標是能檢測到手機入鏡、能判斷你是不是在睡覺。他承認現在的攝像頭解析度不夠，下一代要換魚眼。

他還提了一個細節，我覺得是整個產品哲學裡最關鍵的一點：**他們把駕駛員監控的資料包改名成了“駕駛狀態”。**車的狀態包叫 car state，人的狀態包叫 driver state。兩者是並列的。

關於接管體驗，他的批評很具體。Autopilot 取消需要按那個沒人知道在哪的取消鍵，所以大家都去踩剎車。但很多時候你不想剎車，你想加速。如果你用方向盤去取消，整個過程會很彆扭。Super Cruise 的問題是狀態轉換：你踩剎車退出，它掉回普通自適應巡航，車還在自己加速，感覺很奇怪。

他自己的設計是：踩油門或剎車即退出，用扭矩感測器檢測手在不在方向盤上，但**不會因為扭矩變化而退出。**方向盤扭矩被用來做兩件事，檢測在位和觸發退出，這兩件事混在一起就會出問題。

他對特斯拉缺席駕駛員監控這件事評價最重：

> “他講的話，有時蠢得離譜，有時又完全正確。駕駛員監控這個，是蠢的那一類。”（喬治·霍茲）

理由很硬：當系統出錯頻率降到每千英里一次，人的注意力必然衰減，這時候不監控駕駛員就是不負責任。他說自己開車來這裡的時候，在一輛毫無自動化的車裡困得打瞌睡。人本來就是會走神的。

## 關於安全，他有一句得罪人的話

霍茲對安全工程師的評價很直接：他被這些人搞得精疲力竭。他認為把安全置於創新之上到了某個程度，長期來看反而會殺死安全。

但他自己的安全模型寫得很清楚，就三條：駕駛員必須時刻注意；駕駛員必須隨時能接管；系統永遠不會在快到你反應不過來的時間尺度上動作。

第三條是靠具體限制實現的：扭矩限制、剎車限制、加速度限制。這些程式碼全部開源，而且現在已經符合 MISRA 規範。他說自己一開始也不待見 MISRA，讀了之後開始尊重它，因為寫那些規範的人是真正的電腦科學家，你從他們的用詞就能看出來，他們會在文件裡討論某個條件是不是“可判定”的。

關於安全與資訊保安的關係，他有個漂亮的比喻。**安全（safety）是在坑周圍拉一條警戒線，讓人別不小心走進去；資訊保安（security）是在坑周圍立十英尺高的鐵絲網，讓人根本爬不進去。**他的推論是：一個不可靠的系統，一定不安全。

所以車必須始終能用本地感測器做出安全動作，而本地感測器必須是硬連線的。他對 V2X 的評價是災難，因為那要求通訊雙方同時對。他自己更偏愛蜂窩車聯網，理由是車裡本來就有網際網路，繞開擁堵這類功能很實用，但那只是體驗最佳化，絕不能作為安全兜底。

至於遠端接管，他的判斷是：如果安全模型在設計上依賴一條通往車輛的常連鏈路，那這個模型就是不成立的。

## 倫理問題，他用一個玩笑解決了

關於電車難題，霍茲說 comma 的程式碼裡真的有一個 alert，叫“檢測到倫理困境”。這個 alert 從來沒被觸發過，因為系統還不知道怎麼檢測倫理困境。

但他說，我們是 L2 系統，所以我們會退出，把這個決定交給人。

這個回答聽起來像在耍賴，其實點出了一件事：**電車難題之所以流行，是因為它是那種“所有人都能有意見”的問題。**你問一屋子人要不要用 SQL 棧，不搞技術的人沒意見；你問他們辦公室刷什麼顏色，每個人都有強烈的偏好。倫理討論很多時候在填這個空缺，真實的工程約束還在原地。

## 錢、女友、奇點

訪談後半段轉到了個人層面，這部分反而更耐看。

comma 的長期商業計劃，霍茲說他在 2017 年就想明白了：**做成一家車險公司。**邏輯閉環很漂亮。如果 openpilot 讓駕駛安全翻倍，那麼 comma 手裡握有全網最好的駕駛行為資料集，知道誰開得最安全。它可以只給安全的人保險，把不安全的人擠到別家去，而別家只能收高價。市場會因此自我強化地分化成兩半。

關於工作，他澄清了之前說過的一句“生活就是工作”。他說那是半開玩笑，因為採訪前他剛跟人吃完飯。他真正的意思是，工作給了他生活的意義，但他不認為每一分鐘都該工作。他認為一天干 12 小時的人應該想想怎麼幹得更聰明，而不僅僅是更久。

關於感情，他承認自己說“期待有個女朋友”這句話是認真的，無論在淺層還是深層意義上。淺層是 VR 體驗，他說 VR 妓院快來了，而且會很酷。深層是：

> “我真的很想愛上一個機器。”（喬治·霍茲）

他解釋了這個想法的形狀。往大腦裡下載維基百科那種腦機介面，他不相信。他想象的是一種關係：有一個東西在為你構建一個極其精密的模型，在那個模型上跑各種模擬，推演不同選擇會導致什麼未來，然後決定該對你說什麼，把你引向某條路徑。他說自己不想知道那些模擬有沒有意識。

這段話聽起來很科幻，但它其實在回答“什麼是親密關係”：一個足夠了解你的人，提前替你想過所有分支。

然後是奇點。他給出了具體的演算法。

今天你能用大約 100 萬美元買到相當於一個人的算力。他估算人類大腦大概是 20 petaflops，而一張 TPU 號稱 100 petaflops，這還是比較寬鬆的估計。也就是說，100 萬美元大概能買到 5 個人的算力。

關鍵不在單點，在總量。世界上人類的總算力隨人口增長，非常緩慢。機器的總算力指數增長。當世界上大部分 FLOPs 來自矽而不是生物的時候，就是那個交叉點。**他給出的年份是 2038，因為那是 32 位 Unix 時間戳溢位的年份。**這句話一半是玩笑，一半是認真的。

最後 Lex 問他，五年後“贏”是什麼樣子。

他的回答借用了 Schmidhuber 的壓縮理論。一個智慧體被扔進世界，數學上最理想的行為是構建一個對世界最大程度壓縮的模型，並且讓探索本身去最大化“過去被壓縮程度的導數”。他說自己把這個當成了個人目標函式。

> “我現在還在搞清楚這個遊戲是什麼。一旦我知道了，我就知道怎麼贏了。”（喬治·霍茲）

他說自己是一個被放進世界的智慧體，還不太清楚目的是什麼。也許未來他會被告知一個真正的目的，也許他會自己決定一個。在那之前，他能做的就是把不確定性降下去。

## 值得帶走的幾件事

這場對話資訊密度很高，但真正能拿來用的東西不多。如果一定要挑，是這幾條：

- **判斷一個技術敘事，先看它今天創造了什麼價值。**霍茲對自動駕駛行業的整套批評，核心就一句：車道居中今天就在減輕人的疲勞，L5 計程車今天還沒有。這個標準可以用在任何被過度承諾的技術上。
- **看一個系統時，別信文件，看它實際在做什麼。**這是他做駭客留下的習慣，也是他判斷一切系統的預設姿勢。
- **如果一個模組的輸出能被寫成規格文件，那這份規格就是不完整的。**這條不只適用於自動駕駛的感知層，也適用於任何你想把複雜能力切成兩半的地方。切得越乾淨，丟的資訊越多。
- **重要的東西，寫到第四遍再拿出來。**他的 200 行檔案系統、他的 Kara 偵錯程式，都是扔了三版之後的結果。第一版能跑，和第一版能用，中間隔著三次重寫。
- **規模化的瓶頸常常藏在溝通成本里。**他不賣資料給車廠，原因跟想不想賺錢無關，是那需要跟一個聽不懂他說話的人開會。判斷一件事該不該做時，把溝通成本算進去，很多決策會變得清晰。
- **如果你的安全模型依賴一條常連的鏈路，那這個模型不成立。**這條對自動駕駛成立，對任何關鍵系統也成立。冗餘要多出來的，是不依賴任何外部條件的那條路。

最後留一個觀察。整場訪談裡，霍茲承認自己可能判斷錯誤的次數，比大部分人在同等長度的對話裡多得多。他說自己可能對整個行業的判斷是錯的，說 Chris Urmson 那些人是他真心佩服的，說第二次見馬斯克時自己準備得更充分。他對自己“能把東西做出來”這件事很自負，對自己“觀點一定對”這件事則沒那麼篤定。

這大概是這期播客最值得學的地方。
