【模型微调】| 各类微调模型总结 P-Tuning,Prefix,P-tuning v2,LoRA

news2025/2/2 17:50:15

文章目录

  • 1 微调背景
    • 1.1 Full fine-tuning 全参数微调(FFT)
    • 1.2 parameter-Efficient-fine-tuning 部分参数微调(PEFT)
  • 2 提示词调整训练法
    • 2.1 P-Tuning
    • 2.2 Prefix
    • 2.3 P-Tuning v2
  • 3 结构调整训练法
    • 3.1 Adapter tuning
    • 3.2 LoRA

微调大模型方法最全综述

各种各样的微调模型在最近两三年很火爆,想要去讲明白这些方法并不容易~但是我还是想尝试一下,尽可能将这些微调模型以一个清晰的架构呈现出来

1 微调背景

首先我们从基础概念出发—— fine-tuning(微调),微调在AI界扮演着非常重要的角色,因为很多大模型往往采用预训练+微调范式

预训练大模型可以让模型广泛学习到一些知识~相当于广撒网,一个劲地学,也不管会碰撞怎样的思想火花,好比读书破万卷,所以可见预训练大模型需要很多的硬件资源,耗费很长时间,因而是很多大公司才能玩的动的。

那么预训练模型就很强了吗?不一定,就好比我们可能读了很多书,但想要对某些领域深入了解,需要再精读细读

某些领域的书籍,这就是模型微调,针对自然语言不同的下游任务(比如问答电影相关的知识)需要通过微调让模型获得更精细的知识,所以微调可以解决预训练模型在特定任务上表现差的情况。

微调可以分为两大类

1.1 Full fine-tuning 全参数微调(FFT)

很好理解,就是整体参数都参与到微调过程中,不对网络结构,Prompt进行更改,这种微调的效果往往结果会比较好,但是可想而知,耗费的资源和时间也长

因而人们想在保证结果优秀的前提下,想尽可能少的调整原本大模型的参数,来减小成本,也就是接下来的一大类

1.2 parameter-Efficient-fine-tuning 部分参数微调(PEFT)

  • 其中有些维持原本网络结构和大部分参数不变,只动个别层的参数,这是传统微调方式,在传统AI任务如分类用的很多,比如我们只调整输出层的参数,我把他叫做部分参数训练法 在大语言模型用的其实不多

  • 其中有些不动原本的网络结构和参数,对输入Prompt进行调整,我把他叫做提示词Prompt调整训练法 如P-tuning

  • 对原本网络结构进行更改,增加某些层,或者增加某些结构,我把他叫做结构调整训练法

有些方法可能是上面三种基本方法的组合~

以下五个优点:

  1. 能够降低计算成本(需要更少的GPU和GPU运行时间);

  2. 拥有更快的训练时间(更快地完成训练);

  3. 具备更低的硬件要求(适用于较小显存的GPU和较小的内存);

  4. 具有更好的模型性能(降低过拟合);

  5. 需要更少的存储空间(大部分weights可以在不同任务(tasks)之间共享)。

我们重点介绍提示词Prompt调整训练法结构调整训练法

2 提示词调整训练法

2.1 P-Tuning

在2021年论文《GPT Understands,Too》提出Prompt tuning(即我们可以常看到的P-Tuning)(讲到用到NLU自然语言理解任务)

他的思路动机来源于,观察到在很多情况下,我们调整提示词可以获得更好的结果,可以做这样一个类比

原本提示词输入是,Input=1,2,3,4,5 (这里以数字举例,每个数字对应代表一个字符)假设模型输出能够打60分

我们在实验中发现,输入调整为Input= 2,2,3,4,5 会更好,模型输出最后能够打75分

但是如上我们的调整都是离散的调整,费时费力,我看到一个专门的称呼,叫这种调整方式是离散的,硬的(hard Prompt tuning)

而很有可能这两个都不是最佳的,最佳的可能是Input=1.4,2,3,4,5

所以我们给Input加一些可学习的部分,让他自己学习到最佳的提示词状态,这便是提示词调整训练法的一大精髓和核心(Soft Prompt tuning)

如下图,将原本的离散的The captial of is 这些变为h0,h1,h2等等一系列连续的量

在这里插入图片描述

通俗可以这么理解,就是针对某些任务,在提示词上做更改是可以提高模型的表现的,但是我们不知道该做怎样的更改,人工调整费时费力,简单,让模型自适应地去学习怎么样调整提示词!

P-tuning:自动构建模版,释放语言模型潜能 - 科学空间|Scientific Spaces (kexue.fm)

2.2 Prefix

Prefix-Tuning: Optimizing Continuous Prompts for Generation

Prefix其实和 P-Tuning挺像的

Prefix支持进入前缀,P-tuning不局限于前缀

Prefix注重自然语言生成任务,P-tuning 注重自然语言理解任务

在这里插入图片描述

《The Power of Scale for Parameter-Efficient Prompt Tuning》是Prefix的简化~

好好研究一下这个

然后研究一下开源库huggingface

大模型微调实践——Prefix tuning与P-tuning v2的原理、区别与代码解析最终章 - 知乎 (zhihu.com)

2.3 P-Tuning v2

2021年,清华大学提出《P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks》

v2 在v1的基础上进行了改进,显著的改进源于对预训练模型的每一层应用连续Prompt

在这里插入图片描述

3 结构调整训练法

3.1 Adapter tuning

2019年论文《Parameter-Efficient Transfer Learning for NLP》提出

如图,在自我注意模块(和前馈神经网络层模块)和后续剩余连接之间插入适配器层Adapter

在训练过程中,只训练Adapter结构的参数,原本模型参数不动

在这里插入图片描述

3.2 LoRA

论文《LoRA: Low-Rank Adaptation of Large Language Models》

具体做法

  • 在原模型旁边增加一个旁路,通过低秩分解(先降维再升维)来模拟参数的更新量
  • 训练时,原模型固定,只训练降维矩阵A和升维矩阵B;
  • 推理时,可将BA加到原参数上,不引入额外的推理延迟;
  • 初始化,A采用高斯分布初始化,B初始化为全0,保证训练开始时旁路为0矩阵;
  • 可插拔式的切换任务,当前任务W0+B1A1,将lora部分减掉,换成B2A2,即可实现任务切换;
  • 秩的选取:对于一般的任务,rank=1,2,4,8足矣,而对于一些领域差距比较大的任务可能需要更大的rank。

在这里插入图片描述

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

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

相关文章

【2024年美国大学生数学建模竞赛】F题非法的野生动物贸易 完整数据

小云更新了全网最全的F题数据 另外也为大家分享: 技术文档,包括问题分析、建立模型、求解结果等,配套有思路分析视频、代码讲解视频。美赛官方限制总页数为25页,我们的思路长度为35页以上。所有模型都有求解代码和指标&#xff0…

数字化转型:企业适应新常态的关键之举_光点科技

在全球商业环境不断演变和技术日新月异的背景下,数字化转型已经成为企业不可回避的课题。它不仅关乎企业的未来生存与发展,更是适应新常态、提升竞争力的关键之举。但是,数字化转型并非一夜之间可以完成的任务,它需要全面的策略规…

九、显卡性能参数、接口

1、显卡说明 显卡的好坏直接影响画面的流畅度,一般大型游戏都会有一些电脑的推荐配置,里面就会说到显卡。 显卡,也称为显示卡(Video Card),是个人计算机基础的组成部分之一,负责将计算机系统需要…

前缀和 差分

差分和前缀和都是算法里边比较重要的知识点,不过学习的难度并不高,这篇文章会讲解相关的内容。 1. 前缀和怎么玩 1)一维前缀和 在该数之前,包括该数的所有数之和,有点类似高中学的数列的前n项和Sn。 2)二维…

2024年美赛A题:资源可用性和性别比例 Resource Availability and Sex Ratios 思路模型代码解析

2024年美赛A题:资源可用性和性别比例 Resource Availability and Sex Ratios 思路模型代码解析 【点击最下方群名片,加入群聊,获取更多思路与代码哦~】 问题翻译 虽然一些动物物种存在于通常的雄性或雌性之外,但大多数物种在很大…

ncc匹配(二,补足旋转)

先看运行结果: 第一张图是基于形状匹配结果0.992,第二张是匹配结果的ncc结果,1 再看旋转后: 看到没,旋转后,基于形状匹配结果28度,0.517,根据匹配结果ncc结果是0.99 我们看到ncc以…

聊一聊Tomcat的架构和运行流程,尽量通俗易懂一点

1、Tomcat的架构 这里可以看出 A、一个Tomcat就是一个Server,一个Server下会有多个Service, B、Service只负责封装多个Connector和一个Container(Service本身不是容器,可以看做只是用来包装Connector和Container的壳&#xff0c…

户外没有电源和网络,但需要安装监控系统,怎么办?太阳能智能监控系统给你解决

近期有粉丝给小编求助:需要在没网没电的户外进行智能监控的安装,不知道如何解决。收到粉丝的问题,小编立刻联系了技术人员给出方案。针对野外、户外等场景只需使用太阳能供电模组4G摄像机视频监控EasyCVR平台智能分析网关V4的架构&#xff0c…

Leetcode—2950. 可整除子串的数量【中等】Plus(前缀和题型)

2024每日刷题(一零八) Leetcode—2950. 可整除子串的数量 算法思想 让 f ( c ) d , 其中 d 1 , 2 , . . . , 9 f(c) d, 其中d 1, 2, ..., 9 f(c)d,其中d1,2,...,9. // f(c1) f(c2) ... f(ck) / k avg // > f(c1) f(c2) ... f(ck) - …

spring中生成jwtToken字符串以及解析手写通用工具类

当前使用JWT&#xff0c;肯定得提前准备jwt相关的导入依赖。 <!-- 关于jwt 生成令牌--> <dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>${jjwt.version}</version> </dependency…

【前沿技术杂谈:开源软件】引领技术创新与商业模式的革命

【前沿技术杂谈&#xff1a;开源软件】引领技术创新与商业模式的革命 开源软件如何推动技术创新开源软件的开放性和协作精神促进知识共享和技术迭代推动关键技术的发展开源软件与新技术的融合 开源软件的商业模式开源软件的商业模式将开源软件与商业软件相结合 开源软件的安全风…

Acwing---798.差分矩阵

差分矩阵 1.题目2.基本思想3.代码实现 1.题目 输入一个 n n n 行 m m m列的整数矩阵&#xff0c;再输入 q q q 个操作&#xff0c;每个操作包含五个整数 x 1 , y 1 , x 2 , y 2 , c x1,y1,x2,y2,c x1,y1,x2,y2,c&#xff0c;其中 ( x 1 , y 1 ) (x1,y1) (x1,y1) 和 ( x …

C++——日期类

前言&#xff1a;哈喽小伙伴们&#xff0c;在上一篇文章中我们对C类与对象的前半段知识进行了简单的分享&#xff0c;其中比较重要的莫过于C类的六个默认成员函数。 所以这篇文章&#xff0c;我们通过实现一个完整的日期的操作&#xff0c;来对这些成员函数有一个更加深入的理…

nginx反向代理----->微服务网关----->具体微服务

今天&#xff0c;做项目的时候做项目的时候配路由出现bug&#xff0c;特此理顺一下从nginx到微服务网关再到微服务这一过程。 nginx配置 upstream admin-gateway{server localhost:21217; }server {listen 8803;location / {root F:/develop/admin-web/;index index.html;}…

strlen函数详解

&#x1f388;个人主页&#xff1a;甜美的江 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;c语言 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进步&a…

MATLAB实现二阶模糊逻辑控制系统仿真

1. 内容 假设某一工业过程可等效成以下二阶系统&#xff1a; 设计一个模糊控制器&#xff0c;使其能自动建立模糊规则库&#xff0c;保证控制规则如表1所示&#xff0c;这种规则可表示为&#xff1a; 式中&#xff0c;fix为取整函数&#xff1b;E为误差的模糊集&#xff1b;DE…

惯性导航---常用坐标系

惯性导航—常用坐标系 捷联惯导系统的导航解算中&#xff0c;常用到四个坐标系&#xff0c;接下来介绍四个坐标系定义及其表示符号。 1 地心惯性坐标系&#xff08;i系&#xff09; 惯性传感器的输出是以该坐标系为参考基准的。 原点X轴Z轴Y轴地球中心赤道平面内&#xff0c…

《数字化运维路线图》第三部分-数字化运维转型平台 震撼发布!

数字化转型已不再是企业追求效益最大化的手段&#xff0c;而是成为经济发展变革、提升国家数字竞争的核心动力。在此背景下&#xff0c;博睿数据继续发力&#xff0c;隆重推出「数字化运维转型平台」&#xff0c;汇聚了我们对数字化转型的深刻洞见与实践经验&#xff0c;以期为…

【android】 android->profile 查看内存泄露

目录 实例讲解 各字段解释 实例讲解 各字段解释 在 Android Studio 的 Profile 视图中&#xff0c;Arrange by Stack 用于对内存分配和释放事件进行堆栈排列&#xff0c;以便更好地了解内存使用情况。以下是表上各列的一般含义&#xff1a; 1. **Call Chart (调用图)**: …

开发桌面端应用,使用electron-vite构建项目真的是一绝!

技术栈&#xff1a;electron v28.2.1、react v18.2.0 构建工具&#xff1a;electron-vite v2.0.0 项目打包&#xff1a;electron-builder v24.9.1 本教程为项目工程的搭建&#xff0c;相关技术的知识请各自学习。 Vite在当下绝对是非常卓越的前端构建工具&#xff0c;很多项目…