当前位置: 首页 > news >正文

大模型参数高效微调方法

LoRA

背景

神经网络包含很多全连接层(线性层),其借助于矩阵乘法得以实现,然而,很多全连接层的权重矩阵都是满秩的。作者通过前人的一些工作发现当针对特定任务进行微调后,模型中权重矩阵其实具有很低的本征秩(intrinsic rank),因此,论文的作者认为权重更新的那部分参数矩阵尽管随机投影到较小的子空间,仍然可以有效的学习,可以理解为针对特定的下游任务这些权重矩阵就不要求满秩。

技术原理

LoRA(论文:LoRA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS),该方法的核心思想就是通过低秩分解来模拟参数的改变量,从而以极小的参数量来实现大模型的间接训练。

在涉及到矩阵相乘的模块,在原始的PLM旁边增加一个新的通路,通过前后两个矩阵A,B相乘,第一个矩阵A负责降维,第二个矩阵B负责升维,中间层维度为r,从而来模拟所谓的本征秩(intrinsic rank)。

可训练层维度和预训练模型层维度一致为d,先将维度d通过全连接层降维至r,再从r通过全连接层映射回d维度,其中,r<<d,r是矩阵的秩,这样矩阵计算就从d x d变为d x r + r x d,参数量减少很多。

在下游任务训练时,固定模型的其他参数,只优化新增的两个矩阵的权重参数,将PLM跟新增的通路两部分的结果加起来作为最终的结果(两边通路的输入跟输出维度是一致的),即h=Wx+BAx。第一个矩阵的A的权重参数会通过高斯函数初始化,而第二个矩阵的B的权重参数则会初始化为零矩阵,这样能保证训练开始时新增的通路BA=0从而对模型结果没有影响。

在推理时,将左右两部分的结果加到一起即可,h=Wx+BAx=(W+BA)x,所以只要将训练完成的矩阵乘积BA跟原本的权重矩阵W加到一起作为新权重参数替换原本PLM的W即可,对于推理来说,不会增加额外的计算资源。

此外,Transformer的权重矩阵包括Attention模块里用于计算q

相关文章:

  • 网站几个模板最好seo就业指导
  • 做设计在哪个网站接单搜索引擎网站推广如何优化
  • 用dreamweaver做网站怎么切块品牌推广与传播方案
  • 环保主题静态网站模板百度图片搜索图片识别
  • 重庆网站首页排名公司阿里云服务器
  • 网站开发公司前置审批网络营销公司排名
  • Spring Boot 自定义日志打印(日志级别、logback-spring.xml 文件、自定义日志打印解读)
  • 复合分位回归的统计推断
  • B2B2C多用户商城系统:打造新零售电商生态的创新解决方案
  • 哈希表系列一>两数之和
  • Linux | 无头 Linux 服务器安装和设置
  • CentOS 7 强制升级Docker 24.x终极指南(解决MySQL8镜像兼容性问题)
  • 基础常问 (概念、代码)
  • 【C++】多态功能细节问题分析
  • 什么是宽带拨号?
  • java中任务调度java.util.Timer,ScheduledExecutor,Quartz的机制说明和demo代码实例分享
  • Vue 3 中按照某个字段将数组分成多个数组
  • duckdb、PG、Faiss和Milvus调研与对比
  • 液态神经网络技术指南
  • C语言实现简单的控制台贪吃蛇游戏精讲
  • PowerBI中常用的时间智能函数
  • 【Linux】命令和权限
  • RHCSA Linux 系统删除文件
  • 编译出来的kernel功能与.config一致还是 defconfig一致
  • ASM1042A型CANFD芯片通信可靠性研究
  • Mysql篇(三):SQL优化经验全方位解析