通过信息保留实现 LLMs 的精确 LoRA 微调量化

💡 原文中文,约2000字,阅读约需5分钟。
📝

内容提要

该文综述大语言模型量化与LoRA微调结合的研究,包括LoftQ、QA-LoRA、ModuLoRA、ApiQ、QLoRA、LQ-LoRA、L4Q等方法,旨在降低显存占用,实现4位乃至2位量化微调,同时保持下游任务性能,部分方法在摘要等任务上超越现有水平。

🔎

延伸解读

量化与LoRA结合的技术脉络

文章梳理了从2023年5月到2024年2月的一系列方法,包括QLoRA、LoftQ、QA-LoRA、ModuLoRA、ApiQ、LQ-LoRA、L4Q等。这些工作共同的目标是降低大语言模型微调的显存占用,同时保持下游任务性能。其中QLoRA作为早期代表,通过4位量化预训练模型并反向传播梯度到低秩适配器,实现了与全16位微调相当的性能。后续方法则尝试解决量化带来的知识损失和错误传播问题,并探索更低位宽(如2位)的微调可能性。

低位宽微调的进展与挑战

文章提到多个方法在低位宽微调上取得突破。例如,ModuLoRA支持在单张48GB GPU上以3位或4位精度微调65B参数模型;LQ-LoRA通过迭代分解和整数线性规划动态配置量化参数,实现了2.5位LLaMA-2模型与4位QLoRA竞争;还有方法利用LoRA纠正异常值,达到INT2.1精度。这些进展表明,极低位宽微调在显存受限场景下具有潜力,但同时也面临量化误差累积和训练稳定性的挑战,需要针对性的算法设计来平衡精度与效率。

实际应用中的选择考量

对于实践者而言,文章中的方法各有侧重。QLoRA成熟且易于使用,适合大多数4位微调场景;ModuLoRA强调与自定义量化器的兼容性,并提供了LLMTOOLS库,便于在消费级GPU上部署;LQ-LoRA则适合需要更激进压缩(如2.5位)且对显存预算有严格限制的情况。选择时需权衡微调精度、显存占用、训练时间以及是否支持特定硬件。此外,部分方法(如ModuLoRA)在摘要任务上超越了现有ROUGE分数,提示在生成任务中低位宽微调也可能带来性能提升。

❓

Q&A

LoftQ 是什么?它如何改进量化 LLM 的微调?

LoftQ 是一个量化框架,旨在同时量化 LLM 并为 LoRA 微调找到适当的低秩初始化,以改善量化和全精度模型之间的差异,并显著提高下游任务的泛化性能。

QA-LoRA 如何在不损失准确性的情况下将 LLM 和辅助权重集成到一个量化模型中?

QA-LoRA 通过使用分组运算符,增加量化的自由度,减少自适应的自由度,将 LLM 权重量化以减少时间和内存使用,并将 LLM 和辅助权重自然地集成到一个量化模型中,而不损失准确性。

ModuLoRA 在硬件需求和性能方面有什么特点?

ModuLoRA 支持在只有一个 48GB 的 GPU 上以 3 位或 4 位精度对具有 65B 参数的语言模型进行微调。它在文本分类、自然语言推理和指令跟随任务上获得了有竞争力的性能,并且在使用比现有方法更少的内存的同时,超过了流行的摘要任务的最新 ROUGE 分数。

QLoRA 如何降低内存使用并保持全 16 位微调任务性能?

QLoRA 通过 4 位量化的预训练语言模型将梯度反向传递到低秩适配器中,以降低内存使用,同时保持全 16 位微调任务性能。它能够优化模型性能,并且在更小的内存占用下使用小的高质量数据集进行微调,甚至达到先前最先进性能等级的状态。

LQ-LoRA 在量化微调方面有哪些优势?

LQ-LoRA 使用迭代算法将每个预训练矩阵分解成高精度低秩部分和内存高效的量化部分,在微调过程中量化部分保持固定,只有低秩部分被更新。它优于 QLoRA 和 GPTQ-LoRA 基准,并能实现更激进的量化,例如在 OpenAssistant 基准测试中,LQ-LoRA 能够学习一个 2.5 位的 LLaMA-2 模型,与使用 4 位 QLoRA 微调的模型竞争。

L4Q 算法如何实现同时量化和微调?

L4Q 是一种参数高效的量化感知训练算法,利用 LLMs 中学到的低秩适应性量化步长,实现对高精度模型的同时量化和微调,达到亚 4 位精度并保持与应用 PEFT 在量化模型上相当的训练时间。

🏷️

标签

➡️

继续阅读