如何高效微调大模型?五大前沿 PEFT 技术为你揭晓,零基础入门到精通,收藏这一篇就够了

大模型的微调一直是一个复杂而资源密集的任务。然而,近年来出现了一些高效的微调技术(PEFT),使得这一过程变得更加简便和高效。本文将详细介绍几种主要的 PEFT 技术,包括 Adapter Tuning、Prefix Tuning、Prompt Tuning、P-Tuning v1 和 P-Tuning v2。

一、Adapter Tuning :开启大模型 PEFT (2019)

Adapter Tuning 是一种在 2019 年提出的创新微调技术,旨在通过添加额外的适配层来提高模型的微调效率。

  • **Adapter 核心技术解读:**Adapter 嵌入 Transformer 网络

  • 在两个FNN层后增加 Adapter 层:Adapter 层被嵌入在 Transformer 网络的两个 FNN 层之间,通过增加额外的层来增强模型的表现。这一方法通过在原有网络结构中引入适配层,使得模型在特定任务上的微调变得更加高效。

  • Adapter 内部学习降维后特征,减少参数:Adapter 层通过学习降维后的特征,有效地减少了参数数量。这种降维方法不仅能保留原有特征的关键信息,还能显著降低计算复杂度,从而提升模型的运行效率。

  • 使用skip-connection,最差退化为 identity:通过使用 skip-connection 技术,即使在最差情况下,Adapter 层也可以退化为 identity,从而保持模型的稳定性。Skip-connection 确保了信息能够无阻碍地通过不同层,从而提高了模型的稳健性和可复用性。

  • 提升微调效率和稳定性,可复用性增强:Adapter Tuning 提升了微调效率和稳定性,同时增强了模型的可复用性,使得在不同任务间切换更加便捷。这一技术不仅减少了对新数据的依赖,还提高了适应新任务的能力。

二、Prefix Tuning :自动化构造 Prompts (2021)

Prefix Tuning 是在 2021 年提出的一种方法,通过在预训练模型前添加前缀模块来实现高效微调。

  • **Prefix Tuning 核心技术解读:**Prefix 嵌入 Transformer 网络

  • 在预训练 Transformer 前增加 Prefix 模块:Prefix Tuning 方法通过在预训练的 Transformer 模型前增加一个前缀模块,仅训练前缀部分,而冻结 Transformer 的全部参数。这种方法通过引入任务特定的前缀来引导模型生成特定任务的输出。

  • 仅训练 Prefix,冻结 Transformer 全部参数:Prefix Tuning 仅对前缀部分进行训练,而冻结其余的模型参数,从而大大减少了训练所需的计算资源和时间成本。这一方法特别适合那些参数数量庞大的模型,如 GPT-3,使得微调这些模型成为可能。

  • 降低 GPU 算力和训练时间成本:通过减少需要训练的参数数量,Prefix Tuning 显著降低了 GPU 算力和训练时间成本。这不仅提高了模型训练的效率,还降低了硬件需求,使得更多研究者能够进行大模型的微调。

  • Prefix:任务特定的指令集,引导模型生成特定任务的输出:前缀作为任务特定的指令集,通过引导模型生成特定任务的输出,提高了模型在特定任务上的性能。这种方法使得大模型能够更加灵活地适应不同的任务需求,增强了其实用性。

三、Prompt Tuning :Soft Prompts 开创者 (2021)

Prompt Tuning 是 2021 年提出的一种使用软提示词来引导模型进行任务的技术。

1、Prompt Tuning 主要贡献
  • 直观性:Prompt Tuning 使用直观的语言提示来引导模型,使其更易于理解和操作。这种方法通过人类可理解的提示词来引导模型,从而使得模型的操作更加透明和直观。

  • 适用性:这种方法特别适用于那些预训练模型已经掌握了大量通用知识的情况,通过简单的提示就能激发特定的响应。Prompt Tuning 通过利用模型已掌握的知识,快速适应新的任务,提高了模型的通用性。

  • 微调成本低:Prompt Tuning 可以在微调时减少所需的计算资源,同时保持良好的性能。这一方法通过减少对模型参数的调整,降低了训练成本,使得微调变得更加经济高效。

**2、Prompt Tuning 核心技术解读:**Prompt Tuning 训练方法
  • 设计提示:根据任务选择硬提示(固定文本)或软提示(可训练向量)作为输入。硬提示通常是固定的文本片段,而软提示则是可训练的向量,能够根据任务需求进行调整。

  • 融入输入:硬提示直接加入文本,软提示作为向量加入序列。在实际应用中,硬提示可以直接插入到输入文本中,而软提示则以向量的形式嵌入到输入序列中。

  • 训练过程:硬提示下全面微调模型;软提示下只调整提示向量,其他参数不变。硬提示需要对模型进行全面微调,而软提示则仅调整提示向量,从而减少了训练复杂度。

  • 执行任务:训练后模型用于 NLP 任务(如问答、摘要),输出由提示引导。经过训练的模型能够在不同的 NLP 任务中表现出色,其输出由预设的提示词引导,从而提高任务执行的准确性和效率。

四、P-Tuning v1 :解决人工设计 Prompt 的问题 (2021)

P-Tuning v1 是 2021 年提出的一种技术,通过将提示(Prompt)转化为可学习的嵌入层来解决人工设计提示的局限性。

1、P-Tuning 的创新之处
  • 离散性(Discreteness):预训练优化过的正常语料嵌入层与直接对输入提示嵌入进行随机初始化训练相比,可能会导致后者陷入局部最优解。P-Tuning 通过优化提示嵌入层,避免了这种局部最优解的问题。

  • 关联性(Association):难以有效捕捉提示嵌入之间的相互关系。P-Tuning 通过学习提示嵌入层的内部关系,提高了提示的有效性和模型的适应性。

2、P-Tuning v1 核心技术解读

2.1、 **一个关于“The capital of Britain is [MASK]” 示例:**蓝色是上下文 “Britain”、 **红色是目标单词 “[MASK]”、**橙色区域是提示词。
  • 传统方式与 P-Tuning 对比:在传统方式中,提示生成器只接收离散奖励,而在 P-Tuning 中,连续的提示嵌入(Prompt Embedding)和提示编码器(Prompt Encoder)以可微的方式进行优化。P-Tuning 通过优化提示嵌入层,使得模型能够更有效地利用提示信息,从而提升任务执行效果。
2.2、 P-Tuning 和 Prefix-Tuning 的主要区别
  • 嵌入位置:Prefix Tuning 在每个注意力层增加前缀嵌入来引入额外参数,而 P-Tuning 的嵌入位置更为灵活,仅在输入时加入嵌入。P-Tuning 的这种灵活性使得它在不同任务中具有更高的适应性。

  • 初始化方法:Prefix Tuning 用多层感知机(MLP)进行初始化,而 P-Tuning 则通过长短期记忆网络(LSTM)加 MLP 进行初始化。这种初始化方法提高了 P-Tuning 的性能,使其在不同任务中都能表现出色。

五、P-Tuning v2 :提升小模型和多任务微调质量 (2022)

P-Tuning v2 是对 P-Tuning 的改进版本,旨在解决小模型和多任务微调中的性能问题。

1、P-Tuning 在小模型上性能不佳

P-Tuning 在小模型上的性能表现不如在大型预训练模型上。因此,P-Tuning v2 旨在改进这一问题,使得小模型也能通过提示调整(Prompt Tuning)达到类似全面微调的效果。

2、P-Tuning v2 的目标

P-Tuning v2 的目标是使提示调整在不同规模的预训练模型上,针对各种下游任务都能达到类似全面微调的效果。这一目标通过优化提示长度、多任务学习和重参数化等技术手段得以实现。

3、之前方法的限制
  • 模型规模差异:在大型预训练模型中,Prompt Tuning 和 P-Tuning 能取得与全面微调相似的效果,但在参数较少的模型上则表现不佳。P-Tuning v2 通过优化提示长度和重参数化技术,解决了这一问题。

  • 任务类型差异:Prompt Tuning 和 P-Tuning 在序列标注任务上的表现都较差。P-Tuning v2 通过改进提示嵌入层的设计,提高了在序列标注任务上的表现。

4. P-Tuning v2 核心技术解读

4.1 重参数化(Reparameterization)
  • Prefix Tuning 和 P-Tuning 中的 MLP:P-Tuning v2 的研究发现,针对不同的任务和数据集,这种方法可能产生相反的效果,特别是在自然语言理解领域。通过重参数化技术,P-Tuning v2 提高了提示嵌入层的有效性。
4.2 提示长度(Prompt Length)
  • 任务对应的最优提示长度:不同任务对应的最优提示长度不一样,例如在简单的分类任务中,长度为20的提示可能是最佳选择,而对于更复杂的任务,则需要更长的提示长度。P-Tuning v2 通过优化提示长度,使其在不同任务中都能达到最佳效果。
4.3 多任务学习(Multi-task Learning)
  • 多任务学习提供更好的参数初始化:对于 P-Tuning v2 而言,多任务学习是可选的,但它可以提供更好的参数初始化,从而进一步提升模型性能。多任务学习通过共享参数,提高了模型的泛化能力和适应性。
4.4 分类头(Classification Head)
  • 语言模型(LM)头的应用:在 Prompt Tuning 中,使用语言模型头来预测动词是核心思路。然而,P-Tuning v2 的研究发现,在完整数据集上这种做法并非必要,且与序列标记任务不兼容。因此,P-Tuning v2 采用类似 BERT 的方式,在第一个 token 处应用随机初始化的分类头。这一改进使得 P-Tuning v2 在序列标注任务中表现更加稳定。

通过以上对大模型高效微调(PEFT)技术的详细解读,希望能够帮助读者更好地理解和应用这些技术,以提升模型的微调效率和性能,迎接AI领域的更多挑战。

题外话

黑客&网络安全如何学习

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

1.学习路线图

在这里插入图片描述

攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。

2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。

在这里插入图片描述

(都打包成一块的了,不能一一展开,总共300多集)

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

3.技术文档和电子书
技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。

在这里插入图片描述

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

4.工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。

还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。

这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。

参考解析:深信服官网、奇安信官网、Freebuf、csdn等

内容特点:条理清晰,含图像化表示更加易懂。

内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…

在这里插入图片描述

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值