NEXT TOKEN · 一本拆开 GPT-2 看的大模型小书

续写▍

你每天让它写代码、改文案、解释报错。可是在最底下,它只做一件事:读完前面所有的字,给下一个 token 打一张分数表——五万个候选,每个一个概率,加起来是 1。然后从表里挑一个,接到末尾,再来一遍。
这本书把一台真的 GPT-2 在笔记本上一层层拆开,回答一个问题:只会续写的东西,是怎么长出那些本事的?以及——为什么它会一本正经地编。

五卷 · 20 章亮色每个数字都本机跑过 GPT-2(124M / 355M / 774M / 1.5B)numpy 2.5 · torch 2.14 · transformers 5.20
把「The capital of France is」交给 GPT-2,它吐出的就是这样一张表 The ␣capital ␣of ␣France ␣is 下一个 token 概率 意外 ' the' 8.46% 3.56 比特 ' now' 4.79% 4.38 比特 ' a' 4.62% 4.44 比特 ' France' 3.24% 4.95 比特 ' Paris' 3.22% 4.95 比特 ' in' 2.66% 5.23 比特 ' also' 2.64% 5.24 比特 ' not' 2.38% 5.39 比特 熵 8.65 比特 · 50257 个候选里的前八名 · 本机实测
◆ 这本书的主线

它只做一件事:给下一个 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 跑的代码和它在本机的真实输出。

目录

卷 I

一张表

TABLE

先把它当黑箱:进去一段字,出来一张给下一个 token 的分数表。这一卷讲这张表是什么、它的行是什么、该拿什么尺子去量它。

卷 II

长出来

GROW

那张表不是写出来的,是从一堆随机数里「训」出来的:把词变成坐标,沿着意外往下走,学会规律,或者干脆背下来;再加上规模。

卷 III

肚子里

INSIDE

打开 GPT-2:一条总线,十二层,每层一组会回头看的头和一块 MLP。一个一个找出来,量一量,再关掉看看。

卷 IV

写出来

WRITE

从一张表到一段话:怎么挑、要花多少、以及你写的提示词在它眼里是什么。

卷 V

当助手

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 关闭。

从第 1 章开始 ▶

或者 打开目录 挑一章 · 返回全站