關(guān)閉

澳際學(xué)費(fèi)在線支付平臺

百度前員工在美國讀博這五年對深度學(xué)習(xí)的思考

剛剛更新 澳際教育 編輯: 瀏覽次數(shù):1676 移動端
虎嗅注:本文作者李沐,前百度員工,大規(guī)模機(jī)器學(xué)習(xí)和優(yōu)化算法等方面的大牛,在別人繼續(xù)在職場高歌猛進(jìn),或者創(chuàng)業(yè)淘金的時候,毅然決然選擇了另一條路:跑去卡內(nèi)基梅隆大學(xué)(Carnegie Mellon University,簡稱CMU)讀博士,師從機(jī)器學(xué)習(xí)專家Alex Smola,并且一去就是五年。

他在今天發(fā)表在知乎上的文章中說,“人一生要工作五十年,為什么不花五年來追求下理想和情懷呢?”倒是也沒耽誤,在完成了最后一個博士報告后,沒有留戀,就踏上了回國的航班。

他說:“回想過去的五年,是折騰的五年,也是自我感悟和提升的五年。這里我嘗試記錄這五年主要做過的事情和其中的感想,希望對大家有所啟發(fā)?!币韵率撬?000多字長文,希望對每一個看到的人都有啟發(fā),讓你的情懷和理想都更豐滿一些。

前言

12年8月提著一個行李箱降落在匹茲堡機(jī)場。沒找住的地方,也不知道CMU應(yīng)該怎么去。對未來一片迷茫,但充滿樂觀。 現(xiàn)在,剛完成了博士期間最后的一場報告,在同樣的機(jī)場,不過是在等待離開的航班。

回想過去的五年,是折騰的五年,也是自我感悟和提升的五年。這里我嘗試記錄這五年主要做過的事情和其中的感想,希望對大家有所啟發(fā)。

第0年:3/11-8/12

我第一次申請美國的博士是在11年,但拿到的offer并沒有特別合適的導(dǎo)師,于是就北上投奔文淵去了。 我當(dāng)時在百度商務(wù)搜索部門做廣告的點(diǎn)擊預(yù)估。具體是使用機(jī)器學(xué)習(xí)來預(yù)測一個廣告是不是會被用戶點(diǎn)擊。 這時候離“大數(shù)據(jù)”這個詞流行還有兩年,但百度那時候的數(shù)據(jù)即使現(xiàn)在來看仍然是大的。我的任務(wù)是如何高效的利用數(shù)百臺機(jī)器快速的在數(shù)十T的數(shù)據(jù)上訓(xùn)練出模型。

當(dāng)時產(chǎn)品用的算法基于LBFGS,我于是想是不是可以換個收斂更快的算法。沒幾天就找到個不錯 。但實(shí)現(xiàn)上發(fā)現(xiàn)了各種問題,包括性能,收斂,和穩(wěn)定性。而且那時有的就是一個裸的Linux和很老版本的GCC,什么都是需要從頭開始寫?;舜罅繒r間做系統(tǒng)優(yōu)化,算法改動,和線上實(shí)驗(yàn),最后一年后在整個廣告流量上上了線。

現(xiàn)在再回顧會覺得整個一年時間都在打磨各種細(xì)節(jié)上,有時候?yàn)榱?%的性能提升花上上千行代碼。這些都導(dǎo)致算法過于復(fù)雜,有過度設(shè)計之嫌。但深入各個細(xì)節(jié)對個人能力提升很大,而且很多遇到的問題成為了之后研究方向的來源。一些算法上的思考曾寫在這里,當(dāng)時候深度學(xué)習(xí)剛剛出來,冥冥中覺得這個應(yīng)該是大規(guī)模機(jī)器學(xué)習(xí)的未來,不過真正開始跟進(jìn)是好幾年以后了。

11年12月中的時候突然心血來潮隨手把材料重新寄了一遍,就選了CMU和MIT,結(jié)果意外收到了CMU的offer。有天在百度食堂同凱哥(余凱)和潼哥(張潼)吃飯,我說收了CMU offer,在糾結(jié)去不去。他們立馬說去跟Alex Smola啊,他要加入CMU了,我們給你引薦下。

記得是離開的前一天才開始打包行李,早上去公司開完會,中午離職,跟小伙伴打招呼說出個國,然后就奔機(jī)場了。那天北京天氣特別好,完全不記得前一天霧霾剛爆了表。

第一年:9/12-8/13

第一年的主要事情是熟悉環(huán)境和上課。CMU課程比較重,博士需要學(xué)8門課,每門課工作量巨大。而且要求做兩門課助教,做助教比上課更累。

這一年上的課中對我最有用的是“高級分布式系統(tǒng)”。之前在上交ACM班的時候已經(jīng)學(xué)過很多質(zhì)量都還不錯課,純知識性的課程一般對我?guī)椭淮?。但這門課主要是讀論文,然后大家討論。不僅僅是關(guān)于知識,很多是對設(shè)計理念的領(lǐng)悟。大家知道對于系統(tǒng)而言,設(shè)計是一門藝術(shù)而不是科學(xué),這是設(shè)計者審美和哲學(xué)理念的體現(xiàn)。同時系統(tǒng)界歷史也是由一波又一波的潮流組成,了解歷史的發(fā)展以及其中不斷重復(fù)的規(guī)律非常有意義。

那年這門課上課老師是Hui Zhang(神人之一,20多歲就在CMU任教了,學(xué)生包括了Ion Stoica,他是Spark作者M(jìn)atei的導(dǎo)師),他有非常好的大局觀,對于“Why”這個問題闡述非常到位。我是通過這門課才對分布式系統(tǒng)有了比較清晰的認(rèn)識。兩年之后我偶然發(fā)現(xiàn)我的一篇論文也在這門課的閱讀列表里了,算是小成就達(dá)成 。

除了上課,更重要是做研究。我去CMU的時候Alex那時還在Google,而且沒經(jīng)費(fèi),所以把我丟給了 Dave Andersen。于是我有了兩個導(dǎo)師,一個做機(jī)器學(xué)習(xí),一個做分布式系統(tǒng)。

前面半年都是在相互熟悉的過程。我們每周會一起聊一個小時。前半年因?yàn)锳lex不在,所以我們只能視頻。Alex那邊信號經(jīng)常不好,而且他有德國和澳大利亞口音,外加思維跳躍,經(jīng)常我聽不懂他說啥只能賣萌傻笑。還是靠著Dave不斷的打字告訴我Alex說了什么才度過了前幾次的會。

兩個導(dǎo)師風(fēng)格迥異。Alex是屬于反應(yīng)特別快,通常你說一點(diǎn),他已經(jīng)想好了接下來十點(diǎn),要跟上他節(jié)奏很難。一般拋出問題的時候他就想好了好幾個解決方法。這時候要證明自己的想法比他的更好不容易,需要大量的溝通和實(shí)驗(yàn)數(shù)據(jù)支撐。我想我大概是花了兩年證明了在某些方向上我的方案一般更好,所以這時候他就不那么hands-on了。

Dave不會給很多想法,但會幫助把一個東西理解透,然后講得很清楚。因?yàn)槲已芯糠较蛑饕菣C(jī)器學(xué)習(xí)上,基本上前兩年基本都是我在教Dave什么叫機(jī)器學(xué)習(xí),而且是盡量不用公式那種教法。

我的第一個研究工作是關(guān)于如果劃分?jǐn)?shù)據(jù)和計算使得減少機(jī)器學(xué)習(xí)求解中的網(wǎng)絡(luò)通訊量。Alex體現(xiàn)了他的強(qiáng)項(xiàng),幾分鐘就把問題歸納成了一個優(yōu)化問題,然后我們?nèi)髯蕴岢鲆粋€解法。我做了做實(shí)驗(yàn)發(fā)現(xiàn)Dave的算法更好。接下來兩個月把算法做了很多優(yōu)化,然后又做了點(diǎn)理論分析就把論文寫了。

可惜這個想法似乎有點(diǎn)超前,雖然我們一遍又一遍的改進(jìn)寫作,但投了好幾個會審稿人就是不理解,或者覺得這個問題不重要。那個時候?qū)W術(shù)界已經(jīng)開始吹噓“大數(shù)據(jù)”,但我覺得其實(shí)大部分人是不懂的,或者他們的“大數(shù)據(jù)”仍然是幾個GB的規(guī)模,烤U盤需要十來分鐘的那種。

這是我在CMU的一個工作,我覺得挺有用,但卻是唯一沒能發(fā)表的。

當(dāng)時跟我坐同一個辦公室的是Richard Peng,他做的是理論研究。我經(jīng)常跟他討論問題,然后有了些想法合作了一個工作。大體思想是把圖壓縮的快速算法做到矩陣的低秩近似上。這個工作寫了三十頁公式但沒有任何實(shí)驗(yàn),我主要當(dāng)做寫代碼間隙的悠閑娛樂,不過運(yùn)氣很好的中了FOCS。

坦白說我不是特別喜歡純理論這種,例如在bound的證明中很多大量的項(xiàng)直接丟掉了,導(dǎo)致我覺得bound特別的近似。對于做系統(tǒng)的人來說,最后拼的是常數(shù)。這個工作中這種大開大合的做法我覺得很不踏實(shí)。所以我覺得以后還是應(yīng)該做更實(shí)在點(diǎn)的東西。

在CMU回到了去百度前的一周七天工作無休的節(jié)奏。每周至少80個小時花在學(xué)校。如果累了就去健身房,我一般晚上12點(diǎn)去。不僅是我一個人,大家都很努力,例如凌晨的健身房,早3點(diǎn)的辦公室,四處都可以見到中國或者印度學(xué)生。我那時候的室友田淵棟花在學(xué)校的時候比我多很多。

那一陣子有讀了很多關(guān)于優(yōu)化的文章。其中對我啟發(fā)最大的是Bertsekas寫于80年代末的那本關(guān)于分布式計算的書。此書可以認(rèn)為是MIT控制領(lǐng)域黃金一代研究成果總結(jié),換到現(xiàn)在仍然不過時。

受啟發(fā)我轉(zhuǎn)去研究異步算法,就是分布式下不保證數(shù)據(jù)的及時性來提升系統(tǒng)性能。我基于在百度期間做的算法,做了一些改進(jìn)和理論分析,然后投了NIPS。

投完NIPS就動身去了Google Research實(shí)習(xí)。那時候Google Brain成立不久,在“宇宙的答案”42樓,包括Jeff Dean,Geoffrey Hinton,Prabhakar Raghavan好些大牛擠在一起,加起來論文引用率能超80萬。

Alex跟我說,你去讀讀Jure Leskovec的文章,學(xué)學(xué)人家怎么講故事。我在Google也嘗試用了些用戶GPS數(shù)據(jù)來對用戶行為建模??墒菍懳恼碌臅r候怎么也寫不出Jure的那種故事感,發(fā)現(xiàn)自己不是那塊料。這篇文章因?yàn)橛昧擞脩魯?shù)據(jù),恰逢Snowden讓大家意識到隱私的重要性,歷經(jīng)艱辛刪了一半結(jié)果Google才允許發(fā)出來。有些累覺不愛。

不過在Google期間我主要時間花在研究內(nèi)部代碼和文檔上。Google的基礎(chǔ)架構(gòu)很好,文檔也很健全。雖然沒有直接學(xué)到了什么,但至少是開了眼界。

第二年:9/13-8/14

這學(xué)期上了Tuomas Sandholm的機(jī)制設(shè)計,此乃另一大神,例如最近德州撲克贏了專業(yè)選手,之前開公司也賣了上億。不過這門課我是完完全全沒學(xué)懂,連承諾的課程大作業(yè)都沒怎么做出來。之后的兩年里我一遇到Tuomas他都會問下有什么進(jìn)展沒。我只能遠(yuǎn)遠(yuǎn)看見他就繞開。

NIPS被拒了,發(fā)現(xiàn)審稿人不懂線程和進(jìn)程的區(qū)別,有點(diǎn)沮喪。隔壁實(shí)驗(yàn)室一篇想法類似但簡單很多的論文倒是中了oral,所以那陣子壓力很大。Alex安慰說這種事情常有發(fā)生,看淡點(diǎn),然后舉了很多自己的例子。

之后想了想,一篇好文章自然需要有足夠多的“干貨”,或者說信息量, 但一篇能被接受的文章需要滿足下面這個公式:

文章的信息量 / 文章的易讀性 < 審稿人水平 * 審稿人花的時間
對于機(jī)器學(xué)習(xí)會議,因?yàn)橥陡辶看?,所以審稿人很多自然平均水平就會下降。而且很多審稿人就花半個小時到一個小時來讀文章,所以公式右邊數(shù)值通常是很小,而且不是我們能控制。

如果文章的信息量不大,例如是改進(jìn)前面工作或者一些簡單的新想法,那么公式成立的概率很大。而對于信息量大的文章,就需要努力提升易讀性,包括清晰的問題設(shè)定,足夠的上下文解釋等等。而前面投的那篇NIPS,以及更早的那個被拒工作,就是因?yàn)槲覀兗僭O(shè)了審稿人有足夠多的相關(guān)專業(yè)知識,而我們?nèi)M(jìn)了太多干貨使得大家都讀糊涂了。

即使對于已經(jīng)發(fā)表的文章,上面那個公式同樣可以用來衡量一篇論文的引用率。例如經(jīng)常見到干貨很多的文章沒有什么人引用,而同時期的某些工作就是考慮了其中簡單特殊情況結(jié)果被大引特引。

接下來的半年我主要在做一個通用的分布式機(jī)器學(xué)習(xí)框架,是想以后做實(shí)驗(yàn)方便些。名字就叫parameter server,沿用了Alex 10年論文提出的名字?;撕芏鄷r間在接口設(shè)計上,做了好幾個版本實(shí)現(xiàn),也跑了些工業(yè)界級別的大規(guī)模的實(shí)驗(yàn)。

不過真正花了我大量時間的是在寫論文上。目標(biāo)是把這個工作投到OSDI上,OSDI是系統(tǒng)界兩大會之一。我們預(yù)計審稿人跟Dave兩年前狀態(tài)差不多,不會有太多機(jī)器學(xué)習(xí)和數(shù)學(xué)背景,所以需要盡量的少用公式。整整一個月就花在寫論文上,14頁的文章滿滿都是文字和示意圖。不過努力沒有白費(fèi),最終論文被接受了。隨后又花了好幾周準(zhǔn)備大會報告上。相對于平時花一周寫論文,兩三天準(zhǔn)備報告,這次在寫作和報告水平上有了很大的提升。沒有放進(jìn)去的公式和定理投了接下來的NIPS,這次運(yùn)氣很好的中了。

有了文章后稍微心安了點(diǎn)可以更自由的做些事情。

寒假回了趟國,跑去百度找了凱哥和潼哥。潼哥說他最近有個想法,于是快糙猛的把實(shí)驗(yàn)做了然后寫了篇論文投了KDD。同時期Alex一個學(xué)生也把他一個一直想讓我做但我覺得這個小trick不值得我花時間的想法投了KDD,結(jié)果中了最佳論文。作報告那天我在的會場稀稀疏疏幾個人,他們隔壁會場人山人海。這個使得好長一段時間我都在琢磨是不是還是要跟著導(dǎo)師走比較好。

那時凱哥在百度搞少帥計劃,覺得蠻合適就加入了。這時凱哥正帶著一大幫兄弟轟轟烈烈的搞深度學(xué)習(xí),我自然也是跳坑了。試過好幾個想法后,我覺得做做分布式的深度學(xué)習(xí)框架比較對胃口。我挑了CXXNet作為起點(diǎn),主要是因?yàn)楦炱姹容^熟。同時也慢慢上手跑一些Alexnet之類的實(shí)驗(yàn)。

我是因?yàn)樯賻浻媱澆砰_始開始做深度學(xué)習(xí)相關(guān)項(xiàng)目,凱哥也很支持我做開源開發(fā)回饋社會而不是只做公司內(nèi)部的產(chǎn)品。但在少帥期間并沒有做出什么對公司有幫助的事,很是慚愧。

第三年:9/14-8/15

回CMU后Alex看見深度學(xué)習(xí)這么火,說我們也去買點(diǎn)GPU玩玩。但我們比較窮,只能去newegg上掏點(diǎn)便宜貨。這個開啟了轟轟烈烈的機(jī)器折騰之旅。整個一年我覺得我都在買買買裝裝裝上。最終我們可能就花了小幾萬刀攢出了一個有80塊GPU的集群?,F(xiàn)在想想時間上花費(fèi)不值得,而且為了圖便宜買了各種型號的硬件導(dǎo)致維護(hù)成本高。但當(dāng)時候樂在其中。具體細(xì)節(jié)可以看這篇blog

這一年寫了很多parameter server代碼,同時花了很時間幫助用戶使用這些代碼。很難說做得很成功,現(xiàn)在想想有幾個原因。寫代碼時我會優(yōu)先考慮性能和支持最多的機(jī)器學(xué)習(xí)算法。但正如前面的錯誤,忽略了代碼的易讀性,從而導(dǎo)致只有少部分人能理解代碼從而做一些開發(fā)。例如我嘗試讓Alex組的學(xué)生來使用這些代碼,但其中的各種異步和callback讓他們覺得很是難懂。其次是沒有人能一起審核代碼接口,導(dǎo)致這些接口有濃濃的個人味道,很難做到對所有人都簡單明了。

不過幸運(yùn)的是找到一幫志同道合的小伙伴。最早是我發(fā)現(xiàn)天奇在寫xgboost的分布式啟動腳本,我看了看發(fā)現(xiàn)挺好用,就跟他聊了聊。聊下的發(fā)現(xiàn)有很多基礎(chǔ)部件例如啟動腳本,文件讀取應(yīng)該是可以多個項(xiàng)目共同使用,而不是每個項(xiàng)目都造一個輪子。于是跟天奇在Github上創(chuàng)建了一個叫DMLC的組織,用來加強(qiáng)合作和溝通。第一個項(xiàng)目是dmlc-core,放置了啟動和數(shù)據(jù)讀取代碼。

DMLC的第二個新項(xiàng)目叫wormhole。想法是提供一系列分布式機(jī)器學(xué)習(xí)算法,他們使用差不多相同的配置參數(shù)來統(tǒng)一用戶體驗(yàn)。我把parameter server里面的機(jī)器學(xué)習(xí)相關(guān)算法移植了過來,天奇移植了xgboost。Parameter server原有的系統(tǒng)代碼簡化到了ps-lite。

中途我聽百度同學(xué)說factorization machine(FM)在廣告數(shù)據(jù)上效果不錯,所以在wormhole上實(shí)現(xiàn)了下。針對分布式做了一些優(yōu)化,然后投了WSDM。前后沒有花到一個月,但神奇的竟然拿了最佳論文提名。

在wormhole的開發(fā)中發(fā)現(xiàn)一個問題,就是各個算法還是挺不一樣,他們可以共用一些代碼,但又有各自的特點(diǎn),需要特別的優(yōu)化來保證性能。這樣導(dǎo)致維護(hù)有些困難,例如對共用代碼的改動導(dǎo)致所有項(xiàng)目都要檢查下??偨Y(jié)下來覺得一個項(xiàng)目最好只做一件事情。所以天奇把xgboost代碼放回原來項(xiàng)目,我也把FM獨(dú)立出來一個項(xiàng)目叫difacto。

通過一系列的項(xiàng)目,我學(xué)到的一點(diǎn)是,以目前的水平和人力,做一個通用而且高效的分布式機(jī)器學(xué)習(xí)框架是很難的一件事情。比較可行的是針對一類相似的機(jī)器學(xué)習(xí)算法做針對性的項(xiàng)目。這個項(xiàng)目的接口必須是符合這類算法結(jié)構(gòu),所以做算法開發(fā)的同學(xué)也能容易理解,而不是過多暴露底層系統(tǒng)細(xì)節(jié)。

真正的讓DMLC社區(qū)壯大的項(xiàng)目是第三個,叫做MXNet。當(dāng)時的背景是CXXNet達(dá)到了一定的成熟度,但它的靈活性有局限性。用戶只能通過一個配置項(xiàng)來定義模型,而不是交互式的編程。另外一個項(xiàng)目是zz和敏捷他們做的Minerva,是一個類似numpy的交互式編程接口,但這個靈活的接口對穩(wěn)定性和性能優(yōu)化帶來很多挑戰(zhàn)。我當(dāng)時候同時給兩個項(xiàng)目做分布式的擴(kuò)展,所有都有一定的了解。然后一個自然的想法是,把兩個項(xiàng)目合并起來取長補(bǔ)短豈不是很好。

召集了兩個項(xiàng)目的開發(fā)人員討論了幾次,有了大致的眉目。新項(xiàng)目取名MXNet,可以叫做mixed-net,是前面兩個名字(Minerva和CXXNet)的組合。放棄開發(fā)了幾年的項(xiàng)目不是容易的決定,但幸運(yùn)的是小伙伴都愿意最求更好,所以 MXNet進(jìn)展挺順利。很快就有了可以跑的第一個版本。

第四年:9/15-8/16

前半年為difacto和MXNet寫了很多代碼。其實(shí)一開始的時候我覺得difacto更重要些,畢竟它對于線性算法的提升非常顯著而且額外的計算開銷并不大,這對廣告預(yù)估之類的應(yīng)用會有非常大的提升。但有次遇到Andrew Ng,我跟他說我同時在做這兩個項(xiàng)目,他立即告訴我我應(yīng)該全部精力放在MXNet上,這個的未來空間會大很多。我一直很佩服Andrew的眼光,所以聽了他的建議。

11月的時候MXNet就有了很高的完成度。寫了個小論文投去了NIPS的workshop也算是歇了口氣。但隨后就聽到了TensorFlow(TF)開源的消息。由 Jeff Dean領(lǐng)導(dǎo)大量全職工程師開發(fā),Google龐大的宣傳機(jī)器支持,不出意料迅速成為最流行的深度學(xué)習(xí)平臺。TF對我們壓力還是蠻大,我們有核心開發(fā)者轉(zhuǎn)去用了TF。不過TF的存在讓我領(lǐng)悟到一點(diǎn),與其過分關(guān)心和擔(dān)憂對手,不如把精力集中在把自己的做得更好。

NIPS的時候MXNet的小伙伴聚了一次,有好幾個我其實(shí)是第一次見面。隨后Nvidia的GTC邀請我們?nèi)プ鰣蟾?。在這兩次之間大家爆發(fā)了一把,做了很多地方的改進(jìn)。同時用戶也在穩(wěn)步增長。我們一直覺得MXNet是小開發(fā)團(tuán)隊(duì)所以做新東西快這是一個優(yōu)勢,但隨著用戶增加,收到抱怨說開發(fā)太快導(dǎo)致很多模塊兼容性有問題。有段時間也在反思要在新技術(shù)開發(fā)速度和穩(wěn)定性之間做一些權(quán)衡。

這時一夜之間大數(shù)據(jù)不再流行,大家都在談深度學(xué)習(xí)了。

我也花了很多力氣在宣傳MXNet和爭取開發(fā)者上。包括微博知乎上吼一吼,四處給報告。在大量的點(diǎn)贊聲中有些陶醉,但很多中肯的批評也讓我意識到重要的一點(diǎn),就是應(yīng)該真誠的分享而不是簡單的吹噓。

因?yàn)榇罅康拿襟w介入,整個深度學(xué)習(xí)有娛樂化的趨勢。娛樂化的報道很多都只是一些簡單信息,(有偏見)的觀點(diǎn),而沒有太多干貨。不僅對別人沒營養(yǎng),對自己來說也就是滿足虛榮心。與其寫這些簡單的水文,不如靜下心做一些有深度的分享,包括技術(shù)細(xì)節(jié),設(shè)計思路,和其中的體會。

此類分享一個容易陷入的誤區(qū)是只關(guān)注自己做了什么,結(jié)果多么好。這些確實(shí)能證明個人能力,對于想重復(fù)這個工作的人來說會有很大幫助。但更多的人更關(guān)心的是適用范圍在哪里,就是什么情況下效果會減弱;為什么結(jié)果會那么好;insight是什么。這個需要更多深入的理解和思考,而不是簡單的展示結(jié)果。

這個對寫論文也是如此。只說自己的結(jié)果比基線好多少只能說明這是不錯的工作,但結(jié)果再好并不能意味這個工作有深度。

深度學(xué)習(xí)的火熱導(dǎo)致了各種巨資收購初創(chuàng)司不斷。Alex也有點(diǎn)按耐不住, 結(jié)果是他,Dave,Ash(曾經(jīng)是YahooCTO)和我合伙弄了一家公司,拿了幾十萬的天使投資就開工了。Alex寫爬蟲,Dave寫框架,我跑模型,風(fēng)風(fēng)火火干了好一陣子??上е型綝ave跑路去跟Jeff做TF了。后來這個公司賣給了一個小上市公司。再后來我們覺得這個公司不靠譜也就沒考慮跟他們干了。

第一次創(chuàng)業(yè)不能說很成功,從中學(xué)到幾點(diǎn):一是跟教授開公司一定要注意有太多想法但沒死死的掐住一個做,二是找一堆兼職的博士生來干活不是特別靠譜,尤其是產(chǎn)品不明確的時候,三是即使要賣公司也一定要做一個產(chǎn)品出來。我們賣的時候給很多人的感覺是團(tuán)隊(duì)人太強(qiáng)但產(chǎn)品太弱,所以他們只想要人而已。四是試圖想要通過技術(shù)去改變一個非技術(shù)公司是很難的事情,尤其是過于新的技術(shù)。

然后我們就奔去折騰下一個公司。Ash早財務(wù)自由所以想做一個大的想法,但這時Alex剛在灣區(qū)買了個房,有還貸壓力,他選擇去了Amazon。于是算是胎死腹中。

隨后收到Jeff的郵件說有沒有興趣加入Google,自然這是一個很誘人的機(jī)會。同時我覺得小的創(chuàng)業(yè)技術(shù)性強(qiáng)的公司是不錯的選擇。但從MXNet的發(fā)展上來書,去Amazon是最好選擇之一。自己挖的坑,總是要自己填的。所以我以兼職的身份去了Amazon,領(lǐng)著一幫小弟做些MXNet開發(fā)和AWS上深度學(xué)習(xí)的應(yīng)用。

第五年:9/16-2/17

早在15年初Alex就表示我可以畢業(yè)了,但作為拖延晚期患者,遲遲沒開始準(zhǔn)備。這時候感覺不能再拖了,于是窩在灣區(qū)寫畢業(yè)論文。Alex覺得畢業(yè)論文應(yīng)該好好寫,但我對把前面都做完的東西再搗鼓寫寫實(shí)在是沒興趣,尤其是加州太陽那么好,大部分時間我都是躺在后院曬太陽。此時B站已經(jīng)完全被小學(xué)生占領(lǐng),這邊買書也不方便,無聊之余刷了很多起點(diǎn)。然后還寫了篇煉丹文。

CMU要求答辯委員會需要有三個CMU老師和一個學(xué)校外的。除了兩個導(dǎo)師外,我找了Jeff Dean和剛加入CMU的Ruslan Salakhutdinov. 結(jié)果Russ隨后就加入了Apple,整個委員會的人都在灣區(qū)了。Jeff開玩笑說可以來Google答辯。可惜跟CMU爭吵了好多次,還是不允許在校外答辯,而且必須要三個人委員會成員在場。這些限制導(dǎo)致答辯一拖再拖,而且臨時加了Barnabas Poczos來湊人數(shù)。最后是Jeff的助理快刀斬亂麻的協(xié)調(diào)好了時間把所有東西定好了。沒有她估計我還可以拖幾個月。

答辯的時候是一個比較奇異的狀態(tài),委員會里有Google, Amazon, Apple的AI負(fù)責(zé)人,剩下兩個和我又分別在這三家公司兼職。這個反應(yīng)了當(dāng)下AI領(lǐng)域?qū)W術(shù)界紛紛跑去工業(yè)界的趨勢。

不過答辯這個事情倒是挺簡單,跟平常做個報告沒什么太多區(qū)別。一片祥和,即使Russ問了MXNet和TensorFlow哪家強(qiáng)這個問題也沒有打起來。

答辯后我問委員會說,我在考慮找個學(xué)術(shù)界的工作,有什么建議沒。大家介紹了一大堆經(jīng)驗(yàn),不過大家都強(qiáng)調(diào)的一個重點(diǎn)是:學(xué)術(shù)界好忙好忙,而且好窮好窮,工業(yè)界的薪水(就差指自己臉了)分分鐘秒掉CMU校長。你要好好想。

總結(jié)

答辯前一天的晚上,我想了兩個問題,一個是“博士收獲最大的是什么”,另一個是“如果可以重來會怎么辦”。對于第一個問題,這五年時間自然學(xué)到了很多東西,例如系統(tǒng)的學(xué)習(xí)了分布式系統(tǒng),緊跟了機(jī)器學(xué)習(xí)這五年的發(fā)展,寫文章做幻燈片做報告水平有提升,代碼能力也加強(qiáng)了些。自信上有所提高,覺得既可以做一流的研究,也可以寫跟大團(tuán)隊(duì)PK的代碼。只要努力,對手沒什么可怕的。

但更重要的是博士的五年的時間可以專注的把一些事情從技術(shù)上做到最好,做出新的突破,這個氛圍沒有其他地方能給予。

第二個問題的一個選項(xiàng)是當(dāng)年留在國內(nèi)會怎么樣? 當(dāng)年百度的伙伴們多數(shù)現(xiàn)在都做得很好,都在引領(lǐng)這一波AI的潮流,甚至有好幾個創(chuàng)造了上億價值的公司。所以從金錢或者影響力角度來看,一直在工業(yè)界也不差,說不定現(xiàn)在已經(jīng)是土豪了。

不過我覺得還是會選擇讀博。賺錢以后還有大把時間可以,但是能花幾年時間在某個領(lǐng)域從入門到精通甚至到推動這個領(lǐng)域發(fā)展的機(jī)會就一次。站在這個領(lǐng)域的高點(diǎn)會發(fā)現(xiàn)世界雖然很大,但其實(shí)其他領(lǐng)域也使用差不多的技術(shù),有著同樣的發(fā)展規(guī)律。博士期間領(lǐng)悟到的學(xué)習(xí)的方法可以在各個方向上都會大有作為。

更重要的是理想和情懷。人一生要工作五十年,為什么不花五年來追求下理想和情懷呢?
  • 澳際QQ群:610247479
  • 澳際QQ群:445186879
  • 澳際QQ群:414525537