又一个针对LoRA的改进方法:

DyLoRA: Parameter-Efficient Tuning of Pretrained Models using Dynamic Search-Free Low Rank Adaptation

https://arxiv.org/pdf/2210.07558v2.pdf

https://github.com/huawei-noah/KD-NLP/tree/main/DyLoRA

Part1前言

LoRA存在的问题

  • rank的值是固定的,训练完成后不能修改。
  • 优化rank的值需要大量的搜索和努力。

提出的方法:引入了一种动态低秩适应(Dy-LoRA)技术。通过对适配器模块在训练期间的不同秩所学到的表示进行排序,为一系列的秩而不是单一的秩训练LoRA块。

主要贡献

  • 动态LoRA:在LoRA的基础上,我们开发了一种新的算法(DyLoRA),使其在推理时是动态的,而不会产生额外的费用。
  • 无需搜索的LoRA:我们证明,通过在性能上做出可忽略不计的妥协,有可能避免为LoRA选择最佳秩的昂贵的搜索过程。

Part2介绍

在每一个LoRA模块中,有一个向上投影和向下投影的矩阵。设我们想训练LoRA模块在的范围内操作,其中和可以被视为新的超参数。为了使LoRA模块在一系列的秩中工作,而不是单一的秩,我们需要确保增加或减少秩不会明显阻碍模型的性能。实现这种行为的一种方法是在LoRA模块的训练过程中对不同秩的信息内容进行排序。在这方面,在每个训练步骤中,我们对,进行抽样。形成一个预先定义的分类分布其(支持度为Range[rmin, rmax]),并相应地截断和矩阵。

和 是W的b截断版本。

前向传播计算时是这么计算的:

损失的计算:

另外在训练的时候增加了一个新的模块:frozen,即只更新截断块中第b个相关的行或者列。

整个流程如下:

需要注意反向传播时是否是更新整个截断块还是第b个行或列。

Part3实验结果

首先是说明不同rank对结果的影响:

接着是该方法和其他方法的对比:

DyLoRA:使用动态无搜索低秩适应的预训练模型的参数有效微调的更多相关文章

  1. 【转载】Linux动态库搜索路径的技巧

    转自:http://soft.chinabyte.com/os/232/11488732_2.shtml 众所周知,Linux动 态库的默认搜索路径是/lib和/usr/lib.动态库被创建后,一般都 ...

  2. Linux动态库搜索路径的技巧

    众所周知,Linux动态库的默认搜索路径是/lib和/usr/lib.动态库被创建后,一般都复制到这两个目录中.当程序执行时需要某动态库,并且该动态库还未加载到内存中,则系统会自动到这两个默认搜索路径 ...

  3. HAWQ + MADlib 玩转数据挖掘之(四)——低秩矩阵分解实现推荐算法

    一.潜在因子(Latent Factor)推荐算法 本算法整理自知乎上的回答@nick lee.应用领域:"网易云音乐歌单个性化推荐"."豆瓣电台音乐推荐"等. ...

  4. 制作chm无搜索标签解决方法

    chm无搜索标签解决方法: 1.hpp文件中设置Full-text search=Yes 2.下面[windows]有个数字设置为0x420, 网上普通流传的是0x20 === chm制作一般要三个文 ...

  5. 仿百度壁纸客户端(五)——实现搜索动画GestureDetector手势识别,动态更新搜索关键字

    仿百度壁纸客户端(五)--实现搜索动画GestureDetector手势识别,动态更新搜索关键字 百度壁纸系列 仿百度壁纸客户端(一)--主框架搭建,自定义Tab + ViewPager + Frag ...

  6. 吴恩达机器学习笔记59-向量化:低秩矩阵分解与均值归一化(Vectorization: Low Rank Matrix Factorization & Mean Normalization)

    一.向量化:低秩矩阵分解 之前我们介绍了协同过滤算法,本节介绍该算法的向量化实现,以及说说有关该算法可以做的其他事情. 举例:1.当给出一件产品时,你能否找到与之相关的其它产品.2.一位用户最近看上一 ...

  7. 【RS】Local Low-Rank Matrix Approximation - LLORMA :局部低秩矩阵近似

    [论文标题]Local Low-Rank Matrix Approximation (icml_2013 ) [论文作者]Joonseok Lee,Seungyeon Kim,Guy Lebanon  ...

  8. 仿百度壁纸client(五)——实现搜索动画GestureDetector手势识别,动态更新搜索keyword

    仿百度壁纸client(五)--实现搜索动画GestureDetector手势识别,动态更新搜索关键字 百度壁纸系列 仿百度壁纸client(一)--主框架搭建,自己定义Tab + ViewPager ...

  9. 低秩稀疏矩阵恢复|ADM(IALM)算法

    一曲新词酒一杯,去年天气旧亭台.夕阳西下几时回? 无可奈何花落去,似曾相识燕归来.小园香径独徘徊. ---<浣溪沙·一曲新词酒一杯>--晏殊 更多精彩内容请关注微信公众号 "优化 ...

  10. VS2012 Unit Test(Void, Action, Func) —— 对无返回值、使用Action或Func作为参数、多重载的方法进行单元测试

    [提示] 1. 阅读文本前希望您具备如下知识:了解单元测试,了解Dynamic,熟悉泛型(协变与逆变)和Lambda,熟悉.NET Framework提供的 Action与Func委托.2.如果您对单 ...

随机推荐

  1. c# 一些方法记录

    // 返回当前目录的路径 fileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "当前目录下的一个文件"); ...

  2. pom.xml配置资源过滤

    <build> <!--设置资源过滤--> <resources> <resource> <directory>src/main/java& ...

  3. VUE项目中检测网页滑动注意事项

    一.this.$nextTick(function () {             window.addEventListener('scroll', this.onScroll, true)   ...

  4. golang sync.RWMutex总结笔记

    背景 最近项目中遇到两次RWMutex死锁问题,所以稍微看了一下资料和源码,稍作记录 源码 type RWMutex struct { w Mutex // held if there are pen ...

  5. Linux应用开发之【多线程开发-回调函数】

    原来我一直都不懂回调函数是什么 ... Callback Function 定义:通过函数指针调用的函数 在理解这个回调函数之前我们需要先了解回调机制 回调机制在编程中体现在:特定的情况发生后,返回并 ...

  6. DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC SHRINKDATABASE收缩指定数据库中的数据文件和日志文件的大小

    收缩指定数据库中的数据文件和日志文件的大小.  Transact-SQL 语法约定 语法 DBCC SHRINKDATABASE ( database_name | database_id | 0 [ ...

  7. Docker+jenkins 运行 python 自动化

    一.实现思路 在 Linux 服务器安装 docker 创建 jenkins 容器 根据自动化项目依赖包构建 python 镜像(构建自动化 python 环境) 运行新的 python 容器,执行 ...

  8. java 1.8 API帮助文档

    链接:https://pan.baidu.com/s/1MNZqIokMDWNZF-nXnoHzxA 提取码:zw13

  9. [Unity基础]碰撞和触发

    参考链接: https://www.cnblogs.com/hont/p/4472326.html 碰撞关系表: https://docs.unity3d.com/Manual/CollidersOv ...

  10. java8 stream按某个字段分组,允许分组字段是null

    Map<String, List<Dto>> deviceMap = deviceList.stream().collect(Collectors.groupingBy(Dto ...