卡帕西中文站 / 推文解读 / llm.c

llm.c:用约一千行纯 C 训练 GPT-2,掀起「去框架化」运动

原推发布:2024-04-08 · 解读更新:2026-08 · 阅读约 4 分钟

一句话

卡帕西发布开源项目 llm.c:不依赖 PyTorch 和 Python,用纯 C(随后扩展到 CUDA)实现 GPT-2 的完整训练。推文获约 160 万浏览,把「LLM 训练到底需要多少东西」这个问题摆上了台面——答案是:一个几百 KB 的单文件就够,而不是几百 MB 的依赖栈。

他说了什么

他用一贯的自嘲式开场介绍这个项目:想不想在没有 245MB PyTorch、107MB cPython 的情况下训练大模型?没人想?现在也可以了。项目首发版本的规格是:

"GPT-2 training on CPU/fp32 in only ~1,000 lines of clean code" —— @karpathy,2024-04-08 · 查看原推 →

他强调这份代码即刻编译、即刻运行,且数值上与 PyTorch 参考实现完全对齐;选 GPT-2 是因为它是「LLM 的祖师爷」——第一个以现代形态齐装上阵且开放权重的模型。这不是玩具复刻,而是把训练全栈(前向、反向、优化器、数据加载)逐层手写出来。

背景:从零实现路线的延长线

llm.c 不是孤立事件,而是他「从零实现」教育路线的延续:minGPT(2020)、nanoGPT(2022)、llama2.c(2023)一路走来,方向始终是把大模型技术栈从层层抽象里拆出来给人看。2024 年初深度学习框架已经厚到一个新人很难说清「训练时到底发生了什么」,llm.c 用最原始的语言给出了一份可通读的答案。项目以 MIT 协议开源在 GitHub

它引发了什么

对你意味着什么

  1. 最好的 LLM 内功教材之一:想真正理解训练过程,通读 llm.c 的单文件实现比读十篇综述有效——每一行都对应一个数学操作,没有魔法。配合 Zero to Hero 课程食用效果更佳。
  2. 成本直觉要更新:小规模复现经典模型已进入个人预算区间。做 AI 业务前先自己跑一遍小模型训练,对「什么贵、什么便宜」的判断会完全不同。
  3. 依赖极简是工程杠杆:对独立开发者,llm.c 示范了一种可迁移的姿势——在部署环境受限、成本敏感的场景(边缘设备、国产硬件)里,砍掉框架依赖本身就是竞争力。

延伸