Lesson 10 · 約 20 分鐘
像研究者一樣 — 重現論文
從 paper 到能跑的程式
10 ・ 像研究者一樣:從「理解 AI」到「做出 AI」
你的目標是「真的把 AI 學懂,成為理解 AI、做得出 AI 的人」。這份就是把這條路講白。 前面的講義(00~09)給你地基與直覺;這份談的是怎麼從『會用、會做』走到『能讀懂前沿、能重現、能創新』——也就是研究者的工作方式。
0. 先講最誠實的一句
沒有任何教材、任何 repo,能把你變成 Ilya Sutskever。 把人推到那個層次的,從來不是「看更多課」,而是三件事反覆做很多年:
- 從零重現:把一篇論文的核心,自己寫到能跑、能對上它的數字。
- 親手推導:每個關鍵式子,自己用紙筆推一遍、用程式 gradient-check 驗一遍(你已在
code/10做過這件事)。 - 持續研究與輸出:讀、做、寫、被人檢驗,長期累積。
好消息:這條路有明確的階梯,而且你已經站在第一階了。下面把階梯畫出來。
1. 唯一真正重要的元技能:「從零重現」
業界與學界區分「懂」與「很懂」,幾乎只看一件事:你能不能拿到一個想法,自己把它從零實作出來、讓它真的動。
- 看懂 ≠ 會。你以為懂了,動手寫才會發現「這裡為什麼要除 √d」「這個 mask 形狀對不對」——那些卡住的地方,正是你真正學到東西的地方。
- 這就是為什麼本包每個概念都配一支「from scratch」程式,也是為什麼
docs/09一直要你動手。 - Ilya 反覆強調的核心直覺:把「預測下一個 token」做到極好,本質上是在做壓縮;而能壓縮一份資料,就意味著理解了產生這份資料的規律。LLM 的「智能」是這個目標被推到極大規模後長出來的副產品。這也是「同一套引擎」(
docs/07)的哲學根源——換資料、換預測目標,引擎不變。
2. 重現階梯(每一階都對應本包,再往外接)
照順序爬,每一階都「自己寫到能跑 + 寫一篇說明放 GitHub」。這就是你的作品集,也是面試與研究的入場券。
| 階 | 重現目標 | 本包起點 → 往外接 |
|---|---|---|
| 1 | 反向傳播引擎 + 訓練 MLP | code/04、code/10 → Karpathy micrograd |
| 2 | 從零的注意力 + 字元級 nanoGPT | code/01、code/02、填空版 code/02b → Karpathy nanoGPT,換大語料 |
| 3 | BPE tokenizer + 訓練自己的 tokenizer | code/05 → 重現 GPT-2 的 BPE |
| 4 | 重現 GPT-2 (small, 124M) 並對上 loss | code/02 放大 → nanoGPT + OpenWebText 子集(需 GPU/雲端) |
| 5 | 後訓練:SFT + DPO 微調一個開源小模型 | code/07(LoRA 參考) → TRL / 自己寫 DPO loss |
| 6 | 重現一個生成模型:DDPM 影像版 | code/11(2D 玩具) → 在 MNIST/CIFAR 上的 DDPM |
| 7 | 你的興趣軌:重現 DreamerV3 或一個 RL agent | code/03、code/06 → Gymnasium / Isaac Lab |
| 8 | 讀一篇當月 arXiv 新論文,重現它的核心結果 | —(這一階就是研究本身了) |
爬到第 4~5 階,你的內功已經贏過絕大多數「只會調 API」的人。爬到第 8 階,你就在做研究了。
3. 怎麼讀論文(三遍法)
別想一次讀懂。研究者讀論文用三遍:
- 第一遍(5~10 分鐘):只讀標題、摘要、圖、結論。回答:它解決什麼問題?核心想法一句話?結果有多好?值不值得細讀?
- 第二遍(1 小時):讀正文、看式子的「意義」(先不要每步推導),看實驗設定。能不能用自己的話跟人講清楚它在做什麼?
- 第三遍(重現):把核心式子自己推一遍、把核心方法自己實作一遍。這一遍才是真的懂。 能重現出接近的數字,你就真正掌握了。
輔助:先看 Jay Alammar 的圖解、YouTube 論文導讀、作者的部落格建立直覺,再回頭啃原文——但別停在「看過導讀」,一定要走到第三遍。
4. 該「實作」而非只是「讀」的奠基論文
挑你軌道相關的,動手重現核心(不是全部,是核心那一塊):
- Transformer/LLM:〈Attention Is All You Need〉、〈GPT-2/3〉、〈LoRA〉、〈InstructGPT〉(RLHF)、〈DPO〉、〈Chain-of-Thought〉、〈Scaling Laws〉、〈Chinchilla〉。
- 系統/效率:〈FlashAttention〉、〈Mixture-of-Experts〉、量化(GPTQ/AWQ)。
- 生成模型:〈DDPM〉、〈Latent Diffusion〉(Stable Diffusion)、〈CLIP〉。
- 你的物理 AI 軌:〈World Models〉(Ha & Schmidhuber)、〈DreamerV3〉、〈MuZero〉、NVIDIA Cosmos 技術報告。
- 對齊:〈Constitutional AI〉(Claude 的訓練法)、〈RLHF〉系列。
書(理論底):《Deep Learning》(Goodfellow)、《Reinforcement Learning: An Introduction》(Sutton & Barto,免費)、《Probabilistic ML》(Murphy)。
5. 研究者的日常習慣(長期複利)
- 每週讀 arXiv(cs.LG / cs.CL / cs.AI)+ Papers with Code 的 SOTA;追幾個關鍵研究者/實驗室與官方部落格(OpenAI / Anthropic / DeepMind / NVIDIA)。
- 輸出:每重現一個東西,寫一篇 README/部落格。輸出是最強的學習與信譽建立——別人從你的作品看出你懂,而不是你說你懂。
- 進社群:貢獻開源、參加 Kaggle/競賽、找同伴一起讀論文。
- 挑一個方向鑽深:你對物理 AI / 世界模型有興趣,就一路打穿(RL → 世界模型 → Cosmos),比樣樣淺嘗值錢得多。
6. 殘酷但必要的現實
- 算力:重現 GPT-2 small 等級,單張消費級 GPU + 雲端就能做(見
docs/04);前沿大模型的完整訓練需要你個人拿不到的算力。但方法與理解不需要等到有算力——縮小重現一樣學得到全部機制(本包就是證明)。 - 時間:認真投入,6~12 個月能到「業界很認可」;到「能做前沿研究」是以年計的持續累積。沒有捷徑,但每一階都有看得見的里程碑。
- 數學:到研究層要更扎實的機率、最佳化、線性代數。你電子/訊號的底子是優勢——把
code/10的 gradient-check 精神貫徹到每個新模型。
7. 你的下一步(具體三件事)
- 這個月:把重現階梯第 2 階做扎實——完成
code/02b填空、再跟著 Karpathy 從零寫一次 nanoGPT,換一份你喜歡的語料訓練,寫成 GitHub repo。 - 接著:選你的軌(建議物理 AI 軌),開始爬第 6~7 階(
code/11Diffusion → MNIST DDPM;code/03/06→ Gymnasium)。 - 養成習慣:每週讀 1 篇 arXiv、每完成一個重現就寫一篇說明。
一句話收尾:「懂 AI」是看完講義;「做出 AI」是把講義裡的東西,一個一個自己重現出來、再往未知推一步。 你已經有地基、有路線、有可跑的最小範例。剩下的,是把這條階梯一階一階爬上去——那一步,只能你自己走。