第70章 頂級論文的工具請求

投票推薦 加入書籤 小說報錯

  周六下午,陳一然隨便找了把槍塞進後腰的槍套,開車去了斯坦福。

  Coupa Cafe就在斯坦福計算機科學樓的東側,門面不大,裡面擠滿了拿MacBook的學生,牆上貼滿了各種學術海報和講座通知。

  咖啡機蒸汽的聲音和鍵盤聲混在一起,頗具浪漫主義色彩。

  現在還沒有網紅打卡點的說法,但是毫無疑問Coupa Cafe已經有了這個潛質。

  陳一然推門進去掃了一圈,先看到了亞當·考特斯,和網上的照片一樣。一頭深棕色捲髮,整體穿著非常刻板印象,就差一個格子衫就可以完成矽谷的默認形象。

  令人驚訝的是,他身邊坐了個四十歲左右的男人,是一個戴著無框眼鏡的華裔面孔,正是學術泰斗吳恩達。陳一然本以為這次只會見到考特斯,交流幾次之後才會見到吳恩達。

  畢竟先讓下面的科研民工小博士去找人探路,看看好不好交流才學術圈常規。

  陳一然一邊過去打招呼,一邊在腦中和茉莉調侃了一句:茉莉,你的老師來了,甚至可以說是啟蒙老師吧。

  【嚴格來說,我是基於你的大腦模型運行的,各種記憶也儲存在你的大腦中,他不是我的老師,是你的。】

  這邊吳恩達卻是很熱情,和陳一然確認了身份之後,主動開始自我介紹。

  「嘰里咕嚕咕嚕嘰里,咕咕嘎嘎,咕呱咕呱,嘎嘎噠噠,嘻嘻呼呼。」

  陳一然感覺自己頭都大了,他能隱約中感覺出吳恩達說的是中文,但是吧,這奇怪的聲調,這猥瑣的腔調,這莫名其妙的轉音,堪稱災難啊。

  陳一然大概愣了十秒鐘,實在是不知道怎麼回話,直接罵教授抹黑中國文化,會不會不太好?

  對面的吳恩達看了出來他的無奈,只好有點不情願的切換回英文說:「抱歉啊抱歉啊,我這不是最近偶爾也自己練練中文,我考慮之後有機會可以去中國發展一下的,看樣子不怎麼成功啊。你有什麼建議,哪裡不好需要改?」

  陳一然麻瓜了,這怎麼改,這整段都是亂碼啊。但是,也不能駁了教授的面子啊,只能絞盡腦汁,硬著頭皮誇了幾句。

  「哪裡哪裡,還可以的,至少我聽出來了是中文,聲調上至少沒有破音,再練練再練練肯定行的。」

  考特斯在邊上有點無奈,非常想假裝不認識自己導師,但是又怕再過十年也畢不了業,只好死命的憋著笑。

  吳恩達開始把話題轉到正事:「感謝你周末還跑一趟,考特斯給我看了你的DeepFlow,我們組試跑了三個實驗,GPUmat的瓶頸全消失了。所以我直接跟過來了,有幾個事想當面跟你聊。」

  「能幫上忙也是我的榮幸,我之前在網上看過您的課的,嚴格來說您也是我的老師。」

  吳恩達沒有廢話,直接從書包里掏出一個ThinkPad,屏幕上打開了一份代碼文件,準確地說,是好幾千行MATLAB代碼,中間嵌著零星的CUDA kernel。陳一然看了兩眼,基本上看不明白,全是各種矩陣操作的英文注釋。

  「這是我們過去兩年寫的無監督特徵學習代碼,Quoc Le和Adam從2008年開始搭的框架。簡單說就是,多層稀疏自編碼器,局部感受野,一層自定義的歸一化層。在GPUmat上跑的。」

  他換了張圖,是一個模型結構圖。輸入層從STL-10讀圖像塊,往上疊了四層自編碼器,每層有自己的稀疏約束,不是全連接的。

  「我想把這些全部移植到DeepFlow框架上。GPUmat已經撐不住了,我們想趕NeurIPS的截稿日,大概是九月初,現在七月中,按GPUmat的速度,論文肯定趕不上。」

  「所以需要我幫您改什麼?」

  「不是改什麼,是你的框架里還缺三樣東西。沒有這三樣,我們的模型移植不過去。」

  吳恩達拿了張紙,把缺的東西一個一個列了出來。

  「第一個,稀疏約束算子。我們的自編碼器中間層有稀疏激活約束,反向傳播的梯度計算跟普通全連接層不一樣。DeepFlow現在只有基礎的dense,卷積和池化這三個算子,沒有這個。

  第二個,自定義感受野。我們的模型用的不是標準卷積。不是3×3的核在圖上滑窗,是每個輸出神經元固定連輸入層的一塊局部區域,而且不共享權重。

  第三個,白化歸一化。我們對每層激活值做零相位成分分析白化,梯度要通過奇異值分解回傳,這個跟現在任何框架里的都不一樣。」


  吳恩達把ThinkPad合上,非常期待的看著陳一然。

  「你如果能給DeepFlow加上這三個算子,我們整個組就能在兩周之內把代碼棧全部切過來。如果你加不了,我也不怪你,畢竟是開源框架,沒義務給我們定製。

  但我們可能就得用GPUmat硬撐過九月了嘍,可憐我們這些人的心血了,居然沒有人幫忙,唉不幫忙的人真的是太無情了呢……」

  …………

  陳一然有點無語,但還是在心裡問了一句:茉莉,這三個東西你搞得定嗎。

  茉莉的回答很快:【稀疏約束的反向傳播是一層自定義梯度的鏈式求導,十幾行CUDA加幾十行Python包裝。感受野是個特殊矩陣乘法,本質上是個分塊矩陣乘的變體。白化複雜一點,奇異值分解回傳梯度需要數值穩定性處理,但也就是多寫兩百行的事。】

  陳一然明白了:懂了,你的意思是你都能搞定是吧,你這語氣真夠凡爾賽的。

  【並沒有凡爾賽,不過確實不難。半小時。測試和跑分調參需要半天,但單純把算子寫出來,半小時就夠了。】

  吳恩達和考特斯兩個人看著他沉默的那幾秒,大概以為他在評估工作量。

  吳恩達作為學術泰斗,臉皮也是足夠厚的,開啟了各種花式捧殺。

  陳一然趕緊抬起頭說:「大致想了一下,應該沒問題,今天晚上我就能給你。」

  「今晚?」

  「對,三個算子的CUDA實現加Python接口,今晚發到你郵箱。」

  「你確定嗎?」

  吳恩達查了查眼睛一會的問:「我不是懷疑你的能力。但我們自己評估過,這三個算子如果讓一個人寫,從學習DeepFlow的擴展API到調試完,至少兩周。加上白化的數值穩定性問題,保守一個月吧。」

  「哈哈,天才,總是異於常人的。」

  這句話說出來之後,他自己都覺得有點囂張。但問題不大,以後他還會震驚世界很多次,天才人設已經是必然的了。

  吳恩達把ThinkPad的蓋子合上了,想了下,做了個保證

  「如果你今晚能搞定,我們下周三的組會上你做一次demo。就在Gates樓,我們實驗室有四塊特斯拉C2050。你帶著新版本的DeepFlow過來,現場移植我們的模型,你的框架成功跑通。在NeurIPS論文的工具段會被引用。」

  「好的,我回去儘快搞定。」

  陳一然回家路上很是開心,吳恩達可不是一般的學者,他的很多課程可以說已經成為了這個方向的基礎課程。

  deepflow框架在他這裡被引用進論文,幾乎意味著馬上就會被所有企業關注,很多企業會直接找人嘗試運用。

  甚至,這應該也算吳恩達欠了他一個小人情,別的不說,以後招人的時候都容易很多。斯坦福相關專業的學生,哪個沒聽過他的課。甚至不是斯坦福的,又有哪個學過他的課呢。

  陳一然甚至剛才一度想,更深入的參與進實驗,來博取一個署名。畢竟,按照學術慣例,工具和基礎公選都會單獨感謝和註明。做了工具,你只能說修了路,不能把比賽的成果也占據一部分。

  但是最後陳一然犯懶了,都已經財富自由了,哪還有那麼大的動力奮鬥,陳一然現在還堅持創業已經是頂級毅力了,換別的穿越者沒準已經躺平享受人生了。

  到家中,還是固定的流程,冰可樂冰淇凌準備好,讓茉莉全力出擊。

  【第一個算子,稀疏約束。梯度鏈式求導的CUDA實現,我們開始吧。】

  寫了大概七八十行CUDA,茉莉讓他切到Python文件,寫了一層包裝。然後第二個算子,局部感受野的矩陣乘法。茉莉說這個本質上是個分塊矩陣乘,但要繞開標準卷積的核滑窗機制。

  最後四單個是最費時間的,白化歸一化的奇異值分解回傳,茉莉想了一會,設計了一個對角線小量正則化,用來防止梯度爆炸。

  茉莉確實沒吹牛,這些工作在他這確實不算難。加上陳一然經過多次磨練,現在打字速度已經可以筆尖專業速記,不到半個小時,就搞定全部修改要求,陳一然發到了吳恩達留給他的郵箱。

  陳一然感覺,再過一兩周,他的FlowEDA應該就不是籍籍無名的小公司了。

章節目錄