大模型微调方法汇总

微调方法

  • 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 监督微调方法原创

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL表的增删查改【基础部分】

数据表的操作 新增 普通插入 insert into 表名 values(值,值...)注意: 此处的值要和表中的列相匹配 使用’‘单引号或者”“双引号来表示字符串 mysql> insert into student values(123,zhangsan); Query OK, 1 row affected (0.02 sec)指定列插入 insert …

搜索引擎的设计与实现(二)

目录 3 搜索引擎的基本原理 3.1搜索引擎的基本组成及其功能 l.搜索器 (Crawler) 2.索引器(Indexer) 3.检索器(Searcher) 4.用户接口(UserInterface) 3.2搜索引擎的详细工作流程 4 系统分析与设计 4.1系统分析 4.2系统概要设计 4.2系统实现目标 前面内容请移步 搜索引…

苍穹外卖Day06笔记(复习了jwt的加密解密和传递)

疯玩了一个月,效率好低,今天开始捡起来苍穹外卖~ 1. 为什么不需要单独引入HttpClient的dependency? 因为我们在sky-common的pom.xml中已经引入了aliyun-sdk-oss的依赖,而这个依赖低层就引入了httpclinet的依赖,根据依…

06、SpringBoot 源码分析 - SpringApplication启动流程六

SpringBoot 源码分析 - SpringApplication启动流程六 初始化基本流程SpringApplication的prepareEnvironment准备环境SpringApplication的getOrCreateEnvironment创建环境configureEnvironment配置环境ApplicationConversionService的getSharedInstance配置转换器 SpringApplic…

LLVM中期报告

1.主要开展的工作 研究对LLVM IR层面进行代码混淆,分析IR的指令 ,并且实现混淆 从LLVM代码混淆的角度出发,函数之间的正常调用构成了待混淆程序的原始控制流,不同的基础代码块构成了一个个的函数,每个基础…

PyQt6--Python桌面开发(12.QpushButton按钮控件)

一.按钮类控件 二.QpushButton按钮控件 2.1QAbstractButton类属性 2.2QpushButton类属性

Git系列:Git Stash临时保存与恢复工作进度

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

ncs sdk nrf5340 运行DFU

nrf5340 运行DFU 1. dfu介绍 Nordic 的 DFU(Device Firmware Update)是一种用于更新设备固件的技术和协议。Nordic Semiconductor 是一家专门设计和制造无线芯片的公司,他们的产品主要用于物联网(IoT)和无线连接应用…

无线网卡网络老断网

无线网卡网络老断网 设置 Intel AX210 无线网卡 路由器华为 AX3 问题及解决 问题 无线网卡连接到 wifi ,连接不通,或者连接上后网络很慢,延时大,掉包。 解决方案 调整如下界面,调整信道后,连接正常。…

Springboot HelloWorld

新建一个maven工程 引入依赖项 <modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.11.RELEASE</version><…

armbian 安装libreoffice 转换word为PDF

安装libreoffice sudo apt-get install libreoffice安装JVM sudo apt-get install default-jre #验证 java -version尝试转换&#xff1a; libreoffice --convert-to pdf /root/printFiles/f.docx发现问题乱码 从Windows 拷贝字体到debian上&#xff0c;windows字体路径是&a…

Postman基础功能-断言与日志

若能脱颖而出&#xff0c;何必苦苦融入。大家好&#xff0c;在 API 测试的领域中&#xff0c;Postman 是一款极为强大且广泛使用的工具。其中&#xff0c;断言和日志调试功能扮演着至关重要的角色。 一、介绍 断言允许我们在测试过程中验证 API 的响应是否符合预期。通过设定各…

vue从入门到精通(一):初始Vue

一&#xff0c;Vue是什么 Vue (读音 /vjuː/&#xff0c;类似于 view) 是一套用于构建用户界面的渐进式框架。Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层&#xff0c;不仅易于上手&#xff0c;还便于与第三方库或既有项目整合。另一方面&#xff0c;当与现代…

基于SpringBoot+Vue的教师个人成果管理系统

初衷 在后台收到很多私信是咨询毕业设计怎么做的&#xff1f;有没有好的毕业设计参考? 能感觉到现在的毕业生和当时的我有着同样的问题&#xff0c;但是当时的我没有被骗&#xff0c; 因为现在很多人是被骗的&#xff0c;还没有出学校还是社会经验少&#xff0c;容易相信别人…

猫头虎分享已解决Error || ERROR: Failed building wheel for XXX

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

物联网设计竞赛_3_Jetson Nano连接摄像头

ls /dev/video* 查看是否有摄像头 camorama 开启摄像头 关闭摄像头用&#xff1a; ctr c结束进程 若有camorama被启动用ps aux 或者 ps aux l grep camorama 找到对应进程用 kill -9 <PID>杀死进程再启动 必要的时候也能重启系统再试试&#xff1a; shutdown -r …

AI试衣IDM-VTON,Windows11本地安装配置记录!

昨天我们已经介绍过IDM-VTON这个开源项目了。 通过这个软件可以轻松实现一键换衣服。 昨天&#xff0c;简单演示了一下在线使用。 今天&#xff0c;来演示如何安装到本地电脑上&#xff01; 本地配置会有一定的专业性&#xff0c;懂的人可以参考下。 不懂得直接拉到最后&am…

【MySQL数据库开发设计规范】之字段设计规范

欢迎点开这篇文章&#xff0c;自我介绍一下哈&#xff0c;本人姑苏老陈 &#xff0c;是一名JAVA开发老兵。 本文收录于 《MySQL数据库开发设计规范》专栏中&#xff0c;该专栏主要分享一些关于MySQL数据库开发设计相关的技术规范文章&#xff0c;定期更新&#xff0c;欢迎关注&…

强化训练:day7(字符串中找出连续最长的数字串、岛屿数量、拼三角)

文章目录 前言1. 字符串中找出连续最长的数字串1.1 题目描述1.2 解题思路1.3 代码实现 2. 岛屿数量2.1 题目描述2.2 题目描述2.3 代码实现 3. 拼三角3.1 题目描述3.2 解题思路3.3 代码实现 总结 前言 1. 字符串中找出连续最长的数字串   2. 岛屿数量   3. 拼三角 1. 字符串…

嵌入式和单片机的区别在哪?

嵌入式和单片机是两个不同的概念&#xff0c;它们在很多方面都存在着差异。嵌入式系统是一种专用的计算机系统&#xff0c;通常用于控制和监测其他设备。它通常由微处理器、存储器、输入/输出接口和其他外围设备组成。嵌入式系统可以运行各种操作系统&#xff0c;如 Linux、Win…