【StableDiffusion】Lora 底层原理,低秩适配,Lora 如何与 checkpoint 联合发挥作用

鸣谢UP主:是花子呀
本篇博客参考视频:https://www.bilibili.com/video/BV17i421X7q7/?spm_id_from=333.880.my_history.page.click&vd_source=38d6ea3466db371e6c07c24eed03219b

Lora 是个啥?Lora 的 缩写

Lora:Low Rank Adaption
低秩适配

什么是“秩”?

你要了解 Lora,也就是“低秩适配”,你首先得明白“秩”是个什么东西罢?

“秩”是矩阵里面的一个知识点,打个比方来解释:

情况一:

下面这个例子,我们去求 苹果 和 桃子 各是多少钱 → 3x + 4y = 18、2x + 3y = 13 → x=2、y=3

我们能得出 x 和 y 的值,这是因为 这两个等式 线性独立

在这里插入图片描述

情况二:

但是,如果是下面这种情况,我们就无法求出 x、y:

3x + 4y = 18、6x + 8y = 36 → x=?、y=?

因为它们其实可以化简为同一个式子

在这里插入图片描述

总结:

所以,矩阵的 秩 的数量,即是它的 线性独立的行 的多少!

也就是说,一个矩阵的 秩 越大,它的 有效信息含量 就越大

在这里插入图片描述

原理

原理就是,将一个 大矩阵 变成一个 小矩阵,训练起来就轻松了

在这里插入图片描述

怎么把一个大矩阵变成小矩阵呢?

在这里插入图片描述

大小矩阵相互转化的例子(通俗易懂)

小明要开车,去 A、B、C 这 3 个城市,

矩阵(s):[ 200,400,1000 ]

在这里插入图片描述

他有 3 辆车,分别是 X、Y、Z,速度分别为:100、120、200 km/h

因为 t = s * 1/v

又因为 1/v = 1/100、1/120、1/200

矩阵(1/v):[ 1/100,1/120,1/200 ]

在这里插入图片描述

所以,

将 矩阵(s)和 矩阵(1/v)相乘:

在这里插入图片描述

在这里插入图片描述

所以你可以看到,我们将 2个 小矩阵 相乘,得到了 一个 大矩阵:

在这里插入图片描述

反推,1个 大矩阵 也可以 分解成 2个 小矩阵

在这里插入图片描述

那么,操作来了!

在大模型中,我们如果将 1个 1000 * 1000 =1000000 参数的 大矩阵 分解为 2个 1 * 1000 = 1000 ,总计 2000 参数的小矩阵的相乘。

那么,本来我们在调整大矩阵时,我们本来要调整 1000x1000 个参数,而现在,我们只需要调整 2000 个就能达到效果!

少调整了 998000 个参数!

在这里插入图片描述

Lora 是如何与 checkpoint 结合的?

1.步骤一

在训练的初始阶段,Lora 就额外开辟了一条旁路进行 升维 → 修改高维数据 → 降维 的操作。

在这里插入图片描述

2.步骤二

这张图其实和上面那张图是等效的,只不过,这张图隐藏了 升维 和 降维 的过程

升维是通过将 1个大矩阵 转为 2个小矩阵 相乘

然后修改参数

然后将 2个 被修改了参数的小矩阵 重新相乘 回到 1个 大矩阵

之后,我们将 Pretrained Weight 和 Update Weight(Lora)的矩阵相加!

注意!是相加!所以这根本就不会耗费什么资源,我们只是用加法来更新参数而已

在这里插入图片描述

3.步骤三

Pretrained Weight + Update Weight(Lora)== Adapted Weight

原始权重 + Lora计算权重 → 新的输出权重

在这里插入图片描述

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

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

相关文章

day35| 860.柠檬水找零 406.根据身高重建队列 452. 用最少数量的箭引爆气球

文章目录 前言860.柠檬水找零思路方法一 406.根据身高重建队列思路方法一 452. 用最少数量的箭引爆气球思路方法一 总结 前言 860.柠檬水找零 思路 很简单,贪心只有一个,如果20优先用105找零,因为5更加万能一些 方法一 class Solution(ob…

R语言统计分析——图形文本、自定义坐标轴和图例

参考资料&#xff1a;R语言实战【第2版】 我们可以在图形上添加标题&#xff08;main&#xff09;、副标题&#xff08;sub&#xff09;、坐标轴标签&#xff08;xlab、ylab&#xff09;并指定标轴范围&#xff08;xlim、ylim&#xff09;。 # 录入数据 dose<-c(20,30,40,4…

快捷键专栏 IDEA、Navicat、电脑、Excle、Word等

标题 电脑篇windowsR 配合以下常用命令连上公司网线WiFi速度变慢问题解决Windows10 设置鼠标右键在此处打开cmd和Powershell窗口、关机打开电脑诊断工具系统设置常用设置查看电脑出场日期 systeminfo删除文件显示已在另一个程序打开&#xff1f;找回回收站删除的文件WindowsR输…

从sub-VP SDE形式推导出扰动核(高斯分布)的均值和方差【论文精读】

从sub-VP SDE形式推导出扰动核&#xff08;高斯分布&#xff09;的均值和方差【论文精读】 讲解视频 B站视频&#xff1a;sub-VP SDE形式推导出扰动核&#xff08;高斯分布&#xff09;的均值和方差 讲解目录 &#xff08;0&#xff09;sub-VP SDE形式由来&#xff1a;有良…

桌面应用开发框架比较:Electron、Flutter、Tauri、React Native 与 Qt

在当今快速发展的技术环境中&#xff0c;对跨平台桌面应用程序的需求正在不断激增。 开发人员面临着选择正确框架之挑战&#xff0c;以便可以高效构建可在 Windows、macOS 和 Linux 上无缝运行的应用程序。 在本文中&#xff0c;我们将比较五种流行的桌面应用程序开发框架&…

Ajax 快速入门

Ajax 概念&#xff1a;Ajax是一种Web开发技术&#xff0c;允许在不重新加载整个页面的情况下&#xff0c;与服务器交换数据并更新网页的部分内容。 作用&#xff1a; 数据交换&#xff1a;Ajax允许通过JavaScript向服务器发送请求&#xff0c;并能够接收服务器响应的数据。 异…

【人工智能】第五部分:ChatGPT的实际应用案例和未来发展方向

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…

Ecovadis审核的内容

Ecovadis审核的内容。Ecovadis是一家国际性的企业社会责任评估机构&#xff0c;旨在为全球供应链的可持续性发展提供评估和审核。在本文中&#xff0c;我们将从以下几个方面详细介绍Ecovadis审核的内容&#xff1a; 一、Ecovadis审核的范围和目的 Ecovadis审核的范围涵盖了各个…

Halcon 多相机统一坐标系

小杨说事-基于Halcon的多相机坐标系统一原理个人理解_多相机标定统一坐标系-CSDN博客 一、概述 最近在搞多相机标定等的相关问题&#xff0c;对于很大的场景&#xff0c;单个相机的视野是不够的&#xff0c;就必须要统一到一个坐标系下&#xff0c;因此我也用了4个相机&#…

IDEA配置mybatis-config.xml模板文件

IDEA配置mybatis-config.xml模板文件 File>>Settings>>File and Code Templates 创建mybatis-config.xml模板 模板内容取自mybatis官网 mybatis官网 <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE configurationPUBLIC &qu…

理解数学概念——线性(线性性)

1. 线性相关词汇的词源 1.1 单词“line”的词源 这个单词是古英语“line”和古法语“ligne”二者的融合。在古英语中&#xff0c;“line”的词义为“缆绳&#xff0c;绳索&#xff1b;一系列&#xff0c;行&#xff0c;字母行&#xff1b;规则&#xff0c;方向(cable, rope; s…

TextCtrl输入文本类

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 wx.StaticText类只能够用于显示纯粹的静态文本&#xff0c;但是有时需要输入文本与用户进行交互&#xff0c;此时&#xff0c;就需要使用wx.TextCtrl…

什么是校园抄表系统?

1.校园抄表系统的简述 校园抄表系统是当代高校管理中的一个重要组成部分&#xff0c;主要运用于全自动搜集、管理方法与分析校园里的电力能源使用数据&#xff0c;如水电煤等。它通过先进的方式方法&#xff0c;完成了对能源消耗的实时监控系统&#xff0c;提升了电力能源管理…

GoogleDeepMind联合发布医学领域大语言模型论文技术讲解

Towards Expert-Level Medical Question Answering with Large Language Mod 这是一篇由Google Research和DeepMind合作发表的论文,题为"Towards Expert-Level Medical Question Answering with Large Language Models"。 我先整体介绍下这篇论文的主要内容&#x…

CCNA 0基础入门

OSI & TCP/IP OSI参考模型 TCP/IP协议 应用层 ------↓表示层 ------>应用层会话层 ------↑传输层 ------>传输层网络层 ------>网络互联层链路层 ------>网络接口层物理层 ------>↑ 物理层 传输的信号以及网线以及接线 主要作用是产生并检测电…

计算机网络:网络层 - IPv4数据报 ICMP协议

计算机网络&#xff1a;网络层 - IPv4数据报 & ICMP协议 IPv4数据报[版本 : 首部长度 : 区分服务 : 总长度][标识 : 标志 : 片偏移][生存时间 : 协议 : 首部检验和][可变部分 : 填充字段] ICMP协议 IPv4数据报 一个IPv4数据报&#xff0c;由首部和数据两部分组成&#xff…

大型语言模型(LLMs)的后门攻击和防御技术

大型语言模型&#xff08;LLMs&#xff09;通过训练在大量文本语料库上&#xff0c;展示了在多种自然语言处理&#xff08;NLP&#xff09;应用中取得最先进性能的能力。与基础语言模型相比&#xff0c;LLMs在少样本学习和零样本学习场景中取得了显著的性能提升&#xff0c;这得…

----几种接口的使用---

Compareable接口 对于给数组中的变量成员排序&#xff0c;我们能想到用sort&#xff0c;根据成员之间的大小进行排序&#xff0c;那么如果数组中的成员是对象的话&#xff0c;单单只是用sort去排序肯定是步成功的&#xff0c;因为并不知道要根据什么去排序&#xff0c; 这时要…

【漏洞复现】海洋CMS /js/player/dmplayer/dmku/ SQL注入漏洞复现(CVE-2024-29275)

0x01 产品简介 海洋CMS是一套专为不同需求的站长而设计的内容管理系统&#xff0c;灵活、方便、人性化设计、内容的专业网站。海洋CMS基于PHPMySql技术开发&#xff0c;完全开源免费、无任何加密代码。简单易用是最大的特色&#xff0c;可快速建立一个海量 0x02 漏洞概述 海…

虚拟机开启网络代理设置

前言&#xff1a; 不管是物理主机还是实验环境中的VMware虚拟机&#xff0c;有时候总要访问一些镜像网站或者资源网站拉取一些学习资料&#xff0c;但由于国内外网络环境的差异和网络安全的问题。总是会被阻拦。物理机相对比较容易一些&#xff0c;今天我们来说一说虚拟机应该…