lora的各种变体

news/2025/10/6 22:57:53/文章来源:https://www.cnblogs.com/AkSaber/p/19128033

lora的各种变体:

  1. lora+:对A(靠近输入端)和B(靠近输出端)设置不同的学习率以加速收敛,对B的学习率通常是A的4到16倍,这是因为近输出层的梯度更加稳定,近输入层的梯度相对不稳定,如果设置的学习率过大,容易梯度爆炸。

  2. vera:VeRA 是对 LoRA 的一种改进,基于低秩更新框架,但在更新矩阵的设计上引入了随机投影和向量驱动的适配机制。VeRA 使用随机初始化的矩阵结合少量可训练向量来生成更新矩阵,从而大幅减少可训练参数量。 对于预训练权重矩阵\(\mathbf{W}\in\mathbb{R}^{d \times k}\),,VeRA 定义更新公式为:\(W_0x + \Delta W x = W_0x + \Lambda_b \cdot B \cdot \Lambda_d \cdot A \cdot x\)(其中B和A无需为低秩矩阵,因为这两个矩阵是被随机初始化的,其参数无需被存储),可以看到向量\(b\)\(a\)在公式被表示为了相应的对角矩阵,但是实际上存储的确实是两个向量,只是用对角矩阵写更加容易表达实际在pytorch中的运算形式罢了。可以看下列代码理解:

# 这行代码:
result = Λ_b @ B @ Λ_d @ A# 实际上等价于:
temp1 = B * d.unsqueeze(0)    # B的每一列乘以d的对应元素
temp2 = b.unsqueeze(1) * temp1 # 结果的每一行乘以b的对应元素  
result = temp2 @ A

可以注意到此处B @ Λ_d被对应成了B * d.unsqueeze(0),所以说实现的时候是使用了tensor类型重载的*而非矩阵乘法@,实现了等效的矩阵的列的缩放。

  1. LoRA-FA:这是LoRA与Frozen-A的缩写,在LoRA-FA中,矩阵A在初始化后被冻结,因此作为随机投影。矩阵B不是添加新的向量,而是在用零初始化之后进行训练(就像在原始LoRA中一样)。这将参数数量减半,同时具有与普通LoRA相当的性能。

  2. lora-drop:先训练几次,然后对于每个层的lora的output进行评估,然后根据评估结果来选择需要再训练的lora,剩下的那些层的lora使用同一个AB矩阵进行训练。

  3. Qlora:即Quantization Lora,QLoRA的优化有三个核心要点:首先是定义了一种4位标准浮点数(Normal Float 4-bit,NF4)量化,基于分块的分位数量化的量化策略;其次是双重量化,包含对普通参数的一次量化和对量化常数的再一次量化,可以进一步减小缓存占用;最后是分页优化器(Page Optimizer),用来在显存过高时用一部分内存代替显存。
    由于4bit只能够表示16种不同的数值,所以通常的将数值进行寻常的缩放误差过大,故诞生了NF4(将标准正态分布左右两边同时舍去0.0322917后将0的左边分成7个等概率区域,0的右边分成8个等概率区域,然后将这些区域的总共16个端点归一化到[-1,1],由此得到NF4能表示的16个值:['-1.0000', '-0.6962', '-0.5251', '-0.3949', '-0.2844', '-0.1848', '-0.0911', '0.0000', '0.0796', '0.1609', '0.2461', '0.3379', '0.4407', '0.5626', '0.7230', '1.0000']),为了进一步减少额外需要存储的空间,作者提出了双量化(对于单量化,将一个权重张量进行量化后,不仅需要将保存量化后的张量,还需要额外一个32位的浮点数以表示其标准差(即 c^{fp32}_2),其占用32个比特的空间。因此,如果只做第一次量化,则需要额外存储的空间(除了存储量化张量以外)为32个比特,假如张量的大小(blocksize,即张量各个维度的乘积)为64,则其实就是对64个数字进行量化,那 额外需要的32比特平均到每个数字上,就是32/64=0.5比特。作者为了把这个额外空间进一步降低,将 c^{fp32}_2进行进一步的量化。假如我们用64$*\(256个数字需要量化,那就将其分为256个block,每64个数字划分到一个block中,对64个block中进行量化会产生256个**![c^{fp32}_2](https://latex.csdn.net/eq?c%5E%7Bfp32%7D_2)**。为了降低额外空间,需要对这256个**![c^{fp32}_2](https://latex.csdn.net/eq?c%5E%7Bfp32%7D_2)**进行第二次量化。具体做法是**将其量化到8比特的浮点数格式FP8,并且再用一个FP32表示这256个\)c^{fp32}_2$的标准差,即为c_{1}^{fp32}。所以,对64*256个数字进行量化所需要的额外空间为(8*256+32)/(64*256)=8/64+32/(64*256)=0.127比特,量化每个数字所需要的额外空间从0.5减少到0.127,所以减少了0.373**。 (注意不是每个权重值量化所需要的空间,而是所需要的额外空间)。)

  4. AdaLoRA:LORA的局限性在于其预先规定了每个增量矩阵的秩必须相同。这样就忽略了不同层、不同类型参数对下游任务的重要程度。AdaLORA改进了LORA可微调参数的分配方式,根据每个参数的重要程度自动得为其分配可微调参数的预算。具体的,AdaLORA采用奇异值分解(SVD)的形式参数化增量更新。这种参数化方式在规避大量SVD运算的同时,允许我们高效裁剪不重要更新中的奇异值,降低增量过程中的资源消耗。AdaLORA增量矩阵显式的替换为\(W = W^{(0)} + ∆ = W^{(0)} + PΛQ\)​并对损失函数增加正则项

    \( R(P, Q) = \left\| P^\top P - I \right\|_F^2 + \left\| Q Q^\top - I \right\|_F^2 \)来使得P和Q趋近于一个正交矩阵。对于某个奇异值的重要性评估的知识点可参照(11 条消息) LORA微调系列(三):AdaLORA和它的基本原理 - 知乎

  5. LongLora:其实这一变体的改动不在lora而是在注意力机制,LongLoRA 引入了 SHIFT(移位)操作。例如,对于长度为 8192 的序列,若组大小为 2048,在第一个组(token 1-2048)之后,下一个组并非从 token 2049 开始,而是从 token 1025(即 2048/2)开始,到 token 3072 结束

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/929790.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GO+RabbitMQ+Gin+Gorm+docker 部署 demo - 实践

GO+RabbitMQ+Gin+Gorm+docker 部署 demo - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &…

k8s pod启动失败困难排查

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Python测试

今日内容pycharm安装 git 版本控制 -- 协同开发 码云 -- 远程仓库 思维导图 个人博客 -- 技术人员昨日回顾typora 安装 使用标题 有序序号 无序序号 加粗 斜体 删除线 插入图片 插入表格 代码块、python的简介python2和…

免费文字转语音 AI 工具 All In One

免费文字转语音 AI 工具 All In One free TTS to Audio AI Tools TTSMaker 免费文字转语音免费文字转语音 AI 工具 All In Onefree TTS to Audio AI ToolsTTSMaker 免费文字转语音 每周限制 20000 个字符(部分声音可支…

Kubernetes Deployment:部署与管理应用指南

1. ReplicaSet(RS) 2. Deployment 3. Deployment资源配置 总结‍在上一章节中,介绍了pod,以及介绍了如何使用命令行来创建一个pod。那么问题来了,一般来说,我们部署微服务不可能只部署一个噻,肯定是部署多个,但…

wordpres做影视网站公关策划书模板范文

宏定义 不带参数 宏定义又称为宏代换、宏替换,简称“宏”。 格式: #define 标识符 字符串其中的标识符就是所谓的符号常量,也称为“宏名”。 预处理(预编译)工作也叫做宏展开:将宏名替换为字符串。 掌…

实用指南:Android高级开发第三篇 - JNI异常处理与线程安全编程

实用指南:Android高级开发第三篇 - JNI异常处理与线程安全编程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Co…

商城网站设计公司系统优化包括哪些

作者推荐 视频算法专题 本文涉及知识点 哈希映射 哈希集合 LeetCode 381. O(1) 时间插入、删除和获取随机元素 - 允许重复 RandomizedCollection 是一种包含数字集合(可能是重复的)的数据结构。它应该支持插入和删除特定元素,以及删除随机元素。 实现 Randomiz…

判断网站开发语言wordpress 访问速度

来源:德先生作者:朱圆恒,唐振韬,李伟凡,赵冬斌北京时间2019年1月25日2时,DeepMind在伦敦向世界展示了他们的最新成果——星际争霸2人工智能AlphaStar[1] 。图1. DeepMind AlphaStar挑战星际人类职业玩家直播…

分布式CAP理论 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

【闲话】2025.9.24 记梦

破碎,离奇。话说 \(9.25\) 吃了 \(hz\) 校庆期间 \(hs\) 食堂免费饭菜的人第二天都被抓去做黑工,我和 @wkh2008 因为当时润去不知道干什么了所以没有被抓走,第二天回到班里发现毫无人,然后被学校里巡游的中介带走。…

北京撒网站设计git网站开发

文章目录 目录1. 程序的翻译环境和执行环境2. 详解编译链接2.1 翻译环境2.2 编译本身也分为几个阶段2.3 运行环境 3. 预处理详解3.1 预定义符号3.2 #define3.2.1 #define 定义标识符3.2.2 #define 定义宏3.2.3 #define 替换规则3.2.4 #和##3.2.5 带副作用的宏参数3.2.6 宏和函数…

完整教程:Postgresql常规SQL语句操作

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

酷派Cool20/20S/30/40手机安装Play商店-谷歌三件套-GMS方式

酷派Cool20/20S/30/40手机安装Play商店-谷歌三件套-GMS方式pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consol…

拼多多电商网站建设学校网站建设方案设计

使用 services 指令,请先安装 brew tap gapple/services 安装完成后使用 brew services start mysql

关于网络编辑作业做网站栏目新闻的ppt免费网站软件大全

今年有哪些成功的发行版发布呢? 让我重点介绍最好的几个。 这些发行版在 2023 年引起了人们的关注! 每年我们都会推出一些令人兴奋的新发行版,它们尝试以不同的方式工作,或者提供一些有意义的东西,而不仅仅是“又一个发…

【sa-token】 sa-token非 web 上下文无法获取 HttpServletRequest - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Cloudflare洛杉矶数据中心维护通知:技术架构与影响解析

本文详细介绍了Cloudflare将于2025年10月8日在洛杉矶数据中心进行的计划性维护,包括维护时间窗口、流量重路由机制、潜在延迟影响,以及针对PNI/CNI客户的重要技术建议和通知订阅方式。维护概览 计划维护时间:2025年…

正规的手机网站建设小程序官方平台

等到花都谢了,你怎么还不开机?这电脑开机真是离奇的慢,有心将它换了,奈何兜里空空。凑合着用又无法忍受这种煎熬。其实你只需要用鼠标点几下就可以不用等待这漫长的开机过程了。高铁,飞机,网络,…

友点企业网站管理系统模板保定市清苑区网站建设

看看如果设定了Rollover中某个状态的效果,则 CA.在动画面板上制作的动画适用于所有的Rollover状态B.动画不能应用在Rollover状态上C.在动画面板上制作的动画仅适用于当前的Rollover状态D.同一动画不能赋予多个Rollover…