核心要点
全量微调(Full Fine-tuning):更新全部参数,效果上限最高、最灵活,但显存/算力/数据要求大,且容易灾难性遗忘通用能力,需较强正则与配比数据。
LoRA:冻结基座、加低秩旁路只训 B/A,显存与存储大降,checkpoint 为 MB 级,支持多适配器热插拔与合并,是工程默认起点。
QLoRA:先把基座量化到 4bit(NF4)再在其上训 LoRA,进一步压基座显存,单卡即可微调几十 B 大模型,是「性价比之王」,代价是量化带来轻微精度损失与略慢的训练。
DoRA:把权重分解为「幅度(magnitude)+ 方向(direction)」两部分,对方向分量做 LoRA 更新、单独学幅度,精度更接近全量微调,参数量与 LoRA 相当;选型按显存预算 / 数据量 / 效果要求 / 是否需多任务切换四个维度决定。
标准回答
选型本质是在效果上限、显存/成本、数据量、多任务切换需求四个维度上做权衡。
全量微调改动全部参数,理论效果上限最高,适合数据充足(万级以上高质量样本)、对效果要求苛刻、且有多卡资源的场景,比如做一个领域基座。代价是显存大(需存全部参数的梯度与优化器状态,约为参数量的数倍)、训练慢、且容易灾难性遗忘通用能力,需要混入通用数据并控制学习率。
LoRA 是大多数场景的默认起点:冻结基座,只在选定层加低秩旁路,显存和存储成本大幅下降,一个任务只产出 MB 级 adapter,可多任务热插拔、可合并回权重做到零额外推理延迟。适合中小数据、单/少卡、需要快速迭代或上线多任务的情况。
QLoRA 在 LoRA 基础上把基座量化到 4bit(NF4 + 双重量化 + 分页优化器),把「加载基座」的显存也压下来,于是单张消费级/单卡 GPU 也能微调几十 B 甚至更大的模型,是预算受限时的性价比之王。代价是 4bit 量化带来轻微精度损失、训练吞吐略低;多数下游任务上效果与 LoRA 接近。
DoRA 针对 LoRA 与全量微调之间的精度差距:把每个权重列分解为幅度和方向,对方向做 LoRA 式低秩更新、对幅度单独学习,使更新模式更接近全量微调,精度更高而参数量与 LoRA 相当,可与 QLoRA 结合。适合「想要接近全量的效果,但仍要控住成本」的场景。
选型口诀:显存极紧、要微调大模型 → QLoRA;显存够、要在效果上更逼近全量 → DoRA(或 LoRA+更大 r);要多任务在线切换/快速迭代 → LoRA;数据足、资源足、要冲效果上限做基座 → 全量微调。
追问
追问 1:QLoRA 的 4bit 量化(NF4)会损失精度,为什么最终效果还能接近全量?
关键在于「量化的是冻结的基座、训练的是高精度的 LoRA 旁路」。前向时基座以 4bit NF4 存储、按需反量化参与计算,量化误差被后续可训练的 LoRA 增量部分补偿;NF4 针对正态分布权重设计、配合双重量化进一步降低量化常数开销,因此基座信息损失有限。再加上 LoRA 增量、梯度与优化器状态仍是高精度,整体在多数下游任务上与 16bit LoRA、乃至全量微调差距很小。
追问 2:DoRA 把权重拆成「幅度 + 方向」,为什么这样能更接近全量微调的效果?
分析发现全量微调在更新时,权重的幅度和方向呈现出与 LoRA 不同的协同变化模式,而原始 LoRA 把两者耦合在一个低秩增量里、表达受限。DoRA 显式解耦:方向分量用 LoRA 低秩更新、幅度用一个可学习标量单独调整,使更新自由度更贴近全量微调观察到的模式,从而在相近参数量下取得更高精度,尤其在低秩 r 较小时优势更明显。
追问 3:团队只有一张 48GB 显存的卡,要微调一个 70B 模型,应该怎么选?
首选 QLoRA:70B 基座 4bit(NF4) 量化后仅权重就约 35GB(70e9×4/8),需 48GB 级显卡(A6000/A100 40–48GB)才放得下——QLoRA 原论文(Dettmers 2023)正是在单张 48GB GPU 上微调 65B;再配合分页优化器、梯度检查点、较小 batch + 梯度累积即可完成。若追求更高精度可用 QDoRA(QLoRA + DoRA)。注意:24GB 单卡放不下 70B——光 4bit 基座 35GB 就超了,分页优化器只能把优化器状态挪到 CPU、搬不走基座权重;24GB 卡更适合 4bit 微调 30B 级(约 15–17GB 权重)或对基座做 CPU/NVMe 分层 offload(吞吐大降)。全量微调 70B 在单卡上不现实(仅优化器状态就远超显存)。
🔗 相似问题
同一考点的不同问法,面试官可能换着问,一起刷更稳
没找到想看的面试题?把你想看的告诉我们 →
延伸学习
按主题分类的相关资源,便于系统复习