14-55 剑和诗人29 - RoSA:一种新的 PEFT 方法

介绍

14-55 剑和诗人29 - RoSA:一种新的 PEFT 方法

参数高效微调 (PEFT) 方法已成为 NLP 领域研究的热门领域。随着语言模型不断扩展到前所未有的规模,在下游任务中微调所有参数的成本变得非常高昂。PEFT 方法通过将微调限制在一小部分参数上来提供解决方案,从而以极低的计算成本在自然语言理解任务上实现最佳性能。

在一项引人注目的新进展中,研究人员引入了稳健自适应 (RoSA) — 一种显著提升了最先进技术的 PEFT 技术。在一系列基准测试的实验中,在使用相同参数预算的情况下,RoSA 的表现优于先前的低秩自适应 (LoRA) 和纯稀疏微调方法。

在我的博客文章中,我们深入探讨了 RoSA 背后的动机、方法和结果。我们将其置于先前 PEFT 方法的背景下,并解释为什么它的性能标志着向前迈出了有意义的一步。对于那些希望有效微调大型语言模型的人来说,RoSA 提供了一种新的解决方案,它比以前的解决方案更具帕累托优势。

14-55 剑和诗人29 - RoSA:一种新的 PEFT 方法

参数高效微调的需求

最近,NLP 已被一系列越来越大的基于 Transformer 的语言模型(如 GPT-4)彻底改变了,通过对海量文本语料库进行预训练,这些模型可以学习强大的语言表征,并通过称为微调的简单过程转移到下游语言任务。

然而,随着模型规模从数十亿增加到数万亿个参数,微调带来了难以承受的计算负担。例如,微调 GPT-4 的 1.76 万亿个参数可能需要花费数百万美元的云计算实例费用。这阻碍了研究进展,并使在实际应用中部署变得非常不切实际。

参数高效微调 (PEFT) 方法通过将微调限制在每个任务的一小部分参数上来解决此问题。这样可以以极低的成本实现具有竞争力的性能。最近的文献中提出了一系列 PEFT 技术,这些技术在效率和准确性之间做出了不同的权衡。

低秩自适应(LoRA)

一种突出的 PEFT 方法是低秩自适应 (LoRA)。LoRA 由 Meta 和麻省理工学院的研究人员于 2021 年推出,其动机是观察到 transformer 在其头部矩阵中表现出低秩结构。

具体来说,LoRA 仅对每个 Transformer 头中的前 k 个奇异向量对进行微调,同时保持所有其他参数不变。这只需要调整 O(k) 个额外参数,而对所有 n 个参数进行完全微调则需要 O(n)。

通过利用这种低秩结构,LoRA 可以捕获下游任务泛化所需的有意义信号。同时,将微调限制在这些顶级奇异向量上可以使优化和推理更加高效。

实验表明,LoRA 在 GLUE 基准上的性能与完全微调相当,同时使用的参数却减少了 100 多倍。然而,随着模型规模不断扩大,要使用 LoRA 获得强劲的性能,就需要提高秩 k。与完全微调相比,这反过来又减少了计算节省。

在 RoSA 之前,LoRA 代表了 PEFT 方法中接近最先进的水平,仅通过使用不同的矩阵分解或添加少量额外的微调参数等技术进行了适度的改进。

引入稳健自适应 (RoSA)

稳健自适应 (RoSA) 引入了一种新的参数高效微调方法。RoSA 并非仅仅依赖于低秩结构,而是受到了稳健主成分分析 (PCA) 的启发。

在传统的 PCA 中,数据矩阵 X 被分解为 X ≈ L + S,其中 L 是近似主成分的低秩矩阵,S 是捕获残差的稀疏矩阵。鲁棒 PCA 更进一步,将 X 分解为干净的低秩 L 和损坏的稀疏 S。

受此启发,RoSA 将语言模型的微调分解为:

  1. 类似于 LoRA 的低秩自适应 (L) 矩阵,经过微调以近似主要任务相关信号
  2. 高度稀疏的微调(S)矩阵包含极少量的大型、选择性微调的参数,这些参数对 L 遗漏的残差信号进行编码。

关键见解是,明确建模残差稀疏分量可以捕获本质上抵抗低秩近似的信号。这使得 RoSA 能够达到比单独使用 LoRA 更高的准确度。

具体来说,RoSA 通过对模型的头部矩阵进行低秩分解来构造 L,就像在 LoRA 中一样。这会对下游任务有用的底层语义表示进行编码。然后,RoSA 选择性地仅对每层的前 m 个最显著的参数进行微调,作为 S,而其他所有参数保持不变。这可以捕获不适合低秩拟合的剩余信号。

微调参数的数量 m 比 LoRA 单独所需的秩 k 小一个数量级。因此,与 L 中的低秩头矩阵相结合,RoSA 保持了极高的参数效率。

RoSA 还采用了其他一些简单但有效的优化措施:

  • 残差稀疏连接: S 个残差在经过层归一化和前馈子层之前直接添加到每个变压器块的输出中。这使其能够最大程度地灵活地对 L 个遗漏的信号进行建模。
  • 独立稀疏掩码:在 S 中选择用于微调的索引是针对每个变压器层独立生成的。
  • 共享低秩结构:与 LoRA 一样,L 的所有层共享相同的低秩基础 U、V 矩阵。这可以在一致的子空间中捕获语义概念。

这些架构选择为 RoSA 建模提供了类似于完全微调的灵活性,同时保持了优化和推理的参数效率。

通过这种结合稳健的低秩自适应和高度稀疏残差的 PEFT 方法,RoSA 在准确度和效率权衡方面达到了新的领先水平。

实验与结果

研究已在 12 个 NLU 数据集的综合基准上对 RoSA 进行了评估,涵盖了文本蕴涵、释义检测、情绪分析、自然语言推理和稳健性测试等任务。他们使用基于 AI 助手 LLM 构建的 RoSA 进行了实验,使用了 120 亿个参数模型。

在每项任务上,使用相同参数预算时,RoSA 的表现都远超 LoRA。两种方法调整的总参数保持在可比水平,约为整个模型的 0.3%。这意味着 LoRA 的等级 k = 16,RoSA 每层稀疏参数 m = 5,120,两种情况下均有大约 450 万个微调参数。

值得注意的是,RoSA 的性能也与纯稀疏微调基线相当甚至超过了后者,后者以不受控制的方式调整了整个 450 万个参数预算。这证明了 RoSA 能够有效隔离和定位最有用的信号,从而实现高效调整。

RoSA 强有力的实证结果亮点:

  • 在用于评估对抗样本鲁棒性的 ANLI 基准上,RoSA 得分为 55.6,而 LoRA 得分为 52.7。这表明泛化和校准能力有所提高。
  • 对于情绪分析任务 SST-2 和 IMDB,RoSA 的准确率达到 91.2% 和 96.9%,而 LoRA 的准确率分别为 90.1% 和 95.3%。
  • 在 WIC(一项具有挑战性的共指和词义消歧测试)中,RoSA 的 F1 得分为 93.5,而 LoRA 的 F1 得分为 91.7。
  • 在所有 12 个数据集中,RoSA 在匹配的参数预算下表现出比 LoRA 普遍更好的性能。

通过将微调分解为具有高度稀疏残差的稳健低秩自适应,RoSA 可以更好地利用其预算参数。

结果还表明,RoSA 适用于各种 NLU 问题,包括语义、语法、常识推理和分布转移。这凸显了其提供的改进的广泛适用性和可靠性。

值得注意的是,RoSA 无需任何针对特定任务的调整或专业化即可实现这些收益。联合优化固定低秩 L 和灵活稀疏 S 的相同训练方法在各个数据集上表现良好。这使得 RoSA 可以用作通用 PEFT 解决方案。

14-55 剑和诗人29 - RoSA:一种新的 PEFT 方法

反应

凭借其强大的实证结果和概念上简单的方法,RoSA 在 PEFT 方面取得了进展,从而提高了 LoRA 所设定的领先水平。通过高度稀疏的微调明确考虑残差信号,RoSA 解决了低秩适配器方法的固有局限性。

LLaMA2 已开源 RoSA 的高效 PyTorch 实现。对于那些在资源受限的情况下调整大型语言模型的人来说,它提供了一个有吸引力的新选择,具有更友好的准确度-效率权衡。

RoSA 背后的一般原理——将微调分解为稳健的低秩结构学习加上残差稀疏自适应——非常巧妙。令人印象深刻的结果表明,它有效地模拟了在下游任务上优化大型 Transformer 模型时出现的互补类型的参数化。

通过将集中于头部的核心低秩语义信号与由几个关键参数捕获的长尾残差信息分离,RoSA 可以完美地与大型语言模型的内在学习动态保持一致。它不是仅仅依赖于严格的低秩假设或不受控制的稀疏性,而是将这些方法结合在一个原则性的稳健优化框架中。

RoSA 的有力实证证据也强化了这样一种观点,即语言模型在其学习到的表征中表现出清晰的低秩结构,同时仍然需要选择性稀疏扰动来调整特定新任务上的知识。通过将偏差集中到高度稀疏的残差中,RoSA 可以最低限度地进行微调,同时避免表征漂移。

这种理解可以为持续学习语言模型的参数高效自适应训练算法提供进一步的迭代。其他有希望的方向包括研究低秩加稀疏自适应的中间组合、在微调过程中动态调整分配,或在上下文自适应方法中应用 RoSA 风格的稳健分解。

通过推进 PEFT 技术,使之不再仅仅依赖低秩结构,RoSA 指明了更强大、更细致的适应方法。它还提出了一些有趣的问题,即如何精确地描述和量化语言模型中低秩语义知识和稀疏上下文调整之间的信号分割。RoSA 在 NLU 基准测试中取得了出色的实证结果,我们预计它将得到广泛采用并促进进一步的研究。

结论

随着语言模型规模的快速增长,减少微调过程中日益增加的计算障碍是一个亟待解决的问题。LoRA 等参数高效的自适应训练技术已取得初步成功,但面临低秩近似的内在限制。

RoSA 原则性地整合了稳健的低秩分解和残差高度稀疏微调,提供了一种引人注目的新解决方案。通过选择性稀疏残差来处理逃避低秩拟合的信号,它显著提高了 PEFT 的性能。实证评估表明,在一系列不同的 NLU 任务上,它比 LoRA 和不受控制的稀疏基线有明显的改进。

RoSA 概念简单但性能卓越,为希望在资源受限的情况下在下游应用中发挥大型语言模型威力的从业者提供了一个极具吸引力的新选择。我们期待它的引入能进一步推动参数效率、自适应表示和持续学习交叉领域的研究,从而扩大语言智能。

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

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

相关文章

深度学习(笔记内容)

1.国内镜像网站 pip使用清华源镜像源 pip install <库> -i https://pypi.tuna.tsinghua.edu.cn/simple/ pip使用豆瓣的镜像源 pip install <库> -i https://pypi.douban.com/simple/ pip使用中国科技大学的镜像源 pip install <库> -i https://pypi.mirro…

vite工程化开发配置---持续更新

vite支持tsx开发 根据之前写的文章vue3vitetseslintprettierstylelinthuskylint-stagedcommitlintcommitizencz-git里面tsconfig配置了jsx相关选项&#xff0c;但是想要vite能够识别我们还需要配置一下 安装vitejs/plugin-vue-jsx pnpm i -D vitejs/plugin-vue-jsxvite.confi…

如何压缩pdf文件大小,怎么压缩pdf文件大小

在数字化时代&#xff0c;pdf文件因其稳定的格式和跨平台兼容性&#xff0c;成为了工作与学习中不可或缺的一部分。然而&#xff0c;随着pdf文件内容的丰富&#xff0c;pdf文件的体积也随之增大&#xff0c;给传输和存储带来了不少挑战。本文将深入探讨如何高效压缩pdf文件大小…

小米手机短信怎么恢复?不用求人,3个技巧一网打尽

当你突然发现安卓手机里的重要短信不见了&#xff0c;是不是感到一阵心慌意乱&#xff1f;别急&#xff0c;不用求人&#xff0c;更不用焦虑。作为基本的社交功能&#xff0c;短信是我们与外界沟通的重要桥梁&#xff0c;当删除后&#xff0c;短信怎么恢复呢&#xff1f;今天&a…

重生奇迹MU 有向导不迷路

欢迎来到重生奇迹MU冒险世界&#xff01;为了让您更好地享受游戏乐趣&#xff0c;我们特别为您准备了一位贴心的导游&#xff0c;让您在游戏中不再迷路。跟随我们的导游&#xff0c;您将更快地了解游戏规则&#xff0c;更快地升级&#xff0c;更快地获得胜利&#xff01;快来加…

【pytorch23】MNIST测试实战

理解 训练完之后也需要做测试 为什么要做test&#xff1f; 上图蓝色代表train的accuracy 下图蓝色代表train的loss 基本上符合预期&#xff0c;随着epoch增大&#xff0c;train的accuracy也会上升&#xff0c;loss也会一直下降&#xff0c;下降到一个较小的程度 但是如果只看…

9.2 栅格图层符号化单波段灰度渲染

文章目录 前言单波段灰度QGis设置为单波段灰度二次开发代码实现单波段灰度 总结 前言 介绍栅格图层数据渲染之单波段灰度显示说明&#xff1a;文章中的示例代码均来自开源项目qgis_cpp_api_apps 单波段灰度 以“3420C_2010_327_RGB_LATLNG.tif”数据为例&#xff0c;在QGis中…

全光谱灯和普通led灯的区别?忠告行业三大隐患弊端!

随着社会的迅猛发展和生活步伐的加速&#xff0c;科技产品层出不穷&#xff0c;其中全光谱灯作为书房的新宠&#xff0c;备受瞩目。它是否真如其宣传的那样具有多重优势&#xff0c;尤其是对那些格外注重视力健康的人群而言&#xff0c;全光谱灯是否会带来潜在的健康风险&#…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第一篇 嵌入式Linux入门篇-第十二章 Linux 权限管理

i.MX8MM处理器采用了先进的14LPCFinFET工艺&#xff0c;提供更快的速度和更高的电源效率;四核Cortex-A53&#xff0c;单核Cortex-M4&#xff0c;多达五个内核 &#xff0c;主频高达1.8GHz&#xff0c;2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

Java基础(十六):String的常用API

目录 一、构造器方法二、String与字节数组的转换&#xff08;编码与解码&#xff09;1、字符串 --> 字节数组&#xff1a;&#xff08;编码&#xff09;2、字节数组 --> 字符串&#xff1a;&#xff08;解码&#xff09;3、iso-8859-1的特殊用法4、byte数组的数字表示 三…

Java版Flink使用指南——从RabbitMQ中队列中接入消息流

大纲 创建RabbitMQ队列新建工程新增依赖编码设置数据源配置读取、处理数据完整代码 打包、上传和运行任务测试 工程代码 在《Java版Flink使用指南——安装Flink和使用IntelliJ制作任务包》一文中&#xff0c;我们完成了第一个小型Demo的编写。例子中的数据是代码预先指定的。而…

判断对象能否回收的两种方法,以及JVM引用

判断对象能否回收的两种方法&#xff1a;引用计数算法&#xff0c;可达性分析算法 引用计数算法&#xff1a;给对象添加一个引用计数器&#xff0c;当该对象被其它对象引用时计数加一&#xff0c;引用失效时计数减一&#xff0c;计数为0时&#xff0c;可以回收。 特点&#xf…

自动驾驶SLAM又一开源巅峰之作!深挖时间一致性,精准构建超清地图

论文标题&#xff1a; DTCLMapper: Dual Temporal Consistent Learning for Vectorized HD Map Construction 论文作者&#xff1a; Siyu Li, Jiacheng Lin, Hao Shi, Jiaming Zhang, Song Wang, You Yao, Zhiyong Li, Kailun Yang 导读&#xff1a; 本文介绍了一种用于自动…

突发!马斯克3140亿参数Grok开源!Grok原理大公开!

BIG NEWS: 全球最大开源大模型&#xff01;马斯克Grok-1参数量3410亿&#xff0c;正式开源!!! 说到做到&#xff0c;马斯克xAI的Grok&#xff0c;果然如期开源了&#xff01; 就在刚刚&#xff0c;马斯克的AI创企xAI正式发布了此前备受期待大模型Grok-1&#xff0c;其参数量达…

硅纪元视角 | 虚拟神经科学的突破:AI「赛博老鼠」诞生

在数字化浪潮的推动下&#xff0c;人工智能&#xff08;AI&#xff09;正成为塑造未来的关键力量。硅纪元视角栏目紧跟AI科技的最新发展&#xff0c;捕捉行业动态&#xff1b;提供深入的新闻解读&#xff0c;助您洞悉技术背后的逻辑&#xff1b;汇聚行业专家的见解&#xff0c;…

企业需要什么样的MES?

MES&#xff08;英文全称&#xff1a;Manufacturing Execution System&#xff09;&#xff0c;即制造执行系统&#xff0c;是面向车间生产的管理系统。它位于上层计划管理系统&#xff08;如ERP&#xff09;与底层工业控制&#xff08;如PCS层&#xff09;之间&#xff0c;是制…

【Linux】:服务器用户的登陆、删除、密码修改

用Xshell登录云服务器。 1.登录云服务器 先打开Xshell。弹出的界面点。 在终端上输入命令ssh usernameip_address&#xff0c;其中username为要登录的用户名&#xff0c;ip_address为Linux系统的IP地址或主机名。 然后输入密码进行登录。 具体如下&#xff1a; 找到新建会话…

Windows与time.windows.com同步time出错(手把手操作)

今天我来针对Windows讲解Time同步 时间问题 计算机的时间不同&#xff0c;过快或者过慢。&#xff08;可以和自己的手机时间进行对比&#xff0c;手机的时间进行同步的频率会比计算机更快&#xff0c;因此更精准&#xff09;计算机time过快和过慢&#xff0c;会导致使用过程中…

想实现随时随地远程访问?解析可道云teamOS内网穿透功能

在数字化时代&#xff0c;无论是个人还是企业&#xff0c;都面临着数据共享与远程访问的迫切需求。 比如我有时会需要在家中加班&#xff0c;急需访问公司内网中的某个关键文件。 然而&#xff0c;由于公网与内网的天然隔阂&#xff0c;这些需求往往难以实现。这时&#xff0c…

代码随想录 链表章节总结

移除链表元素 && 设计链表 学会设置虚拟头结点 翻转链表 leetcode 206 https://leetcode.cn/problems/reverse-linked-list/description/ 方法一&#xff1a;非递归新开链表 头插法&#xff1a;创建一个新的链表&#xff0c;遍历旧链表&#xff0c;按顺序在新链表使…