LoRA、QLoRA、AdaLoRA、aLoRA、全量微调……选择变多了反而更纠结。 这篇不讲所有 PEFT 论文的细节,只讲怎么根据你的任务、数据、算力、部署方式 在 5 分钟内挑对路线——然后再在那个路线里追极致效果。
微调方案按"参数更新量"从多到少大致分三档:全量微调(动全部参数)→ PEFT 大类(只动一小撮参数,其中 LoRA 最主流)→ 更激进的 PEFT(AdaLoRA 调秩、aLoRA 按需激活)。
速记口诀:
新手当 LoRA,卡紧用 QLoRA,抠精度试 AdaLoRA,多任务/Agent 切 aLoRA,高预算再上全量。
选型信号其实只有 4 个:任务形态、数据规模、显存上限、部署形态。
下面我们就按这 4 个信号,把 5 种主流方法挨个对比一遍。
上来就比方法细节会陷入"参数调优"陷阱。先回答下面 4 个问题,答案本身就是选型方向。
对话结构化抽取多任务Agent
单任务稳定输出 → LoRA;多任务互不打架 → aLoRA;需要切换不同领域/工具风格 → aLoRA。
百条千条万条十万+
千条高质量 → LoRA/QLoRA 完全够;万条以上且数据干净 → 可考虑全量;样本极小(百条以内)→ 加 Adapter 或冻结更多层。
单卡 24G单卡 40G单卡 80G多卡
24G 单卡 → QLoRA 几乎唯一选项;80G / 多卡 → LoRA 任意玩;多卡 A100/H100 → 全量微调也未必夸张。
单 LoRA 服务多 LoRA 热切换合并回基座
只服务一个任务 → 合并回基座推理更快;要多个任务同基座并存 → 保留 LoRA 权重便于热加载。
5 种方案的本质差异是动哪个矩阵 / 动多少 / 怎么分配。下面每张图都用同一个基座模型做对比基线,方便直观感受。
基座所有权重 W 全部参与更新。优点是效果上限最高,缺点是显存巨大、容易"灾难性遗忘"原有能力。
冻结 W,在旁边挂一个 低秩分解 的旁路 ΔW = B·A(秩 r ≪ d),只训练 A、B。推理时把 ΔW 合并回 W,零额外延迟。
在 LoRA 基础上,把基座 W 用 4-bit 量化(NF4 格式)压成"小格子",加载时反量化、训练时 LoRA 仍跑 FP16/BF16。显存能再省一个量级,单卡 24G 就能微调 65B 量级模型。
LoRA 给所有层同一个秩 r,但实际不同层对任务的重要程度不同。AdaLoRA 让模型自己 动态分配不同层不同秩:重要层给高秩、不重要层剪枝到接近 0。
把 LoRA 切成多个"小专家模块"(aB 块),每个块单独训练。推理时按需激活对应的块——可以快速在不同任务/不同领域/不同风格间切换,无需重训。
对照 11 项关键指标。下表中:高中低
它们不是并列候选,而是沿着"怎么把参数训得更省、更准、更灵活"这条主线逐步演进。看清这条主线,就知道为什么会出现新方法。
每种方法都有自己的甜区。下面按"你现在的处境"反查该用哪种。
按顺序回答 4 个 yes/no 问题,就能落到唯一方案。
决策树给出方法后,按这个清单一步步落地。
{"instruction":"…","input":"…","output":"…"}r=16, α=32, dropout=0.05,target_modules 选 q_proj, k_proj, v_proj, o_projload_in_4bit=True, bnb_4bit_quant_type="nf4", bnb_4bit_compute_dtype=bf16init_r=12, target_r=8, delta_r=16 等动态秩参数model.merge_and_unload(),把 LoRA 写回基座看过太多项目栽在"方法选错"这一步,下面 8 个坑几乎一半项目都会踩。
千条数据训 7B 全量 = 灾难性遗忘 + 过拟合。先攒数据或改 LoRA。
QLoRA 比 LoRA 慢约 30%~50%。如果有 80G 卡选 QLoRA 就亏了时间。
r 越大越接近全量,但显存也涨。一般 r=8~32 已经够用,r=128 收益边际递减。
AdaLoRA 比 LoRA 实现复杂、对超参敏感。新手先 LoRA 跑通再考虑 Ada。
多任务大多数情况直接"多个独立 LoRA" 即可,不必上 aLoRA。aLoRA 是"基座必须共享 + 频繁切换"的场景才显优势。
微调擅长改行为/格式/风格,不擅长注入新事实。需要新知识先 RAG。
可能"背答案"。必须用任务指标 + 通用能力集双重评估。
合并后的模型文件只依赖基座版本,丢失 LoRA 灵活性。一旦想更新就得重训。
选微调方案的第一性顺序:先看 任务形态(多任务选 aLoRA,单任务往下走),
再看 显存上限(<24G 选 QLoRA,否则往下走),
再看 资源/精度要求(极精算 AdaLoRA,否则往下走),
再看 数据规模 + 多卡(万条+多卡可选全量),
最后默认落到 LoRA。
工业界 90% 的项目其实就在 LoRA / QLoRA 这两档之间选。剩下 10% 才需要折腾 AdaLoRA、aLoRA 甚至全量。
记住:没有"永远最好"的微调方法,只有"此刻对你最合适"的方法。先跑通 baseline,再追极致。