遠東軼事:在Google無人駕駛汽車團隊的工作感想

發表於2014-01-21

在谷歌無人車組全職工作已經有四個月了。寫一下感想。鑑於專案的高度機密性,很多話不能說,我唯一能透露的,就是兩條:同事們都很牛,然後都非常努力。

我們組基本上是9點開始工作,然後晚上6點多走,老闆不怎麼主動管,但大家都明白如果事情做不完就得加班,因為一個一個小發布(release)的最後期限(deadline)擺在那裡,不能不幹。總的來說,比谷歌的其它部門要忙一點,節奏很快,不像是在大公司裡工作,反倒更像是在一個初創團隊裡忙碌。

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

google self-driving car

(伯樂線上配圖,圖片來自新華網

在學術圈,問題的已知條件和資料集都是給定的,我們要做的就是像解數學題一樣,鑽進去找到更好的解法,並在已知的資料集上和前人對比證明其有效性。但在Google[x]則完全不同,大專案(比如說開發無人車)擺在這裡,但已知條件,解決方案,使用何種硬體,如何分配資源,都是不確定的;唯一確定的,是要以最快的方式和最小的成本把它實現出來——讓一輛車能安全地自行其道,同時生產成本又最少。在這樣的特定背景下,碰到一個難題,首先想的不是把它死命解出來,而是問自己是不是有必要解它,能不能繞開它而實現目標?事實證明,在這樣高自由度的空間裡尋找一個特定的解決方案,幾乎總是能繞過學術界的難題,找到簡單易行的實用方法。這就像要發明能在道路上移動的機器人,不是絞盡腦汁去研究人類兩足的機理,而是用容易控制又廉價的輪子代替;要設計飛機,不去模仿鳥類形態優美卻機理複雜的撲翼,而是使用固定機翼加噴氣動力。

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

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

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

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

其三是組內資訊交流的極端重要性。學術界強調鑽研問題,獨立工作和原創性成果;但至少在無人車組,是鼓勵也必須時常和別人溝通的。一個人,特別是剛進來的新人,對整個系統的組成沒有深刻理解,也不去詢問同事,老闆給一個問題就按自己的想法單幹,結果發現三分之一工作和無人車目前急需解決的難點無關,三分之一工作已有人做出過類似工具,還有三分之一工作聽起來很有道理,自成一說,但是在實際資料上一跑效果很差。這些情況是完全可能的。按學術界的思路,這些工作都可以發(不同風格的)文章,但在我們這裡,全都是沒有用的。

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

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

希望運氣在我們這邊。

相關文章