LLM:LoRA: Low-Rank Adaptation of Large Language Models

news/2025/1/11 22:42:20/

随着模型规模的不断扩大,微调模型的所有参数(所谓full fine-tuning)的可行性变得越来越低。以GPT-3的175B参数为例,每增加一个新领域就需要完整微调一个新模型,代价和成本很高。

为解决微调大规模语言模型到不同领域和任务的挑战,已有多种方案,比如部分微调、使用adapters和prompting。但这些方法存在如下问题:

  • Adapters引入额外的推理延迟 (由于增加了模型层数)
  • Prefix-Tuning难于训练,且预留给prompt的序列挤占了下游任务的输入序列空间,影响模型性能

Adapter Layers

在transformer block后面添加参数很少的层或者norm层。这样做,虽然tuning时要更新的参数少了,但由于加了网络深度,对于latency不友好。 

Prompt tuning/Prefix tuning

这个方法,一是很难优化,二是会降低下游能处理的序列长度。 Prefix-Tuning难于训练,模型性能也并非总是稳步提升。预留一些sequence做adaption会让处理下游任务的可用sequence长度变少,一定程度上会影响模型性能。

 在这里插入图片描述

[参数有效性学习-Adapter和Prefix-Tuning   以及   UniPELT框架https://wjn1996.blog.csdn.net/article/details/120607050#t16]

LoRA的思路

paper:Armen Aghajanyan的Intrinsic Dimensionality Explains the Effectiveness of Language Model Fine-Tuning. 
这篇文章尝试去回答一个问题:为什么用几千几百条样本就能去finetune一个百万量级的模型。
答案是:We empirically show that common pre-trained models have a very low intrinsic dimension; in other words, there exists a low dimension reparameterization that is as effective for fine-tuning as the full parameter space。即只有一些关键维度对finetune起效果。

这篇文章的作者还做了个实验:by optimizing only 200 trainable parameters randomly projected back into the full space, we can tune a RoBERTa model to achieve 90% of the full parameter performance levels on MRPC.将原始权重映射到一个很小的子集再映射回去,依然能训得很好。作者猜想:只需要更新低秩矩阵,在节省大量资源和时间的情况下,仍能获得不错的tuning效果。

考虑OpenAI对GPT模型的认知,GPT的本质是对训练数据的有效压缩,从而发现数据内部的逻辑与联系,LoRA的思想与之有相通之处,原模型虽大,但起核心作用的参数是低秩的,通过增加旁路,达到四两拨千斤的效果。

LoRA的思想也很简单,在原始PLM旁边增加一个旁路,做一个降维再升维的操作,来模拟所谓的 intrinsic rank 。训练的时候固定PLM的参数,只训练降维矩阵A与升维矩阵B。而模型的输入输出维度不变,输出时将BA与PLM的参数叠加。

用随机高斯分布初始化A,用0矩阵初始化B,保证训练的开始此旁路矩阵依然是0矩阵。

 

哪些参数应用LoRA

1 LoRA 已经被作者打包到了loralib中:pip install loralib
可以选择用loralib中实现的对应层来替换一些层。目前loralib只支持 nn.Linear、nn.Embedding 和 nn.Conv2d。

2 LoRA与Transformer的结合也很简单:可应用在attention层的 W_q, W_k, W_v, W_o 中的一个或多个。仅在QKV attention的计算中增加一个旁路,而不动MLP模块:We limit our study to only adapting the attention weights for downstream tasks and freeze the MLP modules (so they are not trained in downstream tasks) both for simplicity and parameter-efficiency.

 

对一个参数用比较大的rank更新,不如对多个参数用很小的rank更新,证明low_rank更新的合理性。

WHAT IS THE OPTIMAL RANK r FOR LORA?

 关于∆W

1, ∆W has a stronger correlation with W compared to a random matrix, indicating that ∆W amplifies some features that are already in W.
2,instead of repeating the top singular directions of W, ∆W only amplifies directions that are not
emphasized in W. 
3, the amplification factor is rather huge: 21.5 ≈ 6.91/0.32 for r = 4.

参数减少量

On GPT-3 175B, we reduce the VRAM consumption during training from 1.2TB to 350GB.
With r = 4 and only the query and value projection matrices being adapted, the checkpoint size is reduced by roughly 10,000× (from 350GB to 35MB). (We still need the 350GB model during deployment; however, storing 100 adapted models only requires 350GB + 35MB * 100 ≈ 354GB as opposed to 100 * 350GB ≈ 35TB.)

两种部署方法

方法1:将pretrained checkpoint统一部署,将为了特定任务训练的 BA 单独部署。这样做,当下游任务很多时,存储空间不会增加很多。
方法2:将W_0+BA的值直接算出来部署,此时和pretrained模型具有一样的参数量和latency。在生产环境部署时,LoRA可以不引入推理延迟,只需要将预训练模型参数 W0 与LoRA参数进行合并(也就是所谓的模型合并)即可得到微调后的模型参数: W=W0+BA ,在生产环境中像以前一样进行推理,即微调前计算 h=W0x ,现在计算 h=Wx ,没有额外延迟。现在不少模型仅发布LoRA权重,需要本地与基模型进行模型合并才能使用的原理就在于此。

from:https://blog.csdn.net/pipisorry/article/details/130978244

ref: [LoRA: Low-Rank Adaptation of Large Language Models]

[LoRA: Low-Rank Adaptation of Large Language Models 简读 - 知乎]**

代码: GitHub - microsoft/LoRA: Code for loralib

[微软LoRA: Low-Rank Adaptation of Large Language Models 代码解读 - 知乎]


http://www.ppmy.cn/news/128703.html

相关文章

Gouraud Shading(高洛德着色法)和其优缺点详解

​ Gouraud是一种插值方法,Gouraud着色法是计算机图形学中的一种插值方法,可以为多边形网格表面生成连续的明暗变化。实际使用时,通常先计算三角形每个顶点的光照,再通过双线性插值计算三角形区域中其它像素的颜色。 在图形处理器…

头部按摩器芯片方案

1.长按2秒开机、关机。 2.短按一次为快模式(95%占空比)LED闪烁2次后常亮,再短按一次为慢模式(慢85%占空比),LED闪烁3次后常亮, 再按一次为快慢循环,LED闪烁一次后常亮,一…

让智能设备拯救你的颈椎——智能颈椎按摩仪

在如今快节奏的生活中,很多人因为坐姿不正确,长时间对着电脑,低头玩手机等不良生活习惯,导致颈部出现酸痛、疲劳、发麻等问题,严重影响到身体健康。我们在日常生活中除了加强锻炼外,也可以通过颈椎按摩仪来…

颈椎护理小助手,轻松缓解颈部酸痛,宾多康智能颈枕按摩器体验

现在大家工作学习的时候,一般都有久坐的习惯,而且坐姿也不太标准,由此导致我们的颈椎负担很重,因此现在大家基本都会有些颈椎病之类的问题,对此除了要尽快改善生活习惯之外,目前市面上也有很多颈椎、腰椎的…

山东多功能按摩器合泰mcu方案规格_烟台BRIMA电动葫芦近期报价【山东卫旭】 - 济南机械及行业设备...

烟台BRIMA电动葫芦近期报价【山东卫旭】安全性能好,可控性高,故障率低。电动葫芦的核心部件主要有大。环链电动葫芦在使用中是需要定时进行休息的,待环链电动葫芦完全冷却后方可继续进行工作。装卸工作维修设备吊运货物非常方便,它…

【毕业设计】 基于单片机的放松按摩仪设计与实现 - 物联网 嵌入式 stm32

文章目录 0 前言1 简介2 主要器件3 实现效果4 硬件设计**AB32VG1主控MCU**NTC温度采集:adc7 PE5其他器件引脚 5 软件说明5 最后 0 前言 🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往…

按摩原理探究

电针模拟中医按摩手法产生方法的研究--《生物医学工程学进展》2008年02期 按摩历史 中国古代推拿按摩史研究--《黑龙江中医药大学》2009年博士论文 按摩的副作用 我们经常按摩的原因就是它可以缓解我们身体出现的各种酸痛、疲劳等问题。尤其现在很多人都会患有颈椎的疼痛。 …

使用眼部按摩仪器后很舒服,那它真有治疗近视的功能吗?

近视是现代危害青少年视力的主要因素,直接影响青少年身心健康和未来职业选择。作为家长,看到孩子的近视度数不断增长,更是看到眼里急在心里。很多家长为了治疗孩子的近视,四处求医问药,殊不知却落入了一些商家的“套路…