<!-- title: 手写一遍GPT，大模型再无魔法 -->
<!-- domain: programming -->
<!-- video: https://www.youtube.com/watch?v=kCc8FmEb1nY -->

## 为什么选这条两小时的“常青神课”

2026年的今天，让 AI 写代码已是家常便饭，但大多数人对“大模型”三个字的理解，仍然停留在新闻标题层面。它到底是个什么东西？为什么喂它文本它就能“学会说话”？这些问题，绝大多数人答不上来。

今天要深读的这条视频，是编程领域公认的入坑第一课：Andrej Karpathy 的 **Let's build GPT: from scratch, in code, spelled out**。Karpathy 是 OpenAI 创始成员、前特斯拉 AI 总监，也是技术圈公认最强的 AI 教学者之一。这条视频发布于 2023 年 2 月，时长约 2 小时，属于他的 **Neural Networks: Zero to Hero** 系列，播放量达数百万级，至今仍是无数程序员转行 AI 的敲门砖。它不是本周新片，而是一条常年霸榜的常青课——选它，是因为在这个分类里，它就是绕不开的那一课。

它解决的问题非常具体：**从空文件开始，不用任何框架魔法，用纯 PyTorch 把一个能生成“莎士比亚风格”文本的 GPT 亲手写出来。** 两个小时看完，你会明白一个残酷又解脱的事实——大模型的原理，一页纸就能讲完；难的从来不是原理，是规模。

## 视频背景卡片

| 项目 | 内容 |
|------|------|
| 视频标题 | Let's build GPT: from scratch, in code, spelled out. |
| 频道 | Andrej Karpathy（OpenAI 创始成员、前特斯拉 AI 总监） |
| 所属系列 | Neural Networks: Zero to Hero |
| 时长 | 约 2 小时 |
| 播放量 | 数百万级（频道长视频中的头部作品） |
| 发布时间 | 2023 年 2 月 |
| 核心主题 | 从空文件手写一个 GPT，逐行讲透 Transformer |

## 核心内容拆解

### 1. 先造一个“最蠢的模型”，把「模型」祛魅

Karpathy 的第一步不是讲理论，而是造一个 bigram 模型：只看前一个字符、猜下一个字符的“统计表”。训练数据是 tiny Shakespeare 语料——约 1MB、100 万字符的莎士比亚全集，全部不同字符只有 65 个。于是这个“模型”就是一张 65×65 的概率表，每个格子记录“字符 A 后面出现字符 B”的频率。

这个起点看似寒酸，实则是全片最重要的教学设计：**让初学者在第一分钟就看到完整的训练循环**——算预测、算 loss、反向传播、更新参数，一个不少，只是参数少得可怜。他顺手给了一个锚点：65 个字符乱猜，理论 loss 是 -ln(1/65)≈4.17；bigram 训练后能压到 2.5 左右。我的延伸分析是，这一步把“模型”这个词彻底祛魅了：所谓模型，无非是“一堆参数 + 一个让预测逐步逼近事实的训练循环”，剩下的都是程度问题。

### 2. 大语言模型只干一件事：猜下一个字

有了 bigram，接下来只回答一个问题：怎么让它变聪明？Karpathy 给出的答案朴实到让人愣住——**不需要更聪明的逻辑，只需要更长的“前文”**。把“只看前 1 个字符”改成“看前 N 个字符”，让每个位置都根据全部上文来预测下一个字符，这就是语言模型的全部。数学上就是条件概率的链式分解：一句话的概率，拆成一连串“给定前文、下一个字的条件概率”相乘。生成文本，就是反复采样“下一个字”，再把结果接回输入，循环往复。

视频原话大意是：这就是所谓的 autoregressive（自回归）模型，它的行为和你在 ChatGPT 里打字时逐 token 吐字的体验完全一致。我的延伸是：从这条 1MB 语料上的字符级模型，到 GPT-4，**原理完全同构**，差距只在三处——tokenizer 从 65 个字符换成几万量级的子词、训练数据从 1MB 换成上万亿 token、参数从一张表换成千亿矩阵。看懂这一节，你就看懂了“大”模型里那个“大”字。

### 3. 两行数学撑起全场：softmax 与交叉熵

全片真正用到的数学，其实只有两个组件。第一个是 softmax：把网络输出的任意一组分数（logits）变成总和为 1 的概率分布，指数化保证非负、归一化保证可解释。第二个是交叉熵（负对数似然）：真实答案是字符 c，你的模型给 c 的概率是 p，loss 就是 -ln(p)。猜对且自信，loss 趋近 0；猜对但犹豫，loss 也罚你。Karpathy 特别提醒了工程细节——指数容易数值爆炸，softmax 前要先减去最大值，这个 trick 今天所有训练代码里都还在用。

这节给我的启发是：**深度学习真正的骨架小得惊人**。不是不考数学，而是只考这两条，其余全是工程。很多人被“AI 数学很难”劝退，其实卡住他们的从来不是这两个公式，而是没人带他们把公式和代码对上号——这条视频干的就是这件事，每个公式出现的同时，对应的 PyTorch 函数就敲在屏幕上。

### 4. 全片最妙一段：从「加权平均」里长出 attention

这是我认为全片含金量最高的一段，Karpathy 用了一种教科书里罕见的推导路径。他先不写 attention 公式，而是写一个朴素事实：**每个 token 想要“知道自己前文的信息”，最简单的办法是对前文做加权平均**。他用矩阵乘法实现这件事——一个下三角 mask 保证第 i 个位置只能平均前 i 个 token，再套一层 softmax 让权重归一。这时代的权重是固定的、不可学习的，模型笨得像块木头。

接下来才是点睛之笔：**把“权重是多少”这件事，交给两个可学习的向量决定**。每个 token 发射一个 query（我在找什么）和一个 key（我有什么），两者点积越强，注意力权重越大；再用一个 value（我的实际内容）参与加权平均。这就是 Q、K、V 三件套的由来——不是天上掉下来的公式，而是“可学习的加权平均”的自然延伸。他随后补上两个工程细节：点积要除以 √head_size，否则维度一大方差爆炸、softmax 饱和成 one-hot；因果 mask 必须保留，“不许偷看未来”是 decoder 的纪律。

### 5. 一块 Block = 开会 + 独处

attention 只负责“token 之间通信”，Karpathy 引用原论文的结构，把它和另外几块积木拼成一个完整的 Block。**多头注意力（multi-head）**：并行跑多组 Q、K、V，每组在独立的子空间里“开会”——有的头盯语法、有的头盯指代，最后把结论拼接投影回来。**前馈网络（feed-forward）**：一个两层 MLP，中间隐层先升维 4 倍再压回来，注意它是逐 token 独立计算的，不跨位置通信——所以他的总结很精辟：attention 是 token 之间开会，MLP 是每个 token 回工位独自消化。

然后是三个稳定性组件：**残差连接**（引用何恺明 2015 年的 ResNet，给梯度留一条高速公路，网络再深也能训得动）、**LayerNorm**（把每个 token 的向量拉回稳定区间）、**Dropout**（训练时随机失活，防止在这 1MB 小语料上背书）。他还有一个容易被忽略的工程细节：残差分支末端的投影层初始化成接近零，让训练开始时残差流“干净”——这些细节论文里一笔带过，代码里全是学问。

### 6. 一千万参数的迷你 GPT，长什么样

最后组装：n_embd=384、6 层 Block、6 头注意力、上下文长度 256、约一千万参数量级的小 GPT。训练在笔记本上就能跑（他在视频里提到，同样的配置放到 8 张 A100 的云端机器上大约一刻钟训完）。loss 从最初的 4.17 一路压到 1.5 上下，然后是全片最有仪式感的一幕——**模型开始吐“莎士比亚”**：拼写、换行、对话格式有模有样，内容完全是胡说八道。

这个结果比“成功”更有教育意义。Karpathy 顺势讲了 scale 路线：GPT-2（2019 年，词表 5 万量级，上下文 1024）到 GPT-3（2020 年，1750 亿参数，训练数据约 3000 亿 token），架构几乎没变，变的是数据、算力和上下文长度。我的延伸判断是：**看完这一节你会彻底明白，“大”模型的大是结果，不是原理**。原理在这两小时里已经讲完了；剩下的一切，都是把这一页纸的原理放大一万倍的工程史。

## 知识结构图：一个 GPT 的诞生流水线

```mermaid
flowchart TD
    A["莎士比亚语料<br/>约100万字符"] --> B["字符级tokenizer<br/>65个字符换成编号"]
    B --> C["查表变向量<br/>再加位置信息"]
    C --> D["自注意力<br/>token之间传纸条"]
    D --> E["前馈网络<br/>每个token独立消化"]
    E --> F["残差加归一化<br/>梯度的高速公路"]
    F --> G["一个Block完成<br/>同样的Block堆六层"]
    G --> H["线性输出层<br/>算下一个字符的概率"]
    H --> I["交叉熵对比答案<br/>得到loss"]
    I --> J["反向传播<br/>更新一千万个参数"]
```

## 实战启示

**动手路线**：这条视频最好的打开方式不是看，是跟着敲。推荐路径：先看同系列的 micrograd 一集（百来行代码手写反向传播，约 2 小时），再跟本视频敲一遍，最后去 **nanoGPT** 仓库看他把这套代码工业化的版本。硬件门槛比想象中低——视频里的小配置，一台普通笔记本就能训练。

**用 AI 时的三个顿悟**：其一，你抱怨的“上下文窗口”，就是视频里的 block_size——AI 忘事不是 bug，是架构边界。其二，“幻觉”是采样的副产品：模型只负责让下一个 token 的概率最大化，它从头到尾没有“事实”这个概念，理解这一点才知道为什么 RAG 和检索增强是刚需。其三，调 temperature 本质上是在改 softmax 的陡峭度——调低=保守，调高=放飞，你在 UI 上拧的那个旋钮，对应的就是视频里那两行代码。

**职场硬通货**：能把 Q、K、V 和 multi-head 讲清楚，是算法岗和后端岗面试的通用加分项；因果 mask 这个设计更是绝佳范本——它展示了“工程约束（不许偷看未来）如何进入数学结构（下三角矩阵）”，这种思路在任何系统设计里都用得上。

**方法论彩蛋**：Karpathy 的教学策略——“先写最蠢的能跑的版本，再一步步升级”——本身就是值得抄走的工程与学习哲学。任何领域，先造出你的 bigram。

## 延伸学习路径

1. **micrograd**（同系列前一集）——100 行代码手写反向传播，本视频的前置课，同一个入口：karpathy.ai/zero-to-hero.html
2. **论文《Attention Is All You Need》**（arXiv:1706.03762）——看完视频再读原文，你会发现每个公式都似曾相识
3. **karpathy/nanoGPT**（GitHub）——本视频代码的工业化版本，含复现 GPT-2 的完整脚本，是这个领域最著名的教学仓库之一
4. **The Illustrated Transformer**（Jay Alammar）——图解版 Transformer，代码看累了对着图回顾，效率极高
5. **《Let's build the GPT Tokenizer》**（同频道后续视频）——本视频故意跳过的 tokenizer，BPE 算法完整实现，看完你对“AI 为什么数不清草莓里有几个 r”会有根本性理解

## 一句话总结

大模型没有魔法——它只是“猜下一个字”这件小事，被放大了一万倍；而理解它最好的方式，就是花两个小时，亲手把那个最小的版本写一遍。

## 参考来源

1. [Let's build GPT: from scratch, in code, spelled out.](https://www.youtube.com/watch?v=kCc8FmEb1nY) — 本文分析的核心视频（Andrej Karpathy，2023）
2. [Neural Networks: Zero to Hero 课程主页](https://karpathy.ai/zero-to-hero.html) — 视频所属系列完整目录
3. [karpathy/nanoGPT](https://github.com/karpathy/nanoGPT) — 视频代码的工业化版本
4. [Attention Is All You Need](https://arxiv.org/abs/1706.03762) — Transformer 原始论文（Vaswani et al., 2017）
5. [The Illustrated Transformer](https://jalammar.github.io/illustrated-transformer/) — 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)
