续写▍
你每天让它写代码、改文案、解释报错。可是在最底下,它只做一件事:读完前面所有的字,给下一个 token 打一张分数表——五万个候选,每个一个概率,加起来是 1。然后从表里挑一个,接到末尾,再来一遍。
这本书把一台真的 GPT-2 在笔记本上一层层拆开,回答一个问题:只会续写的东西,是怎么长出那些本事的?以及——为什么它会一本正经地编。
它只做一件事:给下一个 token 打分。你见过的一切本事,都是为了把这张表打准,被迫在它肚子里长出来的零件。
没有人给它写过语法规则、事实库或者「怎么当助手」。训练只要求它在几十亿个 token 上把下一个猜准——为了满足这个简单到近乎无聊的要求,它长出了把相似的词放到一起的坐标、一条所有部件都往上写的总线、专门回头找名字的注意力头、看一眼就能照抄的电路、比维度还多的叠加概念。这本书把它们一个个找出来,量一量,再关掉看看。
理解了这些零件,很多日常的困惑都有了具体的答案:它为什么数不清 strawberry 里的 r,为什么输出比输入贵五倍,为什么给一个例子比写一段说明管用,为什么它说得越笃定越要核对。
为什么值得读
四个从书里挑出来的数字,全是本机跑出来的:
| 它看起来是 | 它其实是 | 章 |
|---|---|---|
| 给 GPT-2 一串从没见过的随机 token,重复一遍,第二遍它 97.1% 一猜就中——像是「现学」了 | 一个两步电路:一个头记下「我前面是谁」,后面的头据此照抄。144 个头里关掉 4 个,猜中率掉到 9.1%,第一遍纹丝不动 | 12 |
| 56 条对话微调几秒钟,它学会了答完就停,法国首都的把握从 16.22% 涨到 99.06% | 训练里根本没有法国——它学的是格式和自信。对不认识的国家,它照样斩钉截铁:不丹的首都是北京(71.75%) | 17–18 |
| 把 GPT-2 当压缩器,一篇它没见过的文章压到 4.25 KB,zlib 是 13.6 KB | 训练日志里的 loss 就是这个文件大小。猜得准,在数学上就等于压得小 | 4 |
| 参数大 12.5 倍,每个字符只少花 11.4% 的比特 | 同一组模型里,「金的元素符号」从第 1066 名升到第 1 名、95.77%。平滑的曲线和突然的能力,是同一组数字 | 8 |
这些都不是比喻或者转述。书里用的 GPT-2 是用 numpy 从头写的一台(和 transformers 的官方实现逐个核对过),每章都附一段十几到三十几行、能直接粘进 Colab 跑的代码和它在本机的真实输出。
目录
一张表
TABLE先把它当黑箱:进去一段字,出来一张给下一个 token 的分数表。这一卷讲这张表是什么、它的行是什么、该拿什么尺子去量它。
- 01它只会做一件事:给下一个词打分「The capital of France is」后面,它最想写的是 the(8.46%),Paris 排第 5。它不是在回答你,是在续写★ 跨领域对照表
- 02它看不见字␣strawberry 是一个编号 41236 的符号;同一句人权宣言,中文在 GPT-2 里要 86 个 token,英文 33 个★ strawberry 是一个 token
- 03只靠数数,能续写多远看前 4 个字符最准(2.55 比特/字符);看前 9 个,63.6% 的上下文一次都没见过,崩到 5.00★★ 63.6% 没见过
- 04猜得准,就是压得小GPT-2 把一篇 2022 年后的文章压到 zlib 的 1/3.19。训练日志里的 loss,就是这个文件大小★★ 3.19 倍于 zlib
长出来
GROW那张表不是写出来的,是从一堆随机数里「训」出来的:把词变成坐标,沿着意外往下走,学会规律,或者干脆背下来;再加上规模。
- 05词是坐标Monday 离 Tuesday 0.890,seven 离 six 0.872。而 king − man + woman 离得最近的,还是 king 自己★ king 的最近邻是 king
- 06十三万个旋钮,一次算出往哪拧反向传播只花 2.31 次前向就拿到全部 133721 个梯度;一个个去试要贵 11 万多倍。银行和气象台用的是同一招★★ 反向传播
- 07背下来,和学会MIT 许可证 0.29 比特/字符、第一名猜中 91.0%,给一行能默写 29 个词;打乱顺序就是 2.15★ MIT 许可证 0.29 比特
- 08规模的价格大 12.5 倍只少 11.4%,是一条幂律;同一组模型里,Au 从第 1066 名升到第 1★★ 第 1066 名到第 1 名
肚子里
INSIDE打开 GPT-2:一条总线,十二层,每层一组会回头看的头和一块 MLP。一个一个找出来,量一量,再关掉看看。
- 09注意力:每个位置自己查一次表4.11 号头 99.4% 只看上一个 token;看 Mary 最多的头,在给 Mary 减分★ 99.4% 只看上一个
- 10一条大家都往上写的总线删掉第 1 层只多 0.6% 的意外;Mary 在第 9 层之后才冒头,第 9 层的注意力写了 59%★★ 删掉一层只多 0.6%
- 11知识存在哪MLP 占 45.5% 的参数;可在 Jordan 的位置上逐层删 MLP,basketball 最低只降到 5.72%★ 没有那一条记录
- 12现学现卖,是一个电路乱码第一遍 17.36 比特,第二遍 0.63;关掉 144 个头里的 4 个,第二遍回到 10.78★★★ 全书招牌
- 13比维度还多的概念特征很少同时出现时,2 维里能塞下 5 个,排成五角星——所以神经元大多是多义的★ 两维塞下五个
写出来
WRITE从一张表到一段话:怎么挑、要花多少、以及你写的提示词在它眼里是什么。
当助手
ASSIST一台续写机,怎么变成你每天对话的那个东西——以及它为什么会一本正经地编。最后对照今天的模型,再给出往下走的路。
写给谁
这本书写给
- 天天在用 AI 写代码、却没打开看过它的工程师。不需要机器学习背景:每个术语第一次出现都会当场解释,数学只用到「概率」和「对数」。
- 想知道那些现象为什么会发生的人:为什么数不清字母、为什么会复读、为什么给例子管用、为什么输出贵、为什么会编。每一个都有一章,每一章都有一个实验。
- 读过「Attention Is All You Need」的示意图、但觉得隔着一层的人。这本书不画抽象的框图,它把真的 GPT-2 打开,指着第 9 层第 6 个头说「主要是它干的」。
这本书不打算做的
- 不教你调 API、写 Agent。那是书架上《我,Agent》的事;这本书讲的是它底下那一层。
- 不推导完整的数学。线性代数在《张成》,信息论在《意外》,强化学习在《打分》。这里只用到理解现象所必需的那一点。
- 不评测哪家模型最强。书里的数字都是拿 2019 年的 GPT-2 量的;第 19 章对照今天的模型时,只读公开的配置文件,不做排名。
- 不装环境。每章的「⌨ 自己跑一遍」给的是能直接粘的代码和本机跑出来的答案;没有机器就用 Google Colab。全书的探针(numpy 版 GPT-2 和所有实验)在仓库的
scripts/probe-next/里。
怎么读
- 按顺序读最好。卷 I、II 是地基,卷 III 用到前两卷的每一个概念(第 12 章的电路要靠第 9 章的那个头),卷 V 的后训练和幻觉要靠第 4 章的交叉熵和第 16 章的「文档」视角。
- 只有一个小时:读第 1、12、17 章。一张表、一个电路、一次微调——这本书最想让你带走的三件事。
- 每章开头有「▷ 先猜一下」,结尾有「◇ 揭晓」。先猜再看,你在做的就是模型训练时每一步在做的事——第 20 章会把这句话讲完。
- 每章有一张「候选表」(琥珀色的条是概率,松绿是真正写下的那个,最右边是意外的比特数),全部是本机跑 GPT-2 得来的;章首的「◉」条告诉你这一章拆的是模型的哪一段。
- 键盘 ← / → 翻页,右上角按钮开目录,Esc 关闭。