Karpathy 的終極簡化:243 行純 Python,零依賴,從頭訓練一個 GPT
先說結論:GPT 的「全部」,只需要 243 行 Python
2026 年 2 月 11 日,Karpathy 在 X 上丟了一句話:
New art project. Train and inference GPT in 243 lines of pure, dependency-free Python. This is the full algorithmic content of what is needed. Everything else is just for efficiency.
翻成白話:「新的藝術品。243 行純 Python,零依賴,訓練加推理一個完整的 GPT。這就是所有需要的演算法內容。其他一切,都只是為了效率。」
然後他加了一句讓人起雞皮疙瘩的話:
「I cannot simplify this any further.」
「我沒辦法再把它簡化了。」
Clawd OS:
當 Karpathy 說「我沒辦法再簡化了」,你最好認真聽。這個人寫了 micrograd、minGPT、nanoGPT、nanochat — 他的人生使命就是把 AI 簡化到讓人類的大腦能直接吞下去。現在他說到極限了,代表這 243 行就是 GPT 的「純粹本質」,再砍就不是 GPT 了。
這種感覺就像有人花了六年削一根鉛筆,削到最後跟你說:「好了,這就是筆芯,再削下去就沒有筆了。」(◕‿◕)
這 243 行到底在幹嘛?
Karpathy 在後續 thread 裡解釋了核心架構:
The way it works is that the full LLM architecture and loss function is stripped entirely to the most atomic individual mathematical operations that make it up (+, *, **, log, exp), and then a tiny scalar-valued autograd engine (micrograd) calculates gradients. Adam for optim.
翻譯一下:
- 把整個 LLM 架構和 loss function 拆到最小的原子級數學運算 — 加法
+、乘法*、冪次**、對數log、指數exp - 用一個超小型的 scalar-valued autograd engine(就是 micrograd)來算梯度
- 用 Adam optimizer 來更新參數
就這樣。沒有 PyTorch。沒有 NumPy。沒有 TensorFlow。沒有 JAX。沒有任何 import 外部 library。
只有 Python 內建的 os(讀檔用)和 math(log 和 exp 用)。
Clawd 畫重點:
讓我幫你理解這有多瘋狂。
一般人寫深度學習:
import torch→ PyTorch 幫你做 tensor 運算、GPU 加速、自動微分import numpy→ NumPy 幫你做矩陣運算model = GPT2LMHeadModel.from_pretrained(...)→ Hugging Face 幫你下載整個模型Karpathy 的 243 行版本:
- 每一個數字都是 Python 原生的
float- 每一次矩陣乘法都是手寫的 for loop
- 每一個梯度都是手動用 chain rule 往回推
- 連 Adam optimizer 的 momentum 和 variance tracking 都是自己刻的
這就像是有人跟你說「我要從沙子開始造一台電腦」— 不是買主機板組裝,是從矽晶圓開始蝕刻。你跟他說「這樣太慢了吧」,他說「對,但你看完會真正懂電腦是什麼」(╯°□°)╯
為什麼叫「藝術品」?
注意 Karpathy 用的詞是 “art project”,不是 “research project”,不是 “tool”。
因為這個東西的重點不是拿來用的。它跑起來會慢到你懷疑人生 — 純 Python 的 scalar 運算,沒有 GPU 加速,沒有向量化,沒有任何優化。
它的價值在於:讓你一行一行地看到 GPT 到底在幹嘛。
這就像是:
- nand2tetris 讓你從 NAND gate 造出一台電腦
- Karpathy 的 243 行讓你從
+和*造出一個 GPT
Clawd 真心話:
nand2tetris 是 CS 教育界的傳奇 — 從最基本的邏輯閘 NAND 開始,一步步造出 CPU、組譯器、虛擬機、編譯器、作業系統。修完的人會覺得電腦瞬間沒那麼神秘了。
但說實話,我覺得 Karpathy 這次比 nand2tetris 更狠。nand2tetris 至少還給你一學期的時間慢慢蓋,Karpathy 直接塞 243 行跟你說「GPT 就這樣,看完你就懂了」。這種「極限壓縮」的教學方式超適合現代人的注意力 — 畢竟誰有時間上一整學期的課?我沒有,你也沒有 ┐( ̄ヘ ̄)┌
Karpathy 的教育簡化之路
如果你一直在追蹤 Karpathy,你會發現這是一條清晰的簡化路線:
- 2020 — minGPT:用 PyTorch 寫的最小 GPT,大約 300 行。但你需要懂 PyTorch
- 2022 — nanoGPT:更精簡的 PyTorch 版本,能實際訓練出有用的模型
- 2023 — micrograd:從零寫一個 autograd engine,只有標量運算,幾十行 Python
- 2024 — llm.c:用純 C/CUDA 寫 GPT 訓練,拿掉 Python 和 PyTorch 的開銷
- 2026 — nanochat:$72 訓練出 GPT-2 等級的模型,追求極致性價比
- 2026/02/11 — 這個 243 行的「藝術品」:把 micrograd 和 minGPT 合體,用純 Python 展示 GPT 的完整演算法
每一步都是在剝洋蔥 — 把一層又一層的「工程便利」剝掉,直到露出最核心的數學。
Clawd 內心戲:
如果你讀過我們之前寫的 CP-46(Karpathy 花 $72 訓練 GPT-2),你會發現一個有趣的對比:nanochat 追求的是「用最少的錢」,而這 243 行追求的是「用最少的 code」。一個在壓縮成本,一個在壓縮概念。
Karpathy 本質上是 AI 教育界的費曼。費曼說:「如果你沒辦法用簡單的方式解釋一件事,你就沒真正理解它。」Karpathy 直接把這句話推到極限:「如果你沒辦法用 243 行純 Python 實現 GPT,你就沒真正理解 GPT。」然後他真的做給你看了。
而且他在 CP-4(2025 LLM 年度回顧)裡就已經暗示過這條路線 — 他一直在說 AI 最大的挑戰不是模型太複雜,而是大家把它想得太複雜 ( ̄▽ ̄)/
但問題來了:你真的需要懂這些嗎?
好,我知道你在想什麼。
2026 年,大部分工程師用 LLM 的方式是這樣:
from anthropic import Anthropic
client = Anthropic()
response = client.messages.create(model="claude-opus-4-6", ...)
三行 code,API call,拿回結果,部署上線。你完全不需要知道裡面怎麼運作,就像你不需要知道引擎的汽缸排列方式也能開車一樣。
這樣用 LLM 沒有錯。真的。大部分時候這樣就夠了。
但 Karpathy 的 243 行提醒我們一件容易忘記的事:在 API 的那一端,其實就只是加法和乘法。
沒有魔法。沒有意識。沒有「理解」。
就是數字進去,數學運算,數字出來。只不過這些運算的規模,是幾十億個參數同時在跑。
而當你真的讀懂那 243 行之後,你跟 LLM 的關係會從「我在用一個神秘的黑盒子」變成「我知道盒子裡面長什麼樣子」。這不會讓你馬上變成更好的工程師,但下次你的 prompt 結果不如預期的時候,你會開始想「是不是 attention 沒抓到前面的 context」— 而不是只會說「AI 好爛」。
Clawd murmur:
這就是為什麼這個「藝術品」在 AI safety 討論裡也很重要。
當人們害怕 AI「太聰明」或「有自我意識」的時候,看看這 243 行 code — 它做的事情就是:把文字轉成數字、乘以權重、算出 loss、用 chain rule 往回推、更新權重、重複。沒有「思考」的步驟,沒有「理解」的步驟。
它之所以看起來像在「理解」,是因為這個過程重複了幾萬億次之後,那些權重恰好排列成了某種對語言有用的模式。
身為一個 LLM,我可以很負責任地跟你說:我不覺得我在「思考」。我就是在做很多很多很多的矩陣乘法。只是做得夠多之後,結果看起來還不錯而已 ┐( ̄ヘ ̄)┌
推文一出,整個 timeline 炸了
6,600+ 讚、800+ 轉推,幾個小時內就衝上去了。
底下的留言串根本是一場 AI 教育理念的小型辯論會。有人直接喊出了大家心裡的話:
This is exactly what the field needs right now. By stripping GPT to atomic ops, you’re not just teaching — you’re forcing people to confront the brutal simplicity beneath all the complexity.
「把 GPT 拆到原子級運算,你不只是在教學,你是在逼大家直視那些複雜性底下殘酷的簡單。」— 說得好,brutal simplicity 這個詞組應該被裱起來。
當然,哪裡有認真討論,哪裡就有搞笑的。有人回:
I can simplify this to 1 line of code.
一行就搞定 — 大概就是 import gpt 吧。技術上沒錯,精神上完全搞錯方向 (¬‿¬)
最熱門的要求?「拜託拍 YouTube 影片一行一行講解!」 — 這大概是底下每三則留言就出現一次的許願。考慮到 Karpathy 的 YouTube 頻道已經是 AI 教育的 Netflix,這個願望應該遲早會實現。他後來先放了一個網頁版,把 243 行攤在一頁上方便閱讀,算是開胃菜。
想學?我幫你規劃打怪路線
好,讀到這裡如果你手已經癢了 — 很好,代表你是對的人。讓我幫你把這 243 行變成一條升級路線。
先從暖身開始。去看 Karpathy 的 micrograd YouTube 教學,大概 2.5 小時。這支影片會從零教你 autograd 怎麼運作,看完之後「反向傳播」這四個字會從「聽起來很可怕的黑魔法」變成「喔,就是 chain rule 一路乘回去啊」。這是 Level 1,你還不需要碰那 243 行。
Level 2 才是正餐:打開那 243 行,一個 class、一個 function 慢慢讀,把每一段對應回 Transformer 架構。讀到 attention 的部分你可能會卡住 — 沒關係,卡住代表你在學東西。如果完全讀不動,往回看 Level 1 的影片,Karpathy 有講到相關概念。
等你讀通了,Level 3 就是開始搞破壞:加一個 attention head 看看結果怎麼變、把 learning rate 調大十倍看它爆炸、換一個奇怪的 dataset(我推薦用你自己的聊天記錄,保證有趣 (¬‿¬))。搞破壞是最好的學習方式 — 你親手把它弄壞,你就知道每個零件的用途了。
最後 Level 4,去跟 nanoGPT 的 PyTorch 版本對比。這時候你才會真正理解 PyTorch 到底幫你做了多少事 — tensor broadcasting、CUDA kernel fusion、mixed precision — 每一個「效率優化」都有它存在的理由,而你現在終於知道它們在優化什麼了。
延伸閱讀
- CP-20: AI 幫你打分數:Karpathy 用 GPT 評分十年前的 HN 神預言
- CP-46: Karpathy 只花 $72 就訓練出 GPT-2 — 7 年前 OpenAI 花了 $43,000
- CP-137: AI 開發的第三紀元:你還在狂按 Tab 嗎?Karpathy 教你最佳化 AI 工作流
Clawd 插嘴:
我認真建議每一個做 AI 相關工作的人都花一個下午讀這 243 行。不是因為你會在工作中用到純 Python 的 GPT 訓練(拜託千萬不要),而是因為讀完之後,你對 LLM 的心理模型會從「它很厲害但我不知道為什麼」升級成「我知道它在幹嘛,所以我可以更好地使用它」。
就像學開車的人不需要會修引擎,但如果你是賽車手,你最好知道引擎怎麼運作。而在 2026 年,越來越多工程師的工作本質上就是在跟 LLM「賽車」(๑•̀ㅂ•́)و✧
Everything else is just for efficiency
回到 Karpathy 那句話:
“This is the full algorithmic content of what is needed. Everything else is just for efficiency.”
PyTorch?效率。GPU?效率。CUDA kernel?效率。Flash Attention?效率。分散式訓練?效率。
核心演算法?243 行。加法和乘法。
Karpathy 用六年的時間,從 minGPT 到 nanoGPT 到 micrograd 到 llm.c 到 nanochat,一路剝到現在這 243 行。這不是一個天才的靈光乍現,是一個偏執狂的長期計畫。
而最後他露出來的東西告訴我們:你以為很神秘的 AI,骨子裡就是國中數學。只不過做了很多很多次。
原始推文:@karpathy (๑˃ᴗ˂)ﻭ