大模型微调:参数高效微调(PEFT)方法总结

news2024/9/9 0:23:59

PEFT (Parameter-Efficient Fine-Tuning) 参数高效微调是一种针对大模型微调的技术,旨在减少微调过程中需要调整的参数量,同时保持或提高模型的性能。

LORAAdapter TuningPrompt Tuning 为主的PEFT方法总结如下

LORA

  • 论文题目:LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS
  • 论文链接:https://arxiv.org/pdf/2106.09685
  • 发表时间:2021.10.16

含义

一种用于微调大型预训练语言模型(如GPT-3或BERT)的方法。核心思想是在模型的关键层中添加小型、低秩的矩阵来调整模型的行为,而不是直接改变整个模型的结构。

原理

低秩矩阵分解: LoRA通过将权重矩阵分解为两个较低秩的矩阵来减少参数量。具体来说,对于模型中的某个权重矩阵 W,LoRA将其表示为两个较小的矩阵 A 和 B,使得 W≈A×B。这样可以有效地减少需要更新的参数数量。

保持预训练权重不变: LoRA保留了预训练模型的原始权重,并在此基础上进行调整。通过添加低秩更新矩阵 ΔW=A×B 到原始权重矩阵 W,来得到新的权重矩阵 W′=W+ΔW。这种方法允许模型在保留预训练知识的同时,适应新的任务。

Adapter Tuning

  • 论文题目:Parameter-Efficient Transfer Learning for NLP
  • 论文链接:https://arxiv.org/pdf/1902.00751
  • 发表时间:2019.6.13

含义

通过在预训练模型的基础上添加适配器层(adapters),来实现特定任务的微调。这种方法旨在保留预训练模型的原始权重,仅在需要适应新任务的地方进行小规模的参数调整。

原理

插入适配器层: 在预训练模型的特定位置(通常是在每个 Transformer 层的内部或后面)插入适配器层。

适配器层结构: 这些适配器层是一些小规模的神经网络,通常由一个下采样层(减少维度)、一个激活函数(如 ReLU)和一个上采样层(恢复维度)组成。

冻结预训练权重: 在微调过程中,预训练模型的原始权重保持不变,仅训练适配器层的权重。

高效微调: 由于适配器层的参数数量相对较少,微调过程变得更加高效。适配器层可以针对不同任务进行训练,而不影响预训练模型的核心结构。

Prompt Tuning

  • 论文题目:The Power of Scale for Parameter-Efficient Prompt Tuning
  • 论文链接:https://arxiv.org/pdf/2104.08691
  • 发表时间:2021.9.2

含义

在预训练语言模型的输入中添加可学习的嵌入向量作为提示。其核心思想是通过引入任务特定的提示(prompts),而非对整个模型进行全参数更新,从而实现对模型的高效微调

原理

设计提示词: 输入提示(prompt)通常包含任务描述、示例或特定的输入格式。例如,对于情感分类任务,可以设计一个提示词:“这段文字的情感是:”。

优化提示词: Prompt Tuning 的优化对象是输入提示的词嵌入(embedding)。通过梯度下降等优化算法,调整提示词的词嵌入,使得模型在特定任务上的表现达到最优。

冻结预训练模型: 在 Prompt Tuning 中,预训练模型的权重保持不变,仅优化提示词的嵌入

Prefix-Tuning

  • 论文题目:Prefix-Tuning: Optimizing Continuous Prompts for Generation
  • 论文链接:https://arxiv.org/pdf/2101.00190
  • 发表时间:2021.1.1

含义

通过固定预训练模型的参数,仅在输入序列的前面添加一个可训练的前缀(prefix),从而在不改变模型参数的情况下实现特定任务的适应

原理

固定模型参数: 不对预训练语言模型(如 GPT-3、BERT 等)的参数进行微调

添加可训练前缀: 在输入序列的前面添加一个可训练的前缀向量。这个前缀向量的长度和维度可以根据具体任务进行调整

任务适应: 在实际应用中,前缀向量与输入序列一起输入到预训练模型中。由于前缀向量是可训练的,模型可以通过调整前缀向量来适应特定的任务,而无需改变模型本身的参数。

P-Tuning

  • 论文题目:GPT Understands, Too

  • 论文链接:https://arxiv.org/pdf/2103.10385v1

  • 发表时间:2021.3.18

含义

在模型输入中插入一些可训练的提示(prompts),这些提示是嵌入向量(embedding vectors),在训练过程中被优化

原理

固定模型参数: 和 Prefix-Tuning 类似,不改模型参数

插入可训练提示: 在输入序列的适当位置插入一些可训练的提示向量

任务适应: 在训练过程中,这些提示向量与输入序列一起输入到预训练模型中

P-Tuning V2

  • 论文题目:P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks
  • 论文链接:https://arxiv.org/pdf/2110.07602v2
  • 发表时间:2021.10.18

含义

保留了 P-Tuning 的核心思想,即通过优化输入提示向量来引导预训练模型处理特定任务

原理

相比较于P-Tuning:

动态提示优化: 采用动态提示优化方法

多层提示插入: P-Tuning V2 不仅在输入序列的前面插入提示向量,还在模型的不同层次(如中间层)插入提示向量

BitFit

  • 论文题目:BitFit: Simple Parameter-efficient Fine-tuning for Transformer-based Masked Language-models
  • 论文链接:https://arxiv.org/abs/2106.10199
  • 发表时间:2021.6.18

含义

通过仅微调模型的偏置参数来适应新的任务,从而减少了需要调整的参数量。

原理

  • 原始 BERT 模型:包含多层 Transformer,每层有权重矩阵 W 和偏置 b。

  • BitFit 微调:保持所有权重矩阵 W 不变,只微调每层的偏置参数 b

DistilBERT

  • 论文题目:DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter
  • 论文链接:https://arxiv.org/abs/1910.01108
  • 发表时间:2020.3.1

含义

使用知识蒸馏技术将大模型压缩成更小的模型,从而减少微调所需的计算资源和时间。

原理

知识蒸馏是一种模型压缩技术,通过训练一个较小的学生模型(student model)来模仿较大教师模型(teacher model)的行为。具体步骤如下:

  1. 教师模型:使用预训练的 BERT 模型作为教师模型。
  2. 学生模型:构建一个较小的 BERT 模型,即 DistilBERT。
  3. 训练过程:在训练过程中,学生模型通过模仿教师模型的输出来学习。损失函数不仅包括学生模型和教师模型输出之间的差异,还包括学生模型和真实标签之间的差异。> PEFT (Parameter-Efficient Fine-Tuning) 参数高效微调是一种针对大模型微调的技术,旨在减少微调过程中需要调整的参数量,同时保持或提高模型的性能。

LORAAdapter TuningPrompt Tuning 为主的PEFT方法总结如下

LORA

  • 论文题目:LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS
  • 论文链接:https://arxiv.org/pdf/2106.09685
  • 发表时间:2021.10.16

含义

一种用于微调大型预训练语言模型(如GPT-3或BERT)的方法。核心思想是在模型的关键层中添加小型、低秩的矩阵来调整模型的行为,而不是直接改变整个模型的结构。

原理

低秩矩阵分解: LoRA通过将权重矩阵分解为两个较低秩的矩阵来减少参数量。具体来说,对于模型中的某个权重矩阵 W,LoRA将其表示为两个较小的矩阵 A 和 B,使得 W≈A×B。这样可以有效地减少需要更新的参数数量。

保持预训练权重不变: LoRA保留了预训练模型的原始权重,并在此基础上进行调整。通过添加低秩更新矩阵 ΔW=A×B 到原始权重矩阵 W,来得到新的权重矩阵 W′=W+ΔW。这种方法允许模型在保留预训练知识的同时,适应新的任务。

Adapter Tuning

  • 论文题目:Parameter-Efficient Transfer Learning for NLP
  • 论文链接:https://arxiv.org/pdf/1902.00751
  • 发表时间:2019.6.13

含义

通过在预训练模型的基础上添加适配器层(adapters),来实现特定任务的微调。这种方法旨在保留预训练模型的原始权重,仅在需要适应新任务的地方进行小规模的参数调整。

原理

插入适配器层: 在预训练模型的特定位置(通常是在每个 Transformer 层的内部或后面)插入适配器层。

适配器层结构: 这些适配器层是一些小规模的神经网络,通常由一个下采样层(减少维度)、一个激活函数(如 ReLU)和一个上采样层(恢复维度)组成。

冻结预训练权重: 在微调过程中,预训练模型的原始权重保持不变,仅训练适配器层的权重。

高效微调: 由于适配器层的参数数量相对较少,微调过程变得更加高效。适配器层可以针对不同任务进行训练,而不影响预训练模型的核心结构。

Prompt Tuning

  • 论文题目:The Power of Scale for Parameter-Efficient Prompt Tuning
  • 论文链接:https://arxiv.org/pdf/2104.08691
  • 发表时间:2021.9.2

含义

在预训练语言模型的输入中添加可学习的嵌入向量作为提示。其核心思想是通过引入任务特定的提示(prompts),而非对整个模型进行全参数更新,从而实现对模型的高效微调

原理

设计提示词: 输入提示(prompt)通常包含任务描述、示例或特定的输入格式。例如,对于情感分类任务,可以设计一个提示词:“这段文字的情感是:”。

优化提示词: Prompt Tuning 的优化对象是输入提示的词嵌入(embedding)。通过梯度下降等优化算法,调整提示词的词嵌入,使得模型在特定任务上的表现达到最优。

冻结预训练模型: 在 Prompt Tuning 中,预训练模型的权重保持不变,仅优化提示词的嵌入

Prefix-Tuning

  • 论文题目:Prefix-Tuning: Optimizing Continuous Prompts for Generation
  • 论文链接:https://arxiv.org/pdf/2101.00190
  • 发表时间:2021.1.1

含义

通过固定预训练模型的参数,仅在输入序列的前面添加一个可训练的前缀(prefix),从而在不改变模型参数的情况下实现特定任务的适应

原理

固定模型参数: 不对预训练语言模型(如 GPT-3、BERT 等)的参数进行微调

添加可训练前缀: 在输入序列的前面添加一个可训练的前缀向量。这个前缀向量的长度和维度可以根据具体任务进行调整

任务适应: 在实际应用中,前缀向量与输入序列一起输入到预训练模型中。由于前缀向量是可训练的,模型可以通过调整前缀向量来适应特定的任务,而无需改变模型本身的参数。

P-Tuning

  • 论文题目:GPT Understands, Too

  • 论文链接:https://arxiv.org/pdf/2103.10385v1

  • 发表时间:2021.3.18

含义

在模型输入中插入一些可训练的提示(prompts),这些提示是嵌入向量(embedding vectors),在训练过程中被优化

原理

固定模型参数: 和 Prefix-Tuning 类似,不改模型参数

插入可训练提示: 在输入序列的适当位置插入一些可训练的提示向量

任务适应: 在训练过程中,这些提示向量与输入序列一起输入到预训练模型中

P-Tuning V2

  • 论文题目:P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks
  • 论文链接:https://arxiv.org/pdf/2110.07602v2
  • 发表时间:2021.10.18

含义

保留了 P-Tuning 的核心思想,即通过优化输入提示向量来引导预训练模型处理特定任务

原理

相比较于P-Tuning:

动态提示优化: 采用动态提示优化方法

多层提示插入: P-Tuning V2 不仅在输入序列的前面插入提示向量,还在模型的不同层次(如中间层)插入提示向量

BitFit

  • 论文题目:BitFit: Simple Parameter-efficient Fine-tuning for Transformer-based Masked Language-models
  • 论文链接:https://arxiv.org/abs/2106.10199
  • 发表时间:2021.6.18

含义

通过仅微调模型的偏置参数来适应新的任务,从而减少了需要调整的参数量。

原理

  • 原始 BERT 模型:包含多层 Transformer,每层有权重矩阵 W 和偏置 b。

  • BitFit 微调:保持所有权重矩阵 W 不变,只微调每层的偏置参数 b

DistilBERT

  • 论文题目:DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter
  • 论文链接:https://arxiv.org/abs/1910.01108
  • 发表时间:2020.3.1

含义

使用知识蒸馏技术将大模型压缩成更小的模型,从而减少微调所需的计算资源和时间。

原理

知识蒸馏是一种模型压缩技术,通过训练一个较小的学生模型(student model)来模仿较大教师模型(teacher model)的行为。具体步骤如下:

  1. 教师模型:使用预训练的 BERT 模型作为教师模型。
  2. 学生模型:构建一个较小的 BERT 模型,即 DistilBERT。
  3. 训练过程:在训练过程中,学生模型通过模仿教师模型的输出来学习。损失函数不仅包括学生模型和教师模型输出之间的差异,还包括学生模型和真实标签之间的差异。

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

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

相关文章

TikTok达人合作:AI与大数据如何提升跨境电商营销效果

在当今数字时代,跨境电商与TikTok达人的合作已成为推动品牌增长和市场拓展的重要力量。随着AI、大数据等先进技术的不断发展和应用,这种合作模式正变得更加高效和精准。本文Nox聚星将和大家探讨在TikTok达人合作中,AI、大数据等技术的具体运用…

PyTorch 的 .pt 文件是什么?以及都能存储什么样的数据格式和复合数据格式?加载 train.pt 文件的一个代码示例

🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、PyTorch 的 .pt 文件是什么? .pt 文件的基本概念: .pt 文件是 PyTorch 中特有的一种文件格式,用于保存和加载各类数据。.pt为 PyTorch 的缩写。此文件格式极其灵…

Linux快速安装Jenkins一键部署Maven项目

目录 一、序言二、安装前置准备1、JDK版本要求2、Maven安装3、Git安装 三、Jenkins安装1、Jenkins war包下载2、启动Jenkins3、初始化Jenkins4、Jenkins全局设置 四、Maven项目自动化jar部署项目配置1、创建Maven风格的项目2、丢弃旧的构建3、源码管理配置4、构建配置5、构建后…

华为od 100问 持续分享10-华为OD的面试流程细说

我是一名软件开发培训机构老师,我的学生已经有上百人通过了华为OD机试,学生们每次考完试,会把题目拿出来一起交流分享。 重要:2024年5月份开始,考的都是OD统一考试(D卷),题库已经整…

带有扰动观测器的MPC电机控制

模型预测控制(Model Predictive Contro1, MPC)是一种先进的控制策略,虽然具有鲁棒性、建模简单、处理多变量系统、显示约束、预测未来行为和优化性能的能力等优势。它的不足在于预测控制行为的计算需要繁琐的计算量,以及抗干扰能力较弱。这里提出基于扰动…

34 列表常用方法——copy()

列表对象的 copy() 方法返回列表的浅复制。 浅复制,是指生成一个新的列表,并且把原列表中所有元素的引用都都复制到新列表中。 如果原列表中只包含整数、实数、复数等基本类型或元组、字符串这样的不可变类型的数据,一般是没有问题的。但是&a…

黛米·摩尔和她的孙女卢埃塔在这张飘逸的快照很亲密

卢埃塔和她的祖母黛米摩尔显然是最好的朋友,这张飘逸的快照证明了这一点。准备好“哇!” 7 月 26 日,摩尔分享了一张非常迷人的照片,照片上有她、她的两个女儿和她的孙女在她昂贵的后院。她在照片中配文说:“夏日&…

SX_初识GitLab_1

1、对GitLab的理解: 目前对GitLab的理解是其本质是一个远程代码托管平台,上面托管多个项目,每个项目都有一个master主分支和若干其他分支,远程代码能下载到本机,本机代码也能上传到远程平台 1.分支的作用&#xff1a…

Home Assistant ESPHome 第一次烧录ESP8266设备记录日志

流程简介 windows PC->usb 数据线->板载usb-ttl->esp8266 connect 编译固件 下载固件 esp web tools 写入固件 编译固件 go esphome add on 1.创建设备 选择ESP8266 2.编写.yaml配置, 3.编译-输出bin 烧录 4.烧录 打开 Web-ESPHome 5.查看日志 查看手机wif…

如何让企业在获客上拥有竞争力?云微客打造流量爆款

做了这么久的短视频,还是没有客户,如果你还在单一账号上死磕,那么就别做爆款的白日梦了!因为你的做法是干不过同行的,同行可能早就开通上百个账号在互联网上抢流量了。 想获客只用一个云微客AI矩阵系统,不用…

科普文:深入理解ElasticSearch体系结构

概叙 Elasticsearch是什么? Elasticsearch(简称ES)是一个分布式、可扩展、实时的搜索与数据分析引擎。ES不仅仅只是全文搜索,还支持结构化搜索、数据分析、复杂的语言处理、地理位置和对象间关联关系等。 官网地址:…

实习日志2之windows上大模型(qwen2-7b)部署

一、模型部署 1、下载ollama(大模型本地部署工具),并安装 下载网址:https://ollama.com/ ollama是大模型部署方案,对应docker,本质也是基于docker的容器化技术。 2、下载大模型 在命令框,如windows系统在cmd窗口输…

汽车、能源、烟草、电力行业洞见:TDengine 用户大会亮点荟萃

近年来,随着物联网、车联网、工业互联网等前沿技术的迅猛发展,全球数据量呈指数级增长。作为大数据的一个重要组成部分,时序数据因其在实时监控、预测分析和智能决策中的独特优势,正逐步成为数字化转型的关键要素。尤其在 AI 时代…

如何使用Firefox浏览器连接IPXProxy设置海外代理IP教程

​Firefox浏览器是大家上网时经常会使用的一款工具。不过,有时候我们会遇到一些网站无法直接访问的情况。这时候,通过海外代理IP,比如像IPXProxy代理这样的服务,可能就能帮助我们进入那些受限制的网站,获取我们所需的资…

如何通过 CloudCanal 实现从 Kafka 到 AutoMQ 的数据迁移

01 引言 随着大数据技术的飞速发展,Apache Kafka 作为一种高吞吐量、低延迟的分布式消息系统,已经成为企业实时数据处理的核心组件。然而,随着业务的扩展和技术的发展,企业面临着不断增加的存储成本和运维复杂性问题。为了更好地…

Discourse 如何通过终端工具访问 PGSQL

PGSQL 在 Discourse 中是通过容器方式运行的,要访问 PGSQL 中的数据那么首先需要进入到容器后才可以。 进入容器的命令为: cd /var/discourse/./launcher enter appsu discoursepsql discourse最后的命令是登录到运行在容器中的 pgsql。 查看 pgsql 上…

CTFshow--Web--代码审计

目录 web301 web302 web303 web304 web305 web306 web307 web308 web309 web310 web301 开始一个登录框, 下意识sql尝试一下 发现 1 的时候会到一个 checklogin.php 的路径下, 但啥也没有 好吧, 这是要审计代码的 ,下载好源码, 开始审计 看了一下源码 , 应该就是sql…

thinkPHP开发的彩漂网站源码,含pc端和手机端

源码简介 后台thinkPHP架构,页面程序双分离,Mysql数据库严谨数据结构、多重数据审核机制、出票机制和监控机制,html5前端技术适用移动端,后台逻辑更多以server接口可快捷实现对接pc和ap,下载会有少量图片素材丢失,附件有下载说明前端demo账户密码和后台管理地址管理员账户密码…

c++修炼之路之二叉搜索树

目录 前言 一:二叉搜索树的介绍 二:二叉搜索树的实现 1.查找 2.insert(插入) 3.erase(删除) 4.析构函数 5.拷贝构造 6.赋值重载 7.插入,删除,查找的递归版本 三:二叉搜索树的应用 四:二叉搜索…

精灵图的使用——网页制作技巧

把许多小图标集中在一张背景透明的图片上,这种图片叫做精灵图,如下图。 在线工具地址:http://www.spritecow.com/ 通过工具可以快速找到图标在精灵图上的坐标位置。 首先,我们打开工具地址,点击第一个按钮。 点击后&am…