p-tuing和Lora的区别

news2024/12/23 11:23:46

一、前言

自从chatgpt的爆火,也同时引发了国内大模型的热潮,像百度出了文心一言、阿里出了通义千问等,但是这些大模型并未开源,国内外开源的中等规模的模型有meta的LLaMA,斯坦福基于LLaMA微调的Alpaca,国内的chatglm,这种能够让一般的公司来做微调。现在国内一般微调比较多的模型应该是chatglm,chatglm刚出来的时候少资源情况下只能微调几层,微调效果不好,后续引入了p tuning v2的方法来少资源微调。同样还有另一种方法来微调,peft包中就集成Lora的方法,下面我会详细介绍下两种方法的区别。

二、p tuning v2

p tuning v2并不是一个新技术,而是之前用于少样本学习,少样本学习分为离散型模板连续性模板,离散性模板主要是构建文字描述模板,而连续型模板则是插入连续型token构成的模板,之前文章中我也讲述了离散型和连续型两种prompt方法。

归来仍是少年:基于prompt方法打败传统微调75 赞同 · 12 评论文章正在上传…重新上传取消

归来仍是少年:提示学习soft prompt浅尝75 赞同 · 10 评论文章

p tuning v2简单来说其实是soft prompt的一种改进,soft prompt是只作用在embedding层中,实际测试下来只作用在embedding层的话交互能力会变弱,而且冻结模型所有参数去学习插入token,改变量偏小使得效果有时候不太稳定,会差于微调。p tuning v2则不只是针对embedding层,而是将连续型token插入每一层增大改变量交互性

p tuning v2

soft prompt比较依靠模型参数量,在参数量超过10B的模型上,效果追上了fine-tune,但是p tuning v2因为每层插入了token,增大模型训练的改变量,更加适用于小一点的模型。

chatglm使用p tuning v2微调代码:

https://github.com/THUDM/ChatGLM-6B/tree/main/ptuning​github.com/THUDM/ChatGLM-6B/tree/main/ptuning

三、Lora

Lora主要在模型中注入可训练模块,大模型在预训练完收敛之后模型包含许多进行矩阵乘法的稠密层,这些层通常是满秩的,在微调过程中其实改变量是比较小的,在矩阵乘法中表现为低秩的改变,注入可训练层的目的是想下游微调的低秩改变由可训练层来学习,冻结模型其他部分,大大减少模型训练参数。

Lora结构

这种方法有点类似于矩阵分解,可训练层维度和预训练模型层维度一致为d,先将维度d通过全连接层降维至r,再从r通过全连接层映射回d维度,r<<d,r是矩阵的秩,这样矩阵计算就从d x d变为d x r + r x d,参数量减少很多,上图对矩阵�使用随机高斯初始化,对矩阵�使用0进行初始化。

推理计算的时候,因为没有改变预训练权重,所以换不同的下游任务时,lora模型保存的权重也是可以相应加载进来的,通过矩阵分解的方法参数量减少了很多,且推理时可以并行,对于推理性能并没有增加多少负担,算是比较好的低资源微调方法。

Lora方法包实现:

GitHub - huggingface/peft: PEFT: State-of-the-art Parameter-Efficient Fine-Tuning.​github.com/huggingface/peft正在上传…重新上传取消

四、总结

两者对于低资源微调大模型的共同点都是冻结大模型参数,通过小模块来学习微调产生的低秩改变。但目前存在的一些问题就是这两种训练方式很容易参数灾难性遗忘,因为模型在微调的时候整个模型层参数未改变,而少参数的学习模块微调时却是改变量巨大,容易给模型在推理时产生较大偏置,使得以前的回答能力被可学习模块带偏,在微调的时候也必须注意可学习模块不能过于拟合微调数据,否则会丧失原本的预训练知识能力,产生灾难性遗忘。

最好能够在微调语料中也加入通用学习语料一起微调,避免产生对微调语料极大的偏向,在instruct gpt论文中也提到在强化学习ppo的时候模型也会很容易对于ppo数据拟合,降低模型通用自然语言任务能力,所以在ppo loss中加入了SFT梯度和预训练梯度来缓解这种遗忘问题。

归来仍是少年:chatgpt横空出世引发的一些思考38 赞同 · 8 评论文章正在上传…重新上传取消

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

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

相关文章

小程序开发的前沿趋势和技术

在过去的一年里&#xff0c;小程序已成为移动互联网行业最热门的话题之一。小程序已经改变了许多行业。那么&#xff0c;下一个小程序开发趋势是什么&#xff1f;下面我们就来分析一下。 随着微信小程序的开放和推广&#xff0c;小程序开发企业正在大力发展并逐渐从技术方面进…

【2023最新版】黑客零基础入门(全网最全)从零基础到进阶,学完这一篇就够了

学前感言 1.这是一条需要坚持的道路&#xff0c;如果你只有三分钟的热情那么可以放弃往下看了。2.多练多想&#xff0c;不要离开了教程什么都不会&#xff0c;最好看完教程自己独立完成技术方面的开发。3.有问题多google,baidu…我们往往都遇不到好心的大神&#xff0c;谁会无…

【Qt】使用libmodbus实现ModBusTcp

这里写目录标题 下载编译使用DemoQModbusTcpClient Demo:参照:Qt自带QModbusTcpClient,换个电脑就不好使了,换libmodbus 下载 可以去github下载 链接: https://pan.baidu.com/s/13lgEZ59Dt5M7zmTJNpfKvg?pwd=yzfm 提取码: yzfm 下载libmodbus 并解压 编译 进入该目录下…

智造零距离:工程师走访华秋深圳 PCB 工厂,观摩高可靠板制造流程

6月11日&#xff0c;来自硬十、是德、灵明光子、兆易创新、汇顶科技、中诺通讯等公司的近20位工程师走访了华秋深圳PCB工厂。华秋工艺经理余宁带领考察团参观了工厂的生产线&#xff0c;近距离观摩了PCB的制造流程。 参观环节正式开始前&#xff0c;工厂安排专家介绍PCB制造的详…

SpringBatch从入门到实战(四):执行上下文和单步骤重启

一&#xff1a;执行上下文 1.1 JobContext 作业上下文 JobContext 绑定 JobExecution 执行对象&#xff0c;为Job作业执行提供执行环境(上下文)。 1.2 StepContext 步骤上下文 StepContext 绑定 StepExecution 执行对象&#xff0c;为Step步骤执行提供执行环境(上下文)。 1…

Ansible playbook ----- 剧本

playbooks 本身由以下各部分组成 &#xff08;1&#xff09;Tasks&#xff1a;任务&#xff0c;即通过 task 调用 ansible 的模板将多个操作组织在一个 playbook 中运行 &#xff08;2&#xff09;Variables&#xff1a;变量 &#xff08;3&#xff09;Templates&#xff1a;模…

Ubuntu 20.04 LTS 安装教程

Ubuntu 20.04 LTS 以及必要软件的安装教程 1、Ubuntu 系统下载2、制作U盘安装盘3、安装Ubuntu系统4、必要软件安装4.1、调整系统时间4.2、安装搜狗中文输入法4.3、anaconda 安装4.4、安装 terminator4.4、安装 nvidia 驱动 1、Ubuntu 系统下载 官方桌面版下载&#xff1a;https…

电力监控系统软件的设计与功能介绍

安科瑞虞佳豪 风吹麦浪&#xff0c;炎夏将至。随着气温节节攀升&#xff0c;社会用电需求越来越大&#xff0c;给电网安全和电力供应带来挑战。国网诸城市供电公司扛牢电力保供责任&#xff0c;迎难而上&#xff0c;筑牢强电网、保安全、防大汛“三部曲”&#xff0c;全力保障…

数据库优化可以从哪些维度入手?(建议收藏)

当有人问你如何对数据库进行优化时&#xff0c;很多人第一反应想到的就是SQL优化&#xff0c;如何创建索引&#xff0c;如何改写SQL&#xff0c;他们把数据库优化与SQL优化划上了等号。 当然这不能算是完全错误的回答&#xff0c;只不过思考的角度稍微片面了些&#xff0c;太“…

还在争论WPS、Office哪个更好用?3款云办公平台深度评测!

随着当下智能化产业发展&#xff0c;办公系统也逐渐升级。像答主所在公司就已经使用了简道云办公平台&#xff0c;真正实现无纸化办公&#xff0c;极大地提升了工作效率。什么是云办公平台&#xff1b;相较于传统办公平台&#xff0c;云办公平台又哪些独特的优势呢&#xff0c;…

Vue-props配置

props配置 像el&#xff0c;data&#xff0c;watch&#xff0c;methods…都是vue的配置项&#xff0c;props也是一个配置项 props主要用来实现组件复用&#xff0c;并且动态绑定数据,它有3种使用方式&#xff0c;下面一一说明 通过案例进行分析使用props配置学习如何使用以及…

手写STM32IIC协议

本文使用正点原子战舰v4开发板&#xff0c;用软件模拟iic协议而非使用硬件iic。 STEP1&#xff1a; 定义、声明引脚功能。我们用PB6、PB7模拟IIC的SCL、SDA。另外定义IO方向 #define IIC_SCL PBout(6) //SCL #define IIC_SDA PBout(7) //SDA #define READ_SDA PBin(7…

chatgpt赋能python:Python绘制彩色蟒蛇-让你的绘图更加有趣

Python绘制彩色蟒蛇-让你的绘图更加有趣 如果你是一名喜欢使用Python语言进行绘图的程序员&#xff0c;你可能会遇到无聊的绘图任务&#xff0c;这时候你就需要一个有趣的绘图项目来激发你的创造力。在本文中&#xff0c;我将介绍如何使用Python代码绘制一条彩色的蟒蛇&#x…

Unity与Android交互(3)——需要了解的Andorid基础知识

【前言】 在上一篇文章中只是说了如何实现unity和android交互的问题&#xff0c;要了解其中的原理还必须要先了解一些Android的基础知识&#xff0c;了解后也能搞清楚如何接入SDK或者写Native插件。 &#xff08;以下只是简要介绍&#xff0c;详细的内容需要自己去看链接&…

Oracle 查询优化改写(第四章)

第四章 插入、更新与删除 1.阻止对某几列插入 2. 用with check option 限制数据录入 当约束条件比较简单时&#xff0c;可以直接加在表中&#xff0c;如工资必须大于0&#xff1a; alter table emp add constraint ch_sal check(sal>0) 但有些复杂或特殊的约束条件是不能…

MySQL高级篇-索引分析与优化、数据库锁机制与主从复制

MySQL高级 基于MySQL版本5.5 MySQL的架构介绍 MySQL简介 概述 MySQL是一个关系型数据库管理系统&#xff0c;由瑞典MySQL AB公司开发&#xff0c;目前属于Oracle公司。 MySQL是一种关联数据库管理系统&#xff0c;将数据保存在不同的表中&#xff0c;而不是将所有的数据放在…

化工企业针对消防安全的具体防火对策介绍 安科瑞 许敏

摘要&#xff1a;我们国家对化工企业的消防安全问题是非常关注的&#xff0c;而且化工企业当中生产的产品都是具有危险性的&#xff0c;极容易发生爆炸等危险事故&#xff0c;所以化工企业出现泄漏就会产生严重后果。下面这篇文章我们就对化工企业的消防安全问题进行具体的探讨…

机器人视觉梳理(下)

原创 | 文 BFT机器人 03 机器人3D视觉应用案例 1.波士顿动力Atlas Atlas 使用 TOF 深度相机以每秒 15 帧的速度生成环境的点云&#xff0c;点云是测距的大规模集合。Atlas 的感知软件使用一种名为多平面分割的算法从点云中提取平面。多平面分割算法的输入馈入到一个映射系统…

Linux运维监控学习笔记3

通过Zabbix-agent监控远程主机 1、在agent1上安装abbix-agent包&#xff1a; yum install -y zabbix-agent 2、配置zabbix-agent端的配置文件&#xff0c;启动服务器并进行开机自启动配置&#xff1a; vim /etc/zabbix/zabbix-agentd.confServer192.168.17.11 # 被动模式s…

【数据分析】如何使用docker部署程序并移植(算法、接口)

原文作者&#xff1a;我辈李想 版权声明&#xff1a;文章原创&#xff0c;转载时请务必加上原文超链接、作者信息和本声明。 文章目录 前言一、Docker的基本使用1.安装Docker2.列出本地镜像3.获取镜像,创建本地ubuntu:13.10镜像4.查找镜像5.删除本地镜像6.创建自定义镜像7.镜像…