【大模型】1、LoRA | 大模型高效微调技术

在这里插入图片描述

文章目录

    • 一、背景
      • 1.1 什么是秩
      • 1.2 为什么要用低秩
    • 二、方法
    • 三、效果

论文:LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS

代码:https://github.com/microsoft/LoRA

出处:微软

一、背景

1.1 什么是秩

矩阵的秩是指其行(或列)向量生成的最大线性无关集合的大小。简单来说,就是一个矩阵中线性无关的行或列的最大数量。

矩阵的秩实际上表示了矩阵中线性无关向量(或者说信息)的数量。如果一个矩阵有很高的秩,那么它包含了大量不同方向或维度上的信息。换句话说,这个矩阵中包含了许多不同方向或维度上变化的数据。

相反,如果一个矩阵有很低的秩(比如接近0),那么它可能包含了大量冗余信息。也就是说,其中一些行或列可能只是其他行或列标量倍数操作得到。

因此,在处理数据时,理解和利用矩阵秩可以帮助我们识别和减少冗余信息,并专注于真正重要、能提供新见解和知识点的数据维度。

例如:

A = [ 1 2 3
	  4 5 6
	  7 8 9]

这个矩阵的秩为 2,我们可以看到第三行减去第二行等于第二行减去第一行(即[7 8 9] - [4 5 6] = [4 5 6] - [1 2 3]),因此这三个向量并不都是线性无关的。实际上,在这个例子中只有两个线性无关向量(例如,前两个),所以我们说这个矩阵的秩为2。

A = [[1, 2, 3],
     [2, 4, 6],
     [3, 6, 9]]

这个矩阵的秩为 1,我们可以看到第二行是第一行的两倍,第三行是第一行的三倍。因此,这三个向量(即矩阵的行)并不都是线性无关的。实际上,在这个例子中只有一个线性无关向量(例如,任意一个就行,也就是说任何一行都可以作为基来表示整个矩阵空间),所以我们说这个矩阵的秩为1。

1.2 为什么要用低秩

在大模型中,很多下游应用都是通过对大模型的微调来实现的,微调可以冻结部分参数,也可以不冻结参数,全部进行微调

一个大模型可能经过了好几个月的训练,参数量巨大,比如 GPT-3 有 175B 参数,一般很难微调

所以本文提出了低秩适配方法 Low-Rank Adaptation (LoRA) approach,冻结预训练大模型的参数不做改变,训练这里的 A 和 B 两个模块,A 的输入和大模型的输入维度一样,A 的输出为 r,这里的 r 就表示的秩的大小,可以为 1 或 2,B 的输出和大模型的输出维度一样,所以输出可以直接和大模型的输出相加即可。

  • 训练:LoRA 利用对应下游任务的数据,只训练新加部分参数来适配下游任务。以 GPT-3 的 175B 参数为例,使用很低的秩足以和使用满秩的结果媲美(满秩的秩为 12288),因此 LoRA 很有效且高效。

  • 推理:而当训练好新的参数后,利用重参的方式,将新参数和老的模型参数合并,这样既能在新任务上到达fine-tune整个模型的效果,又不会在推断的时候增加推断的耗时。

在这里插入图片描述

二、方法

在这里插入图片描述

  • W0:大模型的参数
  • Δ W \Delta W ΔW:微调全参数时参数的变化量
  • LoRA 的训练,冻结大模型的参数, 只训练 A 和 B

在这里插入图片描述
A 使用随机高斯初始化,B 初始化为 0,所以 Δ W = B A \Delta W=BA ΔW=BA 在开始训练的时候是 0,给 Δ W \Delta W ΔW 加上权重系数 α r \frac{\alpha}{r} rα ,且 α \alpha α r r r 中的一个常数。

α \alpha α 较小时,提取的是信息含量最丰富的维度,此时信息精炼,但不全面;当 α \alpha α 较大时,此时信息更加全面,但有很多冗余

所以,作者刚开始把 r 设置大,且让 α = r \alpha=r α=r,也就是刚开始的时候大模型的参数和新的低秩参数一样重要,随着实验的进行, r r r 降低, α \alpha α 不变,那么低秩参数就会越来越重要

三、效果

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Tomcat转SpringBoot、tomcat升级到springboot、springmvc改造springboot

Tomcat转SpringBoot、tomcat升级到springboot、springmvc改造springboot 起因:我接手tomcat-springmvc-hibernate项目,使用tomcat时问题不大。自从信创开始,部分市场使用国产中间件,例如第一次听说的宝兰德、东方通,还…

算法模板之栈图文详解

🌈个人主页:聆风吟 🔥系列专栏:算法模板、数据结构 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 📋前言一. ⛳️模拟栈1.1 🔔用数组模拟实现栈1.1.1 👻栈的定义1.1.…

R语言贝叶斯网络模型、INLA下的贝叶斯回归、R语言现代贝叶斯统计学方法、R语言混合效应(多水平/层次/嵌套)模型

目录 ㈠ 基于R语言的贝叶斯网络模型的实践技术应用 ㈡ R语言贝叶斯方法在生态环境领域中的高阶技术应用 ㈢ 基于R语言贝叶斯进阶:INLA下的贝叶斯回归、生存分析、随机游走、广义可加模型、极端数据的贝叶斯分析 ㈣ 基于R语言的现代贝叶斯统计学方法(贝叶斯参数估…

如何把透明OLED显示屏介绍给用户人群

透明OLED显示屏是一种新型的显示技术,它具有透明度高、色彩鲜艳、对比度高、响应速度快等优点。下面是一些介绍透明OLED显示屏的要点: 透明度:透明OLED显示屏的最大特点是其透明度,它可以让光线透过显示屏,使得屏幕背后…

TG5032CGN TCXO / VC-TCXO(超高稳定10pin端子型)

TG5032CGN 晶振是EPSON推出的一款额定频率10MHz至40MHz的石英晶体振荡器,该型号采用互补金属氧化物半导体技术,输出波形稳定可靠。外形尺寸为5.0 3.2 1.45mm具有小尺寸,高稳定性。该款晶体振荡器,可以在G:-40C至 85C的温度内稳定…

共建还是对抗?BTC 铭文风波中开发者、矿工与社区的平衡艺术

近期,比特币铭文正加速进入一场争议与危机的漩涡。12 月 6 日,比特币核心开发人员 Luke Dashjr 在 X 表示,铭文(Inscriptions)正在利用比特币核心客户端 Bitcoin Core 的一个漏洞向区块链发送垃圾信息,Bitc…

在灾难推文分析场景上比较用 LoRA 微调 Roberta、Llama 2 和 Mistral 的过程及表现

引言 自然语言处理 (NLP) 领域的进展日新月异,你方唱罢我登场。因此,在实际场景中,针对特定的任务,我们经常需要对不同的语言模型进行比较,以寻找最适合的模型。本文主要比较 3 个模型: RoBERTa、Mistral-7B 及 Llama-…

基于javaWeb的長安智慧医疗管理系统设计与实现论文

長安智慧医疗管理系统 摘 要:如今社会上各行各业,都在用属于自己专用的软件来进行工作,互联网发展到这个时候,人们已经发现离不开了互联网。互联网的发展,离不开一些新的技术,而新技术的产生往往是为了解决…

Shell 脚本应用(三)

使用 for 循环语句 for语句的结构 使用for循环语句时,需要指定一个变量及可能的取值列表,针对每个不同的取值重复执行相同 的命令序列,直到变量值用完退出循环。在这里,“取值列表”称为for语句的执行条件,其中包括多…

makefile例子

1、目录结构 2、文件 2.1、 test.h extern void test(void); 2.2 、test.c #include <stdio.h>void test(void) {printf("Hello world!\n"); }2.3 、main.c #include "test.h"int main(void) {test();return 0; }2.4、makefile TEST_DIR : $(s…

ai学习笔记-入门

目录 一、人工智能是什么&#xff1f;可以做什么&#xff1f; 人工智能(Artificial Intelligence): 人工智能的技术发展路线&#xff1a; 产业发展驱动因素&#xff1a;数据、算力、算法 二、人工智能这个工具的使用原理入门 神经网络⭕数学基础 1.神经网络的生物表示 …

SpringMVC:执行原理详解、配置文件和注解开发实现 SpringMVC

文章目录 SpringMVC - 01一、概述二、SpringMVC 执行原理三、使用配置文件实现 SpringMVC四、使用注解开发实现 SpringMVC1. 步骤2. 实现 五、总结注意&#xff1a; SpringMVC - 01 一、概述 SpringMVC 官方文档&#xff1a;点此进入 有关 MVC 架构模式的内容见之前的笔记&a…

小红书kos和kop有什么区别,营销玩法有哪些

相信熟悉媒介传播的朋友&#xff0c;对于kol和koc都不陌生。但随着平台的发展和市场的进步&#xff0c;又出现了kos和kop。那么小红书kos和kop有什么区别&#xff0c;营销玩法有哪些&#xff1f; 一、什么是kos和kop KOS&#xff0c;全称叫做Key Opinion Sales&#xff0c;意思…

安装 PyCharm 2021.1 保姆级教程

作者&#xff1a;billy 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 前言 目前能下载到的最新版本是 PyCharm 2021.1。 请注意对应 Python 的版本&#xff1a; Python 2: 2.7Python 3: >3.6, <3.11…

APEX后台弱密码增强改造出现的问题及解决方法

为了加强APEX后台密码的安全性和可靠性&#xff0c;对其进行弱密码改造&#xff0c;通过改写登录函数&#xff0c;判断密码可靠性&#xff0c;在密码不符合条件&#xff08;密码长度必须大于8位小于16位&#xff0c;其包含数字、大小写字母与特殊符号&#xff09;时跳转到密码修…

网络基础篇【网线的制作,OSI七层模型,集线器和交换机的介绍,路由器的介绍与设置】

目录 一、网线制作 1.1 工具介绍 1.1.1网线 1.1.2 网线钳 1.1.3 水晶头 1.1.4 网线测试仪 二、OSI七层模型 2.1 简介 2.2 OSI模型层次介绍 2.2.1 结构图 2.2.2 数据传输过程 2.3 相关网站 二、集线器 2.1 介绍 2.2 适用场景 三、交换机 3.1 介绍 3.2 适用场景…

Linux(二)常用命令

文章目录 一、文件管理命令1.1 chmod1.2 chown1.3 cat1.4 cp1.5 find1.6 head1.7 tail1.8 less1.9 more1.10 mv1.11 rm1.12 touch1.13 vim1.14 >和>>1.15 scp1.16 ln1.17 怎么用命令查看日志 二、文档管理命令2.1 grep2.2 wc2.3 echo 三、磁盘管理命令3.1 cd3.2 df3.3…

JMeter常见配置及常见问题修改

一、设置JMeter默认打开字体 1、进入安装目录&#xff1a;apache-jmeter-x.x.x\bin\ 2、找到 jmeter.properties&#xff0c;打开。 3、搜索“ languageen ”&#xff0c;前面带有“#”号.。 4、去除“#”号&#xff0c;并修改为&#xff1a;languagezh_CN 或 直接新增一行&…

MySQL增删改查(查询)

White graces&#xff1a;个人主页 &#x1f649;专栏推荐:Java入门知识&#x1f649; &#x1f649; 内容推荐:《MySQL增删改查(增加)》&#x1f649; &#x1f439;今日诗词:八百虎贲踏江去,十万吴兵丧胆还&#x1f439; ⛳️点赞 ☀️收藏⭐️关注&#x1f4ac;卑微小博主…

网络技术基础与计算思维实验教程_4.1_PSTN和以太网互连实验

实验内容 实验目的 实验原理 关键命令说明 实验步骤 构建以太网 工作区中放置路由器 交换机 PC机 直通线互连PC0和交换机 交换机和路由器 构建PSTN 放置PSTN 放置PC 为路由器安装modem 打开电源 再为终端安装modem 单击路由器选择图形配置 这个IP地址将成为PC0的默认网关地…