聊聊我在 Google 無人車研究組的那些事

鑑於專案的高度機密性,很多話不能說,我唯一能透露的,就是兩條:同事們都是強者,然後都非常努力。老闆不怎麼主動管,但大家都明白如果事情做不完就得加班。
評論
評論

本文轉自中國合作媒體 36 氪。36 氪編者按:本文作者田淵棟,2005 年及 2008 年獲上海交通大學電子資訊及電氣工程計算機系學士學位及碩士學位,2013 獲得 Carnegie Mellon 大學機器人系博士學位,主要研究方向為電腦視覺,機器學習及最優化方法,在頂級會議上發表過多篇會議及雜誌論文,曾獲 2011 年微軟博士研究獎學金,獲 2013 年國際計算機視覺會議(ICCV)最佳論文提名獎。現供職於 Google X 實驗室 (Google X Lab) 無人駕駛汽車 (Google driverless car) 研究組,任研究員 / 軟體工程師職位。本文寫於 2014 年 1 月。

到 Google 無人車組全職工作已經有四個月了。寫一下感想。

鑑於專案的高度機密性,很多話不能說,我唯一能透露的,就是兩條:同事們都是強者,然後都非常努力。老闆不怎麼主動管,但大家都明白如果事情做不完就得加班,因為一個一個小發布(release)的最後期限(deadline)擺在那裡。節奏很快,不像是在大公司裡工作,反倒更像是在一個新創團隊裡忙碌。

這四個月感覺下來,Google[x] 實驗室有幾個很有趣的特點。其一是軟硬體結合極其緊密,這一點從已有的報導裡可以看出,不論是無人車 (Self-driving car),眼鏡 (Google Glass) 還是最近公佈的氣球無線網絡 (Loon) 及能測血糖的隱形眼鏡 (Iris),都是軟硬結合的產品。這直接導致的結果,就是我們每天面對的問題和之前在學術圈時思考的完全不同。

在學術圈,問題的已知條件和數據集都是給定的,我們要做的就是像解數學題一樣,鑽進去找到更好的解法,並在已知的數據集上和前人對比證明其有效性。但在 Google[x] 則完全不同,大專案(比如說開發無人車)擺在這裡,但已知條件、解決方案、使用何種硬體、如何分配資源,都是不確定的;唯一確定的,是要以最快的方式和最小的成本把它實現出來——讓一輛車能安全地自行其道,同時生產成本又最少。

在這樣的特定背景下,碰到一個難題,首先想的不是如何把它不計成本地解出來,而是問自己有沒有必要解它,能不能繞開它而實現目標?事實證明,在這樣高自由度的空間裡尋找一個特定的解決方案,幾乎總是能繞過學術界的難題,找到簡單易行的實用方法。這就像要發明能在道路上移動的機器人,不是絞盡腦汁去研究人類兩足的肌理,而是用容易控制又廉價的輪子代替;要設計飛機,不去模仿鳥類形態優美卻機理複雜的撲翼,而是使用固定機翼加噴氣動力。

其二是幾乎沒有專職的研究職位。所有人既是研究員 (Researcher),又是軟體工程師 (Software Engineer)。基本上每個人負責一個具體的方向,對這個方向自主地分析現存的問題,並不斷通過和同事討論提出新方案,最後評估方案的效果。就算是組裡的老闆(Manager),甚至是老闆的老闆,也要寫程式查錯誤完成具體工作,唯一的不同點,是他們對系統有更整體的理解,遇到問題能幫忙找到下屬找不到的角度。碰到許多任務同時需要完成的時候,能分清主次,棄卒保車,確保整個組的大方向正確。

對於從來沒有碰到過的新問題,思考新思路和寫程式開發是同時進行的,C++ 程式寫完就直接上產品去測試看效果如何,不行就分析研究再換一種,如此快速迭代直到找到好方案為止,如果一兩周里找不到好方案,那就認為這個問題是困難的,於是就要退一步思考,想辦法繞開它。

因為這個原因,諸如「寫程式和做研究的時間比例是多少」之類的問題就沒有什麼意義,因為完全看需要解決的是什麼問題,寫很多格式漂亮架構清晰的程式卻不能解決問題沒有意義,天馬行空地思考不在實際數據上跑也沒有意義,最重要的只是「解決問題」這四個字。

這種思路決定了研究風格是「具體問題具體分析」式的,有額外條件和額外資訊就盡量用上,不會花時間思考一般情況;「崇尚簡單方案快速出結果」式的,而不會使用精巧複雜卻不太直觀的數學理論,也不會花幾個月賭一個萬能算法。這種研究方式的缺點顯而易見,就是沒有辦法產生深遠及本質的成果,但是既然目標是利用人類現有的技術,去完成一個舉世矚目的新系統和新產品,我想不出來有其它更好的推動方式了。

其三是組內資訊交流的極端重要性。學術界強調鑽研問題,獨立工

作和原創性成果;業界強調合作,共同解決問題。一個人,特別是剛進來的新人,對整個系統的組成沒有深刻理解,也不去詢問同事,老闆給一個問題就按自己的想法單幹,結果發現三分之一工作和無人車目前急需解決的難點無關,三分之一工作已有人做出過類似工具,還有三分之一工作聽起來很有道理,自成一說,但是在實際數據上一跑效果很差。這些情況

是完全可能的。按學術界的思路,這些工作都可以成為不同風格的學術文章,但在我們這裡,全都是沒有用的。

而充分交流討論就能避免這類情況。有越多來自別人的資訊,就越能明確目標直入主題;越知道系統的優劣和目前的可用工具,就越能藉風使力,提高效率。有時候跨組間不經意的一兩句對話,少則抵得上幾小時或者幾天的辛勤勞作,多則改變整個組的行進方向。無人車組裡中國人非常非常少,因此英語的地位相應提高,實在是需要在業餘時間多加訓練才好。

對於這樣一個開創性專案,雖然已經取得了重要的進展,但還是有很多棘手的具體問題需要解決,每一個細節都決定成敗。並且,越接近最終目標就越為艱難,有時候為了有百分之一的效果提升,是不惜從頭再來,將原來的工作全部推翻的。所以說這個專案最後是否成功,還要看全體同事的聰明才智和勤奮努力,及一點點捉摸不定的運氣。

希望運氣

在我們這邊。

田淵棟 2014 年 1 月 23 日