XTuner笔记

为什么要微调:

1.  模型不具备一些私人定制的知识

2。模型回答问题的套路你不满意。

对应衍生出来两种概念

  • 增量预训练微调:
    • 使用场景:让基座模型学习到一些新知识,如某个垂类领域的常识
    • 训练数据:文章、书籍、代码等等
  • 指令跟随微调:
    • 使用场景:让模型学会对话模板,根据人类指令进行对话
    • 训练数据:高质量的对话、问答数据

 

 

3. 数据的一生

LoRA和QLoRA

  • LoRA总结
之前的fine-tune的方法

  • Adapters

    方法:在模型的每一层之间添加可训练的小规模的网络,冻结原始网络权重,以此来减少fine-tune所需要的参数量。

    应用:适用于那些希望在保持预训练模型结构不变的同时,对模型进行特定任务调整的场景。

    缺点:引入推理延时

  • Prefix Tuning

    方法:在模型输入部分添加一些可训练的前缀向量,然后将这些向量和数据一起送入模型,改变模型对单独数据的推理结果。

    应用:适用于需要对模型进行轻量级微调的场景,特别是当模型非常大,而可用于训练的资源有限时。

    缺点:鲁棒性不够好,模型的结果严重依赖于前缀的质量(举一个不是很恰当的例子就是:网络本身就没这些只是,你非得加前缀让他说,这怎么能说出来?)

简单来说LoRA就是通过引入两个低秩参数化更新矩阵来减少参数量,我的理解是把参数量降维(变少)

  • 问题描述:

    假设一个网络的所有参数W,维度是d * k,微调它的梯度∆W维度也是是d * k,也就是说W和∆W的参数量是一样的,这就给我们训练参数量太大的网络带来困难。同时,如果有不同的下游任务,则需要对每个下游任务都训练出一个这样的∆W,因此这种方式的fine-tune是非常昂贵的。

  • 解决方案:

 

针对这个问题,文章提出将∆W进行低秩分解,分解成两个矩阵A(维度是d * r)、B(维度是r * k),其中r远远小于d和k的最小值,然后我们就可以计算∆W和AB的参数量:

  • 应用:

    需要对大模型所有参数进行微调,但不显著增加计算量的场景

  • 优点:

    训练成本降低,训练速度提升,针对不同任务只需训练针对不同任务的AB即可

  • 缺点:

    以精度换速度

  • QLoRA总结

在LoRA的基础上,添加了NF4的数据压缩(信息理论中最有的正太分布数据量化数据类型),进一步减少了显存和内存的消耗;然后添加一组可学习的LoRA权重,这些权重通过量化权重的反向传播梯度进行调整。

块状 k-bit 量化:既压缩了数据,又解决了异常值(我理解为噪声)对数据压缩的影响。我理解为:数据分布不是线性的,因此利用块量化(类似分治?)进行数据压缩。

  • 优点:

    使用NF4量化预训练权重,减少内存。计算梯度的时候再反量化?量化和反量化的或称会不会带来时间消耗?

    双重量化:虽然NF4的数据的内存消耗很小,但是将量化常数也占用了内存。

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

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

相关文章

Microsoft 365 for Mac v16.84 office365全套办公软件

Microsoft 365 for Mac是一款功能丰富的办公软件套件,为Mac用户提供了丰富的功能和工具,提高了工作效率和协作能力。Microsoft 365 for Mac是一款专为Mac用户设计的订阅式办公软件套件,旨在提高生产力和效率。 Microsoft 365 for Mac v16.84正…

图解HTTP(2、简单的 HTTP 协议)

HTTP 协议用于客户端和服务器端之间的通信 请求访问文本或图像等资源的一端称为客户端,而提供资源响应的一端称为服务器端。 通过请求和响应的交换达成通信 请求必定由客户端发出,而服务器端回复响应报文 请求报文是由请求方法、请求 URI、协议版本、…

ArcGIS10.2能用了10.2.2不行了(解决)

前两天我们的推文介绍了 ArcGIS10.2系列许可到期解决方案-CSDN博客文章浏览阅读2次。本文手机码字,不排版了。 昨晚(2021\12\17)12点后,收到很多学员反馈 ArcGIS10.2系列软件突然崩溃。更有的,今天全单位崩溃。​提示许…

tokenize

源码 def tokenize():eot enc._special_tokens[<|endoftext|>] # end of text tokendata_filename os.path.join(DATA_CACHE_DIR, "tiny_shakespeare.txt")text open(data_filename, r).read()# lets treat every persons statement in the dialog as a se…

mysql中sql语句 exists 判断子句的用法

如果子查询成立才执行父查询 exists判断子查询的使用例子&#xff1a; 张三不存在所以前面的父查询不执行 后面的子句结果存在&#xff0c;所以前面的父查询被执行 where条件所连接的嵌套子查询都是&#xff0c;条件子查询 ———————————————————————…

无人播剧项目怎么做,快手无人播剧全攻略,版权难题一招破解!

相信大家比较关注的问题就是快手无人直播无人播剧到底是不是真的&#xff1f;是不是骗人的&#xff1f;靠不靠谱&#xff1f;是不是真的能赚钱&#xff1f;会不会涉及到版权问题&#xff1f;等等。接下来我就给大家一一做解答&#xff01; 首先关于快手无人播剧是不是骗人的&a…

Python-VBA函数之旅-sorted函数

目录 一、sorted函数的常见应用场景 二、sorted函数使用注意事项 三、如何用好sorted函数&#xff1f; 1、sorted函数&#xff1a; 1-1、Python&#xff1a; 1-2、VBA&#xff1a; 2、推荐阅读&#xff1a; 个人主页&#xff1a; https://blog.csdn.net/ygb_1024?spm1…

【WEEK11】 【DAY4】Employee Management System Part 5【English Version】

2024.5.9 Thursday Continued from 【WEEK11】 【DAY3】Employee Management System Part 4【English Version】 Contents 10.6. Add Employee10.6.1. Modify list.html10.6.2. Modify EmployeeController.java10.6.3. Create add.html10.6.4. Restart and Run 10.6. Add Emplo…

【Vue3进阶】- Pinia

什么是Pinia Pinia 是 Vue 的专属状态管理库&#xff0c;它允许你跨组件或页面共享状态。它提供了类似于 Vuex 的功能&#xff0c;但比 Vuex 更加简单和直观。 需要在多个组件之间共享状态或数据时使用 Pinia 的 store&#xff0c;这样可以避免 props 和 eventBus 等传统方法…

刷代码随想录有感(62):修建二叉搜索树

题干&#xff1a; 代码&#xff1a; class Solution { public:TreeNode* traversal(TreeNode* root, int low, int high){if(root NULL)return NULL;if(root->val < low)return traversal(root->right, low, high);if(root->val > high)return traversal(ro…

MATLAB 基于格网的点云最低点采样 (69)

MATLAB 基于格网的点云最低点采样 (69) 一、算法原理二、算法实现1.代码2.效果三、数据链接一、算法原理 最低点格网采样是一种基于点云数据的简化技术。它通过将点云数据划分为网格,并在每个网格单元中保留最低的点来实现简化。以下是该方法的步骤: 1 定义格网尺度: 选…

服务智能化公共生活场景人员检测计数,基于YOLOv9系列【yolov9/yolov9-c/yolov9-e】参数模型开发构建公共生活场景下人员检测计数识别系统

在当今社会&#xff0c;随着科技的飞速发展&#xff0c;各种智能化系统已广泛应用于各个领域&#xff0c;特别是在人员密集、流动性大的场合&#xff0c;如商场、火车站、景区等&#xff0c;智能人员检测计数系统发挥着至关重要的作用。特别是在特殊时期&#xff0c;如节假日、…

简单的神经网络

一、softmax的基本概念 我们之前学过sigmoid、relu、tanh等等激活函数&#xff0c;今天我们来看一下softmax。 先简单回顾一些其他激活函数&#xff1a; Sigmoid激活函数&#xff1a;Sigmoid函数&#xff08;也称为Logistic函数&#xff09;是一种常见的激活函数&#xff0c…

EPAI手绘建模APP动画、场景、手势操作

(15) 动画 图 299 动画控制器 ① 打开动画控制器。播放动画过程中&#xff0c;切换场景观察视角时&#xff0c;自动停止播放。动画编辑参见常用工具栏-更多-动画动画编辑器部分。 ② 关闭动画控制器。 ③ 设置动画参数&#xff1a;设置动画总帧数&#xff1b;这只帧率&#x…

从RAID 0到RAID 10:全面解析RAID技术与应用

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《Linux &#xff1a;从菜鸟到飞鸟的逆袭》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、前言 1、磁盘阵列简介 2、磁盘阵列诞生背景 3、硬件RA…

Spring Boot集成activiti快速入门Demo

1.什么事activiti&#xff1f; Activiti是一个工作流引擎,可以将业务系统中复杂的业务流程抽取出来,使用专门的建模语言BPMN2.0进行定义,业务流程按照预先定义的流程进行执行,实现了系统的流程流activiti进行管理,减少业务系统由于流程变更进行系统升级改造的工作量,从而提高系…

与队列和栈相关的【OJ题】

✨✨✨专栏&#xff1a;数据结构 &#x1f9d1;‍&#x1f393;个人主页&#xff1a;SWsunlight 目录 一、用队列实现栈&#xff1a; 1、2个队列的关联起来怎么由先进先出转变为先进后出&#xff1a;&#xff08;核心&#xff09; 2、认识各个函数干嘛用的&#xff1a; …

pgbackrest 备份工具使用 postgresql

为啥我会使用pgbackrest进行备份&#xff1f;因为postgresql没有自带的差异备份工具。。。而我们在生产环境上&#xff0c;一般都需要用到差异备份或者增量备份。我们的备份策略基本是&#xff0c;1天1次完整备份&#xff0c;1个小时1次差异备份。如果只需要完整备份&#xff0…

【Mac】Indesign 2023 Mac(ID2023) v18.5中文版安装教程

软件介绍 Adobe InDesign是一款由Adobe Systems开发的桌面排版软件&#xff0c;旨在用于创建、编辑和格式化印刷和数字出版物&#xff0c;如书籍、杂志、报纸、传单等。以下是一些关于Adobe InDesign的主要特点和功能&#xff1a; 1.强大的排版工具&#xff1a;InDesign提供了…

Linux的命令(第二篇)

昨天学习到了第17个命令到 rm 命令&#xff08;作用删除目录和文件&#xff09;&#xff0c;今天继续往下里面了解其他命令以及格式、选项&#xff1a; &#xff08;17&#xff09;wc命令&#xff08;此wc非wc&#xff09; 作用&#xff1a;统计行数、单词数、字符分数。 格…