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

南京专业网站建设网站制作公司排名

南京专业网站建设,网站制作公司排名,企业网站设计建设,发软文LoRA 背景 神经网络包含很多全连接层#xff0c;其借助于矩阵乘法得以实现#xff0c;然而#xff0c;很多全连接层的权重矩阵都是满秩的。当针对特定任务进行微调后#xff0c;模型中权重矩阵其实具有很低的本征秩#xff08;intrinsic rank#xff09;#xff0c;因…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维度其中rdr是矩阵的秩这样矩阵计算就从d x d变为d x r  r x d参数量减少很多。 在下游任务训练时固定模型的其他参数只优化新增的两个矩阵的权重参数将W跟新增的通路W1两部分的结果加起来作为最终的结果两边通路的输入跟输出维度是一致的即hWxBAx。第一个矩阵的A的权重参数会通过高斯函数初始化而第二个矩阵的B的权重参数则会初始化为零矩阵这样能保证训练开始时新增的通路BA0从而对模型结果没有影响。 在推理时将左右两部分的结果加到一起即可hWxBAx(WBA)x所以只要将训练完成的矩阵乘积BA跟原本的权重矩阵W加到一起作为新权重参数替换原本PLM的W即可对于推理来说不会增加额外的计算资源。 为什么更新ΔW只需要更新较少的参数呢 现在让我们解决房间里的大问题如果我们引入新的权重矩阵这个参数的效率如何新矩阵WA和WB可以非常小。例如假设A100且B500 则ΔW的大小为100 × 500 50,000。现在如果我们将其分解为两个较小的矩阵一个100×5维矩阵WA和一个5×500维矩阵WB。这两个矩阵总共只有5×1005×5003000个参数。 作者也在摘要中明确表示他们采用lora方法微调相比于GPT-3全量参数微调可训练参数下降了10000倍GPU显存需求下降了3倍而lora微调后的效果在特定任务上甚至可以媲美全量微调的模型。 为什么一直强调特定任务呢因为lora基于的假设就是在特定任务上微调时更新的参数矩阵具有较低的内在维度。可以把lora想象成一个特定能力的装备而预训练模型是游戏角色本身。在预训练模型游戏角色的基础上特定lora装备可以增强对于某一特定任务的表现但是在其他不相关任务上该lora模块并不会起到作用。如果想同时在多个任务上有媲美全量参数微调模型的表现的话就得需要针对不同的任务训练不同的ΔW模块多个装备最后整合在一起。但是如果想模型游戏角色本身整体变强大还是全量参数微调更合适。 至于是否适合作为通用指令微调的解决方案有个问题我也没有搞懂就是通用的指令样本是否真的有统一的低秩空间表征这个表征又是什么含义因为指令微调阶段的样本其实是混合的多任务指令样本这种情况下lora是否合适感觉需要更全面的评估. ## 初始化低秩矩阵A和B self.lora_A.update(nn.ModuleDict({adapter_name: nn.Linear(self.in_features, r, biasFalse)})) self.lora_B.update(nn.ModuleDict({adapter_name: nn.Linear(r, self.out_features, biasFalse)})) self.scaling[adapter_name] lora_alpha / r## 向前计算 result F.linear(x, transpose(self.weight, self.fan_in_fan_out), biasself.bias) result (self.lora_B[self.active_adapter](self.lora_A[self.active_adapter](self.lora_dropout[self.active_adapter](x)))* self.scaling[self.active_adapter] )此外Transformer的权重矩阵包括Attention模块里用于计算query, key, value的WqWkWv以及多头attention的Wo,以及MLP层的权重矩阵LoRA只应用于Attention模块中的4种权重矩阵而且通过消融实验发现同时调整 Wq 和 Wv 会产生最佳结果。 input_dim 768 # e.g., the hidden size of the pre-trained model output_dim 768 # e.g., the output size of the layer rank 8 # The rank r for the low-rank adaptationW ... # from pretrained network with shape input_dim x output_dimW_A nn.Parameter(torch.empty(input_dim, rank)) # LoRA weight A W_B nn.Parameter(torch.empty(rank, output_dim)) # LoRA weight B# Initialization of LoRA weights nn.init.kaiming_uniform_(W_A, amath.sqrt(5)) nn.init.zeros_(W_B)def regular_forward_matmul(x, W):h x W return hdef lora_forward_matmul(x, W, W_A, W_B):h x W # regular matrix multiplicationh x (W_A W_B)*alpha # use scaled LoRA weights return h 在上面的伪代码中alpha是一个缩放因子用于调整组合结果原始模型输出加上低秩自适应的大小。这平衡了预训练模型的知识和新的特定于任务的适应——默认情况下alpha通常设置为 1。另请注意虽然W A被初始化为小的随机权重但W B被初始化为 0因此 训练开始时ΔW W AW B  0 这意味着我们以原始权重开始训练。 实验还发现保证权重矩阵的种类的数量比起增加隐藏层维度r更为重要增加r并不一定能覆盖更加有意义的子空间。 Rank r 的设置 一个很直接的问题就是在实践中rank 应该设为多少比较合适呢 作者做了几组实验进行比较结果发现 rank 可以很低不超过8就很 OK 了甚至是1也挺好.. 关于秩的选择通常情况下rank为4816即可。 通过实验也发现在众多数据集上LoRA在只训练极少量参数的前提下最终在性能上能和全量微调匹配甚至在某些任务上优于全量微调。 减少推理开销 请注意在实践中如果我们在训练后保持原始权重W和矩阵W A和W B分开如上所示我们将在推理过程中产生小的效率损失因为这引入了额外的计算步骤。相反我们可以在训练后通过W W WA WB更新权重这类似于前面提到的W W ΔW。 然而将权重矩阵W A和W B分开可能具有实际优势。例如假设我们希望将我们的预训练模型作为各种客户的基础模型并且我们希望从基础模型开始为每个客户创建一个经过微调的 LLM。在这种情况下我们不需要为每个客户存储完整的权重矩阵W其中存储模型的所有权重W W WA WB对于 LLM 来说可能非常大因为 LLM 通常有数十亿到数万亿个权重参数。因此我们可以保留原始模型W只需要存储新的轻量级矩阵WA和WB。 为了用具体数字说明这一点一个完整的 7B LLaMA 检查点需要 23GB 的存储容量而如果我们选择r8的等级LoRA 权重可以小到 8MB 。 利用 LoRA可以如下优点 在面对不同的下游任务时仅需训练参数量很少的低秩矩阵而预训练权重可以在这些任务之间共享省去了预训练权重的梯度和相关的 optimizer states大大增加了训练效率并降低了硬件要求训练好的低秩矩阵可以合并(merge)到预训练权重中多分支结构变为单分支从而达到没有推理延时的效果与之前的一些参数高效的微调方法(如 Adapter, Prefix-Tuning 等)互不影响并且可以相互结合 QLoRA和AdaLoRA 当红炸子鸡 LoRA是当代微调 LLMs 的正确姿势 - 知乎 (zhihu.com)
http://www.hkea.cn/news/14457136/

相关文章:

  • 虚拟主机网站南阳微网站
  • 做网站有什么好处吗公司网站开发 建设
  • 网站建设新手如何自己做网站云南网站建设维修公司哪家好
  • 营销类wordpress主题优化合作平台
  • 网站注册和进入aspwordpress域名如何申请
  • 网站基础风格创建网站设计制作上海
  • 玉溪市建设厅官方网站app设计方案模板
  • 网站用什么做关键词桂林象鼻山水月洞
  • 中国空间站有几个舱段建设一个网站平台
  • 怎么建设自己个人网站wordpress网站修改域名
  • 广州网站建设免费荆州企业网站建设
  • 在家做兼职官方网站平台网站与app的本质区别
  • 用个人电脑做网站的步骤sem投放
  • 广东网站建设开发公司用php做的博客网站有哪些
  • 网站提升收录品牌建设的本质英语作文
  • 设计网站免费素材提交百度一下
  • 网站建设 9a网站建设营销话术
  • 市城乡规划建设局网站免费入驻的网站设计平台
  • 网站建设与管理自考试题及答案优斗士做网站怎么样
  • 如何在网站开发客户自己做网站大概多少钱
  • 微信小程序视频网站开发教程巩义云启网站建设
  • 做宠物服务的相关网站cvm服务器做网站
  • 手机怎么做网站教程cosy主题wordpress
  • 北京顺义做网站网站开发课设心得体会
  • 广州设计网站公司做网站要企业认证
  • 陕西省交通建设公司网站怎么诊断网站
  • 对于学校网站建设的建议免费的app开发工具
  • 天津网站建设开发有哪些wordpress 搜索 任意
  • 一个网站建设需要多少人力深圳建筑公司公章
  • 网站主体负责人和网站负责人国外电商怎么做