华盛顿大学提出QLoRA及开源预训练模型Guanaco:将650亿参数规模的大模型微调的显存需求从780G降低到48G!单张显卡可用!
前段时间,康奈尔大学开源了LLMTune框架(https://www.datalearner.com/blog/1051684078977779 ),这是一个可以在48G显存的显卡上微调650亿参数的LLaMA模型的框架,不过它们采用的方法是将650亿参数的LLaMA模型进行4bit量化之后进行微调的。今天华盛顿大学的NLP小组则提出了QLoRA方法,依然是支持在48G显存的显卡上微调650亿参数的LLaMA模型,而根据论文的描述,基于QLoRA方法微调的模型结果性能基本没有损失!
基于QLoRA方法微调的Guanaco 65B模型据称效果超越目前所有的开源模型,并且比ChatGPT更加强大(基于人类评测结果和GPT-4的评测结果),打败了Google Bard,并接近GPT-4。Guanaco包含4个版本,从70亿参数到650亿参数,都将开源!由于Guanaco是基于MetaAI的LLaMA微调,因此,尽管它是开源的,但是它不可以商用!
这篇论文和这项工作里面包含了非常多的与大模型相关的数据和结论,建议大家原文仔细阅读。里面包含了不同模型的显存占用、目前一些大模型评测基准的偏差等。本文将主要描述其QLoRA的核心思想和重要结论。
QLoRA方法提出的背景
随着大型语言模型(LLMs)在各种任务中展现出令人瞩目的表现,如何有效地微调这些模型以优化其性能已经成为了研究的重点。
尽管大模型的能力很强,但是对于特定领域的数据集来说,微调依然是不可避免的工作。主要原因有2个:
- 一个是很多企业或者个人都有自己特定的数据与知识,这是开源大模型或者通用大模型难以了解的知识,zero-shot的能力很难扩展到这种特定的专有领域中。
- 其次,很多特定领域知识的提问和回答有特定的逻辑,类似于instruction-tuning是十分必要的。
然而,微调非常大的模型具有高昂的成本,650亿参数规模的语言模型,如LLaMA,其16位浮点精度的模型文件大小约200多G,载入到显存中使用就需要260多G,而对其微调则需要高达780G的显存。显然,这样的成本难以接受。

此前,对大模型进行压缩和微调已经有了很多成果。其中最著名的是微软在2021年提出的LoRA(Low-Rank Adaptation,低秩适应)方法(见上图)。这种方法的提出,是为了解决全模型微调的一些问题,全模型微调会重新训练所有模型参数,但随着我们预训练的模型越来越大,全模型微调变得越来越不可行。LoRA的工作原理是冻结预训练的模型权重,并在transformer架构的每一层注入可训练的秩分解矩阵,大大减少了下游任务的可训练参数的数量。相比使用Adam微调的GPT-3 175B,LoRA可以将可训练参数的数量减少10,000倍,GPU内存需求减少3倍。

