Skip to content

文件重點

1. 完整 GPT 訓練管線

microgpt 涵蓋了從資料載入到模型推論的完整流程:

資料集(names) → Tokenizer → Embedding → Transformer Blocks → Linear → Softmax → Loss → Backprop → Adam → Inference

2. 純 Python Autograd

Value 類別是整份檔案的基石,實作了:

  • 前向傳播:記錄每個運算的結果(data
  • 計算圖:記錄每個節點的子節點(_children)與局部梯度(_local_grads
  • 反向傳播:拓撲排序後,透過 chain rule 逐層傳播梯度

這套機制與 micrograd 完全相同,但 microgpt 將其嵌入到 transformer 的訓練中。

3. GPT-2 風格架構

作者提到「Follow GPT-2, blessed among the GPTs」,但有兩個主要差異:

GPT-2 原始microgpt
LayerNormRMSNorm(更簡單,無 bias 項)
GeLU 激活ReLU
有 bias 項無 bias 項

4. 注意力機制

雖然是純 scalar 實作,但保留了完整的多頭注意力:

Q = x @ Wq
K = x @ Wk
V = x @ Wv
Attention(Q,K,V) = softmax(QK^T / √d) V

每個頭獨立計算後 concatenate,再經過 attn_wo 線性投影。

5. 殘差連接(Residual Connections)

每個區塊都有殘差連接:

  • Attention 區塊:x = attention(rmsnorm(x)) + x_residual
  • MLP 區塊:x = mlp(rmsnorm(x)) + x_residual

6. Adam 優化器

實作了完整的 Adam 演算法:

  • 一階動量(momentum)m
  • 二階動量(adaptive learning rate)v
  • 偏差修正(bias correction)
  • 線性學習率衰減

7. 下一個 token 預測

訓練目標是標準的語言模型任務:給定前 n 個 token,預測第 n+1 個 token。

使用交叉熵損失(透過 -log(prob[target]) 實作)。

8. 溫度採樣

推論時支援溫度控制:

  • 低溫度(如 0.1):生成更確定性、更保守的結果
  • 高溫度(如 1.0):生成更多樣化、更有創意的結果