LoRA 不仅限于注意力层。作者发现修改语言模型的注意力层足以高效地获得良好的下游性能。这就是为什么通常只将 LoRA 权重添加到模型的注意力层。查看使用 LoRA 实现高效稳定扩散微调博客,了解有关 LoRA 工作原理的更多信息!
我们介绍了 QLoRA,这是一种有效的微调方法,可以减少内存使用量,足以在单个 48GB GPU 上微调 65B 参数模型,同时保留完整的 16 位微调任务性能。 QLoRA 通过冻结的 4 位量化预训练语言模型将梯度反向传播到低阶适配器 (LoRA)。我们最好的模型系列,我们命名为 Guanaco,在 Vicuna 基准测试中优于所有以前公开发布的模型,达到 ChatGPT 性能水平的 99.3%,同时只需要在单个 GPU 上进行 24 小时的微调。 QLoRA 引入了许多创新来节省内存而不牺牲性能:
(a) 4 位 NormalFloat (NF4),一种新的数据类型,理论上是正态分布权重的最佳信息
(b) 双量化通过量化减少平均内存占用量化常数,以及
(c) 用于管理内存峰值的分页优化器。我们使用 QLoRA 对 1,000 多个模型进行微调,提供跨 8 个指令数据集、多种模型类型(LLaMA、T5)和无法通过常规微调运行的模型规模(例如 33B 和65B参数模型)。我们的结果表明,即使使用比以前的 SoTA 更小的模型,QLoRA 对小型高质量数据集的微调也会产生最先进的结果。我们提供了基于人类和 GPT-4 评估的聊天机器人性能的详细分析,表明 GPT-4 评估是人类评估的廉价且合理的替代方案。此外,我们发现当前的聊天机器人基准测试无法准确评估聊天机器人的性能水平。我们发布了所有模型和代码,包括用于 4 位训练的 CUDA 内核。