首页 › tech › 从零手写GPT:最硬核的AI解剖课

从零手写GPT:最硬核的AI解剖课

导语

2022年底ChatGPT横空出世,全世界都在谈论大语言模型,但绝大多数人聊的是“它能干什么”,而不是“它到底是怎么工作的”。市面上的科普要么停留在“Attention就是注意力”这种比喻层面,要么直接把你淹死在数学公式里。真正的中间地带——用一行行可运行的代码,把GPT从头到尾写一遍——长期是空白。

Andrej Karpathy 的《Let's build GPT: from scratch, in code, spelled out》补上了这块空白。这期视频近两个小时,全程写代码、不念PPT,从一个只能查表的 bigram 模型出发,一步步组装出一个能生成“伪莎士比亚”文本的迷你 Transformer。它被称为“中文互联网之外的最好的 LLM 内部机制入门课”,一点都不夸张。

为什么值得看?因为理解一个系统的最好方式是亲手重建它。你看完这期视频,GPT对你来说就不再是黑盒,而是你亲手焊过每一块电路板的机器。对工程师来说,这种“手过一遍”的知识,和读过十篇公众号科普,完全是两个物种。

注:本文写作时在线检索工具受限,播放量等动态数据为写作时的量级记录,未能实时核验,建议以视频页面为准;文中链接均为长期稳定的公开资源。

视频背景卡片

项目 内容
视频标题 Let's build GPT: from scratch, in code, spelled out
频道 Andrej Karpathy
时长 约1小时56分钟
发布时间 2023年2月
播放量 数百万级(AI技术区常年热门)
核心主题 用纯PyTorch从零实现一个微型GPT,逐行拆解Transformer

关于作者多说一句:Karpathy 是 OpenAI 创始成员、前 Tesla AI 总监(Autopilot 团队负责人),后来创办了 AI 教育公司 Eureka Labs。这个履历意味着一件事——他是极少数“造过真GPT、又愿意蹲下来给初学者写玩具版”的人。业界大牛很多,肯花两小时给你逐行讲代码的,凤毛麟角。

核心内容拆解

1. 学习策略:从 bigram 到 Transformer 的“阶梯”

视频没有一上来就砸出 Transformer 架构图,而是先写了一个bigram 语言模型:只看当前字符,查表找出“下一个字符”的概率分布。这个模型笨到令人发笑,但它定义了语言模型的全部骨架——输入、logits、softmax、交叉熵损失、采样生成。(视频原话大意:我们要先建立“最简单的语言模型”,之后的每一步改进都好理解了。)

我的延伸分析:这是典型的“脚手架式教学”。多数教程的失败在于直接给终态,而 Karpathy 给的是一条演进路径——你看到的不是“GPT长这样”,而是“为什么GPT必须长这样”。每引入一个新组件,都是为了解决上一个版本的具体缺陷。这种因果链式的理解,比背架构图牢固十倍。

2. 初始Loss ≈ ln(65):一个被99%教程跳过的直觉

视频里有个精妙的细节:训练开始前,初始 loss 大约是 4.4,而理论下界是 ln(65) ≈ 4.17(词表里有65个字符,均匀猜测的交叉熵就是 ln 65)。Karpathy 特意停下来解释:初始 loss 如果明显高于这个值,说明模型初始化时就在“胡乱自信”,这不是好事。 他顺手把输出层的权重初始化缩小,让模型起步时“承认自己一无所知”。

我的延伸分析:这是工程直觉的典范。很多人训练模型时看到loss曲线下降就高兴,但从没想过“起点本身是否合理”。这个细节传达的元能力是:对系统的每个数字都要有预期值(sanity check)。做通信的人其实很熟悉这套思路——链路预算、噪声底的估算,本质上是同一件事。

3. Self-Attention 的本质:token 之间的“通信机制”

这是全片最核心的部分。Karpathy 给出的心智模型是:attention 是一组向量之间的通信协议。每个 token 发出一个 Query(我在找什么)、一个 Key(我有什么)、一个 Value(我的内容),token 两两之间算 Q·K 相似度,softmax 成权重后加权平均对方的 Value。

几个关键设计他讲得非常透彻:

(以上均为视频讲解内容;类比部分是我的延伸:做过无线的人可以把 attention 想象成一个微型调度器——每个用户根据信道质量给邻居分配权重,权重由数据决定、实时重算。)

4. 那个 1/sqrt(head_size):软饱和陷阱

自注意力公式里除以 √(head_size),多数教程一笔带过,Karpathy 却做了实验演示:如果不除,当 head_size 较大时,Q·K 点积的方差随维度线性增长,喂进 softmax 后会输出接近 one-hot 的分布——权重过度集中,梯度接近死区,模型学不动。除以 √d 把方差拉回单位量级,让注意力保持“弥散”状态。

我的延伸分析:这是全片最能体现“细节即功力”的地方。它解释了一个反直觉的事实:深度学习的很多设计不是数学必然,而是数值工程的妥协。初始化、归一化、缩放因子,全是在和“数值爆炸/消失”作斗争。理解了这一点,你看任何新架构(比如后来的 RMSNorm、QK-Norm)就不会觉得玄学,只会觉得“哦,又是一次数值稳定性的补丁”。

5. Block = 先通信,再计算:Transformer 的组装哲学

把组件拼成完整模型时,Karpathy 给了一句极其精炼的总结:Transformer Block 里,attention 负责 token 之间的横向通信,MLP 负责每个 token 的独立纵向思考,两者交替。再加上两条工程生命线:

(视频原话大意:communication, then computation——这个短语值得刻在脑子里。)

我的延伸分析:这种“通信/计算分离”的视角有个美妙推论——Transformer 的 Block 结构和通信网络的分层协议栈惊人地同构:attention 层是多节点间的路由与加权转发,MLP 层是端点上的本地处理,残差连接则像保护路由。这也是为什么后来者能把 Transformer 搬到网络架构优化、信道编码等通信问题上——它天生就是一台“可微分的通信机”。

6. 1000万参数的“GPT幼儿园”:形似而神不似

训练完成后(在 tinyshakespeare 数据集、约1000万参数规模上),模型生成的文本是这样的画风:拼写是莎士比亚式的、人名格式都对、换行和对话结构像模像样——但内容是彻头彻尾的胡话。Karpathy 把这个阶段叫“GPT.kindergarten”(幼儿园版)。

我的延伸分析:这个“失败的成果”恰恰是最好的教材。它直观展示了 scaling law 的阴影面:GPT-2 是15亿参数,GPT-4 传闻是其百倍以上,和这个10M模型用的是同一套架构。智能不是从架构里长出来的,是从“架构 × 数据 × 算力”的乘法里长出来的。 看过幼儿园版,你才真正理解为什么行业在拼命堆算力——也让“GPT本质上是压缩器”这类说法有了具象的锚点。

7. 字符级 Tokenizer:玩具与真实的分水岭

视频用字符级切分(词表只有65),并明确指出真实 GPT 用的是 BPE(Byte Pair Encoding)子词切分。这是玩具和工业品的最大分界线之一:字符级让代码简单,但每个 token 携带的信息太少,同样算力下“看”到的文本范围短得多。

我的延伸分析:这个取舍值得所有做AI应用的人记住——tokenizer 的设计直接决定了模型的“感知分辨率”。这也是为什么不同模型对数字、代码、中文的表现差异巨大:它们的切分粒度完全不同。后来 Karpathy 甚至专门做过一期 tokenizer 讲解(以及 tokenizers.ai 这类可视化工具),可见他有多重视这个环节。

8. 这门课的江湖地位:一条完整的 Hero's Journey

这期视频是 Karpathy《Neural Networks: Zero to Hero》系列的收官。整个系列从 micrograd(手写反向传播)到 makemore(语言模型前史)再到这期 GPT,是一条完整的学习路径。配套代码开源在 ng-video-lecture 仓库,进阶版是他更工程化的 nanoGPT 仓库——后者可以真正在私有数据上训出可用的 GPT。(上述仓库信息为公开常识,Star数等动态指标未实时核验。)

我的延伸分析:截至我写作时的观察,这期视频已成为大量 LLM 工程师公开承认的“启蒙课”,在各大社区的 LLM 学习路线图里几乎霸榜。它的稀缺性在于:作者亲手参与过工业级GPT的研发,却用初学者视角重走了一遍来路。这种“降维教学”的能力,比造出GPT本身更难得。

知识结构图

flowchart TD
    A["tinyshakespeare 语料<br/>约1MB纯文本"] --> B["字符级 Tokenizer<br/>词表仅65个字符"]
    B --> C["Token Embedding + Position Embedding"]
    C --> SB["Transformer Block x N"]

    subgraph SB["一个Block: 先通信, 再计算"]
        S1["Multi-Head Self-Attention<br/>token之间横向通信<br/>Q/K/V + 因果掩码 + 1/sqrt缩放"] --> S2["Add + LayerNorm<br/>残差高速公路"]
        S2 --> S3["FeedForward MLP<br/>每个token独立思考"] --> S4["Add + LayerNorm"]
    end

    SB --> E["LayerNorm + Linear输出头"]
    E --> F["Softmax<br/>下一个字符的概率分布"]
    F --> G["CrossEntropy Loss<br/>初始loss约等于ln65"]
    G -. 反向传播更新参数 .-> C
    F --> H["采样生成<br/>伪莎士比亚文本"]

实战启示

如果你是工程师,我给出的行动路径是:第一遍开着1.5倍速看懂脉络;第二遍跟着敲,跑通 ng-video-lecture 仓库(Google Colab 免费GPU就够);然后进阶到 nanoGPT,用你自己的一份文本(比如你的聊天记录、公司文档)训一个专属小模型。手写一遍的价值在于:以后你调LoRA、改上下文长度、看推理优化文章时,每个术语都有代码坐标可挂靠。 面试里“讲讲attention为什么要除以√d”这类问题,对你将是送分题。

如果你是技术管理者或投资/行业分析者,这期视频的价值是祛魅。你能准确回答“GPT和ChatGPT差在哪”(差在RLHF对齐和数据规模,不是架构)、“国产模型和GPT-4的差距是什么性质的差距”(工程与数据积累,不是秘密配方)。在AI概念满天飞的年代,这种判断力值真金白银。

如果你是通信/网络背景的读者(本号主力读者),我想强调:Transformer 是目前距离通信系统思维最近的AI架构——调度、加权、转发、分层,概念几乎一一映射。AI for Networks 和 Network for AI 是未来五年的确定性交汇点,而这期视频是你进入这个交叉领域的最短路径。

唯一的门槛提醒:需要基本的 Python 和 PyTorch 张量操作基础(会 reshape、广播即可)。如果完全没有,建议先花两小时过一遍官方的 PyTorch 60分钟入门,再来看这期,体验会好得多。

延伸学习路径

  1. Karpathy《Neural Networks: Zero to Hero》完整系列(YouTube)— 从 micrograd 开始的完整阶梯,本视频是收官作,强烈建议从第一集看起
  2. nanoGPT(github.com/karpathy/nanoGPT)— 视频的工程化进阶版,可在真实数据上训练,代码极简洁
  3. The Illustrated Transformer(Jay Alammar, jalammar.github.io)— 全网最好的图解 Transformer,适合看完视频后补视觉记忆
  4. 《Attention Is All You Need》原论文(arxiv.org/abs/1706.03762)— 有了代码基础再读,会发现论文惊人地好懂
  5. 3Blue1Brown《But what is a neural network?》系列(YouTube)— 从数学可视化角度补齐直觉,与本文视频的代码视角互补

一句话总结

看懂GPT的捷径不是再读十篇科普,而是跟着前Tesla AI总监花两小时亲手把它写一遍——这期视频就是那条捷径本身。

参考来源

  1. Let's build GPT: from scratch, in code, spelled out — 本文分析的核心视频,Andrej Karpathy 频道
  2. ng-video-lecture — 视频配套代码仓库
  3. nanoGPT — Karpathy 的工程化训练仓库
  4. The Illustrated Transformer — 图解 Transformer 经典文章
  5. Attention Is All You Need — Transformer 原始论文

本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入