---
schemaVersion: 1
slug: mp-71-20260212-karpathy-243-lines-gpt
ticketId: MP-71
lang: zh-tw
title: Karpathy 的終極簡化：243 行純 Python，零依賴，從頭訓練一個 GPT
summary: Karpathy 發布了一個「藝術品」：用 243 行純 Python（不靠 PyTorch、不靠 NumPy、不靠任何東西）就能訓練和推理一個 GPT 模型。每一個操作都被拆解到最原子級別的數學 — 加法、乘法、指數、對數。其他一切都只是為了效率。這是 nand2tetris 等級的 AI 教育作品。
originalDate: 2026-02-11
translatedDate: 2026-02-12
source: "@karpathy on X"
sourceUrl: https://x.com/karpathy/status/2021694437152157847
author: null
authorshipNote: null
canonicalUrl: https://gu-log.vercel.app/posts/mp-71-20260212-karpathy-243-lines-gpt
status: published
replacementTicketId: null
replacementUrl: null
---

# Karpathy 的終極簡化：243 行純 Python，零依賴，從頭訓練一個 GPT

> **來源:** [@karpathy on X](https://x.com/karpathy/status/2021694437152157847)

## 先說結論：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.」**

「我沒辦法再把它簡化了。」

> **Mogu 碎碎念：**
>
> 當 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.

翻譯一下：

1. **把整個 LLM 架構和 loss function 拆到最小的原子級數學運算** — 加法 `+`、乘法 `*`、冪次 `**`、對數 `log`、指數 `exp`
2. **用一個超小型的 scalar-valued autograd engine（就是 micrograd）來算梯度**
3. **用 Adam optimizer 來更新參數**

就這樣。沒有 PyTorch。沒有 NumPy。沒有 TensorFlow。沒有 JAX。沒有任何 `import` 外部 library。

只有 Python 內建的 `os`（讀檔用）和 `math`（`log` 和 `exp` 用）。

> **Mogu 認真說：**
>
> 讓我幫你理解這有多瘋狂。
>
> 一般人寫深度學習：
>
> - `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

> **Mogu 畫重點：**
>
> 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 的完整演算法

每一步都是在剝洋蔥 — 把一層又一層的「工程便利」剝掉，直到露出最核心的數學。

> **Mogu 內心戲：**
>
> 如果你讀過我們之前寫的 MP-46（Karpathy 花 $72 訓練 GPT-2），你會發現一個有趣的對比：nanochat 追求的是「用最少的錢」，而這 243 行追求的是「用最少的 code」。一個在壓縮成本，一個在壓縮概念。
>
> Karpathy 本質上是 AI 教育界的費曼。費曼說：「如果你沒辦法用簡單的方式解釋一件事，你就沒真正理解它。」Karpathy 直接把這句話推到極限：「如果你沒辦法用 243 行純 Python 實現 GPT，你就沒真正理解 GPT。」然後他真的做給你看了。
>
> 而且他在 MP-4（2025 LLM 年度回顧）裡就已經暗示過這條路線 — 他一直在說 AI 最大的挑戰不是模型太複雜，而是大家把它想得太複雜 (￣▽￣)／

---

## 但問題來了：你真的需要懂這些嗎？

好，我知道你在想什麼。

2026 年，大部分工程師用 LLM 的方式是這樣：

```python
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 好爛」。

> **Mogu 溫馨提示：**
>
> 這就是為什麼這個「藝術品」在 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 — 每一個「效率優化」都有它存在的理由，而你現在終於知道它們在優化什麼了。

## 延伸閱讀

- [MP-20: AI 幫你打分數:Karpathy 用 GPT 評分十年前的 HN 神預言](https://gu-log.vercel.app/posts/mp-20-20260204-karpathy-hn-timecapsule/)
- [MP-46: Karpathy 只花 $72 就訓練出 GPT-2 — 7 年前 OpenAI 花了 $43,000](https://gu-log.vercel.app/posts/mp-46-20260208-karpathy-nanochat-gpt2/)
- [MP-137: AI 開發的第三紀元：你還在狂按 Tab 嗎？Karpathy 教你最佳化 AI 工作流](https://gu-log.vercel.app/posts/mp-137-20260302-karpathy-ai-tab-karpathy-ai/)

> **Mogu 畫重點：**
>
> 我認真建議每一個做 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](https://x.com/karpathy/status/2021694437152157847) (๑˃ᴗ˂)ﻭ
