【200行代码,一个时代的本质】
Andrej Karpathy 最近做了一件事:用200行纯 Python 代码,零依赖,完整实现了 GPT 的训练和推理。
不是玩具,不是简化版,是完整的算法内核。
他把整个大语言模型架构拆解到最原子级的数学运算:加法、乘法、幂运算、对数、指数。然后用一个微型自动求导引擎计算梯度,Adam 优化器完成训练。
代码最终呈现出一种近乎完美的结构:第一列是数据集、分词器、自动求导;第二列是 GPT 模型本身;第三列是训练和推理。三列代码,一页纸,一个完整的语言模型。
有人评论说:整个 AI 行业就是200行数学加一万亿美元的营销。
这话刻薄,但不无道理。
当然,真实世界的大模型需要处理分布式训练、显存优化、推理加速、安全对齐等无数工程问题。但 Karpathy 想说的是:所有这些都是效率层面的事,算法的本质就在这200行里。
米开朗基罗说他在大理石中看见了天使,然后凿去多余的部分将其释放。Karpathy 做的是类似的事:他在层层叠叠的工程代码中找到了那个最小的、不可再简化的算法内核。
这让我想到一个问题:我们对复杂系统的理解,往往不是通过增加知识,而是通过减少噪音。
当你能用200行代码写出 GPT,你就真正理解了什么是 GPT。
gist.github.com/karpathy/8627fe009c40f57531cb18360106ce95
发布于 北京
