Skip to content

閱讀評論

設計優點

1. 極致的原子化 microgpt 將 GPT 訓練拆解到最小可運行的單元——一個 200 行的單一檔案,每一行都有明確的用途。對學習者來說,沒有多餘的抽象層,沒有需要追蹤的跨檔案引用。

2. 自包含的 Autograd 不同於其他教學實作(如 nn.lua、min-char-rnn),microgpt 連反向傳播都自己處理。這意味著讀者可以看到完整的梯度流動,而不用依賴框架的 loss.backward() 黑盒子。

3. 註解的引導性 每段程式碼前的註解(如 "Let there be Autograd to recursively apply the chain rule")提供了高層次的上下文,幫助讀者在深入程式碼前先建立心智模型。

設計取捨與限制

1. 效率 vs 規模 最大的限制是效能。純 Python scalar 運算意味著:

  • 訓練 1000 步就是極限(訓練時間已經開始拉長)
  • 無法擴展到更大的模型(如 n_layer > 2, n_embd > 64)
  • 無 GPU 加速

2. 詳細程度 注意力機制的 scalar 實作雖然容易理解,但也讓注意力公式淹沒在 indexing 程式碼中:

python
attn_logits = [sum(q_h[j] * k_h[t][j] for j in range(head_dim)) / head_dim**0.5 for t in range(len(k_h))]

相比 PyTorch 的 q @ k.T / sqrt(d),上面的寫法更「正確」但更難一眼看出這是 attention。

3. 缺少的功能

  • 無 dropout(可能導致 overfitting)
  • 無 gradient clipping
  • 無 learning rate warmup
  • 無 batch 訓練
  • 無 validation split
  • 無模型保存/載入

與其他實作的比較

實作行數依賴GPU適合理念
microgpt200GPT 核心原理
nanoGPT~600PyTorchproduction 等級
minGPT~300PyTorch精簡但可擴展

總結

microgpt 是教學藝術的展現。它不是用來訓練 production 模型的工具,而是用來「解構 GPT 黑盒子」的說明書。對於想真正理解 Transformer 內部運作的人來說,這是無價的資源。