大模型微调完全指南:全参、LoRA、QLoRA、DoRA、GaLore 选型
参数高效微调能以全参微调 90-98% 的效果,成本降到几十分之一。这篇给出可执行的选型决策。
先回答:什么时候该微调
微调的理由经常被误解。不是"为了让模型更聪明",而是这三类具体需求:
永远不要污染测试集。
训练阶段的监控
训练损失下降 + 验证损失上升 → 过拟合,立即停止
训练损失和验证损失都下降 → 正常,继续
训练损失和验证损失都不降 → 学习率有问题验证损失上升时停下来,不要因为"再训一轮可能更好"而继续。
多适配器服务:一个基座,多个变体
这是 LoRA 相对全参微调的一个被低估的优势:
一份基座模型(显存占用大头)
├── adapter-客服话术 (50 MB)
├── adapter-法律摘要 (50 MB)
├── adapter-代码审查 (50 MB)
└── adapter-数据分析 (50 MB)按请求类型加载对应适配器。用一个基座的显存开销,服务几十个专用模型。
vLLM 的 multi-LoRA 支持让这件事在生产环境成为可能——对 dense 和 MoE 层都支持。
选型决策
任务需求是什么?
│
├─ 融合新知识 / 知识常变 ──────────────► RAG
├─ 输出格式、风格、话术固化 ────────────► LoRA
├─ 需要极致成本效率 ──────────────────► QLoRA(单卡可行)
├─ 微调 3B 以下小模型 ─────────────────► 全参(LoRA 开销占比过高)
├─ 任务与基座分布差异极大(换语言)────► 全参或高 rank LoRA
├─ 需要真正全模型更新 + 显存受限 ─────► GaLore
└─ 相对 LoRA 有质量缺口(已验证)──────► DoRA 或全参默认起点:LoRA r=16 + q_proj/v_proj。 大多数团队从 QLoRA 起步。
参考资料
Hu et al., *LoRA: Low-Rank Adaptation of Large Language Models* — https://arxiv.org/abs/2106.09685
Dettmers et al., *QLoRA: Efficient Finetuning of Quantized LLMs* — https://arxiv.org/abs/2305.14314
Liu et al., *DoRA: Weight-Decomposed Low-Rank Adaptation* — https://arxiv.org/abs/2402.09353
Zhao et al., *GaLore: Memory-Efficient LLM Training by Gradient Low-Rank Projection* — https://arxiv.org/abs/2403.03507
Hugging Face PEFT 文档 — https://huggingface.co/docs/peft/index