跳到主要内容

微调(像带一个读过整个互联网的实习生:语言它已经会了,你只掰它的行为)在改什么

这一章讲三件事: 这次「掰行为」到底动了这台机器的什么;为什么说它的机制 是「把输出的统计形状整个挪走」;以及——最重要——什么问题才轮得到微调来管。 读完你会拿到全书的判断地基:微调是「改变它是什么」,不是「配置它怎么表现」。 这条地基后面九章都在往下接。遇到的生词都在当场解释。

1. 先分诊:你的问题该归谁管

你肯定见过这个场景:AI 答得大体不错,但格式时对时错、语气时像时不像, 你往每次请求附带的说明文字——行话叫提示词——里又加了一条「请始终……」, 它好了一天,第三天又忘了。

这就是本书存在的起点。 作者把它说成一条缝隙:大模型(能读会写的那类程序, ChatGPT 是其中最出名的),是调它的 API(程序访问程序的标准门路)、 写提示词、忍受底座作者定下的行为默认值;拥有它, 才是让行为长进它自己那几十亿个内部数值里1

面对「不听话」,先认识第二条路:检索增强(行话 RAG:回答之前先去资料库里查, 把查到的内容塞给它看)。这条路不动这台机器本身2

三条路摆在一起看:

动的是什么管什么问题
写好提示词每次请求附带的说明提醒一句就听话的轻量要求
检索增强不动机器它会推理(拿已有知识想出答案),但缺信息
微调真的去改它内部的数值它有信息,但行为不对2

书里给的分界线一句话就能记住:「检索增强改进它『能拿到什么』, 微调改进它『是什么』。」3

两条路不竞争,生产系统里常常并用:微调负责把领域知识和稳定行为刻进机器, 检索增强负责提供训练之后才出现的、会更新的资料4。本书全部篇幅都在后者。

主走查的靶子先立起来:一条被重复扣款的工单

本章从头到尾用同一个输入走查。书在第 1 章的实操里做的正是这样一个四分类任务: 把客服查询分进 billing / technical / account / feature_request 四个桶, 拿 30 条真实口吻的工单当教材。其中一条是「My payment failed and I was charged twice (我付款失败还被扣了两次钱)」——它该进 billing(账单)桶5

微调前,机器对「输出一个类别名」这个指令的态度是游离的:它更习惯续写, 可能给完整的类别名,也可能续成一段解释。微调后,它对这类输入的自然延续 变成干脆的 billing。这个转变怎么发生、改多深、代价是什么, 是本章剩余的内容;训练它要多少显存(显卡上的高速存储,装不下就训不动), 那笔账在第 03 章算。

2. 预训练留下的东西:一份统计摘要

这一节解释「微调」前面那半个词。 出厂之前,这类程序都经过预训练 (拿极大的一堆文字反复练习「预测下一个词」——预训练和微调是同一场 「训练」的前后两个阶段,训练就是靠数据不断调整内部数值的过程)6

训练用的那堆文字有个名字:语料(就是拿来喂训练的那一大堆文字)6

书里给的语料量级是几千亿个 token——token(文字被切碎后的最小单位,可能是一个 整词,也可能只是小半截词)是它数数的基本单位6

这场练习的产物是什么?不是一张知识库,不是一条条规则。书里给它的定性值得原样记住: 高维(描述它的任何一个判断,都要同时用到很多很多个数,不是一两个数就够) 的一份压缩统计摘要7

这份摘要存在权重(机器内部几十亿个可调的小数)里。 书里强调,里面没有任何一处人类能读得懂的结构7

这份摘要有两个直接的后果:

  • 它擅长生成「像语料」的文字。 写新闻、讲概念、答常识题,因为这些语料里都有;
  • 它的知识广而不深,行为是「平均值」。 什么都沾一点,什么都不专, 输出口味是全体语料的平均,不是你应用的口味8

3. 微调的机制:小幅修正,不是重学

这一节回答「微调到底动了什么」。答案是:动得比你想象的少——而「少」正是它成立的理由。

先把称呼定下来:这台机器在行话里就叫模型(一个靠统计规律续写文字的程序)。 「大模型」「语言模型」说的都是它,只是体型和叫法的差别。

做法上,微调就是继续训练:拿一份你精心准备的、量小得多的数据集, 把训练再跑一段,让权重从出厂值往「更贴合你的目标」的方向轻轻推9

推的动力来自梯度——训练的每一步算出来的「每个数该往哪边挪、挪多少」的指引。 微调的一个关键事实:这些挪动的幅度,通常远小于权重本身的幅度10

出厂权重(一份通用世界的统计摘要)

│ 微调:沿梯度方向做小幅修正

你的权重 = 出厂权重 + 一组定向的小偏移
↑ 大部分长相没变,只有该变的地方变了

图说:微调后的机器「大部分像出厂那台,加了几处定向修正」,
不是一台新机器(书里的原话:mostly like the pre-trained model
with targeted corrections)。

微调做的唯一一件事,是把输出的分布(统计形状:哪些话题、哪种口吻、 什么格式出现得多)从「全网平均」挪向「你的目标场景」—— 书里管这个挪动叫分布偏移。客服对话数据把形状挪向正式的客服口吻, 医学文献把它挪向医学词汇和推理习惯11

「偏移」同时装着收益和风险。 往目标方向偏,它就越贴合你的用途; 偏得太急、太远,通用能力就会从行为里掉出去——书里说,这正是因为 预训练那个分布不再被它的行为体现12。这个风险叫灾难性遗忘, 第 02 章专节讲它。这里先记住:修正的幅度小,既是微调有效的原因, 也是它必须小心的原因。

顺带钉死一组等价叫法,后文不再重复:权重就是参数(同一个东西的两个名字)。 你以后看到「70B」这样的字样,说的是这台机器有 700 亿个这样的数。

4. 什么问题才轮到微调:三类站得住的理由

这一节是全章最实用的一节。 书里的立场很硬:微调不便宜,理由不成立就别动它。 站得住的理由恰好三类13,每一类都对应一个「提示词做不到」的具体缺口。

第一类,任务性能:你需要它稳定地产出结构化输出(格式固定的回答, 层次分明、机器可直接读出结果的那种)。 提示词只能让它「大多数时候」给对格式,而下游程序要按格式读, 「大多数时候」就是事故。用正确格式的样本训练它, 让正确格式成为自然输出,不用每次提醒——书里称这是最可靠、 性价比最高的微调用法14

第二类,风格控制:语气、口吻、品牌腔。提示词里描述一种风格, 不等于让它看过例子;微妙的语言习惯(句式、转折、怎么处理异议) 靠描述说不全。拿真实样本训练,分布直接偏过去, 不用它先读懂一段风格说明再照着表演15

第三类,领域适配:专业词汇与推理习惯。通用语料里领域文本稀薄, 它的表现是「能接受但不专家」。领域数据把稀有术语变得突出、 把领域推理模式变得稳定16

反面清单:四种情况别微调

同样重要17:提示词能解决的,别微调;主要缺信息的,上检索增强,更便宜更好维护; 手头少于约一百个样本的,微调很难给出稳定改进,还可能引入不稳定; 需求频繁变的也别微调——微调出来的机器是「一组行为的快照」,改行为要重训, 知识月月变的应用,重训开销会吞掉全部收益18

回到那条工单:走查的两版对照

把第 3、4 节装回那条 billing 工单。

微调后(全参版):训练配置用书里实操的那套——学习率(控制每步把权重挪多远) 2e-5、完整过 4 遍数据。30 条工单里有 8 条 billing 类样本, 每条都把权重朝「这类查询后面紧跟着 billing 这个词」的方向推一小步。 训练结束时,输出 billing 不再是「被要求时勉强挤出的格式」, 而是它对这类输入的自然延续,下游程序拿到的就是干净的类别名19

微调后(第二版:只训小头):这一版先把底座冻结——锁死, 训练一步也不许碰它;然后只在顶上加一个新的小层,叫分类头(随机初始化的一小块, 负责把底座算出的表示翻译成四个类别之一)20

这一版能学的只有分类头自己;书里把训练轮次(完整过几遍数据) 提到 6 遍、学习率提到 1e-3——因为分类头是从零开始学的, 需要比「精修中的底座」大得多的步子20

两版在同一份验证数据上对比准确率与 F1(兼顾「报得准」和「报得全」的 单个分数,第 08 章展开)21

这条走查就是全章的缩影:微调改变的是「这条输入之后,什么文字是它的自然延续」; 改多深(全参还是只改头),决定这个改变有多强、通用能力动不动。

5. 改多少:全参、冻结主干、还是只动后段

同一个「微调」,改动范围可以差出一千倍。先认识三档的思路,再看表。

全参微调把所有层的参数全部开放训练:改得最深的唯一选择, 但显存和算力(每秒能做多少次计算)开销也最大—— 7B 这个体型单张消费级显卡装不下,这笔账第 03 章从头算22

先说什么是特征:模型从文字里提炼出来的规律线索。前段的层选择是第一档折中, 第二档(行话叫特征微调)反其道而行: 把底座冻结,只训上面那个新加的小头。 底座权重一个不变,通用能力原样保留,训练又快又便宜; 代价是它只适合分类这类「底座表示已经够用」的任务,生成类任务吃不下23

层选择微调居中:冻结前段、只训后段。多项研究的经验规律是 Transformer(当今大模型共用的那种分层骨架)的前三分之一层偏通用的语言规律、 后三分之一层偏具体任务的线索——所以冻前训后,边界按任务实测微调24

改动范围代价与收益
全参所有参数改得最深;显存与算力开销最大
冻结主干只训新增小头通用能力保留;只适合分类类任务
冻前训后只训后 2/3折中;边界要实测

一个容易忽略的事实:全参微调并非大模型专属。1.25 亿或 3.5 亿参数的小模型, 单张显卡几个小时就能全参跑完——「全参不现实」是 7B 以上才出现的问题25

6. 作者的判断与证据

书里当证据给的:「500 条精挑的数据通常胜过 5000 条平庸的」被表述为 大规模微调研究反复出现的结论,本书把它当作第一条工程纪律(第 02 章展开)26; 「前 1/3 层通用、后 1/3 层任务特定」被明说是多项研究的经验规律,不是定理24

书里当立场给的:「微调不是大实验室的特权」。按前言的说法, 有两项技术把这件事从大公司实验室搬到了个人书桌上:一项让 70 亿参数的模型 塞进一张 24GB 显存的消费级显卡完成高质量微调(第 03 章讲它,连同它背后的赌注); 另一项让「按人类偏好调教行为」不再依赖一整个机房的设备(第 06 章讲)27

**书里坦白没给的:**本章没有给出「微调到底把哪些权重挪动了」的任何实证观察—— 分布偏移是机制层面的解释,书里没有拿出某一层的权重挪动前后的对比。 这个缺口到第 03 章补上一半(那里有「变化本身很小」的结构性证据)。

7. 边界与局限

  • 「三场景」是 2025–2026 年的实践共识,不是穷尽分类。更长的输入窗口、 让它按需调用外部工具,这些新用途书里没有归入三类框架 (补充(不在书里,来自通用知识));
  • 「什么时候不微调」的边界数字(如「少于 100 条」)是经验值, 书里没附失败率数据,当量级参考,别当红线17;
  • 冻结主干的「零遗忘」有代价:底座完全冻结,意味着底座表示里的领域盲区也原样保留。 领域分布偏得远时,书里自己说该让梯度流回底座层——「原样保留」和「能适配」不可兼得23;
  • 我们文本里的原书第一章没有医疗/金融领域内容(那两节的正文在转码文本中缺失, 无独立小节正文,仅引子、总结与零星段落提及),领域话题以第 07 章实际覆盖的为准。

8. 可带走的

  1. 先分诊:缺信息找检索增强,行为不对找微调——「前者改进能拿到什么,后者改进是什么」;
  2. 预训练模型是一份统计摘要;微调是在先验上做小幅修正,机制是分布偏移;
  3. 修正幅度小既是它有效的原因,也是灾难性遗忘的根源——第 02 章给对策;
  4. 微调的正当理由只有三类:结构化输出、风格控制、领域适配;
  5. 四种情况别微调:提示词能解决、只缺信息、样本不到百条、需求月月变;
  6. 改动范围是连续谱:全参(最深最贵)→ 冻结主干只训小头(最稳最便宜)→ 冻前训后(折中);
  7. 「全参不现实」是 7B 以上才有的问题——这正是下一章的入口。

9. 原文地图

主题原书章原文位置
用与有的缝隙、微调=改参数不是配置Fine-Tuning Fundamentalstext/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:21(搜「persistent changes」) · :11(搜「not configuring」)
微调与检索增强的分界Fine-Tuning Fundamentalstext/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:19(搜「never modified」) · :25(搜「fundamentally is」)
预训练=统计摘要、权重不可读Fine-Tuning Fundamentalstext/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:33(搜「statistical summary」)
小幅修正、分布偏移机制Fine-Tuning Fundamentalstext/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:43(搜「targeted corrections」) · :47(搜「distribution shift」)
三类理由Fine-Tuning Fundamentalstext/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:53(搜「three distinct scenarios」) · :59(搜「natural output」) · :65(搜「empathetic tone」)
何时不微调Fine-Tuning Fundamentalstext/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:79(搜「fewer than a hundred」) · :81(搜「snapshot」)
全参的适用与显存问题Fine-Tuning Fundamentalstext/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:91(搜「125M」) · :95(搜「40 gigabytes」)
特征微调与冻结Fine-Tuning Fundamentalstext/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:105(搜「feature extractor」) · :111(搜「perfectly preserved」)
层选择的经验规律Fine-Tuning Fundamentalstext/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:123(搜「first third」)
四分类实操的输入与配置Fine-Tuning Fundamentalstext/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:299(搜「RAW_DATA」) · :507(搜「2e-5」) · :731(搜「1e-3」)
消费级硬件的出发点Prefacetext/02-fm-c15.txt:13(搜「24 gigabytes of VRAM」)

Footnotes

  1. 出处:「Fine-Tuning Fundamentals」第 21 段(text/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:21,搜「persistent changes」)。原文对比了「由提示塑形的行为」与「由模型自己更新后的参数产生的行为」,后者是持久、一致、深嵌的。

  2. 出处:「Fine-Tuning Fundamentals」第 19、21 段(text/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:19,搜「never modified」;:21,搜「behavioral」)。 2

  3. 出处:「Fine-Tuning Fundamentals」第 25 段(text/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:25,搜「fundamentally is」)。

  4. 出处:「Fine-Tuning Fundamentals」第 23 段(text/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:23,搜「complementary」)。

  5. 出处:「Fine-Tuning Fundamentals」第 299–363 段(text/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:301,搜「My payment failed and I was charged twice」;:363,搜「LABEL_NAMES」)。30 条工单、四分类、学习率 2e-5、完整过 4 遍数据都是书里实操的配置;「8 条 billing 类」可逐条数得。

  6. 出处:「Fine-Tuning Fundamentals」第 33 段(text/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:33,搜「hundreds of billions of tokens」)。 2 3

  7. 出处:「Fine-Tuning Fundamentals」第 33 段(text/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:33,搜「compressed, high-dimensional statistical summary」)。 2

  8. 出处:「Fine-Tuning Fundamentals」第 35 段(text/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:35,搜「broad rather than deep」)。

  9. 出处:「Fine-Tuning Fundamentals」第 39 段(text/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:39,搜「nudge the weights」)。

  10. 出处:「Fine-Tuning Fundamentals」第 43 段(text/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:43,搜「much smaller than the magnitude」)。

  11. 出处:「Fine-Tuning Fundamentals」第 47 段(text/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:47,搜「formal customer support language」)。

  12. 出处:「Fine-Tuning Fundamentals」第 49 段(text/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:49,搜「no longer well-represented」)。

  13. 出处:「Fine-Tuning Fundamentals」第 53 段(text/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:53,搜「three distinct scenarios」)。

  14. 出处:「Fine-Tuning Fundamentals」第 59、61 段(text/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:59,搜「natural output」;:61,搜「most reliable and cost-effective」)。

  15. 出处:「Fine-Tuning Fundamentals」第 67、69 段(text/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:67,搜「description of a style is not the same as examples」;:69,搜「idiosyncratic」)。

  16. 出处:「Fine-Tuning Fundamentals」第 75 段(text/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:75,搜「sparse and mixed」)。

  17. 出处:「Fine-Tuning Fundamentals」第 79 段(text/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:79,搜「fewer than a hundred examples」)。 2

  18. 出处:「Fine-Tuning Fundamentals」第 81 段(text/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:81,搜「snapshot of a specific set of behaviors」)。

  19. 出处:「Fine-Tuning Fundamentals」第 497–531 段(text/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:185,搜「2e-5」)。学习率、轮次、批量都是书里 TrainingArguments 的配置;「每条样本推一小步」是对「梯度更新朝目标方向修正」的机制复述,非书中原话。

  20. 出处:「Fine-Tuning Fundamentals」第 685–745 段(text/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:685,搜「classifier」;:731,搜「1e-3」)。冻结版只训分类头、6 个轮次、学习率 1e-3 都是书里代码的配置;「分类头需要更大步子」的理由见第 187 段(text/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:187,搜「1e-4 to 1e-3」)。 2

  21. 出处:「Fine-Tuning Fundamentals」第 771–775 段(text/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:771,搜「Comparison」)。书里打印两版在同一验证集上的准确率与 F1 对照,但未记录具体数值。

  22. 出处:「Fine-Tuning Fundamentals」第 95、97 段(text/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:95,搜「40 gigabytes」;:97,搜「consumer hardware」)。

  23. 出处:「Fine-Tuning Fundamentals」第 111、117 段(text/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:111,搜「perfectly preserved」;:117,搜「out-of-distribution」)。 2

  24. 出处:「Fine-Tuning Fundamentals」第 123 段(text/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:123,搜「first third」)。书里明说是「across many studies」的经验发现,并建议边界按任务实测。 2

  25. 出处:「Fine-Tuning Fundamentals」第 91 段(text/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:91,搜「125M」)。

  26. 出处:「Fine-Tuning Fundamentals」第 153 段(text/04-ch01-chapter-1-fine-tuning-fundamentals-full-and-feat.txt:153,搜「500 high-quality」)。

  27. 出处:「Preface」第 13 段(text/02-fm-c15.txt:13,搜「24 gigabytes of VRAM」)。