大模型LLM——微调的七种方法

news2024/9/21 0:41:48

大模型的七种微调方法

文章目录

  • 大模型的七种微调方法
    • 1. LoRA
    • 2. QLoRA
    • 3. 适配器调整
    • 4. 前缀调整
    • 5. 提示调整
    • 6. P-Tuning
    • 7. P-Tuning v2

在这里插入图片描述

1. LoRA

LoRA的主要步骤包括:

  1. 选择微调目标权重矩阵:首先在大型模型(如GPT)中识别需要微调的权重矩阵,通常位于多头自注意力机制和前馈神经网络部分。
  2. 引入低秩矩阵:引入两个维度较小的低秩矩阵A和B。假设原始权重矩阵的尺寸为dd,则A和B的尺寸可能为dr和r*d,其中r远小于d。
  3. 计算低秩更新:通过这两个低秩矩阵的乘积AB生成一个新矩阵,其秩(即r)远小于原始权重矩阵的秩。这一乘积实际上是对原始权重矩阵的一种低秩近似调整。
  4. 结合原始权重:将新生成的低秩矩阵AB叠加到原始权重矩阵上。因此,原始权重经过了微调,但大部分权重保持不变。这个过程可以用数学表达式描述为:新权重 = 原始权重 + AB。

参考文献: Hu et al., 2021. LoRA: Low-Rank Adaptation of Large Language Models

2. QLoRA

QLoRA是一种结合LoRA与深度量化技术的高效微调方法,其核心特点包括:

  1. 量化技术:QLoRA采用创新技术将预训练模型量化为4位,包括低精度存储数据类型(4-bit NormalFloat,简称NF4)和计算数据类型(16-bit BrainFloat)。这极大地减少了模型存储需求,同时保持了模型精度的最小损失。
  2. 量化操作:在4位量化中,每个权重由4个比特表示,量化过程中选择最重要的值并将它们映射到16个可能的值之一。首先确定量化范围(例如-1到1),然后将这个范围分成16个区间,每个区间对应一个4-bit值。原始的32位浮点数值将映射到最近的量化区间值上。
  3. 微调阶段:在训练期间,QLoRA先以4-bit格式加载模型,训练时将数值反量化到bf16进行训练,从而大幅减少了训练所需的显存。例如,33B的LLAMA模型可以在24GB的显卡上进行训练。

参考文献: Dettmers et al., 2023. QLoRA: Efficient Finetuning of Quantized LLMs
在这里插入图片描述

3. 适配器调整

适配器调整的主要步骤包括:

  1. 基于预训练模型:从一个已经预训练的大型模型(如BERT或GPT)开始,该模型已经学习了丰富的语言特征和模式。
  2. 插入适配器:在预训练模型的每层或指定层中插入适配器。适配器是小型神经网络,参数规模相对较小。
  3. 保持预训练参数不变:微调过程中,原有的预训练模型参数保持不变,仅训练适配器的参数。
  4. 训练适配器:根据特定任务的数据训练适配器,使其能够学习如何调整模型的行为。
  5. 任务特定调整:通过这种方式,模型能够对每个特定任务进行微调,同时不影响其他部分的通用性能。

LoRA与适配器调整的主要区别:

  • LoRA:通过在模型权重矩阵中引入低秩矩阵来实现微调,这些低秩矩阵作为原有权重矩阵的调整项。
  • 适配器调整:通过在模型各层添加小型神经网络模块来实现微调,仅调整适配器的参数。

4. 前缀调整

前缀调整采用一种在输入序列前添加可训练前缀的策略来微调预训练语言模型(LM),其主要特点包括:

  • 连续可微前缀:这些前缀是可训练的,与离散的Token相比,更易于优化且效果更佳。
  • 减少存储成本:前缀调整不需要调整模型的所有权重,通过添加前缀调整模型行为,节省了大量存储空间和微调成本。

参考文献: Li and Liang, 2021. Prefix-Tuning: Optimizing Continuous Prompts for Generation

在这里插入图片描述

5. 提示调整

以下是两者的训练示例,以说明它们的不同:

  1. 提示调整示例
    • 输入序列: [Prompt1][Prompt2] “这部电影令人振奋。”
    • 问题: 评价这部电影的情感倾向。
    • 答案: 模型需要预测情感倾向(例如“积极”)
    • 提示: 没有明确的外部提示,[Prompt1][Prompt2]作为引导模型的内部提示,这里的问题是隐含的,即判断文本中表达的情感倾向。
  2. 前缀调整示例
    • 输入序列: [Prefix1][Prefix2][Prefix3] “I want to watch a movie.”
    • 问题: 根据前缀生成后续的自然语言文本。
    • 答案: 模型生成的文本,如“that is exciting and fun.”
    • 提示: 前缀本身提供上下文信息,没有单独的外部提示。

提示调整是一种在预训练语言模型输入中引入可学习嵌入向量的方法,其主要特点包括:

  • 模仿自然语言提示:将可学习向量设计为任务指导信息的一部分,倾向于使用较少的向量来模拟传统自然语言提示。
  • 与前缀调整的区别:前缀调整更侧重于提供输入数据的直接上下文信息,而提示调整旨在引导模型输出特定任务的响应。

6. P-Tuning

P-Tuning与提示调整的主要区别在于:

  • 提示调整:使用静态的、可训练的虚拟标记嵌入,初始化后保持固定,除非在训练过程中更新。
  • P-Tuning:使用可训练的LSTM模型(提示编码器)动态生成虚拟标记嵌入,允许根据输入数据生成不同的嵌入,更高的灵活性和适应性,适合复杂任务。

参考文献: Liu et al., 2021. GPT Understands, Too

在这里插入图片描述

7. P-Tuning v2

P-Tuning v2对P-Tuning进行改进,其核心特点包括:

  • 多层连续提示:在模型的每层中插入可学习提示,增加了任务特定参数的数量,提高了参数效率。
  • 优化和实现细节:包括重新参数化编码器、提示长度优化和多任务学习。

包括:**

  • 多层连续提示:在模型的每层中插入可学习提示,增加了任务特定参数的数量,提高了参数效率。
  • 优化和实现细节:包括重新参数化编码器、提示长度优化和多任务学习。

参考文献: Liu et al., 2022. P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks
在这里插入图片描述

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

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

相关文章

学习vue3 五,传送,缓存组件以及过渡和过渡列表

目录 Teleport传送组件 keep-alive缓存组件 transition动画组件 1. 过渡的类名 2. 自定义过渡class名 3. transition的生命周期 4.appear transition-group 1. 过渡列表 2. 列表的移动过渡 3. 状态过渡 Teleport传送组件 Teleport Vue 3.0新特性之一。 Teleport 是一…

AI技术如何重塑企业EHS安全健康环保体系,附实践案例

随着人工智能技术的快速发展,其在环境、健康和安全(EHS)管理领域的应用日益广泛。AI技术通过大数据分析、模式识别和预测建模等手段,为EHS管理提供了新的视角和工具。这一变革不仅提升了风险评估和事故预防的效率,同时…

Can‘t use Subversion command line client:svn不能使用Subversion命令行客户端:svn

1、导入idea中会报Can’t use Subversion command line client… 2、在提交svn代码的时候,出现这样的错误:Can’t use Subversion command line client: svn Probably the path to Subversion executable is wrong. Fix it. 问题原因:在安…

实验8-1-4 拆分实数的整数与小数部分

本题要求实现一个拆分实数的整数与小数部分的简单函数。 函数接口定义&#xff1a; void splitfloat( float x, int *intpart, float *fracpart );其中x是被拆分的实数&#xff08;0≤x<10000&#xff09;&#xff0c;intpart和fracpart分别是将实数x拆分出来的整数部分与…

sqli-labs1-24通关教程

目录 前置知识 第一关 1、第一关是单引号字符型注入,输入id1‘会报错 2、输入注释符正常显示 3、爆出列数为联合做准备 4、使用联合查询爆出数据库名 5、使用information_schema爆出表名 6、猜测用户名再users表中&#xff0c;爆出列名 ​编辑 7、利用查出来的表名数据…

【第2期】2024 搜索客 Meetup | Elasticsearch 的代码结构和写入查询流程的解读

本次活动由 搜索客社区、极限科技&#xff08;INFINI Labs&#xff09;联合举办&#xff0c;活动主题将深入探讨 Elasticsearch 的两个核心方面&#xff1a;代码结构以及写入和查询的关键流程。本次活动将为 Elasticsearch 初学者和有经验的用户提供宝贵的见解&#xff0c;欢迎…

叉车(工业车辆)安全监控管理系统,叉车安全方案

叉车作为特种设备的一种&#xff0c;存在一定的危险性&#xff0c;操作过程出现意外的情况可谓是不胜枚举&#xff0c;轻则伤财、受些皮外伤&#xff0c;重则直接致人死亡。为加强叉车操作的安全管理&#xff0c;从2023年12月1日起实施的TSG 81-2022《场&#xff08;厂&#xf…

【网络安全学习】SQL注入02:使用sqlmap进行注入

1.sqlmap的基本功能 sqlmap的基本功能是对Web应用中的数据库进行自动化的检测、利用和攻击。 使用pikachu靶场进行sqlmap的基础功能使用。 1️⃣ 第一步&#xff1a;先检查是否有注入点&#xff1a; # -u : 指定目标url&#xff0c;也就是指定注入点 sqlmap -u "http:…

终端命令行|CLI工具|CMD|PowerShell

基本概念 终端是一个文本界面&#xff0c;用于执行基于文本的程序。 果你正在运行任何用于 web 开发的工具&#xff0c;你一定需要打开命令行并运行一些命令来使用你所选择的工具 (这样的工具被称为CLI 工具也就是命令行接口工具)。 命令行接口工具 (CLI 工具) 是什么&#xf…

延伸--人工鱼群算法

目录 基本原理 改进策略 代码示例 应用实例 总结 人工鱼群算法在解决多峰函数问题中的具体应用案例和效果如何&#xff1f; 双群人工鱼群算法与传统人工鱼群算法相比&#xff0c;有哪些具体的改进和优势&#xff1f; 步长自适应调整在人工鱼群算法中的实现机制是什么&a…

vue3踩坑问题记录

//vue3element-plus //1、placeholder换行显示 const startTxt ref() const contentText ref<any>() startTxt.value "请描述问题内容、例如&#xff1a;" historyData.prompt.forEach((el:any)>{contentText.value \n${el.question}}) <ElInputv-mo…

点赞收藏测试文章(让我看看有多少机器人在刷互动量)

前言 这里有一些看似合理但实际毫无意义的句子&#xff0c;我需要用它来看看跟我互动的有多少机器人 如果你是人类用户&#xff0c;可以用评论来代替点赞&收藏&#xff0c;爱你~ 目录 前言 正文 1. 紫色的大象在夜空中游泳。 2. 月亮上的饼干师烤出了一片海洋。 3. 时…

数据结构(邓俊辉)学习笔记】词典 03—— 排解冲突(1)

文章目录 1. 一山二虎2. 泾渭分明3. 开放定址4. 线性试探5. 赖惰删除 1. 一山二虎 此前我们已经多次指出&#xff0c;对于需要动态维护的散列表冲突是不可避免的&#xff0c;无论你的散列函数设计的有多么精妙&#xff0c;因此我们不得不回答的第二个重要问题就是一旦发生冲突&…

苹果电脑维护工具:CleanMyMac X让你的Mac焕发新生!

在我们的数字生活中&#xff0c;苹果电脑&#xff08;Mac&#xff09;已成为不可或缺的一部分&#xff0c;无论是为工作披星戴月&#xff0c;还是为娱乐畅游云端。但是&#xff0c;就像任何长时间运行的机器一样&#xff0c;Mac也可能会因为积累的文件和不必要的数据而开始变慢…

DAMA学习笔记(十一)-元数据管理

1.引言 元数据最常见的定义是“关于数据的数据”。它描述了数据本身&#xff08;如数据库、数据元素、数据模型&#xff09;&#xff0c;数据表示的概念&#xff08;如业务流程、应用系统、软件代码、技术基础设施&#xff09;&#xff0c;数据与概念之间的联系&#xff08;关系…

60页PPT数据湖 + 数据中台实施方案

关注智慧方案文库&#xff0c;学习8700多份智慧城市&#xff0c;智慧医院&#xff0c;智能制造&#xff0c;数字化转型&#xff0c;新质生产力&#xff0c;算力&#xff0c;大模型&#xff0c;AIGC&#xff0c;工业互联网&#xff0c;数字孪生......持续更新热点行业解决方案。…

.NET C# Dictionary Hashtable

.NET C# Dictionary & Hashtable 文章目录 .NET C# Dictionary & Hashtable1 Dictionary1.1 底层实现1.2 优点1.3 缺点 2 Hashtable2.1 底层实现2.2 优点2.3 缺点 3 对比总结4 遍历方式&#xff0c;与耗时对比foreach遍历Keys遍历IDictionaryEnumerator遍历耗时对比 1 …

自动化报表实践小结

这一天午休刚休息完&#xff0c;财务经理就喊我&#xff1a;“***&#xff0c;我们找个会议室聊聊”。我是一脸茫然&#xff0c;心里想着&#xff0c;我跟他也没什么私下的工作交流啊&#xff0c;能聊啥呢&#xff0c;还要找个会议室&#xff1f;究竟是什么事情呢&#xff1f;有…

VsCode无法远程调试

一、问题描述 按照《VsCode gdb gdbserver远程调试C程序》中介绍的方法&#xff0c;配置好VsCode后&#xff0c;按下F5快捷键&#xff0c;或点击“Start Debugging”按钮&#xff0c;没有反应&#xff0c;无法启动调试&#xff1a; 二、解决方法 针对该问题&#xff0c;我尝…

【人工智能】Transformers之Pipeline(八):文生图/图生图(text-to-image/image-to-image)

目录 一、引言 二、文生图/图生图&#xff08;text-to-image/image-to-image&#xff09; 2.1 文生图 2.2 图生图 2.3 技术原理 2.3.1 Diffusion扩散模型原理 2.3.2 Stable Diffusion扩散模型原理 2.4 文生图实战 2.4.1 SDXL 1.0 2.4.2 SD 2.0 2.5 模型排名 三、总…