微调技术谱系与选型决策树
前置知识点
- 微调是什么:定义与全景 入门
一句话定义
微调技术谱系是一张按「动多少参数、什么阶段动」划分的方法地图:全参微调、参数高效微调(PEFT)、量化微调、偏好对齐优化四大分支。
为什么重要
新手最常见的瘫痪原因是方法太多不知道选哪个。谱系图把几十个名词(LoRA、QLoRA、Adapter、Prefix Tuning、DPO、ORPO……)归位成四个正交问题:训哪些参数、权重存成什么精度、在 SFT 阶段还是对齐阶段训练、要不要动原权重。想清楚这四个问题,选型就变成查表。
前置知识
kp-001 中全参微调与 PEFT 的概念区分。
核心概念
- 全参微调:更新全部权重。质量上限最高,显存需求最大(70B 模型全参微调需数百 GB 显存的多卡集群)。
- PEFT(参数高效微调):只训练新增的小参数。两个子族:加参数(Adapter、Prefix/Prompt Tuning)与重参数化(LoRA——训练后可合并回原权重,零推理延迟)。
- 量化微调:把冻结权重压成 4-bit(QLoRA),在消费级显卡上微调大模型。
- 偏好对齐优化:SFT 之后的第二阶段。RLHF(奖励模型 + PPO)、DPO(直接偏好优化)及其变体 ORPO、KTO、GRPO。
- 继续预训练(CPT):用大量领域原始语料先做无监督继续训练,再 SFT。属重度方案,本库只做概念指引。
原理与机制
选型看四个约束的交集:
- 显存预算:单卡 24G → QLoRA 优先;多卡 A100 → LoRA 或全参。
- 推理延迟:要求零额外延迟 → 选可合并的 LoRA(而非 Adapter/Prefix)。
- 多任务切换:一个基座服务多个客户/任务 → LoRA 多适配器热切换(见 kp-009)。
- 目标:教会格式与知识 → SFT 阶段;调整「两个回答哪个更好」的偏好 → DPO 阶段。
图示
目标是什么?
├─ 教会任务行为/格式/话术 ──► SFT 阶段
│ ├─ 显存充足&追求上限 ──► 全参微调
│ ├─ 常规选择 ──────────► LoRA
│ ├─ 单卡/消费级显卡 ───► QLoRA
│ └─ 超小模型+固定任务 ──► Prefix/Prompt Tuning
└─ 已有偏好数据(哪个回答更好) ─► DPO/ORPO/KTO(见 05-对齐微调)直观类比
全参微调是推翻重装;LoRA 是给系统打补丁包(卸载即恢复原状);QLoRA 是把只读系统盘压缩后再打补丁;DPO 不是教新技能,而是给已有技能排优先级。
实例或案例
一个三人团队的典型选型:要在一张 RTX 4090 上把 Qwen-7B 调成医疗问答助手。按决策树:显存单卡 → QLoRA;目标是问答行为 → SFT 阶段;积累了对错标注后 → 再跑一轮 DPO。全程未动全参微调,两周内上线。
操作步骤
拿到需求后 10 分钟完成选型:写下显存上限与卡型 → 写下延迟与多任务要求 → 判断目标是行为还是偏好 → 按上文决策树得到「阶段 + 方法」组合 → 用 kp-004 的显存公式验证可行性。
排错清单
- 选了 Adapter 但线上延迟敏感:换成可合并的 LoRA。
- QLoRA 训练慢得不可接受:换 LoRA 加大显存,或在 kp-017 组合显存优化手段。
- DPO 效果奇怪:先确认 SFT 基座质量,偏好优化放大的是基座已有能力。
常见误区
- PEFT 一定比全参差:指令遵循与领域适配类任务上 LoRA 常与全参相当;差的是需要大规模知识注入的 CPT 场景。
- 方法名越多越新越好:一次实验只改一个变量,先用最普通的 LoRA 建立基线。
- QLoRA 是独立算法:它只是「4-bit 量化权重 + LoRA」的工程组合,原理仍回到 kp-005。
与其他知识点的关系
LoRA 数学见 kp-005,QLoRA 显存账见 kp-007,偏好优化见 kp-022 与 kp-024,历史脉络见 kp-031。
延伸阅读
Xu et al. 2023《Parameter-Efficient Fine-Tuning Methods for Pretrained Language Models: A Critical Review and Assessment》(对 PEFT 各方法的系统对比)。
自测题
- 只有一张 24G 显卡,要微调 14B 模型,选什么方法?
答:QLoRA——冻结权重以 4-bit NF4 存储,LoRA 参数以 BF16 训练,配合 kp-017 的显存优化手段。
- 为什么延迟敏感的线上服务倾向 LoRA 而不是 Adapter?
答:LoRA 训练后可合并回原权重(W+BA),推理时结构与原模型完全相同、零额外延迟;Adapter 在每层串联新增模块,引入额外计算。
- SFT 与 DPO 各解决什么问题?
答:SFT 教会「该做什么」(任务行为与格式);DPO 调整「两个可行回答中哪个更好」(偏好排序),需要先有 SFT 基座。