跳到主要内容

一台语言模型是什么 — 这本书要造的东西

这一章讲三件事: 大语言模型到底是什么东西;它靠什么机制读得懂一段话;以及这本书要带你造的那台机器, 用什么零件、吃什么数据。读完你会拿到全书的第一张地图——后面十二章,每一章都在往这张地图上装一个零件。 不需要任何基础,遇到的生词都在当场解释。

1. 先看现象:它的工作只有一件事——猜下一个词

你跟 ChatGPT 这类工具聊天时,它一段一段地吐字。背后的机制朴素得出奇:

它每一步都在回答同一个问题:「前面这些字都定了,下一个字最可能是什么?」 答一下,把猜中的字接上去,再问一遍。

原书给语言模型的定义就是这句话的学术版:一个概率系统,根据前文,预测接在后面的下一个元素1。 「概率系统」的意思是:它不给唯一答案,给的是一张可能性清单——「下一个字是『好』的机会 40%,是『吧』的机会 12%……」 (这两个百分比是为演示编的,不是书里数值), 然后从清单里挑一个。

这个「猜下一字」的动作,行话叫下一词预测(训练时它也只练这一件事,后面每章都会回到它)。这台机器的学名叫神经网络(一层层排开的简单小算器,连起来一起算)——后面三章造的就是它的各种零件。 原书把它标成现代大模型的核心训练任务:因果语言建模——「因果」指的是只许用过去、不许偷看未来2

2. 「大」在哪里,「语言模型」又是什么

先把书名里每个词拆开:

指什么
语言模型上面那台「猜下一字」的机器
吃过海量文字(几十亿词起步),内部装着几亿到几千亿个可以调的数3
from scratch不拿现成的,自己动手把每个零件写出来

原书特意强调一件容易误会的事:这些模型并不真正理解它们处理的文字, 它们靠的是抓住文字里的统计规律——抓得太狠时就会一本正经地编造4。 这句话先放在这儿,全书后面会反复撞见它的后果。

这台机器的历史,三步就走完

原书把演化史压缩成三级台阶5:

年代代表干法卡在哪
1980-90 年代n-gram(数前几个词的搭配频率)查统计表稍微看远一点就数不过来
2000 年代RNN(一轮接一轮读下去的网络,也叫循环神经网络)和它的变体 LSTM一个字一个字往后读,边读边记必须按顺序读,快不了;读长了记不住
2017 年Transformer整段文字一起看(计算量大——这本书后面几章都在治这个病)

第三级台阶是分水岭:2017 年谷歌的论文《Attention is All You Need》提出 Transformer6, 把「按顺序读」换成了「一起看」,训练速度和规模上限一起被打开——今天所有叫得出名字的大模型, GPT、BERT(谷歌 2018 年那一代)、LLaMA,骨子里都是它7

3. 全书的枢纽词:注意力

这一节只讲一个词,但它是整本书的承重墙。

RNN 读一句话像人念经:念到第 100 个字,前面 99 个字只剩一点模糊印象。 Transformer 的替代方案是注意力(attention):处理每个词时,回头扫一遍所有词, 按「谁跟我现在这件事有关」决定看谁多看谁少8

原书把流程拆成四步9:

① 每个词各带三份「简历」:查询(我在找什么)、键(我是什么)、值(我能提供什么)
② 拿我的查询去和每个词的键对一对,得出相关分
③ 相关分归一化成「关注度」(加起来恰好 1)
④ 按关注度把所有词的「值」掺在一起,得到我这个位置的新表示

图说:每个词都同时做这件事,所以是并行计算,不是排队。
分数怎么算、为什么除以一个数,第 06 章会拆开讲。

为什么这一招值钱?原书举的例子很直观:「The scientist, after years of research, discovered a new species」—— 处理到「discovered」时,注意力能隔着十几个词把「scientist」直接勾住10。 RNN 隔这么远基本就断了。

注意力还有一个妙处:可以多开几路同时算,每路盯一种关系。这叫多头注意力——「多头」就是「多路同时看」的意思11

各路有分工:有的路管句法(词怎么排才成合法的句子),有的路管远近。

还有的路管语义(词句到底在说什么)。最后把几路结果拼起来,凑成完整的理解11

4. 这本书要造的那台:2025 年配方的 Transformer

原书第一章末尾交底:本书跟着 Andrej Karpathy 那套著名的「从零写 GPT」讲座的路子走12, 但零件全部换成当下各家模型在用的现代款。全书 13 章拆解下来,这台机器的零件清单是:

切词器(第 03 章) 文字 → token
蓝图 + RMSNorm(第 04 章) 每个尺寸定多少;稳定信号
RoPE(第 05 章) 旋转着编码位置,撑长上下文
注意力核心(第 06-07 章) SDPA + 三种省法 + 总装成块
前馈块(第 08 章) SwiGLU 激活 + 专家混合
总装(第 09 章) 一层层码起来,接上输入输出
数据与训练(第 10 章) 备料 + 真的训练一遍
推理(第 11 章) 让它开口说话,看它翻车
四阶段训练法(第 12 章) 预训练之后的行规
GPU 之上(第 13 章) 显卡里到底在跑什么

图说:原书 11 章,我们重排成 13 章——注意力和「大时刻」各拆成两章,CUDA 单独成章。

两件原书开篇就声明的事,影响你怎么读它:

第一,一切都在你自己的电脑上跑。 前几个模型刻意做得小到 CPU 都能训练, 显卡工具(CUDA)只在后期做大实验时才出场,因为「又快又贵」13。这是一个明确的取舍: 宁可模型小到只能背下一段散文,也要让每个读者跑得动全程。

第二,训练数据四个,由小到大排成一条阶梯。 这张表后面每章都会回来对照14:

数据集多大干什么用
TinyStories合成的简单童书几百万参数的小模型就能学会连贯叙事;缺点:出了童话就不会说话
莎士比亚小,风格极重字符级模型的经典教材;一眼看出模型学没学会那个腔调
绿野仙踪约 4 万词的完整小说本书实际拿来训练的主语料——小到整个装进内存,错了好查
OpenWebText几十 GB 网页文本模仿 GPT-2 的训练数据;真正「大」模型吃的口粮,需要压缩与清洗

5. 显卡为什么是另一台主角机器

矩阵(排成表格的一堆数)乘法占满大模型九成以上的计算,而它可以切成几百万个互相独立的小乘法。 GPU(图形显卡)就是为这种活儿生的:一块 H100 卡有一万六千多个计算核心, 作为对照,一般电脑的 CPU 只有 8-64 个核心15。原书给的关键数字:A100 这一代卡有 6,912 个 CUDA 核心, 一块卡就能并行做数百万次数学运算16

还有一个省钱的诀窍先记下:训练时可以把数字「减半存」——每个数占 2 字节——字节就是数字存储的最小单位——而不是 4 字节, 一个 15 亿参数的模型,数字全存要 3GB 显存,减半存只要约 1.5GB17

原话还给了更大的图景:顶级卡的专用矩阵计算块,每秒能做千万亿次级别的浮点运算(带小数点的乘加计算)18。 这些数字到第 13 章讲 CUDA kernel 时还要用。

6. 作者的判断与证据

说法书里的证据我们的标注
注意力是大模型成功的基石给了机制描述与场景例证,没有实验作者判断,与领域共识一致
小数据集适合教学、大数据集才能出通用能力四个数据集的对比描述作者判断,第 11 章的翻车演示是它的实证
本地小机器就能学会「从零造模型」这门手艺全书代码确实 CPU 可跑作者用行动兑现的承诺

判断(我们的,不是书里的): 原书第一章(以及后面好几个综述节)读起来像百科词条, 部分数字给得可疑地精确(例如后面出现的「GPT-4 万亿级参数」是市场传闻口径), 综述部分要当「导览」读,别当「论据」读;这本书真正的硬货是代码和那一台真的被训出来的小模型。 如果错,会错在: 如果综述部分其实经过了严格的事实核查,那我们的警惕就过度了—— 但「把综述降级为导览」不改变任何零件层面的结论,顶多少引几句背景。

7. 边界与局限

  • 第一章不教任何机制:注意力在这里只有直觉版,公式从第 06 章才开始;
  • 书里的应用清单(医疗摘要、教育评分、写作助手)是 2025 年口径的快照,不构成方法;
  • 「GPU 让训练便宜」这句要反着记:显卡让单位计算便宜了,但大模型训练的总账单是百万美元级,第 12 章有账。

8. 可带走的

  1. 语言模型只做一件事:看前文,猜下一字,给概率清单,挑一个,重复;
  2. 「大」= 海量文字 + 几亿到几千亿个可调的数;「从零」= 每个零件自己写;
  3. RNN 按顺序读、记性随距离衰减;Transformer 一起看,靠注意力决定看哪里;
  4. 注意力 = 查询对键打分、按分数掺值;多开几路 = 多头注意力;
  5. 本书造的是 2025 配方:每个零件都换成了 LLaMA/Mistral 这一代用的那款;
  6. 数据集分四档:玩具(童书/莎翁)→ 一本小说(本书主料)→ 网页级(真大模型);
  7. 显卡的价值 = 几千个小核心同时开工 + 数字减半存省一半显存;
  8. 它不理解文字,它抓统计规律——这条是全书所有翻车现场的总根源。

9. 原文地图

主题原书章原文位置
语言模型的定义What Is a Large Language Model (LLM)?text/09-fm-what-is-a-large-language-model-llm.txt:7(搜「probabilistic system」)
Transformer 与注意力是核心机制What Is a Large Language Model (LLM)?text/09-fm-what-is-a-large-language-model-llm.txt:15(搜「Attention is All You Need」)
没有真正理解、靠统计规律What Is a Large Language Model (LLM)?text/09-fm-what-is-a-large-language-model-llm.txt:37(搜「statistical regularities」)
历史三台阶What Is a Large Language Model (LLM)?text/09-fm-what-is-a-large-language-model-llm.txt:9(搜「n-gram」)
注意力的定义与机制The Attention Mechanism—Cornerstone of Modern Large Language Models (LLMs)text/10-fm-the-attention-mechanism-cornerstone-of-modern-la.txt:11(搜「focus on specific parts」) · text/10-fm-the-attention-mechanism-cornerstone-of-modern-la.txt:27(搜「square root」)
多头注意力The Attention Mechanism—Cornerstone of Modern Large Language Models (LLMs)text/10-fm-the-attention-mechanism-cornerstone-of-modern-la.txt:35(搜「multihead attention」)
长程依赖的例子The Attention Mechanism—Cornerstone of Modern Large Language Models (LLMs)text/10-fm-the-attention-mechanism-cornerstone-of-modern-la.txt:51(搜「The scientist」)
Karpathy 讲座与本地优先1. What Is a Large Language Model? Getting Started with Libraries and Environment Setup for Building an LLM from Scratchtext/08-ch01-1-what-is-a-large-language-model-getting-started.txt:21(搜「Karpathy」) · text/08-ch01-1-what-is-a-large-language-model-getting-started.txt:23(搜「locally」)
工具清单与主数据集The Tools We Will Use to Build a Large Language Model from Scratchtext/11-fm-the-tools-we-will-use-to-build-a-large-language-.txt:3(搜「local-first」) · text/11-fm-the-tools-we-will-use-to-build-a-large-language-.txt:15(搜「Wizard of Oz」)
四个数据集的分工TinyStories, Shakespeare, The Wizard of Oz, and OpenWebTexttext/17-fm-tinystories-shakespeare-the-wizard-of-oz-and-ope.txt:9(搜「TinyStories」) · text/17-fm-tinystories-shakespeare-the-wizard-of-oz-and-ope.txt:17(搜「40,000 words」) · text/17-fm-tinystories-shakespeare-the-wizard-of-oz-and-ope.txt:21(搜「OpenWebText」)
先 CPU 后 CUDAWhy CUDA for Building Large Language Models?text/15-fm-why-cuda-for-building-large-language-models.txt:5(搜「CPU-friendly」)
显卡核心数Why CUDA for Building Large Language Models?text/15-fm-why-cuda-for-building-large-language-models.txt:11(搜「6,912」)
半精度省显存Why CUDA for Building Large Language Models?text/15-fm-why-cuda-for-building-large-language-models.txt:31(搜「1.5GB」)

Footnotes

  1. 出处:「What Is a Large Language Model (LLM)?」第 7 段(text/09-fm-what-is-a-large-language-model-llm.txt:7,搜「probabilistic system」)。原文:语言模型「本质上是一个概率系统,在前文给定的情况下预测文本序列中的下一个元素」。

  2. 出处:「What Is a Large Language Model (LLM)?」第 31 段(text/09-fm-what-is-a-large-language-model-llm.txt:31,搜「causal language modeling」)。原文把「因果语言建模(又称自回归建模)」列为核心训练任务:模型通过最小化预测与真实下一 token 的差距来学习。

  3. 出处:「What Is a Large Language Model (LLM)?」第 13 段(text/09-fm-what-is-a-large-language-model-llm.txt:13,搜「billions of words」)。原文:「大」通常指在海量语料(数十亿词)上训练、拥有数亿到数千亿个可调参数。

  4. 出处:「What Is a Large Language Model (LLM)?」第 37 段(text/09-fm-what-is-a-large-language-model-llm.txt:37,搜「statistical regularities」)。原文:这些模型并不真正理解语言,靠检测和利用统计规律工作,因此可能产生幻觉内容或事实错误。

  5. 出处:「What Is a Large Language Model (LLM)?」第 9 段(text/09-fm-what-is-a-large-language-model-llm.txt:9,搜「n-gram」)。原文按 n-gram → RNN/LSTM → transformer 三步讲演化。

  6. 出处:「What Is a Large Language Model (LLM)?」第 15 段(text/09-fm-what-is-a-large-language-model-llm.txt:15,搜「Attention is All You Need」)。原文注明 Vaswani 等人 2017 年论文。

  7. 出处:「The Attention Mechanism—Cornerstone of Modern Large Language Models (LLMs)」第 17 段(text/10-fm-the-attention-mechanism-cornerstone-of-modern-la.txt:17,搜「GPT, BERT, LLaMA」)。原文:Transformer 支撑着几乎所有现代大模型。

  8. 出处:「The Attention Mechanism—Cornerstone of Modern Large Language Models (LLMs)」第 11 段(text/10-fm-the-attention-mechanism-cornerstone-of-modern-la.txt:11,搜「focus on specific parts」)。原文:注意力让模型在处理文字时聚焦输入序列的特定部分,给每个 token 分配「权重」。

  9. 出处:「The Attention Mechanism—Cornerstone of Modern Large Language Models (LLMs)」第 25 段(text/10-fm-the-attention-mechanism-cornerstone-of-modern-la.txt:25,搜「Query (Q), Key (K), and Value」)与第 29 段(text/10-fm-the-attention-mechanism-cornerstone-of-modern-la.txt:29,搜「softmax」)。原文逐步给出:三向量由学习到的线性变换导出;点积除以键向量维度的平方根;softmax 归一化成注意力权重;输出是值向量的加权和。

  10. 出处:「The Attention Mechanism—Cornerstone of Modern Large Language Models (LLMs)」第 51 段(text/10-fm-the-attention-mechanism-cornerstone-of-modern-la.txt:51,搜「The scientist」)。原文用「The scientist, after years of research, discovered a new species」演示注意力把「scientist」与「discovered」隔词相连。

  11. 出处:「The Attention Mechanism—Cornerstone of Modern Large Language Models (LLMs)」第 35 段(text/10-fm-the-attention-mechanism-cornerstone-of-modern-la.txt:35,搜「multiple times (heads) in parallel」)。原文:多头注意力把自注意力并行算多次,每路用不同的 Q/K/V 投影,输出拼接后再变换。 2

  12. 出处:「1. What Is a Large Language Model? Getting Started with Libraries and Environment Setup for Building an LLM from Scratch」第 21 段(text/08-ch01-1-what-is-a-large-language-model-getting-started.txt:21,搜「Karpathy」)。原文:课程受 Andrej Karpathy 的 GPT-from-scratch 讲座启发,自底向上、不要求高深数学背景。

  13. 出处:「Why CUDA for Building Large Language Models?」第 5 段(text/15-fm-why-cuda-for-building-large-language-models.txt:5,搜「CPU-friendly」)。原文:最早的模型刻意保持 CPU 可跑,搬到更大实验时才引入 CUDA,因为它「又快又贵」。

  14. 出处:「TinyStories, Shakespeare, The Wizard of Oz, and OpenWebText」第 3 段(text/17-fm-tinystories-shakespeare-the-wizard-of-oz-and-ope.txt:3,搜「Four Key Datasets」)、第 9 段(搜「TinyStories」)、第 17 段(text/17-fm-tinystories-shakespeare-the-wizard-of-oz-and-ope.txt:17,搜「40,000 words」)、第 21 段(text/17-fm-tinystories-shakespeare-the-wizard-of-oz-and-ope.txt:21,搜「OpenWebText」)。绿野仙踪「只有约 4 万词」;OpenWebText「未压缩几十 GB」「模仿 GPT-2 的数据集」。

  15. 出处:「Training Neural Networks with CUDA Kernels and Modern Frameworks」第 13 段(text/95-fm-training-neural-networks-with-cuda-kernels-and-m.txt:13,搜「16,000 CUDA cores」)。原文:CPU 一般 8-64 核,H100 超过 16,000 个 CUDA 核心。

  16. 出处:「Why CUDA for Building Large Language Models?」第 11 段(text/15-fm-why-cuda-for-building-large-language-models.txt:11,搜「6,912」)。原文:A100 40GB 有 6,912 个 CUDA 核心。

  17. 出处:「Why CUDA for Building Large Language Models?」第 31 段(text/15-fm-why-cuda-for-building-large-language-models.txt:31,搜「1.5GB」)。原文:15 亿参数模型 FP32 要 3GB,FP16 约 1.5GB。

  18. 出处:「Why CUDA for Building Large Language Models?」第 65 段(text/15-fm-why-cuda-for-building-large-language-models.txt:65,搜「1,250 TFLOPS」)。原文:H100 的 Tensor Core 可达每秒 1,250 万亿次 FP16 运算。