QLoRA 提出内存高效的微调方法!降低 LLaMA 模型微调内存占用,仅需数小时追赶 ChatGPT
引言:大模型微调的新时代
随着人工智能技术的飞速发展,大型语言模型(Large Language Models,LLMs)已成为自然语言处理领域的重要工具。这些模型通常包含数十亿甚至数千亿个参数,能够在各种语言任务上展现出色的性能。然而,微调这些大型模型以适应特定任务往往需要巨大的计算资源和内存,这限制了其在资源受限的环境下的应用。
在这样的背景下,一种名为QLORA的新方法应运而生,它通过高效的微调技术,显著降低了微调大型语言模型所需的内存使用量,使得在单个GPU上微调65B参数模型成为可能。QLORA的出现预示着大模型微调的新时代,它不仅为研究人员提供了更多的可能性,也为语言模型的广泛应用打开了新的大门。
声明:本期论文解读非人类撰写,全文由赛博马良「AI论文解读达人」智能体自主完成,经人工审核后发布。
智能体传送门:赛博马良-AI论文解读达人文章来源:https://www.toymoban.com/news/detail-819281.html
神奇口令: 小瑶读者 (前100位有效)文章来源地址https://www.toymoban.com/news/detail-819281.html
论文标题、机构、论文链接和项目地址(如有)
- 论文标题:QLORA: Efficient Finetuning of Quantized LLMs
- 机构:University of Washington
- 论文链接:https://arxiv.org/pdf/2305.14314.pdf
- 项目地址:https://github.com/artidoro/qlora 和 https://github.com/TimDettmers/bitsandbytes
QLORA方法概述:高效微调大型语言模型
1. QLORA方法的核心技术
QLORA方法的核心在于其能够在不牺牲16位微调任务性能的前提下,通过4位量化预训练语言模型,显著降低微调65B参数模型所需的内存使用量。QLORA的关键创新包括:
- 4-bit NormalFloat (NF4):一种新的数据类型,对于正态分布的权重来说,它是信息理论上的最优量化数据类型。
- 双重量化 (Double Quantization):通过量化量化常数来进一步减少内存占用。
- 分页优化器 (Paged Optimizers):使用NVIDIA统一内存来管理长序列处理时出现的内存峰值。
2. Guanaco模型家族及其性能
QLORA训练出的Guanaco模型家族在Vicuna基准测试中表现出色,其最佳模型达到了与ChatGPT相当的99.3%性能水平,同时只需在单个GPU上微调24小时。Guanaco模型家族的性能优势不仅体现在其高效的微调能力,还包括其在部署时的内存效率。例如,Guanaco家族中最小的7B参数模型仅需5GB内存即可运行,并且在Vicuna基准测试中比26GB的Alpaca模型高出20个百分点。
QLORA的创新点
在深入探讨QLORA的创新点之前,我们先简要回顾一下QLORA的背景。QLORA是一种高效的微调方法,它通过减少内存使用,使得在单个48GB GPU上微调一个65B参数模型成为可能,同时保持与全16位微调任务相当的性能。QLORA通过一个冻结的、4位量化的预训练语言模型反向传播梯度到低秩适配器(LoRA)。QLORA引入了多项创新,以在不牺牲性能的情况下减少内存使用。
1. 4-bit NormalFloat (NF4) 数据类型
QLORA的第一个创新点是4-bit NormalFloat (NF4) 数据类型。这是一种新的数据类型,理论上对于正态分布的权重是最优的量化数据类型,实验结果表明,它比4位整数和4位浮点数都能提供更好的结果。NF4数据类型基于分位数量化,这是一种信息理论上的最优数据类型,确保每个量化区间内有相等数量的值。通过将权重标准化到一个固定的范围内,NF4能够精确地估计输入张量的分位数,从而实现高效的量化。
2. 双重量化 (Double Quantization)
双重量化是QLORA的第二个创新点。这种方法通过量化量化常数来进一步减少内存占用。具体来说,它将第一次量化的量化常数作为第二次量化的输入,使用8位浮点数进行第二次量化。这种方法平均每个参数节省了约0.37位(大约为65B模型节省了3GB内存)。
3. 分页优化器 (Paged Optimizers)
最后,QLORA引入了分页优化器,这是一种使用NVIDIA统一内存的方法,可以在处理长序列的小批量数据时避免内存峰值。当GPU偶尔内存不足时,分页优化器可以在CPU和GPU之间自动进行页面到页面的传输,从而确保GPU处理不会出错。
实验设置:数据集和模型架构
在实验设置中,QLORA考虑了三种架构(编码器、编解码器和仅解码器),并将QLORA与16位适配器微调和全微调进行了比较,模型大小达到3B。评估包括GLUE(使用RoBERTa-large)、Super-NaturalInstructions(使用T5)和在LLaMA上微调后的5-shot MMLU。此外,为了研究NF4与其他4位数据类型的优势,使用了不同模型(OPT、LLaMA、BLOOM、Pythia)进行了语言建模和一系列零样本任务的评估。
QLORA与标准微调的性能比较
在不同数据集上的表现
QLORA在多个数据集上的表现与16位全微调相当。在GLUE和Super-NaturalInstructions数据集上,16位、8位和4位适配器方法复制了全微调16位基线的性能。这表明由于不精确量化而损失的性能可以通过适配器微调完全恢复。
在不同模型规模上的表现
在更大规模的模型(7B至65B参数)上,QLORA通过在Alpaca和FLAN v2数据集上微调LLaMA,并在MMLU基准上进行5-shot准确性评估,证明了NF4与双重量化能够完全恢复16位LoRA的MMLU性能。此外,使用FP4的QLORA在16位brain float LoRA基线上落后约1个百分点,这进一步证实了QLORA使用NF4能够复制16位全微调和16位LoRA微调的性能,且NF4在量化精度方面优于FP4。
推动聊天机器人技术的新高度
1. 实验设置和数据选择
在推动聊天机器人技术的新高度方面,QLORA提供了一种高效的微调方法,能够在单个48GB GPU上微调高达65B参数的模型,同时保持完整的16位微调任务性能。QLORA通过冻结的4位量化预训练语言模型反向传播梯度到低秩适配器(LoRA)。Guanaco模型家族是利用QLORA训练的,其中最好的模型在Vicuna基准测试上超越了所有之前公开发布的模型,达到了ChatGPT性能水平的99.3%,仅需在单个GPU上微调24小时。
QLORA引入了多项创新以节省内存而不牺牲性能:(a)4位NormalFloat(NF4),一种对于正态分布权重理论上最优的新数据类型;(b)双重量化,通过量化量化常数来减少平均内存占用;(c)分页优化器,使用NVIDIA统一内存管理长序列长度的小批量处理时出现的内存峰值。
2. Guanaco模型与现有系统的比较
Guanaco模型家族的最小模型(7B参数)仅需要5GB内存,就能在Vicuna基准测试上比26GB的Alpaca模型高出20个百分点。Guanaco模型在内存效率和性能上均表现出色,其中65B模型在Vicuna基准测试上达到了与ChatGPT几乎相同的性能水平,而33B模型则在内存使用上更为高效,只需21GB内存即可训练。
人工评估与自动评估的比较
1. GPT-4和人类评估的一致性
在聊天机器人性能的评估方面,研究表明GPT-4评估与人类评估在模型性能排名上大致一致,但也存在一些强烈分歧的情况。这表明基于模型的评估虽然是人类注释的一个廉价替代品,但也有其不确定性。
2. Elo评分系统的应用
在模型比较中,研究使用了Elo评分系统,这是一种在国际象棋等游戏中广泛使用的评分方法,用于衡量相对于对手的预期胜率。通过GPT-4或人类评注员的判断,模型间的比赛结果被汇总成Elo分数,从而确定聊天机器人性能的排名。研究发现,GPT-4和人类评估在Vicuna基准测试上的模型排名部分不一致,但对于大多数模型来说是一致的。
质性分析:Guanaco模型的成功与失败案例
1. 事实回忆与建议性
Guanaco模型在回答一些事实性问题时表现出色,例如询问赞比亚的首都时,所有模型都能一致地生成正确的答案。然而,当问题变得更加晦涩时,Guanaco的可靠性下降,但它仍然保持着自信。
2. 数学问题处理能力
Guanaco在数学问题处理方面表现出最大的弱点,这是许多语言模型共同面临的挑战。当Guanaco展示其解题过程时,它往往能够准确地给出答案。但是,如果它未能逐步分解问题,即使是简单的数学问题也可能导致错误。
3. 理解他人心理的能力
Guanaco在理解他人心理的能力方面表现出意外的强大。例如,模型能够详细正确地回答关于James和Abby的心理理解问题。然而,这些推理并不可靠,模型有时会给出在情境中不合理的理由。
讨论:评估方法的局限性与未来方向
在评估QLORA这种新型微调方法时,我们必须认识到当前评估方法的局限性。首先,尽管QLORA在多个基准测试中展现出与16位全模型微调相当的性能,但我们还没有确立QLORA在33B和65B规模上能否匹配全16位微调性能。这是因为在如此大规模上进行全面评估需要巨大的资源投入,这部分工作留待未来研究。
其次,当前的评估基准可能并不完全适用于评估聊天机器人的性能。例如,我们发现在MMLU和Vicuna基准测试中,数据集的适用性比大小更重要。这表明我们需要更好的基准和评估方法,同时也需要谨慎考虑我们到底在评估什么。我们是否希望创建在课堂知识测试中表现良好的模型,还是希望在聊天机器人对话能力上表现出色,或者追求其他目标?
此外,尽管GPT-4的评估提供了一种相对便宜的替代人类注释的方法,但我们发现GPT-4的评估结果受到呈现顺序的影响。这表明自动化评估系统可能存在偏见,未来的工作应该考虑这些潜在偏见以及可能的缓解策略。
1. 评估方法的局限性
- 未能在33B和65B规模上验证QLORA与全16位微调性能的匹配性。
- 当前评估基准可能不适用于聊天机器人性能的全面评估。
- 数据集的适用性比大小更重要,需要更好的基准和评估方法。
- 自动化评估系统可能存在偏见,需要进一步研究和缓解。
2. 未来方向
- 进行更大规模的模型评估,以验证QLORA在更大模型上的性能。
- 开发更好的评估基准和方法,以更准确地评估聊天机器人的性能。
- 考虑评估方法中的偏见问题,并研究缓解策略。
- 探索不同的微调方法和参数效率微调(PEFT)方法的权衡。
相关工作:参数高效微调和指令微调
在参数高效微调(PEFT)的领域,除了QLORA使用的低秩适配器(LoRA)之外,还有许多其他方法,如提示调整、嵌入层输入调整、隐藏状态调整(IA3)、添加完整层、调整偏差、基于费舍尔信息的权重掩码学习等。在我们的工作中,我们展示了LoRA适配器能够达到全16位微调性能。未来的工作可以探索其他PEFT方法的权衡。
在指令微调方面,为了帮助预训练的大型语言模型(LLMs)遵循提示中的指令,指令微调使用各种数据源的输入-输出对来微调预训练的LLM,以生成给定输入提示的输出。这些方法和数据集包括MetaICL、MetaTuning、InstructGPT、FLAN、PromptSource、Super-NaturalInstructions、Self-instruct、UnnaturalInstructions、OPT-IML、UnifiedSKG、OIG/Chip2、Alpaca、Vicuna、Koala和Self-instruct-GPT-4等。
结论与讨论:QLORA的影响与未来展望
QLORA作为一种新型微调方法,展现了在单个GPU上微调高达65B参数模型的能力,同时保持与16位全模型微调相当的性能。这一突破性的进展显著提高了LLM微调的可访问性,使得最大的公开可用模型可以在单个GPU上进行微调。通过QLORA,我们训练了Guanaco模型家族,其中最佳模型在Vicuna基准测试中的表现接近ChatGPT,同时只需要单个GPU上的24小时微调时间。
QLORA的效率使我们能够在内存开销过高而无法使用常规微调的模型规模上进行深入研究。因此,我们训练了超过1000个模型,跨越多个指令调整数据集、模型架构和大小。我们的结果表明,QLORA在小型高质量数据集上的微调能够带来最先进的结果,即使使用的模型比以前的最佳模型小。
我们还提供了基于人类评估和GPT-4评估的聊天机器人性能的详细分析。我们发现GPT-4和人类评估在模型性能排名上大致一致,但也发现了强烈不一致的情况。因此,我们强调模型基础评估虽然提供了一种相对便宜的替代人类注释的方法,但也有其不确定性。
我们通过定性分析补充了我们的聊天机器人基准测试结果,突出了定量基准未能捕捉到的成功和失败案例。我们发布了所有模型生成以及人类和GPT-4注释,以促进进一步研究。我们开源了代码库和CUDA内核,并将我们的方法集成到了Hugging Face transformers堆栈中,使其易于所有人访问。我们发布了针对7/13/33/65B大小模型的一系列适配器,总共有32个不同的开源微调模型。
总之,QLORA的出现可能会对LLM微调的未来产生广泛的积极影响,使得高质量LLM的微调变得更加广泛和容易获得。
声明:本期论文解读非人类撰写,全文由赛博马良「AI论文解读达人」智能体自主完成,经人工审核后发布。
智能体传送门:赛博马良-AI论文解读达人
神奇口令: 小瑶读者 (前100位有效)
到了这里,关于十分钟读完「降低 LLaMA 模型微调内存占用的QLoRA」论文的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!