Viz: 一个基于 QLoRA 的合法合规生成式人工智能版权市场
内容提要
该文综述多项大语言模型高效微调与量化研究:QA-LoRA通过分组量化降低内存并保持精度;LoftQ改进量化与LoRA初始化;QLoRA以4位量化实现近全精度微调;LQ-LoRA分解矩阵实现更激进量化;ModuLoRA支持单卡微调65B模型。
延伸解读
量化微调的技术脉络
文章梳理了从QA-LoRA、LoftQ、QLoRA到LQ-LoRA、ModuLoRA的演进路径,核心在于通过分组量化、低秩初始化、矩阵分解等方式,在降低内存占用的同时保持微调精度。这些方法逐步放宽了量化对精度的限制,例如LQ-LoRA实现了2.5位量化,ModuLoRA支持单卡48GB微调65B模型,体现了量化与低秩适配结合的趋势。
实际部署的内存与精度权衡
对于希望在实际硬件上微调大模型的读者,文章提供了具体参考:QLoRA以4位量化保持16位微调性能;LQ-LoRA的2.75位LLaMA-2-70B仅需27GB GPU内存,且性能与全精度竞争;ModuLoRA可在单张48GB GPU上以3或4位精度微调65B模型。这些数据表明,量化位数越低,内存节省越明显,但需关注任务类型和数据集对精度的影响。
工具与生态支持
ModuLoRA不仅提出了算法,还发布了LLMTOOLS库,用于在消费级GPU上量化、运行和微调LLMs,并提供了首个3位指令跟随型Alpaca LLMs系列。这意味着研究者和开发者可以借助现有工具快速实验低精度微调,降低了技术门槛。但文章未提及这些工具的具体易用性和兼容性,实际使用前需进一步验证。
Q&A
QA-LoRA 是如何在量化大语言模型时保持准确性的?
QA-LoRA 通过使用分组运算符,增加量化的自由度并减少自适应的自由度,将 LLM 权重量化以减少时间和内存使用,同时将 LLM 和辅助权重自然地集成到一个量化模型中,从而不损失准确性。
LoftQ 和 QLoRA 在量化微调上有什么不同?
LoftQ 是一个量化框架,旨在同时量化 LLM 并为 LoRA 微调找到适当的低秩初始化,以改善量化和全精度模型之间的差异,提高下游任务的泛化性能。QLoRA 则通过 4 位量化的预训练语言模型将梯度反向传递到低秩适配器中,以降低内存使用,同时保持全 16 位微调任务性能。
LQ-LoRA 如何实现比 QLoRA 更激进的量化?
LQ-LoRA 使用迭代算法将每个预训练矩阵分解成高精度低秩部分和内存高效的量化部分,微调时只更新低秩部分,量化部分固定。它提出了量化部分的整数线性规划形式,可以在总体存储器预算下动态配置量化参数(如位宽、块大小)给每个矩阵,并探索了数据感知版本,使用 Fisher 信息矩阵的近似来加权重构目标。
ModuLoRA 在硬件要求上有什么突破?
ModuLoRA 支持在只有一个 48GB 的 GPU 上以 3 位或 4 位精度对具有 65B 参数的语言模型进行微调。它通过将任何用户指定的权重量化器与低秩适配器结合,使用简单的量化无关后向传递来适应动态生成来自自定义黑盒量化模块的低精度语言模型权重。
这些量化微调方法在哪些任务上验证了有效性?
QA-LoRA 在 LLaMA 和 LLaMA2 模型系列上,于不同的微调数据集和下游场景中验证了有效性。ModuLoRA 在文本分类、自然语言推理和指令跟随任务上获得了有竞争力的性能,并在摘要任务上超过了流行的 ROUGE 分数。LQ-LoRA 在 OpenAssistant 基准测试和语言建模校准数据集上进行了实验。
QLoRA 微调时内存占用和性能表现如何?
QLoRA 通过 4 位量化的预训练语言模型将梯度反向传递到低秩适配器中,以降低内存使用,同时保持全 16 位微调任务性能。它能够在更小的内存占用下使用小的高质量数据集进行微调,甚至达到先前最先进性能等级的状态。