什么是 QLoRA?
QLoRA(Quantized Low-Rank Adaptation)是一种参数高效微调方法:预训练基座以 4-bit 量化形式存储并保持冻结,计算时执行反量化,梯度更新可训练的 LoRA Adapter。它降低的是基座权重显存,并不代表所有训练状态都是 4-bit,也不保证某个模型一定能装入指定设备。
快速了解
| 全称 | 量化低秩适应(Quantized Low-Rank Adaptation) |
|---|---|
| 创建时间 | 2023 年由 Tim Dettmers 等人提出 |
| 规范文档 | 官方规范 |
工作原理
QLoRA 将存储精度与计算精度分开。原始方法使用 4-bit NormalFloat(NF4)存储冻结的预训练权重,执行层计算时将权重反量化到更高计算 dtype,并叠加可训练的 LoRA 更新。双重量化进一步压缩量化常数,分页优化器利用托管内存缓解部分瞬时压力,但二者都不能保证不会 OOM。训练峰值显存仍包括量化权重及元数据、Adapter、可训练参数的梯度与优化器状态、Activation、临时 Buffer、框架开销、通信状态和安全余量。论文中的 65B 单卡 48GB 与全精度对比结果只属于其模型家族、数据集、序列设置、优化器、Kernel 和评测协议。团队应在相同任务与风险切片上,将 QLoRA 与未量化 LoRA 或其他已批准基线对比。训练产物通常是 Adapter,以及对精确基座模型、Tokenizer、Chat Template、量化配置和 Runtime 的依赖;保留 Adapter、合并权重或重新量化用于服务会产生新的部署制品,必须单独记录身份、检查兼容性并重新评测。
主要特点
- 保持量化基座权重冻结,只训练 LoRA Adapter 或其他明确选定的附加参数
- 存储 dtype 与计算 dtype 相互独立,4-bit 权重存储不代表所有 Tensor 和操作都是 4-bit
- 原始方案在预训练权重分布假设下采用 NF4
- 可通过双重量化压缩量化常数,并用分页优化器缓解部分瞬时显存压力
- 降低基座权重显存,但 Activation、临时 Buffer、Adapter、梯度和运行时开销仍取决于工作负载
- 生成与基座绑定的 Adapter 训练结果,而不是自动合并或可直接上线的量化服务模型
常见用途
- 在未量化 LoRA 无法满足显存预算时,验证目标基座能否落入实测设备包络
- 固定基座 Revision、数据切分和评测切片,对比 QLoRA 与 LoRA
- 围绕一个已批准基座,为多个有界任务训练独立轻量 Adapter
- 固定模型、Kernel、依赖和硬件后复现量化 Adapter 训练研究
- 在量化误差仍满足任务质量预算时,降低监督或偏好适配的训练显存
示例
Loading code...常见问题
QLoRA 与 LoRA 有什么区别?
两者都冻结基座并训练低秩 Adapter。LoRA 通常以较高存储精度保留基座,原始 QLoRA 则用 4-bit NF4 存储冻结基座,并在计算时反量化。QLoRA 可以降低基座权重显存,但会增加量化、Kernel、兼容性和评测要求。
QLoRA 是全参数微调吗?
不是。原始方法保持量化预训练权重冻结,梯度只更新 LoRA Adapter。某些实现可以额外解冻指定模块,但必须明确声明。把 QLoRA 称为全参数微调,会错误描述真正接收更新的参数范围。
QLoRA 需要多少 GPU 显存?
不存在可跨工作负载迁移的模型规模与 GPU 对照表。必须在精确软硬件栈上测量量化权重及元数据、Adapter 梯度与优化器状态、Activation、序列长度、微批量、检查点、临时 Buffer、Kernel、Runtime、通信状态和安全余量。
QLoRA 一定能达到全精度微调质量吗?
不能保证。原论文结果属于其模型、数据、超参数和评测协议;量化误差与 Adapter 容量在其他任务上可能产生不同影响。发布前应对比已批准基线,并检查留出能力、安全、语言、长度和回归切片。
QLoRA 会直接生成可部署的量化模型吗?
不会自动生成。训练通常得到绑定特定基座和量化配置的 Adapter。团队可以服务该组合、合并到兼容的高精度基座,或再创建量化制品;每条路径都需要不可变身份、许可证与兼容性检查、任务评测和回滚证据。