論文讀再多都沒用:把研究品味練成一套刻意的迴圈
貝爾實驗室的午餐桌上,理查・漢明有個讓人討厭的習慣。他會問坐在旁邊的人:這個領域最重要的問題是什麼?對方答完,他再補一刀——那為什麼研究者沒有去做那個問題?
被問過的人,後來都默默換到別桌。
這個問題之所以刺人,是因為大部分研究者根本答不上來。問題不是自己挑的,是吸收來的:從指導教授、從上一季某個大實驗室的發表、從這禮拜大家都在轉的那篇論文。沒有人真的會教「怎麼做研究」——新人拿到的是一張桌子、一個別人選好的題目,外加一句很模糊的指示:做點新東西出來。於是多數人只能從看得見的東西反推這份工作的樣子,而看得見的,就是論文、推文串、發表會。最後練出來的,是「看起來像研究者」,而不是「真的會做研究」。
好消息是,這份看不見的技藝其實是一疊更小的技能堆出來的——而且幾乎每一個,都能刻意練。在 AI 把寫程式、查資料、生成候選方案統統變便宜的年代,能不能把這疊技能組成一條迴圈,才是真正拉開差距的地方。
問題要自己挑
吸收來的問題有個毛病:拿到的是結論,卻沒拿到推理。知道某個有名的實驗室在乎某個方向,但不知道為什麼在乎、不知道他們預期會挖到什麼、更不知道什麼情況會讓他們直接放棄。等他們轉向,往往一年後才從別人嘴裡聽說。而且一個已經紅起來的題目,等於要跟一千個更早起跑、算力也更多的人賽跑——對方鞋帶都綁好了,新人才剛走到起跑線。
有一份做機器學習研究的指南,把研究拆成兩種模式。一種是讀文獻、從裡面找可以改進的縫;另一種是先選一個自己真心希望存在的結果,再往回推出該做哪些實驗。第二種做法比較容易「製造」原創性,因為一個自己真的在乎的目標,會把人拖進任何綜述論文都沒覆蓋到的角落。
至於品味,常被講得像天份,其實它的行為比較像肌肉。每跑一個實驗之前,先預測結果;把一篇論文的結果那一節遮起來,只看方法去猜數字;把這個月發布的東西標一遍——哪些兩年後還重要——過陣子再回頭對自己的命中率。一次預測加一次修正,重複個幾百遍,就是所有好模型被訓練出來的方式,包括長在腦袋裡的那一顆。
把輸入升級
共用的書單,長出來的是共用的點子。如果一個人的資訊來源就是論文預印本平台的熱門頁,加上群組訊息篩過一輪剩下的東西,那他會非常可靠地、跟所有人在同一個時間點得出同一個結論——而這種結論的價值,趨近於零。
舊材料被嚴重低估,便宜到像在二手書店挖到絕版神作。這個領域一直在延遲重播自己的過去:很多今天看起來很新的概念,其實二三十年前就有雛形。〈苦澀的教訓〉只用大約一千字,就比一堆長篇綜述更準地預測了領域走向;夏農 1952 年講創造性思考時,也已經在教人把問題縮小、先破小版本、再一塊一塊把難度加回去。舊材料被低估,這就是活生生的例子。
廣度跟深度一樣重要。理解模型內部行為的人,常常要從神經科學借概念;設計測試題的人,其實也在設計規則和誘因;懂硬體限制的人,會在跑分出來之前,就看出哪些架構論文注定要死。而誠實的統計,可能是機器學習圈最稀有的技能——很多被印出來的「嚴謹」,其實是加了誤差棒的感覺而已。
還有一件事:讀論文本體,不要讀二手摘要推文串。附錄是埋屍體的地方,而「限制」那一節,通常是整份文件裡最誠實的一段。
把假設全部寫下來
一個點子在腦中可以感覺完整無缺——直到開始試著把它寫成字。紙會找出腦袋自動跳過的破綻:那個從沒驗證過的假設、那個其實接不起來的推理步驟、那兩句悄悄互相矛盾的主張。
第一個絕對不能騙的人,就是自己,因為自己是最好騙的目標。而寫字,是人類發明過最便宜的防禦。有研究者甚至把它做成流程:任何跟理論相牴觸的事實,當下立刻寫下來,免得記憶偷偷刪掉不方便的證據。研究者的記憶對失敗的實驗,也是同一套手腳。
所以要留一份紀錄:假設、設定、預期、結果、更新後的信念。一個月後回頭重讀舊紀錄,那種羞恥感,沒有任何審稿人給得起。然後把其中一部分公開出去。「研究債」這個說法提醒的是:一個領域會被沒消化過的點子噎住,而一個清楚的解釋,本身就是真正的貢獻,不是打雜。一批公開的寫作,同時也是最強的履歷——因為它是一份偽造不了的樣本,攤開了一個人到底怎麼思考。
Mogu 插嘴:
把迴圈縮短
好研究很少只是「靈光一閃」。多半是量:每天跑更多次、每週丟掉更多錯點子、一個更新速度比所有人都快的現實模型。這才是真正的遊戲。研究速度,主要就是「發現自己錯了」的速度。
這直接讓工具變成第一線的研究工作。啟動一次實驗,應該一行指令搞定;畫出結果,再一行;每個實驗都要能從它的設定檔完整重現;比較兩次跑的差異,應該幾秒鐘,而不是花一個下午去做考古。卡帕西 那份訓練神經網路的食譜裡,有一步划算到不可思議:在大規模訓練之前,先讓模型在一小包資料上背到滾瓜爛熟。三十秒,一半的 bug 當場消失。把所有東西縮到夠便宜,先弄對,再去燒算力。
還有,該退休的觀念是「工程是研究的小弟」。在最前沿,這兩份工作已經融合了。能自己把實驗骨架、測試方式、資料管線都搭起來的研究者,才是那個假設真的會被驗證的人。其他人,都在排隊等別人幫忙跑。
Mogu 認真說:
「研究速度,主要就是發現自己錯了的速度」這句要框起來貼牆上。厲害的人不是永遠猜得準,而是把撞牆成本壓到夠低,一天能撞比別人多十倍。能撞得起,才敢一直撞 (๑•̀ㅂ•́)و✧
盯著輸出看
一張「錯誤數字一路變小」的圖,不是分析,是安慰劑。它讓人安心,但什麼也沒解釋。實驗丟出來的資訊,遠多於被消化掉的:對話紀錄、失敗案例、最邊角也最怪的樣本。其中絕大部分,沒人讀,安靜地死在某個紀錄資料夾裡。
那份訓練食譜,在任何一行訓練程式碼寫下來之前就開始了——先花好幾個小時,用手去翻原始資料。多數機器學習的 bug 住在資料裡,而且死得無聲無息:什麼都不會當掉,只是默默給出一個平庸的模型,外加一套對「為什麼平庸」完全錯誤的解釋。
最有效的動作通常不性感:撈一百個失敗案例,全部讀完,分成幾堆,然後攻擊最大那一堆。它對模型有效,對測試題也有效——一個從沒讀過對話紀錄的測試方式,是一個研究者根本沒真的搞懂的測試方式。一份「行為怪到讓人起雞皮疙瘩」的對話紀錄,教的東西比正確率多算出來的下一個小數點還多。
刻意亂逛,然後狠心砍掉
一個人的第一個子領域,是時間點的意外,所以就把它當意外看待。在模型內部行為、測試設計、強化學習、系統各待上一段真正的時間,再決定要住在哪。某個角落會剛好讓某種奇怪特質變成不公平優勢;找到它的方法,是在好幾個地方都交一次學費。
每個點子,先跑可拋棄的版本,然後讓大部分都早早夭折。把最基本的對照做法調到痛為止,因為機器學習的墳場裡,塞滿了「一碰到認真調過的對照做法就蒸發掉」的進步。接著一次只拔掉一個零件測試,直到搞清楚到底是哪個部分扛起了結果。通常只有一個,而且通常不是論文標題裡掛名的那個。
廣度也是一種保險。子領域全都會飽和,每一個都會,而且通常就飽和在它於推特上達到聲量高峰之後不久。能撐過這些轉換、持續產出的人,是那些早就把隔壁地盤摸熟了的人。
找到能磨利判斷的人
漢明還注意到一個關於「誰最後做出重要工作」的規律。把辦公室門關上的同事,在任何一年裡都做得更多;把門開著的同事,做出來的是真正重要的工作——因為那些打斷,帶著「世界到底需要什麼」的資訊。在今天,那扇開著的門,多半是一個收件匣。讓它一直開著。
慷慨在研究裡複利得比什麼都兇。重現一個結果,然後把發現公開;把為自己做的工具釋出來;用大白話把一件難的事講清楚。回報會從側面、在好幾個月後抵達——變成一次合作、一次引用、一個本來連申請資格都沒有的職位。也要在公開場合丟出半成形的點子,因為在時間軸上錯,遠比印成白紙黑字之後才錯,便宜太多。而那個在研究者還沒砸下三個月之前、就直接告訴研究者「這點子很爛」的合作者,比算力還值錢。那種關係買不到,只能靠誠意換來。
Mogu 歪樓一下:
GPU 算力很貴,但花錢就有;一個願意在動工前戳破盲點的人,再多錢也租不到。把同溫層當舒適圈,省下的是面子,賠掉的是三個月 ʕ•ᴥ•ʔ
結語:複利早一點開始
巴斯德說,機運偏愛準備好的心智。漢明在這句話上面,蓋出了一整套職業哲學:知識和生產力,像利息一樣複利。每天那些小小的領先,單獨看都微不足道——讀了什麼、記下了什麼、迴圈跑多快、跟誰爭辯。給它們幾年,就會長成一份從外面看起來像「運氣好」的職業生涯。
回到那張午餐桌。漢明的問題之所以讓人想換位子,不是因為它難回答,是因為它逼人承認一件事:多數人從來沒有自己挑過問題、沒有記錄過自己錯在哪、沒有把迴圈縮短過、也沒有找到那個會當面戳破自己的人。這七件事沒有一件需要天份,每一件都只是選擇。
而複利這種東西,最該做的就是比「感覺有必要」更早開始。幾年後的那個人早就知道了——現在,是最便宜的時候。