What is QLoRA?

    量化低秩自适应——一种结合 4 位量化与 LoRA 适配器的微调技术,使大语言模型能够在单个消费级 GPU 上进行微调。

    Definition

    QLoRA(Quantized Low-Rank Adaptation,量化低秩自适应)是 LoRA 微调方法的扩展,通过将基础模型权重保持在 4 位量化格式,同时在其上训练小型、全精度的 LoRA 适配器层,大幅降低了内存需求。由 Dettmers 等人在 2023 年提出,QLoRA 使得在单个 48 GB GPU 上微调 650 亿参数模型成为可能——这项任务在此前需要多个高端 GPU 和数百 GB 的 VRAM。

    该技术引入了三项关键创新:4 位 NormalFloat(NF4)量化,对正态分布权重在信息论上是最优的;双重量化,对量化常数本身进行量化以节省额外内存;以及分页优化器,使用统一的 CPU/GPU 内存来优雅地处理训练峰值。这些创新共同将冻结基础模型的内存占用相比标准 FP16 LoRA 减少了大约 4 倍,而可训练的适配器权重保持更高精度以保持梯度质量。

    尽管对基础权重进行了激进的量化,QLoRA 实现的微调质量与完整 16 位微调非常接近。原始论文证明,QLoRA 微调的 330 亿参数模型在某些基准上可以匹配完整 16 位微调的 650 亿参数模型的性能,证明量化与低秩自适应的组合不仅仅是一种折中,而是准确率-计算成本权衡的高效前沿。

    Why It Matters

    在 QLoRA 之前,微调大型语言模型是拥有多 GPU 集群的资金充足团队的专属领域。QLoRA 打破了这一障碍,使得在成本仅几百美元的硬件上微调 70 亿到 700 亿参数模型成为可能。这种民主化对初创公司、研究人员和需要定制模型但无法承担专用训练基础设施资本支出的企业来说具有变革性意义。这也意味着更快的迭代周期:团队可以在相同的时间内实验更多的数据集变体和超参数配置。

    How It Works

    QLoRA 首先以 4 位 NF4 精度加载预训练基础模型,使用针对神经网络权重的高斯分布优化的量化方案将每个权重从 16 位压缩到 4 位。然后将小型 LoRA 适配器矩阵(通常秩为 8-64)以全精度 BFloat16 注入到模型的注意力层和前馈层中。在前向传播期间,4 位基础权重被即时反量化为 BF16,与 LoRA 适配器输出合并,结果用于计算损失。梯度仅流经适配器权重,因此优化器状态很小。分页优化器在 GPU 内存不足时自动将优化器状态卸载到 CPU RAM,防止训练峰值期间的内存溢出崩溃。

    Example Use Case

    一位独立 AI 研究者使用 QLoRA 在单个 NVIDIA A100 40 GB GPU 上微调 Llama 2 70B 模型的自定义指令数据集。4 位基础模型占用约 35 GB VRAM,留有足够空间用于 LoRA 适配器和优化器状态。经过 8 小时 3 个 epoch 的训练后,研究者产出了一个领域特定助手,在评估基准上比基础模型高出 18 分——全程无需租用多节点集群。

    Key Takeaways

    • QLoRA 结合 4 位量化与 LoRA,在单个 GPU 上微调非常大的模型。
    • NF4 量化针对神经网络中的权重分布进行了优化,最小化信息损失。
    • 尽管基础权重内存减少了 4 倍,微调质量接近完整 16 位 LoRA。
    • 分页优化器通过无缝将数据溢出到 CPU 内存来防止 OOM 错误。
    • QLoRA 使个人和小型团队能够微调 700 亿以上参数的模型。

    How Ertas Helps

    QLoRA 是 Ertas Studio 中可用的主要微调方法之一。当用户配置训练任务时,Ertas 会根据所选基础模型大小和 Ertas Cloud 中可用的 GPU 资源自动确定 QLoRA 是否为最佳策略。平台在后台处理 NF4 量化、适配器注入和分页优化器配置,让用户在无需了解底层实现细节的情况下获得 QLoRA 的内存节省。

    Related Resources

    Ship AI that runs on your users' devices.

    Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.