为什么不给它换个提示词,而是动手术
这一章讲三件事: 通用大模型在生产环境里撞的三堵墙;为什么「换更大的」「把指令写得更细」「接知识库」这三条常规路都撞不破;以及本书提出的第四条路——对这台机器的本体动结构手术——长什么样。 这一章是全书的地基:后面九章讲的所有手术刀,都在这一章的管线图上各有自己的位置。
1. 这一章讲什么
你在做原型验证时用某个大模型(在海量文字上练出来、什么都会一点的机器),一切顺利;项目转正之后,改走 API(花钱调用别人机器的入口),账单、响应速度、「我们和竞争对手的输出长得一模一样」这三件事开始一起找上门。
这一章回答:问题出在哪,出路长什么样。作者给出的答案是一个三阶段流程,外加一个关键限定:这不是调参,是物理修改机器的架构1。
第一步,删。把不干活的部件整个卸下来,行话叫剪枝——机器变小变快,本事也会掉一截。
第二步,教。行话叫蒸馏——让原件当老师,把删坏的本事教回去。
第三步,对准。只加装一小片新零件、只调这一小片,行话叫 LoRA 特化——一套只加装小零件的省力调法。
它在全书链条里的位置: 这一章给路线图,第二章立刻用一个小号的完整实例走一遍;第三章把它的内部构造摊开;第四到十章逐把手术刀讲透。读完本章你会知道每把刀是干嘛的,但还不知道怎么用——那是后面九章的事。
2. 顶层全景:整条改造管线
先把全书要反复使用的地图画出来,后面每一章都会回到它:
原始基模(比如 7B 通用模型)
│
▼ ① 结构优化(第 4、5、8、9 章):剪掉贡献最小的部件
变小变快、但能力受损的模型
│
▼ ② 知识恢复(第 6 章):让原模型当老师,把丢的能力蒸回来
恢复大部分能力的精简模型
│
▼ ③ 特化(第 7 章,可选):用少量参数训练,适配你的领域
又小又快、又专又准的模型
↑
└─ 整条管线上方始终悬着一样东西:你的领域数据集
它决定删什么、怎么恢复、往哪特化
图说:三段各有目标,按需取用——只求更小更快可以停在②;
每一段的输入都是上一段的输出,所以每一步微调都跑在更小的模型上,最省算力[^2]。
一个可选的前置步骤叫教师校正:动刀之前,先用你的领域数据给原件补一轮小课——微调(在练好的机器上再练一练)——让它后续当老师时教得更好。这个词是 NVIDIA 拼装机器家族时提出的2。
3. 核心原理:三堵墙和三条撞不破的路
3.1 先看清楚:这台通用机器是给谁设计的
大语言模型(LLM:读遍海量多领域文字、从例子里学规律练出来的续写机器)广博而昂贵。
它们的参数——内部可调数值的总数——从上千亿逼近万亿;作为对照,2020 年那一代的招牌(ChatGPT 的前身)就已一千七百多亿,今天又翻了几十倍3。
广博是它们的力量来源,也是它们在专门任务 上的浪费来源:分析财报和写客户报告需要的本事不同,却常常由同一台机器包办。
这不是谁的失误。本书说的「模型」——那台内部装着海量可调数值、拿来就能续写文字的机器——大多出自学术实验室或大厂研究团队,那里的成功标准是在公开基准上排名。
好在它们大多是开源(代码与数值全公开)的:谁都能下载、拆开、改造,本书的所有手术正站在这份公开上。
所以机器带着你用不上的超大上下文窗口(一次能读进多少文字)和全语言覆盖,这些能力在领域场景里不仅闲置,甚至可能拖累表现4。
3.2 第一堵墙:成本
从原型到生产,API 调用从每天几十次涨到成百上千次,而且你为输入和输出两侧的 token(把文字切成的小词块)都付钱,输出侧几乎没法预估5。
智能体(agent:能自己调工具、连步干活的程序)系统里工具互相调用,更是雪上加霜。
自建也不自动省钱。作者见过一个制药团队,为了「一天只用几次」的那台机器,让高端 GPU(显卡)全天候运转,费用天文数字;他们想的解法还是去租一台。
但病根不在「自建还是租用」,在「工具和任务错配」:他们用了一个远大于需要的模型(那台续写机器本身)。换成小得多的专用款之后,成本降了,推理(让它现场产出 文字)快了,团队反而开始做以前舍不得做的实验——一个原本要配给使用的贵重家当,变成了顺手的工具6。
3.3 第二堵墙:没有差异化
如果每家公司都通过 API 用同几个通用模型,金融分析师拿到的推荐就和其他所有人一样。作者把话说得很直白:当人人都能用同一个模型,你的差异化只可能来自你独有的东西——你的数据,和围绕它特化的模型7。
常规的两条增援路线在这里都撞墙:
- 提示工程:把要求写得更细,当然有用,但模型底下的专业能力纹丝不动8;
- 检索增强(即 RAG——Retrieval-Augmented Generation:回答前先去知识库里查资料,把查到的塞进对话):它给机器新信息,却不改变机器处理信息的方式——所以它和本书的改造是互补的,很多改造项目的目标恰恰是让模型在 RAG 管线里更好用9。
微调闭源(拿不到内部数值的)模型呢?钱花了,什么都拿不回来;原件一升级,你的微调就得重跑。作者打了个比方:这像在租来的地上盖定制房——典型的供应商锁定10。开源模型可以随便微调,但如果微调的对象本身就是个为刷榜设计的通用模型,你是在给错配的工具做精装修。
3.4 第三堵墙:黑箱
在金融、医疗这类受监管行业,可解释性不是加分项,是法定要求。租来的机器在这件事上是绝对黑箱:你手里只有一个调用口,它还会不打招呼地悄悄更新,弄坏你的生产系统11。
开源模型好一点——权重(内部那几亿个可调数值)就在那里,看得见、拿得到。
但看得见不等于看得懂:内部纠缠的复杂度(多少层、多少亿个数值互相牵扯),让它们在实践中同样被当黑箱对待。本书给出的增量是:通过分析神经元激活来打开它。激活是模型各层在处理输入时产生的内部数值,观察哪些部件「点亮」,你就能理解和影响模型的行为12。
这条线在后面会反复出现:第四章用激活给每个部件打重要性分;第八章用激活找出多余的注意力(块内让每个词参考其他词的那套机构,第 03 章会拆开讲)层。
3.5 主走查:一条管线怎么吃掉一个真实任务
把三段管线套到书里的例子上:一家金融服务公司要把一个 7B 通用模型改造成季报分析器13。
输入:7B 通用模型 + 公司积累的财报数据集
第 0 步(可选) 校准:拿财报数据轻微微调基模
→ 它后面当老师、当被剪的对象时,都更贴近目标领域
第 1 步 剪枝:用同一份财报数据测量模型各部件的贡献
→ 贡献最小的层和神经元被删掉,模型明显变小变快
→ 此刻它在通用基准和财务任务上都变差了(正常,先别慌)
第 2 步 恢复:用通用数据集做蒸馏,原模型当老师
→ 学生不只学「正确答案」,还学老师得出答案的完整思路
第 3 步 特化:再用财报数据做 LoRA 微调
→ 把领域习惯写进少量新增参数
产出:明显更小、明显更快、在你的任务上比原 7B 更准的模型
图说:财报数据出现在第 0、1、3 步,通用数据只出现在第 2 步。
这就是「领域数据集是全过程的脊梁」的意思[^15]。
两个变体值得知道。如果目标不是特化而是纯省经费,可以完全不用领域数据,按通用重要性来剪,得到一个保留大部分行为的更快模型;如果想定向增强某项能力,可以用现成基准的数据集当校准——比如用 BoolQ 的数据引导剪枝来保阅读理解,用 IFEval 的来保指令遵循14。