跳到主要内容

微调基础与常见范式(小白友好版)

目录

微调到底是什么

微调(Fine-tuning)可以理解成“在通用模型基础上做定向训练,让它更擅长你的场景”。
和 Prompt 不同,微调会改变模型参数,因此会对风格、格式稳定性、任务表现产生长期影响。

一个直观例子:

  • 只用 Prompt:每次都要写很长规则,输出仍可能不稳定
  • 做过微调:模型天然更懂你的任务模板,提示词可更短,结果更稳

先问自己:微调 vs Prompt vs RAG vs 长上下文

面试高频题“什么情况下才微调?”。正确答案是“微调通常是最后手段”,先按下表排除:

手段解决什么不解决什么成本
Prompt / 上下文学习行为、格式、风格的快速调整模型本身没有的知识最低
RAG(检索增强)注入最新/私有知识、可追溯引用改变模型的“说话方式/能力”低-中
长上下文一次性塞入大量资料成本随输入线性涨、中间信息易丢中(按 token)
微调固化风格/格式/特定任务能力、缩短 Prompt注入频繁变化的知识(会过期)高(数据+训练+运维)

经验法则(可直接当答案):

  • “模型不知道某些事实”→ 用 RAG,别用微调(知识会变,微调进去就过期)。
  • “模型不会按我要的风格/格式稳定输出”→ 微调(或先把 Prompt + 结构化输出做到位)。
  • 顺序:Prompt/结构化输出 → RAG → (还不行再)微调。先把前两步榨干

什么时候应该微调

一般建议满足以下条件再考虑微调:

  • 任务固定且重复(如客服分类、结构化抽取)
  • 你有一定规模高质量标注数据
  • Prompt、RAG 与工作流优化已经做到一定水平,仍不达标
  • 需要蒸馏:把大模型能力“教给”小模型,用更便宜的小模型上线

如果任务变化快、数据少、预算紧,通常先用 Prompt + RAG 更划算。

常见微调范式对比

  • SFT(监督微调):最常见,使用“输入-期望输出”样本对训练,教模型“这种输入该这样答”。
  • LoRA / QLoRA(PEFT 参数高效微调):只训练少量“增量参数”,成本极低。QLoRA 在 LoRA 基础上把基座模型量化(如 4-bit) 加载,单张消费级 GPU 也能微调大模型,是中小团队主流。
  • 全量微调(Full Fine-tuning):更新所有参数,资源消耗最大,通常是大厂或特定高价值场景。
  • 持续预训练(Continued Pre-training):在大量领域语料上继续预训练,注入领域“底层知识/语感”(如医疗、法律),比 SFT 更重。

对齐与偏好优化:RLHF / DPO / GRPO

SFT 之后,为了让模型输出更符合人类偏好(更有用、更安全、更符合特定风格),还有一类“偏好对齐”方法,面试能说清楚很加分:

  • RLHF(基于人类反馈的强化学习):先训练一个“奖励模型”学习人类偏好,再用强化学习(PPO)优化语言模型。效果好但流程复杂、不稳定
  • DPO(直接偏好优化):跳过显式奖励模型,直接用“好答案 vs 坏答案”成对数据优化,更简单稳定,已成为开源社区主流偏好对齐方法。
  • GRPO 等面向推理的 RL:DeepSeek-R1 等推理模型用的强化学习算法,用“答案是否正确”等可验证奖励训练模型先思考再回答(见 LLM原理 - 推理模型机制)。
  • RLAIF:用 AI(而非人)生成偏好标注,降低人工成本。

一句话串起来:预训练给“知识与语言能力”→ SFT 教“按指令做事”→ 偏好对齐(RLHF/DPO)调“符合人类喜好”→ 面向推理的 RL(GRPO)练“会推理”。

微调项目全流程

微调后的前端适配重点

  • 输出格式可能更稳定:可减少前端兜底复杂度
  • 响应延迟可能变化:要重新测 TTFT 和总耗时
  • 版本切换要可回滚:前端保留模型版本可见性