Loading [MathJax]/jax/output/CommonHTML/jax.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >华为提出QA-LoRA:让微调大型语言模型‘轻装上阵’

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

作者头像
zenRRan
发布于 2023-10-09 06:54:58
发布于 2023-10-09 06:54:58
1.4K0
举报

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

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

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

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中,而且无论是在微调阶段还是在推理阶段,它在计算上都展现出了高效性。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-10-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 深度学习自然语言处理 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
​FlattenQuant | 推动低比特量化技术突破,大幅提升大型语言模型的计算效率和部署性能!
大型语言模型(LLM)的卓越能力近年来产生了重大影响(OpenAI, 2023; Ge等人,2023; Zhao等人,2023)。各种LLM已经被发布并在现实世界的生产环境中得到应用(Eloundou等人,2023)。因此,对于LLM的部署有着广泛的需求。
集智书童公众号
2024/04/25
4970
​FlattenQuant | 推动低比特量化技术突破,大幅提升大型语言模型的计算效率和部署性能!
深度探索 DeepSeek 微调:LoRA 与全参数微调实战指南
DeepSeek 作为强大的大模型,提供了优质的基础能力,但在某些特定任务上,直接使用预训练模型可能无法满足需求。本篇文章将介绍 LoRA(Low-Rank Adaptation)、全参数微调 等微调策略,并提供详细的代码示例,帮助开发者高效定制 DeepSeek 以适应特定任务。
Swift社区
2025/02/07
6.2K0
深度探索 DeepSeek 微调:LoRA 与全参数微调实战指南
​中科院联合多所高校提出 AdvLoRA | 通过数据增强,攻击检测等对抗模型攻击,提高模型安全性和鲁棒性!
随着VLMs规模的增大,用全参数更新来提高VLMs的对抗鲁棒性的传统对抗训练方法将导致高昂的计算和存储成本。近年来,由于在调整大规模预训练模型方面的显著成功,参数高效微调(PEFT)技术作为新型的适应范式受到了广泛关注。PEFT技术可以使用极小的额外可调参数调整VLMs,并且在性能上与FFT方法相当或更优。尽管PEFT技术在自然场景中取得了显著的成功,但在对抗攻击场景中的应用仍然很大程度上未被探索。但简单地在传统适应方法上应用对抗训练将导致1)防御性能有限和2)计算和存储成本高昂。为了验证作者的观点,作者在图2中可视化了不同对抗适应方法的对抗鲁棒性性能和可调参数数量。从结果中,作者发现FFT和UniAdapter等现有适应方法会导致大的参数成本。此外,LoRA、LP和Aurora对对抗攻击并不鲁棒。
AIGC 先锋科技
2024/07/08
4080
​中科院联合多所高校提出 AdvLoRA | 通过数据增强,攻击检测等对抗模型攻击,提高模型安全性和鲁棒性!
LLM 大模型学习必知必会系列(六):量化技术解析、QLoRA技术、量化库介绍使用(AutoGPTQ、AutoAWQ)
模型的推理过程是一个复杂函数的计算过程,这个计算一般以矩阵乘法为主,也就是涉及到了并行计算。一般来说,单核CPU可以进行的计算种类更多,速度更快,但一般都是单条计算;而显卡能进行的都是基础的并行计算,做矩阵乘法再好不过。如果把所有的矩阵都加载到显卡上,就会导致显卡显存的占用大量增加,尤其是LLM模型大小从7b、14b、34b到几百b不等,占用显存的大小就是惊人的数字,如何在减少运算量和显存占用的条件下,做到推理效果不下降太多呢?在这里需要引入浮点数和定点数的概念。
汀丶人工智能
2024/05/26
2.2K0
LLM 大模型学习必知必会系列(六):量化技术解析、QLoRA技术、量化库介绍使用(AutoGPTQ、AutoAWQ)
深度探索 DeepSeek 微调:LoRA 与全参数微调实战指南
DeepSeek 作为强大的大模型,提供了优质的基础能力,但在某些特定任务上,直接使用预训练模型可能无法满足需求。本篇文章将介绍 LoRA(Low-Rank Adaptation)、全参数微调 等微调策略,并提供详细的代码示例,帮助开发者高效定制 DeepSeek 以适应特定任务。
网罗开发
2025/02/18
8940
深度探索 DeepSeek 微调:LoRA 与全参数微调实战指南
大模型实操 | LoRA、QLoRA微调大模型实战技巧分享,含常见QA解答!
今天给大家分享的这篇文章是关于LoRA微调大模型实操技巧,讨论了从实验中得出的主要经验和教训;此外,本文将解答一些与LoRA技术相关的常见问题。如果你对于微调定制化的大语言模型感兴趣,希望这些见解能够帮助你快速起步。
ShuYini
2023/12/28
10.1K0
大模型实操 | LoRA、QLoRA微调大模型实战技巧分享,含常见QA解答!
​新加坡 & 纽约大学 & 字节 提出 PLLaVA | 简单高效视频语言模型适应方法,超越GPT4V,突破资源限制 !
多模态大型语言模型(MLLMs)在训练大规模图像-文本对时已显示出在图像理解方面的卓越能力。与图像领域类似,最近的视频理解模型也探索了类似的流程,在大规模视频-文本数据上对LLMs进行微调。然而,这种方法需要高昂的计算资源和视频数据标注成本。一种更为实用的方法是调整预先训练好的图像领域MLLMs以适应视频数据。
AIGC 先锋科技
2024/07/08
5170
​新加坡 & 纽约大学 & 字节 提出 PLLaVA | 简单高效视频语言模型适应方法,超越GPT4V,突破资源限制 !
YOLO落地部署 | 让YOLO5和YOLO7等方法都可以用上4-bit/3-bit的超快部署方案
深度神经网络在各种应用中取得了显著的成功,包括图像分类、目标检测和语义分割。然而,将它们部署在边缘设备(如移动电话、智能相机和无人机)上却是一项重大的挑战,因为这些设备通常具有有限的计算和内存资源。这些设备通常具有有限的电池寿命、存储容量和处理能力,这使得执行复杂的神经网络具有挑战性。
集智书童公众号
2023/11/17
9270
YOLO落地部署 | 让YOLO5和YOLO7等方法都可以用上4-bit/3-bit的超快部署方案
碾压LoRA!Meta & CMU | 提出高效大模型微调方法:GaLore,内存可减少63.3%
大模型训练通常会遇到内存资源的限制。目前常用的内存减少方法低秩适应(LoRA),通过引入低秩(low-rank)适配器来更新模型的权重,而不是直接更新整个权重矩阵。然而,这种方法在预训练和微调阶段通常表现不佳,为此,本文作者提出了梯度低秩映射(Gradient Low-Rank Projection ,「GaLore」),这是一种允许「全参数」学习的训练策略,并且比 LoRA 等常见的低秩适应方法更节省内存,相比BF16内存减少了63.3% 。
ShuYini
2024/03/11
1.1K0
碾压LoRA!Meta & CMU | 提出高效大模型微调方法:GaLore,内存可减少63.3%
西湖大学、中科院、谷歌:对等协同学习在推荐系统中的应用
基于DNN的推荐系统通常需要大量参数,而这多多少少会带来一些冗余的神经元和权重,这种现象被称为过度参数化。本文提出一个topN商品推荐框架PCRec方法,利用这种冗余现象来提高 RS 的性能。
秋枫学习笔记
2022/09/19
4340
大模型实战:使用 LoRA(低阶适应)微调 LLM
[1] 详细内容请参阅 MarkAI Blog [2] 更多资料及工程项目请关注 MarkAI Github [3] 通关感知算法面试请Star 2024年千道算法面试题综述
码科智能
2023/12/19
6K2
大模型实战:使用 LoRA(低阶适应)微调 LLM
QLoRa:在消费级GPU上微调大型语言模型
大多数大型语言模型(LLM)都无法在消费者硬件上进行微调。例如,650亿个参数模型需要超过780 Gb的GPU内存。这相当于10个A100 80gb的gpu。就算我们使用云服务器,花费的开销也不是所有人都能够承担的。
deephub
2023/08/30
1.1K0
QLoRa:在消费级GPU上微调大型语言模型
港大&港中文提出PRoLoRA | 克服同类参数共享方法缺点,拥有更高模型容量/可行性/广泛适用性,微调更好的大模型
凭借令人印象深刻的能力,对大型语言模型(如LLaMA 2,GPT-3.5 Turbo和Gemini)进行特定领域和功能的微调(例如模型对齐和指令调优)变得越来越受欢迎。为了减轻完全微调的高成本,参数高效微调(PEFT),特别是LoRA,通过调整少数参数并冻结其余参数,已成为一种轻量级解决方案。然而,随着模型规模的迅速扩大,对进一步提高参数效率的需求变得越来越迫切,特别是在多LoRA场景中。
集智书童公众号
2024/03/11
4670
港大&港中文提出PRoLoRA | 克服同类参数共享方法缺点,拥有更高模型容量/可行性/广泛适用性,微调更好的大模型
解读LoRA
大模型调优(finetuning)不仅仅是参数的优化,同样会受到非功能性约束的挑战,例如:
半吊子全栈工匠
2023/12/20
1K0
解读LoRA
LORS:腾讯提出低秩残差结构,瘦身模型不掉点 | CVPR 2024
论文: LORS: Low-rank Residual Structure for Parameter-Efficient Network Stacking
VincentLee
2024/04/22
2250
LORS:腾讯提出低秩残差结构,瘦身模型不掉点 | CVPR 2024
调教LLaMA类模型没那么难,LoRA将模型微调缩减到几小时
最近几个月,ChatGPT 等一系列大语言模型(LLM)相继出现,随之而来的是算力紧缺日益严重。虽然人人都想打造专属于自己的大模型,但是能负担得起上亿参数模型训练的机构却寥寥无几。
zenRRan
2023/08/22
1K0
调教LLaMA类模型没那么难,LoRA将模型微调缩减到几小时
CamoTeacher:玩转半监督伪装物体检测,双一致性动态调整样本权重 | ECCV 2024
论文: CamoTeacher: Dual-Rotation Consistency Learning for Semi-Supervised Camouflaged Object Detection
VincentLee
2024/09/05
1370
CamoTeacher:玩转半监督伪装物体检测,双一致性动态调整样本权重 | ECCV 2024
Long-Context下LLM模型架构全面介绍
随着ChatGPT的快速发展,基于Transformer的大型语言模型(LLM)为人工通用智能(AGI)铺平了一条革命性的道路,并已应用于知识库、人机界面和动态代理等不同领域。然而,存在一个普遍的限制:当前许多LLM受资源限制,主要是在较短的文本上进行预训练,使它们对现实世界中常见的较长的上下文提示不太有效。本文对基于Transformer的LLM模型架构的进展进行了全面的介绍。
zenRRan
2023/11/29
2.1K0
Long-Context下LLM模型架构全面介绍
KDD'21「华为」数值型特征embedding方法
这类方法不做embedding,而是直接用原始的数值作为特征,或者在数值上面做一些改进,例如youtube对于数值型特征分别做平方和平方根得到
秋枫学习笔记
2022/09/19
1.7K0
SMCA:港中文提出注意力图校准的DETR加速方案 | ICCV 2021
论文: Fast Convergence of DETR with Spatially Modulated Co-Attention
VincentLee
2024/08/16
1090
SMCA:港中文提出注意力图校准的DETR加速方案 | ICCV 2021
推荐阅读
​FlattenQuant | 推动低比特量化技术突破,大幅提升大型语言模型的计算效率和部署性能!
4970
深度探索 DeepSeek 微调:LoRA 与全参数微调实战指南
6.2K0
​中科院联合多所高校提出 AdvLoRA | 通过数据增强,攻击检测等对抗模型攻击,提高模型安全性和鲁棒性!
4080
LLM 大模型学习必知必会系列(六):量化技术解析、QLoRA技术、量化库介绍使用(AutoGPTQ、AutoAWQ)
2.2K0
深度探索 DeepSeek 微调:LoRA 与全参数微调实战指南
8940
大模型实操 | LoRA、QLoRA微调大模型实战技巧分享,含常见QA解答!
10.1K0
​新加坡 & 纽约大学 & 字节 提出 PLLaVA | 简单高效视频语言模型适应方法,超越GPT4V,突破资源限制 !
5170
YOLO落地部署 | 让YOLO5和YOLO7等方法都可以用上4-bit/3-bit的超快部署方案
9270
碾压LoRA!Meta & CMU | 提出高效大模型微调方法:GaLore,内存可减少63.3%
1.1K0
西湖大学、中科院、谷歌:对等协同学习在推荐系统中的应用
4340
大模型实战:使用 LoRA(低阶适应)微调 LLM
6K2
QLoRa:在消费级GPU上微调大型语言模型
1.1K0
港大&港中文提出PRoLoRA | 克服同类参数共享方法缺点,拥有更高模型容量/可行性/广泛适用性,微调更好的大模型
4670
解读LoRA
1K0
LORS:腾讯提出低秩残差结构,瘦身模型不掉点 | CVPR 2024
2250
调教LLaMA类模型没那么难,LoRA将模型微调缩减到几小时
1K0
CamoTeacher:玩转半监督伪装物体检测,双一致性动态调整样本权重 | ECCV 2024
1370
Long-Context下LLM模型架构全面介绍
2.1K0
KDD'21「华为」数值型特征embedding方法
1.7K0
SMCA:港中文提出注意力图校准的DETR加速方案 | ICCV 2021
1090
相关推荐
​FlattenQuant | 推动低比特量化技术突破,大幅提升大型语言模型的计算效率和部署性能!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档