大模型微调方法汇总

news2024/11/25 0:34:44

微调方法

  • 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.coloradmin.cn/o/1672001.html

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

相关文章

2024第八季完美童模 【星光】品牌赛区 【直通】赛 完美收官

2024年5月1日,春风徐徐的【星光品牌赛区】热闹非凡,备受瞩目的第八季完美童模【星光品牌赛区】赛区【直通赛】在这一天正式拉开了帷幕。比赛现场,童模们身着华服,在舞台上演绎了“亚特兰蒂斯”的时尚主题赛。 参赛选手们身着带有海…

新店2个月盈利6万,就是因为做对了这六个步骤,教你正确起店步骤

大家好,我是电商花花。 2024年依然能做抖音小店,因为就按照我们这边团队的实操经验来看。 抖音小店不仅可以做,而且即便是新手小白也可以做,只要掌握抖音小店背后的运营方法和起店步骤,就能很快出单并做起来。 今天…

【Linux】Linux安装JDK

一、卸载Linux自带的JDK #查询已有的JDK rpm -qa | grep jdk ①将查询到的JDK全部卸载掉 #直接复制一整行的JDK名称 yum -y remove java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64 ②卸载完第一个后再次查询 ③继续卸载,卸载完成后再次查询 ④查询…

如何将draw.io的图导入word

解决办法(有点点复杂) 先在http://draw.io导出格式为svg矢量图格式,然后用visio打开svg,调整完界面等等之后再保存,然后在word里面插入visio

simulink-仿真以及PID参数整定/PID tuner 的使用流程

控制器搭建与参数整定 搭建一个前馈PID控制器控制系统PID tuner使用 一个懂点控制但不多的小白,因为需要利用simulink仿真,所以不得不学习一些仿真的知识,这篇文章适合和我一样的新手入门,有理解错误的地方希望大手们能够指出来共…

volatile详解、原理

文章目录 一、Volatile的定义和作用1.1 Volatile简介1.2 Volatile作用 二、并发编程中的三个问题:可见性、原子性、有序性二、Java内存模型(JMM)三、volatile变量的特性3.1 线程可见性3.2 禁止重排序禁止重排序原理禁止重排序举例 3.3 volati…

七、e2studio VS STM32CubeIDE之显示中文编码

目录 一、概述/目的 二、查看和修改文件编码 三、eclipse编码格式 3.1 优先级 3.1.1 全局workspace 3.1.2 工程 3.1.3 文件 3.1.4 全局文件的content type 二、STM32CubeIDE设置显示中文编码 二、e2studio设置显示中文编码 七、e2studio VS STM32CubeIDE之显示中文编…

【Linux】网络接口绑定和组合的操作实例

网络接口绑定和组合的操作实例 (一)网卡1. 增2. 查3. 激活——设置网络接口 (二)网络接口绑定1. 概述2. 实验操作3. 删除绑定 (三)网络接口组合1. 概述2. 实验操作 (一)网卡 1. 增 …

第十五篇:全面防护:构建不容侵犯的数据库安全策略与实战指南

全面防护:构建不容侵犯的数据库安全策略与实战指南 1. 引言:数据库安全的现代战略 1.1 简介:数据库安全在当今的数字化时代中的重要性 在数字化的浪潮中,数据已成为企业乃至国家的核心资产,其价值不亚于实体世界的黄…

【JavaEE初阶系列】——博客系统(编写服务器/前后端交互代码)

目录 🚩部署页面需求 🚩准备工作 🚩获取博客列表页 🚩博客详情页 🚩实现登录页面 🎈强制要求登录 🎈显示用户信息 🚩退出登录 🚩发布博客 🚩部署页面…

5.nginx常用命令和日志定时切割

一. nginx常用的相关命令介绍 1.强制关闭nginx: ./nginx -s stop 2.优雅的关闭nginx: ./nginx -s quit 3.检查配置文件是否正确: ./nginx -t 4.查看nginx版本: ./nginx -v 5.查看nginx版本相关的配置环境信息:./nginx -V 6.nginx帮助信…

Lists.partition用法详解

文章目录 一、引入依赖二、用法三、输出 一、引入依赖 依赖于谷歌的guava 包 <!-- guava --><dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>28.1-jre</version></dependency&…

C++语法|volatile关键字!从CPU角度进行理解

个人认为C有着复杂、臃肿的语法系统&#xff0c;但是也正是因为这些特性&#xff0c;让我们在使用C时既能深入到操作系统级的控制&#xff0c;也能抽象出来完全专注于一些业务问题。 这里为大家推荐一本书和汇编代码阅读网站&#xff01; 《CPU眼里的C/C》 Compiler Explorer 我…

ssm+vue的公务用车管理智慧云服务监管平台查询统计(有报告)。Javaee项目,ssm vue前后端分离项目

演示视频&#xff1a; ssmvue的公务用车管理智慧云服务监管平台查询统计&#xff08;有报告&#xff09;。Javaee项目&#xff0c;ssm vue前后端分离项目 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&…

GCP谷歌云有什么数据库类型,该怎么选择

GCP谷歌云提供的数据库类型主要包括&#xff1a; 关系型数据库&#xff1a;这类数据库适用于结构化数据&#xff0c;通常用于数据结构不经常发生变化的场合。在GCP中&#xff0c;关系型数据库选项包括Cloud SQL和Cloud Spanner。Cloud SQL提供托管的MySQL、PostgreSQL和SQL Se…

高效项目管理:如何利用zz-plan在线甘特图工具

作为项目管理人员&#xff0c;使用 zz-plan https://zz-plan.com/这样的在线甘特图协作软件可以极大地提高项目管理的效率和效果。以下是结合zz-plan特点的一些关键步骤&#xff1a; 1. 制定项目计划 在zz-plan上创建新的项目&#xff0c;定义项目目标、关键里程碑和最终期限。…

【数据可视化01】matplotlib实例介绍2

目录 一、引言二、实例介绍1.箱线图2.热力图3.线条形式 一、引言 接着上一文章【数据可视化01】matplotlib实例介绍1继续介绍matplotlib的实例。 二、实例介绍 在matplotlib中&#xff0c;常用的图形类型包括&#xff1a; 箱线图&#xff08;Box plot&#xff09;&#xff1…

d17(154-168)-勇敢开始Java,咖啡拯救人生

目录 方法递归 字符集 编码-解码 IO流 字节流 字节输入流 InputSream FileInputStream 字节输出流 OutputSream FileOutputSream 释放资源的方式 try-catch-finallly try-with-resource 字符流 字符输入流 Reader FileReader 文件字符输出流 Writer FileWriter …

(done) 什么是马尔可夫链?Markov Chain

参考视频&#xff1a;https://www.bilibili.com/video/BV1ko4y1P7Zv/?spm_id_from333.337.search-card.all.click&vd_source7a1a0bc74158c6993c7355c5490fc600 如下图所示&#xff0c;马尔可夫链条实际上就是 “状态机”&#xff0c;只不过状态机里不同状态之间的边上是 “…

李廉洋:5.13黄金原油美盘行情分析,必看策略。

黄金消息面分析&#xff1a;机构最新调查中的一些受访者表示&#xff0c;美国最大的科技股不仅是对创新行业的押注&#xff0c;而且可能是对冲通胀的工具。46%的受访者表示&#xff0c;数十年来一直是避险之选的黄金仍被视为抵御价格上涨风险的最佳保障。但近三分之一的人表示&…