QLoRA: Efficient Finetuning of Quantized LLMs

TL;DR

QLoRA通过4-bit量化和LoRA,能在单GPU上微调65B模型,性能接近ChatGPT。

cs.LG 🔴 高级 2023-05-24 52 次浏览
Tim Dettmers Artidoro Pagnoni Ari Holtzman Luke Zettlemoyer
大规模模型 量化技术 微调 效率提升 自然语言处理

核心发现

方法论

QLoRA结合了4-bit NormalFloat(NF4)量化、双重量化和分页优化器技术,实现在单GPU上微调超大模型。其核心在于冻结预训练模型参数,通过低秩适配器(LoRA)反向传播梯度,利用NF4高效存储和双重量化减少内存占用。分页优化器则解决了长序列训练中的内存突增问题。实验中,微调65B模型仅需48GB显存,性能与16-bit全微调相当,且训练时间显著缩短。

关键结果

  • 在Vicuna基准测试中,Guanaco系列模型达到了ChatGPT性能的99.3%,仅用24小时在单GPU完成微调。
  • 通过NF4和双重量化,模型存储需求降低至原来的约0.37比特/参数,显著提升了大模型的可访问性。
  • 在超过1000个模型上验证,QLoRA在多任务、多架构(LLaMA、T5)和大规模(33B、65B参数)模型中均实现了与全精度微调相媲美的性能,尤其在指令跟随和聊天任务中表现优异。

研究意义

该技术突破极大降低了超大模型微调的硬件门槛,使得单GPU微调成为可能,推动了大规模模型的普及和应用。特别是在资源有限的环境中,QLoRA提供了高效、低成本的解决方案,有望引领未来自然语言处理模型的民主化。

技术贡献

创新点在于提出NF4数据类型,结合双重量化技术,优化存储效率;引入分页优化器,解决长序列训练中的内存突增问题。方法实现了在保持性能的同时,大幅降低显存需求,为超大模型微调提供了全新的工程方案。

新颖性

首次实现了4-bit量化模型在微调中的性能不降,结合低秩适配器(LoRA)和创新的NF4量化方案,突破了以往仅能在推理阶段应用的量化限制,开启了训练阶段的量化新路径。

局限性

  • 尽管性能接近全精度微调,但在某些特定任务或极端场景下仍存在微小差距,需进一步优化量化算法和适配器设计。
  • 方法对硬件依赖较强,需支持高效的CUDA核和分页机制,可能限制在某些硬件平台的普及。
  • 长序列训练中的内存管理仍存在一定挑战,尤其在极端大模型和复杂任务中,优化空间尚存。

未来方向

未来将探索更高效的量化方案,提升模型在多任务和多模态场景下的适应性。还计划结合稀疏化和剪枝技术,进一步降低存储和计算成本,推动超大模型的普及和应用落地。

AI 总览摘要

随着大规模预训练模型的不断扩大,微调这些模型的硬件成本也呈指数级增长。传统的16-bit微调在参数规模达到数十亿时,需耗费数百GB显存,限制了其在普通硬件上的应用。为解决这一难题,本文提出了QLoRA,一种结合4-bit量化、低秩适配器(LoRA)和分页优化的微调技术。

QLoRA的核心创新在于引入NF4(NormalFloat4)数据类型,利用其在正态分布参数上的信息最优特性,大幅度降低模型存储需求。同时,双重量化技术对量化常数进行二次压缩,使存储空间进一步缩减。分页优化器则通过NVIDIA的统一内存技术,有效管理长序列训练中的内存突增问题。这些技术结合,使得微调65B参数模型在单GPU(48GB)上完成,性能几乎与全精度微调无异。

实验结果显示,Guanaco系列模型在Vicuna基准测试中达到了ChatGPT的99.3%,训练时间仅为24小时,显著优于之前公开模型。大量实验证明,NF4和双重量化不仅保证了模型的性能,还极大地降低了存储和计算成本,为大模型的普及提供了新途径。此外,本文还分析了指令跟随和聊天性能,提出了基于GPT-4和人类评估的模型排名方法,揭示了当前评测体系的局限性。未来,QLoRA有望推动超大模型的广泛应用,降低行业门槛,促进AI技术的民主化。

深度分析

研究背景

近年来,预训练语言模型(如GPT、LLaMA、T5)在自然语言处理领域取得了突破性进展,但其微调成本极高。传统微调依赖全参数更新,需大量显存和计算资源,限制了模型的普及。量化技术在推理阶段已被广泛应用以降低存储和推理成本,但在训练中仍面临性能下降的问题。近年来,LoRA等参数高效微调方法出现,减少了参数更新量,但在超大模型上仍受硬件限制。本文结合量化和参数高效微调,试图突破硬件瓶颈,实现单GPU微调超大模型的目标。

核心问题

核心问题在于如何在极低存储精度(4-bit)下实现高性能微调,尤其是对超大模型(如65B参数)而言。传统量化方法在训练中会引入性能损失,难以保证模型的表达能力。同时,长序列训练的内存管理也是一大难题。如何在保证模型性能的同时,显著降低硬件需求,成为亟待解决的难题。

核心创新

本文提出NF4(NormalFloat4)量化方案,基于正态分布参数的最优信息编码,优于传统的INT4和FP4。双重量化技术对量化常数进行二次压缩,减少存储空间。分页优化器利用GPU的统一内存技术,有效管理长序列训练中的内存突增。结合LoRA的低秩适配器,实现在极低存储条件下微调超大模型,性能几乎不受影响。这些创新共同推动了大模型微调的技术边界。

方法详解

  • �� 预训练模型参数通过NF4进行量化,利用正态分布的统计特性实现信息最优存储。
  • �� 采用双重量化,将量化常数再压缩,降低存储成本。
  • �� 在训练中冻结预训练模型参数,仅更新低秩适配器(LoRA),减少梯度存储需求。
  • �� 使用分页优化器,通过GPU的统一内存技术,动态管理长序列训练中的内存突增。
  • �� 反向传播时,将量化参数反量化到16-bit进行矩阵乘法,保证梯度计算的精度。
  • �� 实验中,微调65B模型仅需48GB显存,训练时间缩短至24小时,性能与全精度微调相当。

实验设计

采用Vicuna、MMLU、GLUE等多个公开数据集,比较不同模型大小(7B、13B、33B、65B)在指令跟随、问答和推理任务中的表现。对比全参数微调、LoRA和QLoRA的性能差异,验证NF4和双重量化的有效性。通过GPT-4和人类评审的模型排名,分析模型的实际应用能力。实验还包括长序列训练的内存管理测试,确保优化器的稳定性。

结果分析

QLoRA在65B模型上实现了与16-bit全微调几乎一致的性能,Vicuna测试中达99.3%的ChatGPT水平。存储需求从780GB降低到48GB,训练时间缩短至24小时。NF4数据类型优于FP4,双重量化无性能损失。超过1000个模型验证了其在多任务、多架构中的普适性。模型在指令跟随和聊天任务中表现优异,验证了方法的实用性和有效性。

应用场景

该技术可广泛应用于企业和研究机构,快速定制大规模模型,降低硬件门槛,推动AI民主化。在实际场景中,可用于快速部署定制化聊天机器人、问答系统和多任务模型,尤其适合资源有限的环境。未来还可结合稀疏化、剪枝等技术,进一步提升模型效率。

局限与展望

目前方法对硬件支持要求较高,依赖CUDA核和GPU分页机制,可能限制在某些平台的应用。长序列训练中的内存管理仍有优化空间,极端模型规模和复杂任务可能出现性能瓶颈。此外,量化在某些任务中仍存在微小性能差距,未来需持续优化算法和硬件适配。

通俗解读 非专业人士也能看懂

想象你在厨房做饭,平时用的厨具都很大很重,搬来搬去很麻烦。现在你用一种特别的折叠刀,只用很少的空间就能切菜,还能做出和大刀一样的效果。这就像QLoRA用4个比特的“折叠刀”把大模型变得轻巧又强大。它把模型的“数据”压缩得很小,但仍能保持原来的“味道”和“效果”。这样,你就可以用普通的厨房(电脑)轻松完成大厨(大模型)的工作,不再需要昂贵的厨房设备(超级GPU)。这让更多人都能享受到做大菜的乐趣,也让大模型变得更普及、更实用。

简单解释 像给14岁少年讲一样

想象你有一台超级大的游戏机,但它太重、太大,搬不动。平时玩游戏需要很多空间和电力,太麻烦了。现在,有个聪明的办法,把游戏机的“内部零件”用特别的方法压缩成很小的“迷你版”,还能让游戏运行得和大机器一样快。这就像QLoRA用特殊的“压缩技术”把大模型变得很小,但还保持原来的“强大”。这样,你只用一台普通的电脑,就能让它像专业的游戏机一样厉害,甚至还能自己调节和改进。是不是很酷?这让更多人都能用上强大的AI,不再受限于昂贵的设备,就像用迷你版的游戏机也能打出高分一样!

原文摘要

We present QLoRA, an efficient finetuning approach that reduces memory usage enough to finetune a 65B parameter model on a single 48GB GPU while preserving full 16-bit finetuning task performance. QLoRA backpropagates gradients through a frozen, 4-bit quantized pretrained language model into Low Rank Adapters~(LoRA). Our best model family, which we name Guanaco, outperforms all previous openly released models on the Vicuna benchmark, reaching 99.3% of the performance level of ChatGPT while only requiring 24 hours of finetuning on a single GPU. QLoRA introduces a number of innovations to save memory without sacrificing performance: (a) 4-bit NormalFloat (NF4), a new data type that is information theoretically optimal for normally distributed weights (b) double quantization to reduce the average memory footprint by quantizing the quantization constants, and (c) paged optimziers to manage memory spikes. We use QLoRA to finetune more than 1,000 models, providing a detailed analysis of instruction following and chatbot performance across 8 instruction datasets, multiple model types (LLaMA, T5), and model scales that would be infeasible to run with regular finetuning (e.g. 33B and 65B parameter models). Our results show that QLoRA finetuning on a small high-quality dataset leads to state-of-the-art results, even when using smaller models than the previous SoTA. We provide a detailed analysis of chatbot performance based on both human and GPT-4 evaluations showing that GPT-4 evaluations are a cheap and reasonable alternative to human evaluation. Furthermore, we find that current chatbot benchmarks are not trustworthy to accurately evaluate the performance levels of chatbots. A lemon-picked analysis demonstrates where Guanaco fails compared to ChatGPT. We release all of our models and code, including CUDA kernels for 4-bit training.

cs.LG