认识QLORA:一种高效的微调方法,可以降低内存使用量,使得在单个48GB的GPU上微调一个65B参数的模型,并保持完整的16位微调任务性能

QLORA是一种高效的微调方法,可在单个48GB的GPU上微调一个65B参数的模型,并保持完整的16位微调任务性能

大型语言模型(LLM)可以通过微调来改进,这也允许添加或删除所需的行为。然而,微调大型模型成本过高;例如,一个65B参数的LLaMA模型在标准16位模式下进行微调时需要超过780GB的GPU内存。尽管更现代的量化方法可以减小LLM的内存占用,但这些方法只适用于推理过程,在训练过程中会失败。华盛顿大学的研究人员开发了QLORA,它使用先进的高精度算法将预训练的模型量化为4位分辨率,然后通过反向传播梯度修改通过量化结果获得的稀疏可学习的低秩适配器权重。他们首次展示了一个量化的4位模型可以在不影响性能的情况下进行调整。

与16位完全微调基准相比,QLORA将65B参数模型进行微调的平均内存需求从>780GB的GPU内存减少到48GB,而不会影响运行时间或预测性能。迄今为止,最大的公开可访问模型现在可以在单个GPU上进行微调,这代表了LLM微调可及性的巨大变化。他们使用QLORA训练了Guanaco系列模型,他们最大的模型在24小时内使用单个专业GPU实现了99.3%的准确率,有效地缩小了与Vicuna基准上的ChatGPT的差距。第二好的模型在Vicuna基准上达到了97.8%的ChatGPT性能水平,同时在单个消费级GPU上训练时间不到12小时。

QLORA的以下技术旨在降低内存使用而不损害性能:(1)4位NormalFloat,一种用于正态分布数据的量化数据类型,其信息论上是最优的,并且产生比4位整数和4位浮点数更好的实证结果。(2)双重量化,平均每个参数节省0.37位(或约3GB对于一个65B模型),对量化常数进行量化。(3)分页优化器使用NVIDIA统一内存,以防止在处理具有长序列的小批量时由梯度检查点引起的内存峰值。使用时,他们最小的Guanaco模型(7B参数)使用不到5GB的内存,同时在Vicuna测试上的性能比26GB的Alpaca模型提高了20个百分点以上。

他们将这些贡献整合到更精细的LoRA策略中,该策略在每个网络层都包含适配器,因此几乎消除了早期工作中发现的准确性权衡。由于QLORA的高效性,我们可以比传统微调更详细地分析指令微调和聊天机器人性能在模型规模上的表现,而不必考虑内存成本。因此,他们使用各种指令微调数据集、模型拓扑和参数值从80M到65B训练了一千多个模型。他们证明了QLORA恢复了16位性能,训练了先进的聊天机器人Guanaco,并研究了学习模型中的模式。

首先,尽管两者都旨在提供泛化后的指导,但他们发现数据质量比数据集大小更重要,一个9k样本数据集(OASST1)在聊天机器人性能上表现优于一个450k样本数据集(FLAN v2,子采样)。其次,他们证明了良好的大规模多任务语言理解(MMLU)基准性能只有在某些情况下才能转化为优秀的Vicuna聊天机器人基准性能,反之亦然。换句话说,对于给定的任务,数据集的适用性比规模更重要。他们还通过人工评估和GPT-4对聊天机器人性能进行了全面评估。

模型在锦标赛风格的基准测试中互相竞争,以确定对于给定刺激的最佳回应。GPT-4或人工注释员决定哪个选手赢得比赛。通过组合锦标赛结果创建的Elo分数用于排名聊天机器人性能。在锦标赛的模型性能排名中,他们发现GPT-4和人类判断大多数情况下是一致的,但也存在一些明显分歧的领域。因此,他们提醒人们,基于模型的评估虽然存在不确定性,但比人工注释更经济。

他们在他们的聊天机器人基准研究中添加了对Guanaco模型的定性分析。他们的研究确定了定量标准没有考虑到的成功和失败的实例。他们发布了所有的GPT-4模型和人工评论,以帮助未来的研究。他们将自己的技术融入到Hugging Face transformers堆栈中,开源他们的软件和CUDA内核,并使其广泛可用。对于32个不同的开源改进模型,他们提供了一系列适配器,以便于使用大小为7/13/33/65B的8个不同指令遵循数据集进行训练的模型。代码仓库以及可在Colab上托管的演示也已公开。