标准回答
LoRA 的局限(独占一行)
LoRA 冻结基座、只训练低秩矩阵 A/B,省的是优化器与梯度显存;但基座权重仍以 FP16/BF16 常驻,几十 B 模型单卡仍放不下。
QLoRA 的三项改进
一是 4-bit NF4 量化:把冻结基座量化为 4-bit NormalFloat(针对正态分布权重设计的数据类型),显存降到约 1/4,前向时反量化回 BF16 计算;LoRA 适配器仍以 BF16 训练。
二是 双量化:量化会产生大量量化常数,QLoRA 对这些常数再做一次量化,平均每参数再省约 0.4 bit。
三是 分页优化器:借助 NVIDIA 统一内存,在显存峰值时把优化器状态分页换出到内存,避免长序列梯度检查点触发的 OOM。
效果
三者叠加使单张消费级/数据中心卡即可微调 33B–65B 模型,精度基本追平 16-bit 全量微调,代价是反量化带来的训练吞吐略有下降。
常见误区
⚠️ 常见踩坑
QLoRA 只量化「冻结的基座」,LoRA 适配器和反向计算仍是高精度;它不是「把整个模型量化后训练」,也不等于推理量化(QLoRA 是微调期方案)。
追问
追问 1:NF4 相比普通 INT4 好在哪?
NF4 是信息论最优的 4-bit 数据类型,假设权重近似零均值正态分布,其量化分位点按正态分位数划分,使每个 bucket 承载等量概率,量化误差比均匀的 INT4 更小,因此精度损失更低。
追问 2:QLoRA 训练完如何部署推理?
可将 LoRA 适配器合并回基座得到完整权重再正常部署;若要保留 4-bit 量化优势,也可不合并、推理时单独加载基座与适配器,或导出为 AWQ/GPTQ 等推理量化格式。
追问 3:QLoRA 微调时显存主要花在哪?
基座经 4-bit 量化后占比很小,显存主要消耗在激活值(与序列长度、batch 成正比)和 LoRA 的梯度/优化器状态上,因此长序列训练仍需配合梯度检查点与分页优化器。
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。