大模型微调方法

news2024/12/23 16:47:12

下面是一些参数高效的微调大模型方法:

Adapter

模型总览

Adapter

Adapter作为一个插件加入到大模型内,微调下游任务时,固定大模型参数,只训练Adapter参数。

LoRA

LoRA名为大语言模型的低阶适应,最初设计用于微调LLM,但却在文生图领域大放异彩,并逐渐被人数知。其思想跟ResNet非常相似,通过在大模型旁侧添加一路分支,冻结大模型参数,学习分支参数(也即残差),达到微调效果。

模型总览

lora

formula

如果 Δ W \Delta W ΔW W 0 W_0 W0 一样,也是 R d × d \mathbb{R}^{d \times d} Rd×d,那么残差学习同样需要训练大量的参数,并没有达到参数高效的目标。而在我们学习中,常用的减少矩阵参数大小方法就是矩阵分解,因此作者对输入先降采样,再上采样,实现输入与输出维度一致。

Prefix-Tuning

该方法主要用来做NLG任务(Table-to-text Generation、 Summarization),在输入token之前构造一段任务相关的virtual tokens作为Prefix,然后训练的时候只更新Prefix部分的参数,而大模型参数冻结。

模型总览

prefix tuning

Prefix tokens初始化如下:

init

需要注意的是,在低资源场景下,用任务相关的单词来初始化prefix tokens,效果更好:

words

Prompt-tuning

Prompt-Tunning算是prefix-Tunning的简化版本,面向NLU任务,进行了更全面的效果对比,并且在大模型上成功打平了LM微调的效果。

模型总览

prompt tuning

  • 初始化:Prompt-tuning在输入层前置多个可训练的tokens,固定住大模型参数。实验结果表明用类标签来初始化prompts效果最好。
  • prompt ensembling:针对同一个任务,构造多个不同的prompts,就相当于训练了多个模型。

ensemble

Prompt-tuning 与 Prefix-Tuning 不同

  • 两者的基座模型不同,一个是T5,一个是BART和GPT2
  • 前者关注NLU,后者关注NLG
  • 前者参数更少,只需微调embeding层;后者需要微调所有层embedding,以及需要在输入层之后接一个MLP来稳定训练

P-tuning V1 & P-tuning V2

P-tuning主要用GPT来做NLU任务,达到甚至超过BERT同等水平。

模型总览

v1

v1做了如下两点优化:

  • 考虑到预训练模型本身的embedding就比较离散了(随机初始化+梯度传回来小,最后只是小范围优化),同时prompt本身也是互相关联的,所以作者先用LSTM对prompt进行编码。
  • 在prompt模板中,加入一些anchor tokens效果会更好。

v2主要是在大模型的每一层加入可训练prompts:

v2


参考

  • 解密Prompt系列3. 冻结LM微调Prompt: Prefix-Tuning & Prompt-Tuning & P-Tuning
  • Prompt范式第二阶段|Prefix-tuning、P-tuning、Prompt-tuning
  • 大模型参数高效微调技术原理综述(四)-Adapter Tuning及其变体

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

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

相关文章

面向未来的服务网格发展:展望服务网格技术未来的发展方向和趋势

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

RocketMQ 发送顺序消息

文章目录 顺序消息应用场景消息组(MessageGroup)顺序性生产的顺序性MQ 存储的顺序性消费的顺序性 rocketmq-client-java 示例(gRPC 协议)1. 创建 FIFO 主题生产者代码消费者代码解决办法解决后执行结果 rocketmq-client 示例&…

Nginx配置负载均衡时访问地址无法生效

场景还原 今天有小伙伴练习Nginx配置负载均衡时总是无法使用配置好的网址访问 配置文件信详情 http {# 负载均衡 后端IP地址和端口 webservers 策略 轮询upstream webservers{server 192.168.1.100:8080 weight90; server 127.0.0.1:8080 weight10; }server{listen 80;ser…

基于Java+SpringBoot+Vue的旧物置换网站设计和实现

基于JavaSpringBootVue的旧物置换网站设计和实现 源码传送入口前言主要技术系统设计功能截图数据库设计代码论文目录订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码传送入口 前言 摘 要 随着时代在一步一步在进步,旧物也成人们的烦恼,…

深度学习中安装了包但是依然导入(import)失败这一问题,例如pytorch环境下已经安装了scikit-learn但是import不了

在跑深度学习模型的时候我们要先搭建pytorch环境,这个环境跟windows环境是不同的,我们默认在windows中安装的包在当前的虚拟环境中读取不到,所以导致我们明明安装了包但是依然在实际的导入中(import)报错。解决办法就是我们去虚拟环境中安装包…

使用Scrapy构建高效的网络爬虫

💂 个人网站:【工具大全】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 Scrapy是一个强大的Pyth…

电脑怎么取消磁盘分区?

有时候,我们的电脑会出现一个磁盘爆满,但另一个却空着,这时我们可以通过取消磁盘分区来进行调整,那么,这该怎么操作呢?下面我们就来了解一下。 磁盘管理取消磁盘分区 磁盘管理是Windows自带的磁盘管理工具…

展会动态 | 迪捷软件邀您参加2023世界智能网联汽车大会

*9月18日之前注册的观众免收门票费* 由北京市人民政府、工业和信息化部、公安部、交通运输部和中国科学技术协会联合主办的2023世界智能网联汽车大会将于9月21日-24日在北京中国国际展览中心(顺义馆)举行。 论坛背景 本届展会以“聚智成势 协同向新——…

论文阅读 - Natural Language is All a Graph Needs

目录 摘要 Introduction Related Work 3 InstructGLM 3.1 Preliminary 3.2 Instruction Prompt Design 3.3 节点分类的生成指令调整 3.4 辅助自监督链路预测 4 Experiments 4.1 Experimental Setup 4.2 Main Results 4.2.1 ogbn-arxiv 4.2.2 Cora & PubMed 4.…

类似东郊到家上门按摩小程序/包括商家入驻、服务查询、订单管理、用户评价等

类似东郊到家上门按摩小程序,简单前端模版。覆盖产品,订单,技师,招聘,充值,优惠等功能。 东郊到家小程序同城预约上门小程序的功能非常齐全,包括商家入驻、服务查询、订单管理、用户评价等&…

全国职业技能大赛云计算--高职组赛题卷④(私有云)

全国职业技能大赛云计算--高职组赛题卷④(私有云) 第一场次题目:OpenStack平台部署与运维任务1 基础运维任务(5分)任务3 OpenStack云平台运维(15分)任务4 OpenStack云平台运维开发(1…

数据结构——八叉树

八叉树(Octree)是一种用于表示和管理三维空间的树状数据结构。它将三维空间递归地分割成八个八分体(octant),每个八分体可以继续分割,以实现对三维空间的更精细的划分。八叉树通常用于解决空间搜索和查询问…

高级深入--day27

Scrapy 框架 Scrapy是用纯Python实现一个为了爬取网站数据、提取结构性数据而编写的应用框架,用途非常广泛。 框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常之方便。 Scrapy 使用了 Twisted[twɪstɪd](其主要对手是T…

如何下载安装 WampServer 并结合 cpolar 内网穿透,轻松实现对本地服务的公网访问

文章目录 前言1.WampServer下载安装2.WampServer启动3.安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3.4 创建公网地址 4.固定公网地址访问 前言 Wamp 是一个 Windows系统下的 Apache PHP Mysql 集成安装环境,是一组常用来…

jvm中对象创建、内存布局以及访问定位

对象创建 Java语言层面,创建对象通常(例外:复制、反序列化)仅仅是一个new关键字即可,而在虚拟机中,对象(限于普通Java对象,不包括数组和Class对象等)的创建又是怎样一个过…

基于SSM的电动车租赁网站设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

竞赛 基于深度学习的人脸专注度检测计算系统 - opencv python cnn

文章目录 1 前言2 相关技术2.1CNN简介2.2 人脸识别算法2.3专注检测原理2.4 OpenCV 3 功能介绍3.1人脸录入功能3.2 人脸识别3.3 人脸专注度检测3.4 识别记录 4 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于深度学习的人脸专注度…

Kotlin Coroutines包下的select函数简介

在工作中,发现了kotlin Coroutines包下有大量功能非常强大的API,这篇文章中,我们主要来聊一聊select函数 1. 什么是select函数 想象一下这个场景,在程序应用中,为了实现一个业务逻辑,你可能有好几种方式来…

石河子大学《乡村振兴战略下传统村落文化旅游设计》许少辉博士新著——2023学生开学季辉少许

石河子大学《乡村振兴战略下传统村落文化旅游设计》许少辉博士新著——2023学生开学季辉少许

LLM预训练之RLHF(一):RLHF及其变种

在ChatGPT引领的大型语言模型时代,国内外的大模型呈现爆发式发展,尤其是以年初的LLaMA模型为首的开源大模型和最近百川智能的baichuan模型,但无一例外,都使用了「基于人类反馈的强化学习」(RLHF)来提升语言…