Redian新闻
>
华为提出QA-LoRA:让微调大型语言模型‘轻装上阵’

华为提出QA-LoRA:让微调大型语言模型‘轻装上阵’

科技

深度学习自然语言处理 原创
作者:Winnie

近些年,大型语言模型(LLMs)表现出了强大的语言理解能力。但是,想要将这些模型应用到不同的场景,并部署到边缘设备(例如手机)上,我们还面临一个重要的问题:这些模型通常参数众多,计算负担重,如何在不损失性能的情况下让它们变得“轻量”并适应不同需求呢?

今天为大家介绍一篇来自华为的最新研究——QA-LoRA技术,为微调LLMs带来了一个轻量又高效的新选择。

进NLP群—>加入NLP交流群

Paper: QA-LoRA: Quantization-Aware Low-Rank Adaptation of Large Language Models
Link: https://arxiv.org/abs/2309.14717

背景

LLMs在自然语言处理领域取得了令人瞩目的成果,成为了多种任务的先进技术。

但是,它们在实际应用中的部署受到了其在推理期间的高计算内存需求的限制。

目前,有两种主流的解决方法解决这些问题:

  1. 参数高效的微调(PEFT):这种方法在微调模型的时,只调整其中一小部分参数,而大部分预训练的参数则保持不变。其中,低秩适应(LoRA)是最受欢迎的方法,它的主要思想是将适应器权重分解为两个低秩矩阵的乘积。尽管这样可以得到不错的性能,但模型的内存占用依然很大。
  2. 参数量化:量化旨在减少LLMs的参数或激活的位宽,从而提高其效率和可伸缩性。简而言之,就是将模型的权重参数从浮点数转化为整数,从而使模型更小更快。但当我们压缩得过猛,比如使用非常低的位数来表示时,模型的准确率会大打折扣。此外,还有一个主要的挑战是如何处理参数分布中的异常值,因为它们在量化时可能导致重大错误。

因此,很多研究者开始考虑如何将上述两种方法结合起来,即既微调又量化。一个简单的尝试是先进行PEFT微调,然后再量化,但这样做得到的模型准确性很差。而其他的尝试,要么在微调时计算太复杂,要么在微调后无法保持模型的量化状态。

最近,来自华为的研究人员提出一种新方法:量化感知低秩适应(Quantization-aware Low-rank Adaptation, QA-LoRA)。这个方法的核心思想是,为每一组预训练的权重参数引入一个调节因子,既可以增加量化的自由度,也可以减少微调的自由度。这样做有两个好处:首先,在微调过程中,模型的权重可以被量化,使得微调更加高效;其次,微调完成后,得到的模型更小,而且无需进行后续的量化处理。

实验结果表明,它不仅在各种语言理解任务上表现得很好,而且相比于其他方法,它的效果更加稳定且高效。与先前的适应方法(如LoRA和QLoRA)相比,QA-LoRA在微调和推断阶段都具有计算效率。更重要的是,由于不需要进行后训练量化,所以它不会导致准确性损失。因此,QA-LoRA为我们提供了一个简单有效的解决方案,帮助我们同时实现模型的量化和微调。

LoRA回顾

在介绍QA-LoRA之前,让我们先来回顾下LoRA方法。

LoRA(Low-Rank Adaptation)算法的主要思想是在预训练权重的基础上,通过引入一对低秩矩阵A和B,来在微调阶段对模型参数进行高效的调整。

在 LoRA 中,我们使用预训练权重形成一个矩阵,并假定特征形成一个向量。我们假设的大小为,并且的长度为,因此计算可以简写为,其中是一个长度为 的输出向量。

LoRA 的关键思想是引入一对矩阵A和B,作为的补充。A和B的大小分别为,因此它们的乘积AB与具有相同的大小。中间维度通常设置为一个较小的值,即,使得AB成为一个与相比的低秩矩阵。

在微调过程中,我们计算,其中是权重调整的系数,并且在微调时是固定的,而A和B可以进行调整,从而达到参数高效微调的目标。在微调后,计算被重新表述为,其中替代,以便快速推断。

LoRA 算法的核心价值在于,通过A和B的调整而不是直接调整,它能够在减少模型复杂性和计算成本的同时,实现模型微调的效果。特别在处理大型预训练模型时,LoRA提供了一种参数高效的微调策略。

低位量化

在减少计算成本方面,另一种有效方法是低位量化。在本文中,我们只考虑权重的量化。特别地,我们应用了一个简单的方法,叫做最小最大min-max量化。从数学上讲,给定位宽和一个预训练的权重矩阵,我们计算所有元素的最小值和最大值,分别记为。然后,通过计算

量化为,其中

分别称为缩放因子和零点因子;表示整数四舍五入操作。所有中的元素都在集合中,因此存储为B位整数。

计算被近似为。量化带来了两方面的好处,即的存储量减少和的计算变得更快。代价是的近似,这可能损害语言理解的准确性。

为了减少之间的量化损失,一种有效的策略是对的每一列执行单独的量化。设,其中是迭代变量。

分别是在第列,上计算的缩放因子和零点因子。因此,方程更新为,并且计算被重写为

与整体量化相比,计算成本不变,而缩放和零点因子的存储成本从2个浮点数增加到个浮点数。与存储全精度的减少成本相比,这是可以忽略的。

QA-LoRA概览

QA-LoRA旨在实现两个目标。首先,在微调阶段,预训练的权重W被量化为低位表示,使得LLMs可以在尽可能少的GPU上进行微调。其次,在微调阶段之后,经过微调和合并的权重W′仍然是量化形式,因此LLMs可以具有计算效率地被部署。

最近提出的LoRA变种QLoRA已经实现了第一个目标。其思想是在微调阶段将W从FP16量化为NF4(一种高度压缩的浮点数类型)。受到QLoRA的启发,LoRA和量化一起优化是可行的,因为W和W˜ 之间的准确性损失被低秩权重补偿了。微调之后,必须再次加回到W˜ 中,使得最终的权重W′为 FP16。实际上,人们可以对W′执行后训练量化(PTQ),但这种策略在位宽较低时可能导致准确性的大幅损失。此外,NF4还没有运算符级优化,这使得加速微调和推断阶段变得困难。简而言之,QLoRA带来的唯一好处是减少了微调的内存成本。

实现第二个目标的关键在于(即量化的)和可以合并,而无需使用高精度数字。在原始设置中这是不可能的,即按列方式量化为,而都是不受限制的。

由于

这里,对任意的,所有使用相同的缩放和零点因子集来表示,即存在使得

在每个加上(简写为)后,如果我们想保持量化的属性,我们必须保证对于任意,所有可能的值形成一个公差为的等差集。在连续和基于梯度的优化中这是棘手的,除非我们要求是一个常数,即,对任意。这等效于将的所有行向量设置为相同的,即,其中表示两个向量之间的按元素等价。

上述策略虽然可行,但在实践中导致了显著的精度下降。特别是,当的所有行都是相同的向量时,我们有,因此,而的秩与在新数据中微调的能力有关。为了解决这个问题,一个直接的想法是放宽量化和适应的约束。

我们将的每一列划分为组,为了方便实施,我们设的一个因数。我们不是完全量化的每一列,而是使用一对量化的缩放和零点因子,即第组因子,它们是为-th列中的个元素计算的。相应地,我们只要求中同一组的行向量具有相同的值。在我们的实施中,这通过在输入向量的每一组内做求和来实现。这个无参数的操作将的维数从减小到,因此我们可以设矩阵,而不需要进一步的约束。

提出的方法被命名为量化感知低秩适应(QA-LoRA)。与基线LoRA和QLoRA相比,它是通过插入/修改几行代码实现的,如下图所示。

与LoRA相比,QA-LoRA在时间和内存消耗方面具有优势。与QLoRA相比,QA-LoRA需要额外的存储空间用于对缩放和零点因子,但将的参数数量从减小到 ——由于我们通常设,上述变化是可以忽略的。与QLoRA相比,QA-LoRA的主要优势在于推理阶段,它更快、更准确。

下表中比较了LoRA、QLoRA和QA-LoRA的计算成本。

实验中将QA-LoRA应用于微调LLaMA模型,用于多模态语言理解。表格1总结了与不同模型大小、微调数据集和位宽相关的结果。除了基础的LLaMA模型外,研究还将QA-LoRA与最相关的研究QLoRA以及一个最近的不使用LoRA的量化方法PEQA进行了比较。报告中包含了原始的QLoRA(推理阶段涉及到FP16计算)和经过GPTQ之后的变体的结果。

QA-LoRA在0-shot和5-shot准确度方面一贯优于两个竞争对手(带GPTQ的QLoRA和PEQA)。当模型大小较小(例如,7B和13B)或位宽较小(例如,使用INT3或甚至INT2)时,这个优势更为显著,展示了QA-LoRA在需要计算效率的场景中是一个强大的解决方案。在某些情况下,QA-LoRA的INT4版本的表现甚至超过了原始版本的QLoRA,同时推理速度要快得多。

总结

这篇研究提出了一个叫做QA-LoRA的方法,目标是更加高效地在大型语言模型(LLMs)中实现低秩适应,同时引入低位量化。

简单来说,QA-LoRA的核心思想是进行分组操作,这既用于量化也用于低秩适应,找到一个平衡点,能够在这两者之间自由切换或调整。QA-LoRA不仅实施起来相对简单,还能广泛应用到各种基础模型和NLP中,而且无论是在微调阶段还是在推理阶段,它在计算上都展现出了高效性。


进NLP群—>加入NLP交流群

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
【限时】10场大型语言模型前沿技术分享字节李航等发表最新《可信赖的大型语言模型》综述,提出七大维度超越 GPT-4!加州大学伯克利分校与微软研究院合作开源大型语言模型 Gorilla猎户星空推出微调大模型,多项测评霸榜,开源免费!SafetyBench:通过单选题评估大型语言模型安全性昨天的晚饭:儿子做的烤鱼NeurIPS 2023 | InstructBLIP:指令微调训练通用视觉-语言模型华为提出全面智能化战略,加速千行万业的智能化转型吴恩达力赞!哈佛、MIT学者用下棋证明:大型语言模型确实「理解」了世界为期五年,Ginkgo牵手谷歌开发新型大型语言模型,助力药物发现和生物安全领域NeurIPS 2023 | 北大&华为提出:多模态基础大模型的高效微调华为提出Sorted LLaMA:SoFT代替SFT,训练多合一大语言模型2023体验医学院白衣授予仪式北京理工大学发布双语轻量级语言模型,明德大模型—MindLLM,看小模型如何比肩大模型ICCV 2023 | 基于预训练视觉语言模型和大语言模型的零样本图像到文本生成大型语言模型训练加速专场在线研讨会上线,三位专家将主讲AI服务器、训练框架和云上高性能存储架构华为提出全面智能化战略 孟晚舟称将打造中国算力底座11月必看!“新世界三大男高音”Juan Diego Flórez首次亮相澳洲!真德绒·真保暖 德国吸湿发热黑科技让你轻松面对寒冬 寒风凛冽轻装上阵OpenAI内斗时,Karpathy在录视频:《大型语言模型入门》上线斯坦福NLP提出EFT:如何不实际微调而“假装”微调了LLM?Falcon-7B大型语言模型在心理健康对话数据集上使用QLoRA进行微调胡咧咧《山海经》和《徐霞客游记》DreamLLM:多功能多模态大型语言模型,你的DreamLLM~史上最全留学行李打包清单:轻装上阵,永久告别丢三落四!第一章第二节 护卫亲子的行为法则大模型+自动驾驶=?普渡大学等最新《自动驾驶领域多模态大型语言模型》综述NeurIPS 2023 | 超越YOLO系列!华为提出Gold-YOLO:实时目标检测新SOTA直播预告 | 清华大学深研院马仕镕:电商领域指令微调大模型《大型语言模型对齐》综述,76页pdfNeurIPS 2023 | 跨模态提示:微调大型预训练模型适应音视频下游任务语言模型战胜扩散模型!谷歌提出MAGVIT-v2:视频和图像生成上实现双SOTA!大型语言模型与知识图谱:机遇与挑战双林奇案录第三部之歌星之死: 第二十三节中俄大飞机分手后,C929能否轻装上阵?
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。