大模型微调方法汇总

微调方法

  • Freeze方法
  • P-tuning方法
    • prefix-tuning
    • Prompt Tuning
    • P-tuning v1
    • P-tuning v2
  • Lora方法
    • 重要相关参数
    • LoRA 的优势
  • Qlora方法
    • 相关参数
  • 微调经验
    • 模型选择
    • 模型大小选择
    • 数据处理
    • 微调方案
    • 英文模型需要做词表扩充吗?
    • 如何避免灾难遗忘
    • 大模型的幻觉问题
    • 微调后的输出有重复问题的原因和解决方法?

参考:https://blog.csdn.net/dzysunshine/article/details/131590701


*P-tuning 微调方法是一种基于随机梯度下降(SGD)的方法,它通过动态地调整学习率,使其随着时间的推移逐渐降低,从而使得模型能够更好地收敛
P-Tuning v2的**原理是通过对已训练好的大型语言模型进行参数剪枝,得到一个更加小巧、效率更高的轻量级模型**。具体地,P-Tuning v2首先使用一种自适应的剪枝策略,对大型语言模型中的参数进行裁剪,去除其中不必要的冗余参数。然后,对于被剪枝的参数,P-Tuning v2使用了一种特殊的压缩方法,能够更加有效地压缩参数大小,并显著减少模型微调的总参数量。https://zhuanlan.zhihu.com/p/629327372*

以下是三种微调技术的简要介绍和原理说明:

1. **LoRA (Low-Rank Adaptation)**:
   - **原理**:LoRA 是基于矩阵分解的思想,将模型的参数分解为两个低秩矩阵的乘积。具体来说,它将模型的权重 \( W \) 表示为一个低秩矩阵 \( L =B*A\) 和一个剩余矩阵 \( W \) 的乘积,即 \( W ' = B*A + W \)。其中,\( L \) 是一个可训练的低秩矩阵,而 \( R \) 是原始的预训练权重矩阵。通过这种方式,LoRA 能够以较少的参数改变原始模型的权重,从而实现对模型的微调。
  
2. LoRA执行步骤是什么?LoRA的实现流程概况如下:
    -  在原始预训练语言模型(PLM)旁增加一个旁路,做一个先降维再升维的操作,以此来模拟所谓的内在秩;
    -  训练的时候固定PLM的参数不变,只训练降维矩阵A和升维矩阵B,即优化器只优化右路的参数;
    -  模型的输入、输出维度不变,左右两边共用模型的输入,输出时将 PLM 与 A-B的输出叠加;
    -  用随机高斯分布初始化A,用全零矩阵初始化B。矩阵B的全零初始化,使得在训练最开始的一段时间,右路的结果会接近于0,这样模块的输出就基本上来自于左路,也就是大模型原有参数的计算结果,这使得模型优化的初始点就和原始的大模型保持一致。
    - 该方法通过低秩分解来模拟参数的改变量,从而以极小的参数量来实现大模型的间接训练。

2. **P-tuning v2**:
   - **原理**:P-tuning v2 是一种基于prompt的微调方法,它通过在模型的输入中添加一个可训练的prompt向量来调整模型的行为。在这种方法中,模型的权重在微调过程中保持不变,而是通过改变输入的prompt来适应新的任务。Prompt 通常是一个学习到的向量,它可以被看作是一个任务特定的偏置项,它引导模型朝着特定任务的方向进行预测。
   - 在使用P-tuning v2或类似的基于prompt的微调方法时,通常会根据问题的类型或内容为每个不同的问题设计不同的prompt向量。Prompt在这里作为一个条件或引导,帮助模型更好地理解和适应特定的任务。

3. **QLoRA**:
   - **原理**:QLoRA 是 LoRA 的一个变种,它结合了量化和低秩适应的概念。在QLoRA 中,模型的权重不仅通过低秩矩阵进行调整,而且还通过量化技术进一步减少参数的数量。**量化是一种减少模型精度要求的技术,它将权重的值从浮点数转换为更低位的表示,从而减少模型的存储和计算需求**。通过结合低秩适应和量化,QLoRA 能够在保持模型性能的同时,显著降低模型的参数量和计算成本。QLoRA的量化过程可能仅针对这些新增的、可训练的低秩矩阵参数,而不是原始的预训练模型参数。

        LoRA和QLoRA适合于需要在资源受限的设备上部署大型模型的情况,而P-tuning v2和Prompt Tuning则适合于快速适应新任务而不需要显著增加计算负担的情况。

这三种技术都是为了在保持模型性能的同时减少微调过程中的参数更新数量,从而减少计算资源的消耗。LoRA 通过低秩矩阵调整权重,P-tuning v2 通过改变输入prompt来引导模型,而QLoRA 结合了这两种技术并通过量化进一步压缩模型。每种技术都有其特定的应用场景,研究者可以根据任务的具体需求和资源限制来选择最合适的微调策略。

https://cloud.tencent.com/developer/article/2302701
人工智能大语言模型SFT 监督微调:、LoRA 微调方法、P-tuning v2 微调方法、Freeze 监督微调方法原创

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

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

相关文章

戴尔数据泄露影响近五千万用户,数据保护应该得到重视

据BleepingComputer报道,电脑制造商戴尔因网站漏洞遭黑客入侵,约4900万用户信息疑遭泄露。根据黑客发布的销售帖子,泄露数据最多的前五个国家分别是美国、中国、印度、澳大利亚和加拿大。 据BleepingComputer报道,电脑制造商戴尔因…

Nios实验使用串口输出“Hello Nios-II”字符到笔记本电脑

目录 实验过程 创建工程 修改程序 编译工程 运行项目 效果实现 总结 参考 实验过程 硬件设计见博主上篇博客 软件部分设计 下面使用 Nios II Software Build Tools for Eclipse 来完成当前项目的软件开发。 启动 Nios II SBT 按照下图所示点击 Nios II Software Build…

编码器介绍与应用

一.概述 1.编码器 编码器,是一种用来测量机械旋转或位移的传感器。这种传感器能够测量机械部件在旋转或直线运动时的位移位置或速度等信息,并将其转换成一系列电信号。其可和电机组装到一起用,反馈电机方向、转换角度的,然后电机…

数据结构——循环队列(数组)

一、循环队列的定义 二、循环队列图示 三、循环队列使用规则 为解决队满和队空的判断条件相同。 我们 采用 损失一个单元不用的方法 即当循环队列元素的个数是MAXSIZE-1时,就认为队列已满(front指向空的单元) 这样循环队列的队满条件就变…

Spring框架深度解析:打造你的Java应用梦工厂

想要在Java企业级应用开发中大展身手?Spring框架的核心容器是你不可或缺的伙伴! 文章目录 一. 引言1.1 介绍Spring框架的重要性1.2 阐述核心容器在Spring框架中的作用1.3 故事开端 二. 背景介绍2.1 描述Spring框架的发展历程2.2 概述Spring框架的主要特点…

汇昌联信:拼多多入驻条件是哪些?

在电商领域,拼多多以其独特的团购模式迅速崛起,吸引了众多商家的目光。想要在拼多多上开店,了解其入驻条件是必不可少的第一步。下面将详细解读拼多多的入驻条件,帮助有意加入的商家们做好准备。 一、企业资质要求 想要成功入驻拼…

vmware16下的ubuntu使用记录

设置ubuntu共享文件夹 cd /mnt/hgfs/ ls ls (列出当前目录下的文件的名字)(路径就是路径下的文件名字) windows传文件到linux 共享文件夹 复制文件到LinuxShare文件夹 拖拽文件 添加成功 拍摄快照 用于恢复之前某个时间点的状态

Java抽象类:为何它是你代码架构的基石?

目录 1、抽象类的概念 2、抽象类语法 3、抽象类特性 4、抽象类的作用 5、 完结散花 个人主页:秋风起,再归来~ 文章专栏:javaSE的修炼之路 个人格言:悟已往之不谏,知来者犹可追 克…

彩虹易支付用户中心美化主题 模版源码

简介: 彩虹易支付用户中心美化主题 模版源码 使用本主题前请备份官方版本文件再进行解压到user目录替换! 点击下载

SSH远程管理 远程访问及控制

SSH远程管理 SSH(Secure Shell) 是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功 能。SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。与早 期的 Telent (远程登录)、RSH(Remote Shell, 远程执行命…

嗨动PDF编辑器适合你的pdf编辑器,试试吧!

pdf编辑器有哪些?在数字化办公日益普及的今天,PDF文档因其跨平台、高保真度的特性而备受欢迎。无论是工作汇报、学术研究还是日常学习,我们都需要对PDF文档进行编辑、修改和整理。然而,如何选择合适的PDF编辑器却成了许多人头疼的…

vue3实战Easy云盘(一):创建项目+登录注册页面+构建框架页+上传头像/修改密码/退出登录

一、创建项目 1.创建项目 2.安装各种依赖 npm install highlightjs/vue-plugin moefe/vue-aplayer aplayer axios docx-preview dplayer element-plus highlight.js js-md5 sass sass-loader spark-md5 vue-clipboard3 vue-cookies vue-pdf-embed vue-router …

Linux系统(CentOS)下安装配置 Nginx 超详细图文教程

一、下载并安装 1.打开nginx官网并点击右侧的download,Nginx官网下载地址 2.选择稳定版本 我放在/usr/local/nginx/下,新建文件夹 mkdir /usr/local/nginx/ 通过xftp传输到Linux的服务器上,这里方法不过多复述。 或者如果Linux联网&#xf…

Hystrix服务熔断

服务熔断 熔断机制是应对雪崩效应的一种微服务链路保护机制。当某个微服务不可用或者响应时间太长时, 会进行服务降级,进而熔断该节点微服务的调用,快速返回“错误”的响应信息。当检测到该节点微 服务调用响应正常后恢复调用链路。 在Spri…

鸿蒙开发:【从TypeScript到ArkTS的适配规则】

从TypeScript到ArkTS的适配规则 ArkTS通过规范约束了TypeScript(简称TS)中过于灵活而影响开发正确性或者给运行时带来不必要额外开销的特性。本文罗列了所有在ArkTS中限制的TS特性,并提供了重构代码的建议。ArkTS保留了TS大部分的语法特性&a…

半监督的GCN:Semi-Supervised Classification With Graph Convolutional Networks

Semi-Supervised Classification With Graph Convolutional Networks -Theophilus Siameh-2017(2023) 思路 使用可扩展方法对图进行半监督学习,其中CNN应用在图数据上,得到GCN。 这种方法是在图的边的数量上进行线性的缩放模型,并学习包含局部图结构和图节点的几个隐藏层…

红米Turbo3小米平板6SPro澎湃OS系统强解BL锁-跳小米社区绑定-刷ROOT权限

红米Turbo3小米平板6SPro这2款设备都出厂为澎湃OS系统,官方提供都是小米社区申请解锁权限,然后自己答题解锁,门槛非常高,想要玩机root的用户,都在堵在门外。还在这目前这两款机型官方并没有加入强制验证,在…

【深度学习实战(33)】训练之model.train()和model.eval()

一、model.train(),model.eval()作用? model.train() 和 model.eval() 是 PyTorch 中的两个方法,用于设置模型的训练模式和评估模式。 model.train() 方法将模型设置为训练模式。在训练模式下,模型会启用 dropout 和 batch norm…

pytorch常用内置loss函数与正则化技术(补充小细节)

文章目录 前言一、常用损失函数(后面用到了新的会一一补充)1.1 回归中的损失函数1.1.1 nn.MSELoss()示例1:向量-向量示例2:矩阵--矩阵(维度必须一致才行)1.2 分类中的损失函数1.2.1 二分类(1)nn.BCELoss --- 二分类交叉熵损失函数示例1:向量-向量示例2:矩阵--矩阵(维…

基于SSM的“基于协同过滤的在线通用旅游平台网站”的设计与实现(源码+数据库+文档)

基于SSM的“基于协同过滤的在线通用旅游平台网站”的设计与实现(源码数据库文档) 开发语言:Java 数据库:MySQL 技术:SSM 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统主界面 景点信息界面 后台界面 部分源码…