<!-- title: 从零手写GPT：最硬核的AI解剖课 -->
<!-- domain: tech -->
<!-- video: https://www.youtube.com/watch?v=kCc8FmEb1nY -->

# 从零手写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。

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

- **因果掩码（causal mask）**：未来的 token 不许被现在的 token 看见，实现方式是把相似度矩阵的上三角置为负无穷再过softmax——所以矩阵是三角形的；
- **均值聚合到加权聚合**：他先用简单的“前面所有token取平均”演示，再自然过渡到数据驱动的加权，层层递进；
- **attention 没有“位置”概念**：它只管 token 之间的关联强度，位置信息必须由 position embedding 额外注入。

（以上均为视频讲解内容；类比部分是我的延伸：做过无线的人可以把 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 的独立纵向思考，两者交替**。再加上两条工程生命线：

- **残差连接（residual）**：给梯度修一条高速公路，让信号可以“抄近道”直达浅层，几十层的网络才训得动；
- **LayerNorm（pre-norm 结构）**：放在子层之前做归一化，稳定训练。

（视频原话大意：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本身更难得。

## 知识结构图

```mermaid
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](https://www.youtube.com/watch?v=kCc8FmEb1nY) — 本文分析的核心视频，Andrej Karpathy 频道
2. [ng-video-lecture](https://github.com/karpathy/ng-video-lecture) — 视频配套代码仓库
3. [nanoGPT](https://github.com/karpathy/nanoGPT) — Karpathy 的工程化训练仓库
4. [The Illustrated Transformer](https://jalammar.github.io/illustrated-transformer/) — 图解 Transformer 经典文章
5. [Attention Is All You Need](https://arxiv.org/abs/1706.03762) — 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学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
