核心要点

  • 能讲核心组合:4-bit NF4 量化冻结基座 + 训练 LoRA 低秩适配器,大幅压缩显存

  • 能讲双量化(Double Quantization):对量化常数再量化,进一步省显存

  • 能讲分页优化器(Paged Optimizer):用统一内存避免长序列峰值导致的 OOM

  • 能讲收益与代价:单卡微调数十 B 模型、精度接近全量微调,但训练吞吐略降

标准回答

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 是微调期方案)。

追问

追问 1NF4 相比普通 INT4 好在哪?

NF4 是信息论最优的 4-bit 数据类型,假设权重近似零均值正态分布,其量化分位点按正态分位数划分,使每个 bucket 承载等量概率,量化误差比均匀的 INT4 更小,因此精度损失更低。

追问 2QLoRA 训练完如何部署推理?

可将 LoRA 适配器合并回基座得到完整权重再正常部署;若要保留 4-bit 量化优势,也可不合并、推理时单独加载基座与适配器,或导出为 AWQ/GPTQ 等推理量化格式。

追问 3QLoRA 微调时显存主要花在哪?

基座经 4-bit 量化后占比很小,显存主要消耗在激活值(与序列长度、batch 成正比)和 LoRA 的梯度/优化器状态上,因此长序列训练仍需配合梯度检查点与分页优化器。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。