上一章《蒸馏、量化与剪枝》把模型压小,这一章是收口——
轮到你自己动手时,到底该选哪条路。
答案是:先问清楚四件事,不要一上来就上 LoRA。而且第一个问题的答案,
很多时候是"你根本不需要微调"。
这是最容易被跳过、也最该认真问的一个问题。
大量"
| 手段 | 它改什么 | 成本 | 迭代速度 |
|---|---|---|---|
| ① 提示工程 | 不改模型,只改你给它的指令和例子 | ≈ 0(人力) | 分钟级——改一句话就能验证 |
| ② RAG 检索增强 | 不改模型,把资料塞进上下文 | 建检索管线 + 向量库(把文档切片,存成能检索的向量索引) | 小时级——换文档就行 |
| ③ 微调 | 真的改模型参数 | 数据标注 + 算力 + 评测 | 天到周级——改一次要重训重评 |
提示 → RAG → 微调。
理由很简单:每一步的成本比上一步高一个数量级,而收益并不总是更高。
先做便宜的,能解决就不做贵的。
而且这三者不是互斥的——最实用的方案常常是"微调让模型学会某种格式 + RAG 提供事实"。
图 · 该不该往下走
同一个「它答得不对」,落在哪一边就决定了动哪把工具
这是整章最关键的一个判断。选错了,后面全白做。
三条岔路:缺什么,就补什么
| 你想改的 | 典型症状 | 为什么 |
|---|---|---|
| 知识 | 「它不知道我们 2025 年新出的产品叫什么」 | 知识可以查。RAG 把事实放上下文里,准确、可溯源、改文档立刻生效。 |
| 行为 | 「它输出 JSON 总是多一层嵌套」「语气太正式」 | 这是微调最擅长的事:几百条高质量样本就能改变格式和风格。 |
| 能力 | 「它做不了三位数乘法」「推不对这类逻辑题」 | 这是最容易被低估的一类。要的是推理链:蒸馏完整过程,或用可验证奖励做 RL;只喂「答案」学不会。 |
招一个新人:知识缺了,给他一本手册(RAG),别送他回学校(继续
这个类比管到「缺什么补什么」为止——真实需求常常三者混在一起,手册写得烂、范文挑得差,照样学不会。
下面这棵树把上面四个问题串起来了。从根节点开始点,每个节点都会告诉你"怎么判断"。
互动 · 决策树(点着走)
| 你要改的 | 数据量级 | 说明 |
|---|---|---|
| 格式对齐 | 100 ~ 1,000 条 | 让它学会输出某种结构。很少的量就够,因为这是"模仿"不是"理解" |
| 风格 / 语气迁移 | 1,000 ~ 10,000 条 | 语气是分布性的特征,需要足够多的样本才能"摸到"风格 |
| 领域知识注入 | 10,000 ~ 100,000 条 | 量很大,而且效果不如 RAG 可靠。先认真考虑 RAG |
| 新能力 | 需要「过程」,不是「答案」 | 只学最终答案的 SFT 数据再多也学不会新推理; 但蒸馏完整推理链(纯 SFT)或做 RLVR 都能学到 |
2023 年的 LIMA 论文只用 1000 条精心挑选的样本做 SFT,在多个评测上就接近了几万条数据训练的模型。
结论:模型的能力主要来自
① 一致性——1000 条里如果同一个输入有 200 种不同格式的答案,模型会学混。
② 覆盖度——你的业务场景有 20 种情况,数据里只有 3 种,剩下的学不到。
③ 没有错误——一条错样本的破坏力,可能大于十条好样本的建设力。
④ 长度分布合理——如果训练答案都很长,模型会学会"啰嗦"。
| 判断依据 | 选 LoRA / QLoRA | 选全量微调 |
|---|---|---|
| 24 GB 显卡能微调 7B~13B 级别(经验值);65B/70B 要 48G 以上的专业卡 | 7B 全量微调要 100 GB 以上显存(含优化器状态和 fp32 主权重),单卡放不下 | |
| 数据量 | < 10 万条时通常够用 | 百万条以上,LoRA 的表达能力可能成为瓶颈 |
| 是否需要多任务切换 | LoRA 的杀手级优势——一个基座挂多个几 MB 到几十 MB 的适配器, 按请求切换 | 每换一个任务就要存一份完整权重 |
| 能不能接受效果损失 | 对风格/格式类任务,LoRA 和全量几乎无差别 | 如果任务需要模型"重新组织"深层知识,LoRA 会明显不如全量 |
| 要发布/部署吗 | 适配器可以单独分发,体积小 | 部署时可以把 LoRA 合并回基座,推理无额外开销 |
互动 · 一张 24G 的卡,为什么装得下 7B 的微调
除非你有明确证据说 LoRA 不够,否则先用 LoRA。它的失败是「差一点但没达标」,全量微调的失败是「训崩了、显存爆了、忘了通用能力」——前者还能补救,后者可能连基线都跑不出来。
第 3 问的结论是「除非有证据,否则先用 LoRA」。可它凭什么便宜几百倍?
一张图就能看完:全量微调要动整个方块,LoRA 只动中间那两条窄带。
下面那条窄带有多宽,由你拖——它是这一节唯一一个由你决定的数字。
互动 · 整个方块要更新,还是两条窄带要更新
微型图解 · 一个大方块 = 两条窄带相乘
拖两个滑块、切一下任务类型,看预期提升和风险怎么变。「+5 点」= 在满分 100 的评测上高 5 个百分点; 「风险」= 微调后旧能力被冲掉的可能,页面按任务分低 / 中 / 高三档。
同一个滑块、同一个模型,只要换个任务类型,收益曲线整个换了形状——这就是「没有免费午餐」。先把这张图拖一遍,再往下读。
互动 · 三个因子怎样乘出预期提升
下面的公式是根据公开论文和工程经验拟合出来的形状(饱和曲线 + 基座临界值), 不能当成你项目的准确预期:真实提升取决于数据质量、基座匹配度和评测口径。
把鼠标移到公式里有虚线的项上——它会点亮上面那个对应控件。
| 症状 | 最可能的病因 | 怎么修 |
|---|---|---|
| 训练 loss 完全不降 | 对话模板(把用户/助手的话拼成模型要的那串 token 的格式)不对,或 loss mask 错了——模型在学「预测提问」而不是「生成回答」 | 打印一条拼好的样本逐 token 检查(新手最常见的坑,见《训练三阶段总览》) |
| 微调后通用能力崩了 | 混入 5%~20% 通用指令数据;用 LoRA;降学习率、减轮数 | |
| 输出格式偶尔错乱 | 训练数据本身格式不一致(1000 条里可能有 5 种写法) | 统一格式。一致性比数量重要 |
| 越训越差,loss 后来涨 | 早停、降学习率(LoRA 通常 1~3 轮) | |
| 效果还不如写提示 | 数据质量差,或任务本来就不需要微调 | 先回第 0 问;基线设成「不微调 + 好提示」 |
| 训练集完美, |
数据泄漏,或同一数据的变体被分到了两边 | 按语义分组切分,不要随机切 |
| 输出变得啰嗦 | 训练答案普遍偏长,模型学到了「长=好」 | 检查长度分布,混入简短样本 |
互动 · 一条错的遮罩,能让损失看起来更小
| 要点 | 说明 |
|---|---|
| 基线必须是「不微调 + 好提示」 | 拿微调模型和「随口写的提示」比,提升里一大半来自提示;正确对照是同一个好提示,一个微调一个不微调。 |
| 留出真正的测试集 | 不要拿训练数据的子集当测试集,切分要按语义分组。 |
| LLM-as-judge 的坑 | 偏好长回答、偏好与自己风格相似的输出、位置偏差(多数偏好第一个);修法是交换 A/B 顺序各评一次。 |
| 人工评测量级 | 至少 100~200 条才有统计意义,而且要多个人评并算一致性。 |
| 看分布,不只看均值 | 平均涨 5 分,可能是「80% 没变、20% 大涨」,也可能是均匀涨 5 分——工程含义完全不同。 |
把前面十一章串成一条线:
这条线的顺序:多大(缩放定律)→ 装得下(MoE)→ 燃料(数据工程)→ 三阶段训练(预训练 / SFT / 对齐)→ 怎么对齐(RLHF → DPO → RLVR)→ 想更久(推理模型)→ 便宜地改(LoRA / 量化)→ 这一章:该用哪种。
这一章要你带走一个动作:拿自己的问题走一遍第 3 节那棵树,判断该不该微调、用哪种方法。 它背后是四条不同的假设在竞争——选哪条,取决于哪条在你的问题上成立。
回到第 6 节:任务类型切「新推理能力」、数据量拉到 20 万条,预期提升仍只有几个点(天花板 5 点); 切回「格式 / 风格对齐」、数据量 1000 条,提升反而更高。 最后切回「新推理能力」(它的最小可行基座是 70B),把「基座模型大小」拖到 70B 以下,看预期提升打折。
| 暗线 | 这一章的回答 |
|---|---|
| A 信息流动 | 一条样本:(输入文本, 期望输出) → 分词成 L 个 token → 过网络 → 只对答案那段的 logits 算损失;SFT 改整个 (d, d) 权重,LoRA 只改旁路的 (d, r)、(r, d) 两个窄矩阵,合并后推理形状不变。 |
| B 什么被牺牲了 | 换来了「便宜、快、可控」:微调牺牲可更新性、可溯源和通用能力,LoRA 再牺牲改动的容量。 |
| D 跑在什么上 | 瓶颈在容量:单卡 LoRA / QLoRA 是装不下,多卡全量微调卡在梯度同步的 all-reduce 带宽上(完整对照见 《硬件与算力账本》)。 |
它接住上一章《蒸馏、量化与剪枝》的「把模型做小」,下一章《硬件与算力账本》接着算这笔账。
它给后面留了同一张成本阶梯:要不要多 agent、换推理引擎、做 agentic RAG——都是先试最便宜的,拿数据证明不够,再往上走一级。
先问四个问题:要不要微调(提示 → RAG → 微调,别跳步)· 改的是知识、行为还是能力(知识用 RAG,行为用 SFT/LoRA,能力要过程)· 要多少数据(质量远大于数量)· LoRA 还是全量(先用 LoRA)。
最容易做错的一件事:基线必须是「不微调 + 好提示」。
上面讲的都是「够用」的版本。想往下挖,这里有三个入口—— 它们不是必修内容,是给想再往前走一步的读者准备的。