Appearance
閱讀心得
從 micrograd 到 microgpt
讀完 micrograd 再讀 microgpt,就像看著一個孩子長大成人。
micrograd 展示了「什麼是自動微分」——它用一個 100 多行的 Value 類別,讓你理解反向傳播的本質。而 microgpt 則展示了「有了自動微分之後能做什麼」——它把 Value 類別直接嵌入到一個完整的 Transformer 訓練流程中。
這兩份程式碼放在一起,形成了一個完美的學習路徑:
micrograd(自動微分原理)
↓
microgpt(GPT 訓練實作)
↓
nanoGPT(production-grade GPT)純 Python 的堅持
最讓我震撼的是 microgpt 完全不用 PyTorch。在深度學習領域,PyTorch 幾乎已經是空氣般的存在——沒人會去想「如果不靠 PyTorch,我要怎麼訓練一個 Transformer?」
Karpathy 用這 200 行證明了:Transformer 的核心並非什麼黑魔法,而是一連串清晰的數學運算。當你把每個 matmul、每個 softmax、每個 adam update 都攤開來看時,整個架構變得透明而優雅。
教學上的巧思
作者在註解中用了聖經風格的「Let there be...」——這是一種幽默的致敬,但也傳遞了「從無到有創造」的精神。每一段程式碼都是從最原始的基礎開始建構:
- Let there be a Dataset...
- Let there be a Tokenizer...
- Let there be Autograd...
- Let there be Adam...
這種敘事方式讓讀者感覺自己正在「創造」而不是「使用」一個 GPT。
效率 vs 可讀性的取捨
microgpt 犧牲了所有效率來換取可讀性:
- scalar 運算取代 tensor 運算 → 慢 1000 倍以上
- 雙重 for 迴圈取代矩陣乘法 → 程式碼變長但更直觀
- 單一樣本訓練取代 batch 訓練 → 更簡單的索引操作
這正是教學程式碼該有的樣子:先讓人理解,再談優化。