大模型工程化 · 可视化讲解

模型微调
Fine-tuning 到底是什么

预训练模型已经"上过大学",但还不会干你公司的活。 微调,就是在它已有知识的基础上,用一小撮专属数据再"回炉"一次, 把它从"通才"调教成"某个岗位的专家"。下面从定义、原理、目的到应用场景,配图讲透。

第 1 步 · 定义

什么是微调?

一句话:拿一个已经训练好的模型,喂给它任务相关的数据,让它继续学习、调整内部参数,从而适配某个具体任务或领域。

预训练(Pre-training)
在海量互联网文本上从头练"基础能力"——学会语言规律、世界知识。产物叫基座模型 / 基础模型(base model),像个上完通识课的大学生,但没受过岗前培训。
微调(Fine-tuning)
在基座模型之上,用少量的、带标注的专属数据继续训练,让它学会特定任务、风格或领域知识。产物叫微调模型 / 领域模型,像被派去某个岗位轮岗培训过。
基座模型 Pre-trained 通识语言 世界知识 不会"听指令" + 专属数据 微调数据集 (指令,回答) 几千~几万条 继续训练 更新权重 θ → θ* 微调模型 Fine-tuned 懂你任务 听指令 有风格
图 1:微调 = 在基座模型上,用专属数据继续训练,得到适配任务的专用模型
和"提示词工程 / RAG"不同,微调是真的改动模型权重,而不是只在输入时"告诉它怎么做"。三者不互斥,后文会讲清怎么选。
第 2 步 · 放到坐标系里

微调在 AI 工程里的位置

从"不动模型"到"从头训练",成本是递增的。微调恰好卡在中间:比提示词贵、比预训练便宜,性价比高。

提示词 零训练成本 微调 FT 改权重·中成本 预训练 从头·天价 RAG 也在这段(不改权重) 成本 / 所需算力 →
图 2:改造成本光谱——提示词几乎零成本,微调中等,预训练极其昂贵

微调 ≠ 预训练,也 ≠ 提示词

维度提示词 (Prompt)检索增强 (RAG)微调 (Fine-tuning)
是否改权重不改不改
数据需求知识文档带标注样本
擅长临时引导、试错注入最新/私有知识改风格、格式、行为
成本几乎零中(检索基建)中(训练+算力)
知识更新手动改 prompt换知识库即可需重新训练
第 3 步 · 原理(重点)

微调的原理:迁移学习 + 继续训练

核心思想叫迁移学习(Transfer Learning):底层能力已经学会,没必要重头练,只需要在已有参数附近"微调"一小步,让它更贴合你的任务。

① 一次训练长什么样

微调本质上还是那套老训练循环,只是起点从随机权重换成了预训练权重:

θ* = argminθ L( f(x; θ), y )   (在任务数据集上最小化损失)

其中 θ 是模型全部参数,从预训练得到的 θ₀ 出发;x 是输入,y 是期望输出;L 通常是交叉熵。和预训练的区别只在数据与规模——预训是"预测下一个词"的海量文本,微调是"按任务答对"的小批样本。

① 取样本 (x,y) 训练集里一条 ② 前向计算 ŷ = f(x; θ) ③ 算损失 L ŷ 离 y 多远 ④ 反向传播 求梯度 ∂L/∂θ ⑤ 更新 θ θ ← θ-η·∇ 反复多轮(epoch),直到在验证集上表现收敛 θ 的初值 = 预训练权重 θ₀(不是随机)
图 3:微调的训练循环——和预训练同构,但参数从"已会"的 θ₀ 出发,只走一小段

② 全量微调 vs 参数高效微调(PEFT)

如果模型有 700 亿参数,全量微调就要更新全部 700 亿个——显存爆炸、容易过拟合。于是有了 PEFT只训练极少一部分参数,其余冻结。

全量微调 Full FT
更新全部权重。效果上限高,但需大显存、易"灾难性遗忘"(把通用能力忘光)。适合数据极大、资源充足的场景。
参数高效 PEFT
冻结基座,只训少量新增/旁支参数。显存小一个量级,几乎不忘本。代表:LoRA、QLoRA、Adapter、Prefix-tuning。

③ LoRA:最流行的 PEFT 方法

LoRA 的巧思:不碰原权重 W,而是学一个"补丁" ΔW,且把 ΔW 拆成两个又瘦又小的矩阵的乘积 ΔW = B·A(秩 r 远小于原维度 d),训练时只更新 A、B。

W(原权重) d × d 大模型 🔒 冻结 不更新 + A:d × r(瘦) B:r × d(瘦) r ≪ d,参数量骤降 只训练 A、B = W + ΔW ΔW = B · A 低秩补丁 效果接近全量 输出 推理时合并
图 4:LoRA——冻结原权重,只训练低秩矩阵 A、B,把补丁 ΔW 叠加回去,显存省一个量级
QLoRA = LoRA + 量化(把基座压成 4-bit),消费级显卡也能微调大模型。Prefix/Prompt-tuning 则是学一串"软提示"挂在输入前,连 A、B 矩阵都不用。
第 4 步 · 为什么要做

微调的目的:你想解决什么?

不是"技术炫技",而是为了弥补基座模型在特定场景下的短板。常见目的有四类:

① 领域适配
让模型懂医疗、法律、金融、生物等垂直话语体系与术语,减少"一本正经胡说"。
② 风格 / 人设
固定语气、口吻、角色:客服的温柔、品牌的俏皮、专家的严谨,用提示词老"跑偏"时最值得微调。
③ 输出格式
稳定吐出 JSON、XML、特定字段,适配下游系统解析,省去反复 prompt 约束。
④ 降本增效
用小模型微调,达到大模型的效果,推理更便宜更快;或把"大模型的活"固化进小模型。

一个"目的"的直观对比:输出格式

微调前(基座模型)
用户:提取订单信息
模型:好的,这看起来是一笔订单,
买家是张三,买了2件T恤,
总价 199 元,地址在……(自由发挥,格式飘忽)
微调后(领域模型)
{
  "buyer": "张三",
  "items": [{"name":"T恤","qty":2}],
  "total": 199,
  "addr": "北京市朝阳区…"
}
知识"注入"通常用 RAG 更合适(知识会变、且微调易"记错"事实)。微调更擅长的是行为、格式、风格、语气层面的改造。
第 5 步 · 用在哪

典型应用场景

凡是"通用模型不够贴、提示词稳不住、又想要低成本"的地方,都是微调的舞台。

🎧 智能客服
固定公司口吻,回答产品 FAQ,处理退换货话术。
⚖️ 法律/医疗
按行业术语起草合同、解读报告,减少外行表述。
💻 代码助手
贴合自家代码库与规范的补全/生成(内部 repo 风格)。
🧾 结构化抽取
把合同、票据、简历稳定解析成 JSON/字段。
🌐 翻译/方言
特定语种对、行业黑话、地区口音的语料风格。
🏷️ 分类打标
情感分析、工单分级、内容审核等判别任务。
📊 报告生成
日报、研报、财报,按固定模板与口径产出。
🎭 角色/陪伴
虚拟人、IP 人设、游戏 NPC 的稳定性格与台词。
🚀 小模型上位
把大模型能力"蒸馏"进小模型,边缘/低成本部署。
判别类任务 生成类任务 情感分类 工单分级 内容审核 JSON 抽取 报告/文案 对话/角色 微调 放大器 把"通用能力"精准适配到这些具体任务上
图 5:微调是"放大器"——把基座模型的通用能力,精准收敛到判别/生成两大类具体任务
第 6 步 · 实操流程

一次微调大概怎么做

标准 SFT(监督微调)流水线长这样——数据质量远比数量重要。

① 准备数据 (指令,回答)对 ② 选方法 全量 / LoRA ③ 训练 调 lr/epoch ④ 评估 质量/过拟合 ⑤ 部署 上线/合并
图 6:SFT 五步流水线
数据格式
常见 JSONL:{"instruction":"…","input":"…","output":"…"},几百到几千条高质量样本常已够用。
关键超参
学习率(要小,如 1e-5~2e-4)、训练轮数、批次大小、LoRA 的秩 r。
评估
留出验证集看任务指标;警惕"背答案"式过拟合与通用能力退化。
第 7 步 · 决策指南

提示词 / RAG / 微调 怎么选?

记住一条经验法则:能靠提示词解决就别上 RAG,能靠 RAG 就别先微调。从便宜、可逆的方案往上走。

遇到任务 提示词够用吗? ✅ 用提示词 需要外部/最新 知识? ✅ 上 RAG 提示词/RAG 仍 稳不住风格/格式? ✅ 才微调
图 7:选型决策树——从最便宜、最可逆的方案往上试
⚠️ 什么情况别急着微调:① 只是想要最新事实 → 用 RAG;② 数据很少或质量差 → 先攒数据;③ 任务会变 → 微调更新成本高、易过时;④ 只想临时引导 → 提示词足矣。微调是"把行为固化进模型",一旦任务漂移就得重训。
收尾 · 一句话带走

所以,微调到底是什么

微调 = 迁移学习:在预训练好的基座模型上,用一小撮专属数据继续训练、真正改动部分权重, 把"通才"调教成"某个任务的专家"。它擅长改风格、格式、语气、行为, 而不是塞事实(那交给 RAG)。如今因为 LoRA / QLoRA 这类参数高效方法, 普通人用一两张显卡也能给大模型"做个岗前培训"——但记住,先试提示词、再试 RAG、最后才微调

选完路线再追极致:《大模型微调方法怎么选 · LoRA / QLoRA / AdaLoRA / aLoRA 对比图解》 讲 5 种主流方法的选型决策树。