LLaMA参数微调方法

news2025/1/12 3:53:44

1.Adapter Tuning:嵌入在transformer中

新增了一个名为adapter的结构,其核心思想是保持模型其他原始参数不变,只改变adapter的参数,其结构如下图所示:

在这里插入图片描述

1.在每一个transformer模块最后都加入一层adapter。

2.adapter首先使用一个feedforward将高维特征映射到了低维特征。

3.低维特征经过一层非线性层之后将低维特征映射回高维特征。

2.Prefix Tuning:构造虚拟token

1.在输入token之前构造一段任务相关的虚拟token作为Prefix。

2.在训练时可以只更新Prefix部分的参数,而transformer预训练的参数固定。

【注】该方法与构造Prompt类型,但是构造人为构造的显示提示并且构造参数不可更新,而Prefix是隐式构造。

3.Prompt Tuning

与Prefix Tuning相比之下,prompt tuning使用单个提示表示,该表示前置于嵌入式输入。除了需要更少的参数外,所提出方法允许transformer更新中间层任务表示,通过输入示例进行上下文化。

Prompt tuning只需要为每个任务存储一个小的特定于任务的提示,并使用原始的预训练模型支持混合任务推理。
P-Tuning V1只在输入层加入了Prompt,而P-Tuning V2则在每一层都加入了Prompt,解决了深度提示优化的问题。另外P-Tuning V2还提出了Multi-task learning解决不同规模和任务的适配性问题。

4.LoRA

在这里插入图片描述

LoRA的核心思想是用一种低秩的方式来调整这些参数矩阵,在数学上低秩意味着一个矩阵可以用两个极小的矩阵来近似。它提出用两个小矩阵近似一个大矩阵,先降维(减小计算量)后升维(维持维度不变)。具体来说是固定原始模型的参数,只训练降维矩阵A与升维矩阵B。最后用原始模型参数与B矩阵相加。

A矩阵一般用随机高斯分布初始化,维度上是降维;B矩阵用0矩阵初始化,维度上是升维。

参数更新 :W = W + A*B。

梯度更新 :在微调过程中,计算关于矩阵A和矩阵B的损失,在优化过程中对A和B进行更新,原始矩阵W保持不变。

代码具体操作:①将原始矩阵W参数冻结。②新引入两个线性层对应图中两个矩阵,先降维后升维。③LoRA主要实现了两分支通路,一条分支为已被冻结weight参数的原始结构,另一条分支为新引入的降维再升维线性层。

5.QLoRA:相比于LoRA进一步降低显存消耗

而QLoRa更进一步,引入了4位量化、双量化和利用nVidia统一内存进行分页。

分页优化器、双量化、增加Adapter。

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

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

相关文章

Valine表白动态心跳源码

动态心跳源码 给前女友表白写的网页现在用不着喽 (主要功能) 记录在一起的时长QQ头像自动同步集成随机古诗词Valine留言评论(Valine是一款快速、简洁且高效的无后端评论系统) 出售源码:50(联系方式在图中…

C# Onnx Yolov8 Pose 姿态识别

效果 项目 代码 using Microsoft.ML.OnnxRuntime; using Microsoft.ML.OnnxRuntime.Tensors; using OpenCvSharp; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System…

HTTP响应详解, HTTP请求构造及HTTPS详解

HTTP响应详解 认识 "状态码" (status code) 状态码表示访问一个页面的结果 . ( 是访问成功 , 还是失败 , 还是其他的一些情况 ...). 以下为常见的状态码 . 200 OK 这 是一个最常见的状态码, 表示访问成功 . 抓包抓到的大部分结果都是 200 例如访问搜狗…

差分方程模型:兔子繁殖问题(斐波拉契数列)

背景 兔子出生后两个月就能生小兔子,如果每月生一次且恰好生一对小兔子(雌性各一只),且出生的兔子都能成活。试问:由一对小兔子开始,一年后有多少对兔子,两年后呢? 【问题分析】 当…

【深度学习】Windows配置深度学习环境

0.前提 OS:Windows 10(Windows 11也可) CPU:i5-8300H GPU:NVIDIA-GTX1060 Python3.9.8 Pycharm2020-pro 参考博客: Anaconda超详细安装教程(Windows环境下) cuda安装以及conda安装…

系统架构设计师(第二版)学习笔记----信息系统基础

【原文链接】系统架构设计师(第二版)学习笔记----信息系统基础 文章目录 一、信息系统概述1.1 信息系统的5个基本功能1.2 信息系统发展阶段1.3 初始阶段的主要特点1.4 传播阶段的主要特点1.5 控制阶段的主要特点1.6 集成阶段的主要特点1.7 信息系统的种类…

Java————形参和实参

方法的形参相当于数学函数中的自变量,比如: Java中方法的形参就相当于sum函数中的自变量n, 用来接收sum函数在调用时传递的值的。 形参的名字可以随意取,对方法都没有任何影响, 形参只是方法在定义时需要借助的一个变…

Netty笔记

NIO介绍 全程java non-blocking IO,是JDK提供的新API。从1.4开始,提供了一系列改进的输入、输出特性,被统称为NIO,即同步非阻塞NIO相关类放到了java.nio下,并且对原java.io包中的很多了进行了改写NIO三大组件:Channel…

linux-如何用起来ubuntu

1 Oracle VM VirtualBox安装ubuntu20.04虚拟机 【工具】->【新建】 1.1 虚拟电脑名称和系统类型 【名称】:自定义名称即可 【文件夹】:虚拟机文件将要存储的路径 【虚拟光盘】:将要安装的虚拟机iso文件 1.2 自动安装 【用户名】&…

[Qt]多线程和套接字通信

文章目录 1. 多线程的使用1.1 线程类 QThread1.1.1 常用共用成员函数1.1.2 信号槽1.1.3 静态函数1.1.4 任务处理函数 1.2 使用方式11.2.1 操作步骤1.2.2 示例代码 1.3 使用方式21.3.1 操作步骤1.3.2 示例代码 2. 线程池的使用2.1 QRunnable2.2 QThreadPool 3. 套接字通信3.1 QT…

硬件故障诊断:快速定位问题

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

Python编程——for循环基础语法、range语句以及一些案例

作者:Insist-- 个人主页:insist--个人主页 本文专栏:Python专栏 专栏介绍:本专栏为免费专栏,并且会持续更新python基础知识,欢迎各位订阅关注。 前言 在之前的文章我们讲解过 while 循环,除了w…

基于ASCON的AEAD

1. 引言 前序博客: ASCON:以“慢而稳”赢得NIST轻量级加密算法标准密码学中的AEAD(authenticated encryption with associated data) 对称密钥加密过去数年来已发生改变,具体为: 当今主要使用stream ciphers,因其比…

微信小程序 动漫游戏资讯推荐系统

配置文件 (自动编号、配置参数名称、配置参数值); 系统的设计与实现采用Spring、SpringMVC和MyBatis作为主体框架,系统设计遵循界面层、业务逻辑层和数据访问层的Web开发三层架构。采用B/S结构,使得系统更加容易维护。系统的设计与实现主要实现角色有管理员和用户,管…

预训练相关知识

1、上下文无关语义表示方式存在问题 语义不同的词具有相同的表示,(apple 电子产品苹果/水果苹果) 容易出现oov问题 2、神经语言编码器 2.1、序列模型 cnn/rnn等,捕获局部信息和序列依赖信息,无法捕获长距离依赖。易训…

【JavaScript】HTML文件插入JavaScript函数

介绍 在HTML文件中插入JavaScript函数的方法如下&#xff1a; 1、在HTML文件中使用<script>标签来定义JavaScript函数&#xff0c;例如&#xff1a; <script> function myFunction() {// 在这里编写JavaScript函数代码 } </script>2、在HTML文件中调用Jav…

2023年稀有金属行业研究报告

第一章 行业概况 稀有金属是一类在地球上分布较为稀少或从原矿中分离较为困难的金属。这类金属包括稀土、锂、钼、钨、铟、钛等。由于其独特的物理和化学性质&#xff0c;稀有金属在许多高技术领域中都是不可或缺的材料&#xff0c;如航天、原子能、电子和国防等。 稀有金属在…

小红书加密参数X-s详解

小红书加密参数X-s详解 小红书加密参数X-s详解 省略调试过程 定位到相关文件 如图所示&#xff1a; 修改代码 将代码复制下来&#xff0c;找到以下代码&#xff1a; , function(p0, p1, p2, p3, p4, p5, p6) {var _ace_25a6 _ace_ae44(p0, p1), _ace_d2389 _ace_34d1(p2…

Windows下编译安装FreeCAD 0.21

本文记录在Windows下编译安装FreeCAD 0.21的流程。 一、下载代码与依赖 1.1 下载代码 git clone https://github.com/FreeCAD/FreeCAD.git cd cd ./FreeCAD/ git checkout -b FreeCAD-0-21 origin/releases/FreeCAD-0-21 1.2 下载依赖 从GitHub下载FreeCAD LibPack-0.21 Ve…

21天学会C++:Day9----初识类与对象

CSDN的uu们&#xff0c;大家好。这里是C入门的第九讲。 座右铭&#xff1a;前路坎坷&#xff0c;披荆斩棘&#xff0c;扶摇直上。 博客主页&#xff1a; 姬如祎 收录专栏&#xff1a;C专题 目录 1. 面向过程与面向对象 2. 类的定义 3. 类中的访问限定符 3.1 访问限定符的…