LLM:参数高效微调方法总结

news2024/10/19 13:07:33

可以分为基于适配器、基于提示的。

一、基于适配器的方法

其核心思想是在预训练模型的各层之间插入轻量级的额外模块——适配器,通过仅微调这些适配器模块以适应特定的下游任务,同时冻结原模型的大部分参数。

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

1.Lora系列

原始的Lora

LoRA 表示通过低秩分解使用两个较小矩阵(称为更新矩阵)的权重更新 ∆W。
在这里插入图片描述

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

X-LoRA

X-LoRA 将 LoRA 的低秩适配器与 MoE 的专家机制相结合,引入多个 LoRA 适配器作为专家,根据输入动态选择部分适配器进行参数调整。
在这里插入图片描述

输入数据
|
|— 第一次前向传播(基础模型) —> 隐藏状态
|
|— 计算缩放系数
|
|— 调整 LoRA 适配器
|
|— 第二次前向传播(基础模型 + LoRA 适配器) —> 最终输出

AdaLoRA

AdaLoRA 通过动态分配参数预算,针对任务中更为重要的权重矩阵分配更多参数(即更高的秩
𝑟),并修剪掉不太重要的权重矩阵。∆W 分为多个三元组,每个三元组根据其对模型性能的贡献进行评分。重要性分数低的三元组被修剪,而重要性分数高的三元组被保留以供微调。

首先,我们为重要性更低的模块分配更小的秩,那么将有效的减少模型的计算量。其次,如果我们能够为更重要的特征分配更大的秩,那么将能够更有效的捕捉特征的细节信息。

在这里插入图片描述

QLoRA

QLoRA的优化有三个核心要点:
首先是定义了一种4位标准浮点数(Normal Float 4-bit,NF4)量化,基于分块的分位数量化的量化策略;
其次是双重量化,包含对普通参数的一次量化和对量化常数的再一次量化,可以进一步减小缓存占用;
最后是分页优化器(Page Optimizer),用来在显存过高时用一部分内存代替显存。

在这里插入图片描述

LongLoRA

一般的transformer的attention计算复杂度为 O(n^2)为序列长度,使得llm长文本微调训练慢且资源消耗多。
主要贡献:稀疏局部注意力: 引入了一种称为“shift short attention”(S²-Attn)的机制,以减少计算复杂度并提高效率。
在这里插入图片描述
将输入序列分成多个短序列(例如,每个短序列长度为 m),然后对这些短序列分别进行注意力计算。通过将短序列的结果合并,从而近似全局注意力的效果

二、提示方法

提示分为硬提示和软提示。
硬提示是续写,直接加字符,类似于base模型。对提示敏感,难以找到合适的。
软提示是在输入端的嵌入层加入一段连续的向量。缺点是它们不是人类可读的。
在这里插入图片描述

Prefix-tuning 前缀优化

Prefix-tuning的核心在于将一个连续的可训练向量(前缀)添加到模型输入中。这些前缀向量不对应于实际的单词,而是自由参数,直接影响模型的内部状态。通过优化这些前缀,模型能够更好地适应不同的生成任务。
每一层都有。
在这里插入图片描述

Prompt tuning 提示调优

通过冻结整个预训练模型,只允许每个下游任务在输入文本前面添加k个可调的标记(Token)来优化模型参数,赋予语言模型能够执行特定的下游任务的能力。
通常只在输入层添加。
在这里插入图片描述

P-tuning P 调优

添加了一个可训练的嵌入张量,可以对其进行优化以找到更好的提示,并使用提示编码器(双向长短期记忆网络或 LSTM)来优化提示参数。
在这里插入图片描述
提示标记可以插入输入序列中的任何位置,并且不仅限于开头;
提示标记仅添加到 Input,而不是将它们添加到模型的每一层;
引入锚点标记可以提高性能,因为它们指示输入序列中组件的特征。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DFS算法经典题目: Leetcode 51.N皇后

DFS算法经典题目: Leetcode 51.N皇后 题目详情如下 这道题如果使用暴力解法的话,需要对N个皇后放在每个地方都进行枚举并判断是否可行,时间复杂度非常之高,肯定是过不了的,所以需要使用其他解法。 根据题目可以知道每…

RT-Thread之STM32使用定时器实现输入捕获

前言 基于RT-Thread的STM32开发,配置使用定时器实现输入捕获。 比如配置特定通道捕获上升沿,该通道对应的引脚有上升沿信号输入,则触发捕获中断。 一、新建工程 二、工程配置 1、打开CubeMX 进行工程配置 2、时钟使用外部高速晶振 3、配置…

链栈的基本算法

初始化一个链栈 &#xff0c;将元素e&#xff0c;f&#xff0c;g&#xff0c;h&#xff0c;i依次进栈&#xff0c;获取栈顶元素&#xff0c;将栈中元素依次出栈并输出 链栈的表示 既采用链式储存结构实现的栈 具体代码 #include <stdio.h> #include <stdlib.h>…

安装TDengine数据库3.3版本和TDengine数据库可视化管理工具

安装TDengine数据库3.3版本和TDengine数据库可视化管理工具 一、下载安装包二、解压安装包三、部署四、启动服务五、进入数据库六、创建数据库、表和往表中插入数据七、测试 TDengine 性能八、使用数据库九、查询数据十、TDengine数据库可视化界面 一、下载安装包 TDengine-cl…

RHCE——例行性工作

准备工作 [rootlocalhost ~]# cat /etc/yum.repos.d/aliyun.repo [ali-app] nameali-app baseurlhttps://mirrors.aliyun.com/centos-stream/9-stream/AppStream/x86_64/os/ gpgcheck0[ali-base] nameali-base baseurlhttps://mirrors.aliyun.com/centos-stream/9-stream/Base…

Qt - 地图相关 —— 1、加载百度在线地图(附源码)

效果图 开始加载地图 1、百度地图开发者网站中注册,获取密钥 2、进入开发文档中 将下图内容保存到本地文件中,文件名为"index.html"文件即可。接着将内容中的“您的密钥”改为刚刚创建应用出来的AK密钥即可。 然后双击打开若在浏览器中正常看到下图右侧地图则说明没…

现代物流管理:SpringBoot技术突破

3系统分析 3.1可行性分析 通过对本智能物流管理系统实行的目的初步调查和分析&#xff0c;提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本智能物流管理系统采用SSM框架&#xff0c;JAVA作为开发语…

excel判断某一列(A列)中的数据是否在另一列(B列)中

如B列如果有7个元素&#xff0c;在A列右边的空白列中&#xff0c;输入如下公式&#xff1a; COUNTIF($B$1:$B$7,A1), 其中&#xff0c;$B$1:$B$7代表A列中的所有数据即绝对范围&#xff0c;A1代表B列中的一个单元格.

SpringBoot中大量数据导出方案:使用EasyExcel并行导出多个excel文件并压缩zip后下载

文章目录 前言一、控制器层代码二、服务层代码三、代码亮点分析 前言 SpringBoot的同步excel导出方式中&#xff0c;服务会阻塞直到Excel文件生成完毕&#xff0c;如果导出数据很多时&#xff0c;效率低体验差。有效的方案是将导出数据拆分后利用CompletableFuture&#xff0c;…

《计算机视觉》—— 换脸

效果如下&#xff1a; 完整代码&#xff1a; import cv2 import dlib import numpy as npJAW_POINTS list(range(0, 17)) RIGHT_BROW_POINTS list(range(17, 22)) LEFT_BROW_POINTS list(range(22, 27)) NOSE_POINTS list(range(27, 35)) RIGHT_EYE_POINTS list(range(36…

linux下使用VSCODE 调试python

文章目录 一、环境准备安装VS Code&#xff1a;安装Python&#xff1a; 二、环境测试创建Python文件&#xff1a;编写测试代码运行 Linux下使用VS Code调试Python 在Linux环境中进行Python开发时&#xff0c;一个高效、直观的调试工具是必不可少的。Visual Studio Code&#xf…

Web Hid Api浏览器读取IC卡号Js源码,无需插件支持

本示例使用的读卡器&#xff1a;https://item.taobao.com/item.htm?spma21dvs.23580594.0.0.52de2c1bW5eU3X&ftt&id615391857885 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-trans…

【R语言】gadm全球行政区划数据库

我R语言不熟、也不是学GIS的。仅用于记录。 文章目录 一、gadm 数据库简介二、R 语言示例三、sf 包的函数 一、gadm 数据库简介 GADM&#xff08;全称Database of Global Administrative Areas&#xff09;是一个高精度的全球行政区划数据库&#xff0c;它包含了全球所有国家和…

数字图像处理:图像去噪

图像去噪–总变差去噪&#xff08;TV&#xff09; 引用资料&#xff1a; 1.全变分图像去噪算法&#xff08;TV&#xff09; 2.TV去噪的理解 总变差去噪 (Total Variation Denoising) 是一种经典的图像去噪方法&#xff0c;能够有效减少噪声&#xff0c;同时保留图像的边缘细节…

单例模式(自动加载)

目录 介绍 使用 在脚本中写一个函数 让一个「自定义场景」作为单例「自动加载」 介绍 单例模式是编程中的一种设计思想&#xff0c;是为了解决某些编程语言中没有全局变量概念而产生的这对于实现某种模块非常好用 比如玩家信息&#xff0c;有时候&#xff0c;游戏中的很多…

以太网交换安全:MAC地址漂移与检测(实验:二层环路+网络攻击)

一、什么是MAC地址漂移&#xff1f; MAC地址漂移是指网络中设备的MAC地址在运行过程中发生变化的现象。 MAC地址是用于唯一标识网络中的设备。 MAC地址漂移是指交换机上一个VLAN内有两个端口学习到同一个MAC地址&#xff0c;后学习到的MAC地址表项覆盖原MAC地址表项的现象。…

Jsoup在Java中:解析京东网站数据

对于电商网站如京东来说&#xff0c;其页面上的数据包含了丰富的商业洞察。对于开发者而言&#xff0c;能够从这些网站中提取有价值的信息&#xff0c;进行分析和应用&#xff0c;无疑是一项重要的技能。本文将介绍如何使用Java中的Jsoup库来解析京东网站的数据。 Jsoup简介 …

Windows】【DevOps】Windows Server 2022 采用WinSW 启动一个会创建新的控制台程序窗口的程序行为分析

WinSW使用参考 【Windows】【DevOps】Windows Server 2022 采用WinSW将一个控制台应用程序作为服务启动&#xff08;方便&#xff09;-CSDN博客 源码 调整ConsoleApp1程序源代码如下&#xff1a; using System; using System.Diagnostics; using System.IO; using System.R…

十、客户端与服务端进行通信

一、服务端 1、建立协议脚本 此处必须序列化才能转为二进制发送出去 IP为本地连接&#xff1b;端口随意&#xff1b;不要选择规定的端口 2、建立服务端连接脚本 这个的方法都是重写的dll文件中的代码 在Start代码中进行调用 二、客户端 1、与客户端连接代码 2、开始代码 三…

腰背肌筋膜炎有哪些治疗方法

腰背肌筋膜炎主要表现为腰背部的疼痛、酸胀、僵硬、活动受限等症状。在疾病初期&#xff0c;症状可能相对较轻&#xff0c;通过休息、保暖、适当的物理治疗等&#xff0c;往往可以缓解症状&#xff0c;此时病情不算严重。如果患者不重视&#xff0c;继续保持不良的生活习惯&…