QLoRA
分类: 量化与低秩
QLoRA
定义
QLoRA(Quantized LoRA)是 Dettmers et al. (2023) 提出的一种高效微调方法,将预训练模型量化为 4-bit(NormalFloat4),在量化基础上添加低秩适配器(LoRA),使 65B 参数模型可以在单张 48GB GPU 上微调,同时保持与全参数微调相当的性能
数学形式
LoRA 的核心思想——冻结预训练权重 ,仅训练低秩增量:
其中 ,,
QLoRA 的三个关键创新:
- 4-bit NormalFloat(NF4)量化:,基于正态分布分位数的最优量化
- 双重量化(Double Quantization):对量化常数再量化,节省约 0.37 bit/参数
- 分页优化器(Paged Optimizers):利用 NVIDIA 统一内存避免 OOM
核心要点
NormalFloat4(NF4):假设预训练权重近似正态分布,用正态分布的分位数作为量化节点——理论上是正态分布数据的信息论最优 4-bit 量化
显存节省:65B 模型从 ~130GB(FP16)压缩到 ~33GB(NF4),加上 LoRA 适配器和优化器状态,单张 A100-48GB 即可微调
Guanaco:QLoRA 训练的对话模型,在 Vicuna benchmark 上达到 ChatGPT 性能的 99.3%,仅用 24 小时单卡训练
LoRA rank 选择:实验发现 在多数任务上效果最佳,但 已足够好
与全参数微调的对比:在 MMLU 等基准上,QLoRA 微调的模型与 16-bit 全参数微调性能持平
适用场景:资源受限的 LLM 微调、领域适配、指令微调
CS224N 讨论 LLM 高效训练和适配时的核心技术
代表工作
QLoRA: Efficient Finetuning of Quantized LLMs (Dettmers et al., 2023)
LoRA: Low-Rank Adaptation of Large Language Models (Hu et al., 2022)