常见的微调方法有哪些?
- 标签:大模型、AI、微调
🏛 业务架构师
微调方法按"动多少参数"排序,业务上对应不同的成本档位:
- 全量微调(FFT):更新模型所有参数,效果上限最高,但要求数百 GB 显存的训练集群,一次训练几千到几万美元,只有基座模型厂商和大型 AI 团队做。
- PEFT(参数高效微调):冻结原模型,只训练少量新增参数(不到 1%),显存降一个数量级,效果在多数任务上接近全量。这是企业的默认选择,其中 LoRA 是事实标准;QLoRA 更进一步——4bit 量化基座+LoRA,消费级显卡(24GB)就能微调 7B~14B 模型,把微调门槛拉到初创团队可及。
- 提示微调类(Prefix/P-Tuning):只学一段"虚拟前缀",参数量极小,适合超大规模模型轻量适配,业务上用得少。
- 偏好对齐类(RLHF/DPO):从"会不会"转向"好不好",用人类偏好数据调整输出风格,DPO 免去了强化学习的复杂度,已是主流。
我的选型逻辑:先 QLoRA 快速验证(一周内出结果、几百元成本),效果达标就收工;差一口气且业务量足够大,再上 LoRA/全量。90% 的企业场景 QLoRA 就够了,为最后 5% 的效果翻十倍预算,通常不值。
🏗 系统架构师
微调方法按**"更新多少参数"**排谱系,这是理解一切微调方法的坐标系:
- 全量微调(Full Fine-tuning):更新所有参数,效果上限最高,但显存 = 训练态权重 + 优化器状态(Adam 两份动量)+ 梯度,7B 模型 bf16 训练就要 ~70GB+,还要防灾难性遗忘;
- PEFT(参数高效微调):冻结主干、只训少量新增参数(<1%):
- LoRA:权重增量低秩分解 ΔW=BA,推理时可合并回主干,零额外延迟,是默认选择;
- QLoRA:主干 4bit 量化后加 LoRA,7B 单张 24GB 消费级卡可训;
- Prefix/Prompt Tuning:只训软提示向量;
- Adapter Tuning:层间插入小瓶颈模块(代价是推理多一层延迟)。
选型决策树:数据少(<10 万条)+ 单卡/少量卡 → LoRA/QLoRA 起步,覆盖 90% 业务场景;数据量大 + 追求极致效果 + 有集群 → 全量微调;行为对齐类偏好数据 → DPO/RLHF。
量级参考:LoRA 微调 7B,A100 单卡数小时~一天,成本几十到几百美元级;全量 70B 需多机数十卡。大多数业务微调瓶颈不在方法而在数据质量。
💻 全栈开发专家
微调方法按「动多少参数」分层:
- 全量微调(Full Fine-tuning):所有权重都更新。效果上限最高,但 7B 模型训练态要 80GB+ 显存(权重+梯度+Adam 状态约 16 字节/参数),还要担心灾难性遗忘,一般只有基座团队或有充足算力时用。
- PEFT 参数高效微调:冻结主干,只训少量新增参数:
- LoRA:主流。给权重矩阵旁挂低秩分解 BA,可训练参数 0.1%~1%,可合并回权重推理零开销;
- QLoRA:基座 4bit 量化后再训 LoRA,单张 24G/48G 卡就能调 7B~34B,性价比之王;
- Prefix/Prompt Tuning:只在输入端学连续向量,参数最少、效果也最弱;
- Adapter Tuning:层间插小 MLP,会增加推理延迟,已被 LoRA 系基本取代。
- 对齐类微调:RLHF(SFT→奖励模型→PPO,重但精细)、DPO(免奖励模型直接偏好优化,工程简单已成主流)、ORPO(SFT+偏好一步做)。
我的默认配方:通用任务 Qwen/Llama 基座 + QLoRA + lr 2e-4 + r=16,单卡可跑;效果不满意先改数据(占问题的 80%),再考虑换全量。工具栈:LLaMA-Factory(低代码)或 Axolotl,训练完 vLLM 挂 LoRA 热加载部署。