LoftQ:用于大型语言模型的LoRA微调感知量化

10月12日发表
04月12日由 AKAK 提交
作者: LoftQYixiao Li, YifanYifan Yu, Chen LiangChen Liang, Pengcheng HePengcheng He, Nikos KarampatziakisNikos Karampatziakis, Weizhu ChenWeizhu Chen, Tuo ZhaoTuo Zhao

摘要

量化是服务大型语言模型(LLM)不可或缺的技术,并且最近已应用于 LoRA 微调。在这项工作中,我们专注于在预训练模型上同时应用量化和 LoRA 微调的场景。在这种情况下,通常可以观察到完整微调和量化加 LoRA 微调方法之间在下游任务性能方面存在持续的差距。为了应对这种情况,我们提出了 LoftQ(LoRA-Fine-Tuning-aware Quantization,LoRA 微调感知量化),这是一个新颖的量化框架,它可以同时量化 LLM 并为 LoRA 微调找到合适的低秩初始化。这样的初始化缓解了量化模型和全精度模型之间的差异,并显著提高了下游任务的泛化能力。我们在自然语言理解、问题回答、摘要和自然语言生成任务上评估了我们的方法。实验表明,我们的方法非常有效,并且优于现有的量化方法,尤其是在具有挑战性的 2 位和 2/4 位混合精度方案中。我们将发布我们的代码。

评论

Abdel-Dayane MarcosAbdel-Dayane Marcos

如果我理解这篇论文是正确的,我们可以使用 LoftQ 进行量化微调,但我们获得的量化权重将始终特定于用于微调的数据集。我们不能在冻结模型 M 上训练适配器 a1,然后在(M+a1)上训练适配器 a2,两者都以比如 8 位或 4 位冻结,对吗?

LoftQLoftQ
论文作者

LoftQ 不是特定于任务的。您可以使用相同的量化模型 M 和初始适配器 a0 对任何数据集进行微调。您在(M+a1)上训练适配器 a2 的要求绝对是可行的。

此外,LoftQ 支持多任务学习,这是 LoRA 的最初动机。同样,使用相同的量化模型 M 和初始适配器 a0,您可以从不同的数据集中获得许多适配器 a1、a2、...、an,并将它们中的每一个插入到相同的量化模型 M 中进行部署。

SolomonSolomon

嗨,团队,

LoftQ 可以用于 Vision Foundation 模型,如 OWL-ViT v2 和 Grounding Dino 吗?

关于这方面的参考代码将很有帮助。

谢谢