首页 > 其他分享 >【了解LLM】——LoRA

【了解LLM】——LoRA

时间:2023-06-09 21:56:06浏览次数:49  
标签:Phi tuning 模型 了解 参数 LLM Delta LoRA

本文地址:https://www.cnblogs.com/wanger-sjtu/p/17470327.html

什么是LoRA

LoRA,英文全称Low-Rank Adaptation of Large Language Models,直译为大语言模型的低阶适应,是一种PEFT(参数高效性微调方法),这是微软的研究人员为了解决大语言模型微调而开发的一项技术。当然除了LoRA,参数高效性微调方法中实现最简单的方法还是Prompt tuning,固定模型前馈层参数,仅仅更新部分embedding参数即可实现低成本微调大模型,建议可从Prompt tuning开始学起。

LoRA的基本原理是冻结预训练好的模型权重参数,在冻结原模型参数的情况下,通过往模型中加入额外的网络层,并只训练这些新增的网络层参数。由于这些新增参数数量较少,这样不仅 finetune 的成本显著下降,还能获得和全模型微调类似的效果

why works

问题描述

给定一个预训练模型\(P_{\Phi}(y|x)\) , fine tuning 的过程可以表示为

\[\max_{\Phi}\sum_{x,y\in Z} \sum_{t=1}^{|y|} {log(P_{\Phi}(y_t|x,y<t))} \]

对于fine tuning前后参数变化,其实就是

\[\Phi = \Phi_0+\Delta \Phi \]

这种方案有一个缺点,对不同的下游任务,\(\Delta \Phi\) 需要训练,而且\(\Delta \Phi\) 的参数维度跟\(\Phi\)一样大,如果是GPT-3的话参数量要175B了。
如果\(\Delta \Phi\) 够小,只调整\(\Delta \Phi\) 这部分参数是不是就可以减少资源使用了。所以问题可以表示为

\[\max_{\Phi}\sum_{x,y\in Z} \sum_{t=1}^{|y|} {log(P_{\Phi_0+\Delta \Phi(\Theta)}(y_t|x,y<t))} \]

LoRA

对于NN模型来说,权重都是满秩的。但是对于特定任务来说,

预训练的语言模型具有较低的“固有维度”,尽管随机投影到较小的子空间,但仍然可以有效地学习
the pre-trained language models have a low “instrisic dimension” and can still learn efficiently despite a random projection to a smaller subspace

基于此,假设与训练的LLM也具有这个性质,finetuning 的过程中也有一个低秩的性质。

对于权重 \(W_0 \in \mathbb{R}^{d\times k}\) ,权重更新可以表示为 \(W_0+\Delta W\) ,考虑低秩分解,即为\(W_0+\Delta W = W_0+BA\) , 其中\(B \in \mathbb{R}^{d\times r}\), \(A\in \mathbb{R}^{r\times k}\) , \(r << \min(d,k)\)
则:

\[h=W_0x+\Delta Wx=W_0x+BAx \]

实现

huggingface

梯度视角下的lora

标签:Phi,tuning,模型,了解,参数,LLM,Delta,LoRA
From: https://www.cnblogs.com/wanger-sjtu/p/17470327.html

相关文章

  • 三分钟快速了解什么是MES系统
    大家好,我是Edison。近日我打算系统学习和整理一下MES/MOM系统相关的领域知识,从而构建我的业务域知识背景。万丈高楼平地起,我们先从快速了解什么是MES系统开始吧!作为IT技术从业者,特别是近年来在制造业的推动下,大家是否会经常听到MES系统这一词,但是对于其具体能解决什么问题却不是......
  • 帮您了解CDN节点如何做到访问加速与安全防护
    本文分享自天翼云开发者社区《帮您了解CDN节点如何做到访问加速与安全防护》,作者:尹****荷 网站业务痛点在当前网站快速发展的背景下,网站业务突增往往伴随着一系列网络安全隐患。主要会有以下痛点:1.高并发压力大:网站在业务突增中,会带来高并发的问题,可能会导致服务器资源耗尽......
  • 卷积神经网络-全面图解-带你了解前向后向传播的所有细节(文末代码)
    卷积神经网络-全面图解-带你了解前向后向传播的所有细节综述本文将会从基础的前馈神经网络入手,通过bp神经网络,引出卷积神经网络,并把专门的重点放在如何理解和实现卷积神经网络的卷积层、下采样层、全连接层、以及最终的softmax的反向传播的理解。最后实现基于python的车标识别6分类......
  • Java基础——深入了解泛型机制
    ......
  • stm32+sx1268 LORA通信
    前言:由于亿佰特的lora代码不好移植,基于stm8且是IAR编译器,对于代码的处理很大困难。所以我通过搜索资料发现了泽耀科技的同配置的lora模块写了关于stm32的代码。在实验中,我将买回来的lora模块的引脚按照手册上的需要引出并打板焊接(SPI通信的lora模块),通过stm32连接lora,lora的天线......
  • 初步了解的python的正则表达式
    Python正则表达式|菜鸟教程(runoob.com)Python正则表达式 regex正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。Python自1.5版本起增加了re模块,它提供Perl风格的正则表达式模式。re模块使Python语言拥有全部的正则表达式功能......
  • 深入了解 HTTP 请求和响应、表单处理和验证、URL 路由和重定向、Web 服务和 API 开发,
    在Web开发中,了解HTTP请求和响应、表单处理和验证、URL路由和重定向、Web服务和API开发,以及PHP模板引擎和视图是非常重要的。本文将深入探讨这些概念,并提供相关的代码示例。1.HTTP请求和响应HTTP(超文本传输协议)是用于在客户端和服务器之间传输数据的协议。在Web开发中......
  • 深入了解 Cookie、Session 和 PHP 在 Web 开发中的用户身份验证和会话管理
    在Web开发中,用户身份验证和会话管理是至关重要的方面。本文将探讨Cookie和Session的概念及其在用户身份验证和会话管理中的作用。我们还将介绍一些关于会话安全性和保护的最佳实践,并讨论PHP在Web开发中的角色。1.什么是Cookie和Session?1.1CookieCookie是服务器发送......
  • RocketMQ 学习社区重磅上线!AI 互动,一秒了解 RocketMQ 功能源码
    作者:RocketMQ学习社区RocketMQ背景ApacheRocketMQ诞生至今,一直服务于100%阿里集团内部业务、阿里云以及开源社区数以万计的企业客户。历经十多年双十一严苛流量验证的RocketMQ,承载了超过万亿级消息规模的洪峰压力。2021年ApacheRocketMQ更是进入全新5.0时代。立足于企......
  • RocketMQ 学习社区重磅上线!AI 互动,一秒了解 RocketMQ 功能源码
    作者:RocketMQ学习社区RocketMQ背景ApacheRocketMQ诞生至今,一直服务于100%阿里集团内部业务、阿里云以及开源社区数以万计的企业客户。历经十多年双十一严苛流量验证的RocketMQ,承载了超过万亿级消息规模的洪峰压力。2021年ApacheRocketMQ更是进入全新5.0时代。立足......