一句话总结
按"要改什么"决策:改知识(新事实、频繁更新、要溯源)→ RAG;改行为(输出风格、领域术语、格式遵循、指令对齐)→ 微调;改指令(一次性任务)→ 提示词。三者不是互斥而是叠加:生产系统常见组合是"好提示词 + RAG + 领域微调"。优先级永远是:先把提示词做到极致,再上 RAG,最后才微调。
初级理解
| 维度 | 提示词工程 | RAG | 微调 |
|---|---|---|---|
| 改什么 | 任务指令 | 注入知识 | 模型参数 |
| 见效速度 | 分钟级 | 天级(建库) | 周级(训练) |
| 知识更新 | 改提示词 | 更新文档即可 | 重新训练 |
| 成本 | 几乎为零 | 检索基建 | GPU + 数据标注 |
| 可溯源 | 无 | 强(引用出处) | 弱(知识烧进参数) |
微调(Fine-tuning)是什么:拿自己的数据继续训练模型,把能力"写进"参数。适合:稳定的输出风格、领域术语体系、特定格式遵循(如永远输出某种工单格式)。不适合:需要频繁更新的知识——那会让微调变成无底洞。
中级深入
SFT(监督微调):用"指令 → 理想回答"格式的数据继续训练。数据质量决定一切:1000 条精标数据 > 10 万条脏数据——覆盖真实场景多样性、答案一致、格式统一。
LoRA 为什么便宜(高频考点):全参微调要更新所有权重(70B 模型 = 70B 参数全部训练 + 存储)。LoRA 冻结原模型,只训练注入的低秩矩阵(原权重的"补丁"),可训练参数量降到 0.1%~1%,单卡就能跑,多个 LoRA 补丁还能热切换(一个底座 + 多业务适配器)。QLoRA 再把底座量化到 4bit,消费级显卡可微调 33B 级模型。
灾难性遗忘(Catastrophic Forgetting):微调学新任务时把通用能力"覆盖"了——比如调完客服话术,写代码能力暴跌。缓解:混入通用数据回放(replay)、调低学习率、LoRA 本身参数少也相对不容易遗忘、微调后跑通用基准回归。
高级拓展
对齐技术演进(说出脉络即加分):RLHF(用奖励模型 + PPO 强化学习,稳定但工程复杂)→ DPO(直接偏好优化,跳过奖励模型,把偏好对 Supervised 化,简单稳定,当前主流)→ 各类变体(ORPO/SimPO)。直觉:RLHF 是"训练一个裁判再让模型参赛",DPO 是"直接拿正反例告诉模型什么是好的"。
私有化部署技术栈:推理框架 vLLM(PagedAttention 高吞吐)/ SGLang / Ollama(轻量玩具级);量化 GGUF/AWQ/GPTQ;服务层 OpenAI 兼容 API 网关。选型逻辑:吞吐要求高上 vLLM,简单本地跑上 Ollama。
评估体系:微调前后必须对比三组指标:① 任务指标(领域测试集准确率);② 通用能力回归(MMLU 等基准防遗忘);③ 生产指标(人工抽检率、用户采纳率)。没有评估的微调 = 裸奔。
实战场景
场景一:三个典型需求的选型(面试高频设计题)
场景二:微调数据从哪来
场景三:微调完线上效果反而变差
面试模拟
Q:为什么 LoRA 能用千分之一的参数达到接近全参微调的效果?
A:理论依据是"微调过程中的权重更新具有低秩性"——模型适应新任务时,权重变化矩阵的信息量远小于矩阵本身的规模,可以用两个小矩阵的乘积(秩 r 通常 8~64)近似。工程收益:训练显存从"全量权重+梯度+优化器状态"降为只训低秩矩阵;存储上每个任务只存几十 MB 的适配器,可热切换;合并推理时零额外延迟。
Q:什么情况下你会坚决反对上微调?
A:三种情况:① 需求是"补知识"且知识频繁变化(RAG 的天下);② 提示词还没调到位(先榨干提示词收益);③ 拿不出高质量数据(几百条脏数据微调大概率负优化)。微调是重投入动作——数据、训练、评估、部署四条链路都要跟上,团队没有持续迭代能力就别启动。
Q:说说 RLHF 和 DPO 的区别。
A:目标相同(让模型输出符合人类偏好),路径不同。RLHF:先训奖励模型打分,再用 PPO 强化学习优化策略——效果好但流程复杂(四个模型在内存里博弈)、训练不稳定。DPO:把偏好优化转成对"好答案/坏答案"对的直接监督学习,不需要奖励模型,稳定且实现简单。工程落地趋势:RLHF 仍是旗舰模型对齐的主力,DPO 及变体是中小团队快速对齐的首选。