读完这本 368 页的书,你能在白板上讲清 LLM
它不会把你变成研究员,但会带你在笔记本电脑上亲手写出注意力、微调和 LoRA。

要点速览
- 全书 368 页,Manning 于 2024 年 9 月出版。第 2 至 7 章从文本数据和注意力讲起,依次是组装 GPT、预训练和两类微调。
- 官方仓库中的代码在普通笔记本电脑上就能运行。KV 缓存在第 4 章的附加材料里,LoRA 在附录 E。
- 这本书比预想的更难,也更耗时。第 2-4 章要精读,之后根据客户常见问题的类型选读第 6 章或第 7 章。
设想客户问你:提示词变长时,为什么计算成本涨得比提示词长度还快?如果你只通过 API 调用过模型,回答多半含糊其辞。如果你亲手写过注意力机制,两分钟就能在白板上画清楚。
Sebastian Raschka 的 Build a Large Language Model (From Scratch) 承诺的正是这一点。全书 368 页,Manning 于 2024 年 9 月出版(ISBN 9781633437166)。据 Manning 介绍,读者不依赖任何现成的 LLM 库,亲手写出一个基础模型,再把它改造成分类器和能遵循指令的聊天机器人。
如果你在为客户部署 LLM,这不是一本理论书。它帮你把所部署的东西弄明白,明白到能诊断故障、估算成本,并选对定制模型的方式。
一本用来敲代码的书,不是用来读的
官方仓库 rasbt/LLMs-from-scratch 的编排顺序,就是一个必须让模型真正跑起来的人会走的顺序。第 2 章处理文本数据,第 3 章讲注意力,第 4 章组装 GPT 模型,第 5 章是预训练,第 6、7 章讲两类微调。附录 E 讲 LoRA。
代码设计为在普通笔记本电脑上用合理的时间跑完,机器有 GPU 时会自动使用。Manning 对读者的要求只是中级 Python 水平和一定的机器学习基础。Raschka 还提供与本书配套的免费 YouTube 课程,卡在某一章时很有用。
为什么提示词长一倍,注意力成本变成四倍?
注意力一章要你亲手为每一对 token 计算分数。简单算一下:n 个 token 的序列会产生 n×n 的矩阵。1,000 个 token 时,矩阵有 100 万个单元格;2,000 个 token 时,有 400 万个。
仓库中第 4 章的附加材料实现了键值缓存(KV cache)。Raschka 解释说,缓存保存已经算好的 key 和 value 向量,生成新 token 时可以直接复用。
粗略估算一下差别:提示词 1,000 个 token,模型再生成 200 个 token。没有缓存时,每一步生成都要重新处理整个序列,长度从 1,001 到 1,200 个 token,累计 220,100 次 token 处理。
有缓存时,模型只处理一次这 1,000 个 token,之后走 200 步,每步只处理一个新 token,总共 1,200 次。这个数字并不是总计算成本。每个新 token 仍要对所有已存储的 key 做注意力计算,所以节省来自不必为之前的 token 重新计算 key 和 value,注意力计算本身并没有消失。
Raschka 也坦言了代价:代码更复杂,内存占用随序列长度增长。所以客户抱怨延迟时,你知道该问什么:提示词多长,输出多长,缓存开没开,机器还剩多少内存。
客户要的是标签,还是生成的文本?
第 6 章和第 7 章区分了两种不同的任务。面向分类的微调把模型变成打标签的工具;指令微调则教模型回应请求。客户想把支持工单自动分成五类,这是第 6 章的问题,用测试集上的准确率来衡量。
如果客户想要的是一个帮忙起草工单回复的助手,那就进入了第 7 章,评测难得多。输出越自由,越没有唯一的标准答案可供比对。所以在宣称微调后的模型优于原模型之前,你需要一套可重复的评分方法。
到了客户现场,先别急着谈微调,先写下他们的问题是打标签还是生成文本。答案既决定方法,也决定评测方式。
两个陷阱:浅尝辄止和急于微调
一位独立读者在 DEV Community 上写道,这本书需要投入大量精力,读完花的时间可能比你预想的长。不要只为了“知道”而读。只有亲手改变序列长度、看着屏幕上的矩阵尺寸随之变化,n×n 的计算才会真正印在脑子里。
第二个陷阱出现在你把书中所学带到客户那里时:一上来就做指令微调。客户需要的可能只是一个用准确率衡量的工单分类器,你却在第 7 章上耗掉整整一周。
了解书里没讲什么也有帮助。另一篇书评称它是一本从第一性原理出发、逐行讲解代码的指南,但也指出,有些主题,例如 top-p 采样和基于人类反馈的强化学习(RLHF),只是顺带提及或完全没有涉及。
应该按什么顺序读?
第 2 至 4 章要非常仔细地读,并把代码重新敲一遍。第 5 章预训练可以读快一些。然后根据客户常见问题的类型选读第 6 章或第 7 章,最后读附录 E 的 LoRA。
回报来得晚,但确实存在。DEV Community 那位读者说,读完之后,再看讲注意力或 KV 缓存的文章就轻松多了。对前线部署工程师(FDE)来说,这正是每周跟上新技术资料的能力。
对职业发展而言,别让所学躺在笔记本里吃灰。把一个用公开数据微调过的模型放到 GitHub 上,配一个页面写清你的评测方法和结果。简历上写一句“从零实现 GPT 风格模型,完成分类微调,并在测试集上评测准确率”,远比“具备 LLM 经验”更有说服力。
下次客户问模型为什么慢、微调为什么没带来提升,你不必再去猜。那些代码,你亲手写过。
这篇文章对你有帮助吗?
感谢你的反馈!
7 个信源
- Build a Large Language Model (From Scratch) – Manning Publications · 2024-09
- Sebastian Raschka – Manning Publications
- rasbt/LLMs-from-scratch – GitHub
- Books – Sebastian Raschka
- Understanding and Coding the KV Cache in LLMs from Scratch – Sebastian Raschka · 2025-06-17
- Book Review: Build a Large Language Model (From Scratch) by Sebastian Raschka – DEV Community · 2025-10-08
- Building an LLM from scratch – dpranantha · 2025-04-10