(2024,LoRA-the-Explorer,并行 LoRA,合并延迟)使用并行 LoRA 从头开始训练神经网络

Training Neural Networks from Scratch with Parallel Low-Rank Adapters

公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群)

目录

0. 摘要

2. 基础

3. 方法

3.1. 动机:多头合并的视角

3.2. LoRA soup:延迟 LoRA 合并

3.3. LoRA-the-Explorer:并行低秩更新

4. 实验


0. 摘要

深度学习模型的可扩展性在根本上受到计算资源、内存和通信的限制。尽管像低秩适应(LoRA)这样的方法降低了模型微调的成本,但其在模型预训练中的应用仍然相对未被深入探讨。本文探讨了将 LoRA 扩展到模型预训练,识别了在这一背景下标准 LoRA 的固有约束和局限性。我们引入了 LoRA-the-Explorer(LTE),这是一种新颖的双层优化算法,旨在实现在计算节点上并行训练多个低秩头,从而减少频繁同步的需求。我们的方法在使用各种视觉数据集的视觉 transformer 上进行了大量实验,表明 LTE 在标准预训练中具有竞争力。

项目页面:minyoungg.github.io/LTE

2. 基础

3. 方法

为了理解使用 LoRA 进行预训练所需的条件,我们首先确定了一种具体的情景,在这种情景下,可以使用 LoRA 恢复标准训练性能。这为我们开发算法提供了指导,该算法保持了 LoRA 的内存效率。

尽管低秩适应器(LoRA)已被证明是一种有效的微调方法,但在预训练时它们存在明显的限制。正如图 2 所示,使用 LoRA 参数化的模型表现出比使用标准优化训练的模型更差的性能。这种性能差距并不令人惊讶,因为它可以归因于 LoRA 中固有的秩约束。具体而言,对于参数 W∈ R^(m×n),LoRA 基本上无法恢复超过秩 r < min(m, n) 的权重。当然,也有一些例外情况,偶然情况下,一个解存在于初始化的低秩邻域内。然而,在附录 B 中,我们观察到梯度的秩在训练过程中往往会增加,暗示了高秩更新的必要性。

3.1. 动机:多头合并的视角

本节提供关于为什么 LoRA 并行使用多个头可以达到标准预训练性能的直观解释。

正如图 2 所示,将 LoRA 的秩 r 提高到与权重矩阵 W ∈ R^(m×n) 的秩 min(m, n) 相同足以复制标准预训练性能,尽管在附录 B.2 中详细说明了其中不同的内在动态。然而,这种方法会损害低秩适应器的内存效率。

因此,我们调查通过并行使用多个低秩适应器来达到等效性能的可能性。我们的动机利用了这些适应器的线性特性来引入并行化的简单想法。

给定形式为 BA ∈ R^(d1×d2) 的矩阵,其中 B ∈ R^(d1×d) 和 A ∈ R^(d×d2),可以将乘积表示为两个低秩矩阵的和:B1A1+B2A2。为了证明这一点,让 bi 和 ai 分别是 B 和 A 的列向量。然后可以构造 B1 = [b_1, . . . , b_[d/2]],B2 = [b_[d/2], . . . , b_d],以及 A1 = [a_1,. . . ,a_[d/2]]^T,A2 = [a_[d/2],. . . ,a_d]^T。这种分解允许通过较低秩矩阵的线性组合来逼近高秩矩阵。通过从秩-1 矩阵的线性组合开始,可以得出相同的结论。这构成了一种新颖的多头 LoRA 参数化方法,我们将其用作与我们最终方法进行比较的基线之一。

Multi-head LoRA(MHLoRA):给定矩阵 W ∈ R^(m×n) 和常数 N,多头 LoRA 将权重参数化为N 个低秩矩阵 Bn 和 An 的线性组合:

多头 LoRA 将全秩权重重新参数化为低秩权重的线性组合。

现在,我们将指出一个微不足道的观察结果,即单个并行 LoRA 头可以近似多头 LoRA 的单个步骤的轨迹,前提是定期将并行 LoRA 头合并到完整权重中。

对所有 LoRA 参数使用相同的秩 r,单个并行 LoRA 头(用 ˆ· 表示)的动态与多头 LoRA 等效: 

等于 ^Bn​^An​,或

时,等式 3 成立;这里我们使用了一种简写符号,表示求和是对所有 LoRA 参数(除了索引n)进行的。我们假设方程两边的参数被初始化为相同的值:对于所有 n,^An​ = An​ 且 Bn ​= ^Bn​。

第一种情况是秩亏的,我们知道它无法恢复原始的模型性能。后一种情况要求 ^W 在每次迭代中累积所有 LoRA 参数的信息。因此,如果我们可以在每次迭代中应用合并运算符,我们就可以恢复精确的更新。

这个相当简单的观察意味着我们可以恢复多头 LoRA 参数化模型的精确梯度更新,我们观察到这些更新在各种任务中与预训练性能相匹配(请参见附录 D)。此外,在分布式设置中,只需在设备之间传递 LoRA 参数/梯度,这通常是原始模型大小的一小部分,这使其成为在计算节点之间的互连速度有限的情况下的良好选择。

3.2. LoRA soup:延迟 LoRA 合并

为了进一步降低 LTE 的通信成本,我们延伸并结合了局部更新(McMahan等,2017)和模型平均(Wortsman等,2022;Yadav等,2023;Ilharco等,2023)的思想。我们允许 LoRA 参数在合并运算符之前独立训练更长的时间,而不是每次迭代都进行合并。这相当于使用 LoRA 参数的过时估计(stale estimates)

其中 ′ 表示参数的过时估计。

每次迭代合并确保表示不会偏离预期的更新。虽然使用过时的估计会放宽这种等价性,但我们观察到它仍然可以匹配表 1 中所示的标准训练性能。然而,随着估计变得不准确,优化轨迹确实会偏离多头 LoRA 的优化路径。我们在图 4 中量化了这种偏差。这种偏离并不意味着模型不能优化;相反,它表明优化轨迹将偏离多头 LoRA 的轨迹。在这项工作中,我们选择了简单的平均方法,将更复杂的合并方法留给未来的工作,例如 (Karimireddy等,2020;Matena&Raffel,2022;Yadav等,2023)。

3.3. LoRA-the-Explorer:并行低秩更新

我们的算法设计考虑了两个主要因素:(1)实现一个具有信息量的更新 ΔW,在训练过程中不需要完整参数大小的实现,以及(2)对 W 进行参数化,使其可以以低精度存储和高效传递。后者可以通过使用量化权重并保留 W 的高精度副本来实现。 我们提出了 LoRA-the-Explorer(LTE),这是一种通过并行低秩更新来近似全秩更新的优化算法。该算法在初始化时为每个线性层创建 N 个不同的 LoRA 参数。每个工作器被分配 LoRA 参数,并创建一个局部优化器。接下来,数据从相同的分布中独立采样 x={x1​,...xN​}。对于每个 LoRA 头 n,参数根据其自己的数据分区进行 T 次迭代优化,导致更新

我们不同步工作器之间的优化器状态。优化之后,同步生成的 LoRA 参数以计算主要权重

的最终更新。 在下一个训练周期中,LoRA 参数将使用更新后的权重 W 进行训练。在这里,LoRA参数可以重新初始化,也可以使用相同的参数与修正项(参见附录A.2)。由于我们不直接在主参数 W 上进行训练,我们可以使用量化参数 q(W)。其中,可以将高精度权重保留在主节点上,也可以在训练期间从设备卸载它。这不仅减少了每个工作器的内存占用,还减少了传输开销。算法 1 中提供了伪代码,图 3 中提供了插图。

4. 实验

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

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

相关文章

队列实现栈与栈实现队列

文章目录 前言一、使用队列实现栈二、使用栈实现队列 前言 1、用于巩固栈和队列。 2、本章是使用纯C语言实现的栈和队列&#xff0c;不懂的可以先看看这个喔&#xff1a;c语言实现栈和队列&#xff0c;当然这里直接用C的栈和队列会更方便哦。 3、利于复习C语言的知识点。 一、使…

20240301-2-ZooKeeper面试题(二)

11. Chroot 特性 3.2.0 版本后&#xff0c;添加了 Chroot 特性&#xff0c;该特性允许每个客户端为自己设置一个命名空间。如果一个客户端设置了 Chroot&#xff0c;那么该客户端对服务器的任何操作&#xff0c;都将会被限制在其自己的命名空间下。 通过设置 Chroot&#xff…

【激光SLAM】基于已知位姿的构图算法 (Grid-based)

文章目录 地图分类概念 覆盖栅格建图算法栅格地图的特征数学描述假设 算法流程激光雷达的逆观测模型 计数(Count Model)建图算法概念数学描述观测模型地图估计 地图分类 概念 地图即为环境的空间模型。环境地图是机器人进行定位和规划的前提。定位可以用特征地图&#xff08;…

面试数据库篇(mysql)- 08事务

原理 事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。 ACID是什么?可以详细说一下吗? 原子性(Atomicity):事务是不可分割的最小操作单元,要么全部成功,要么全…

今日arXiv最热大模型论文:点击即可播放!港中文发布大模型写歌神器!

一首歌&#xff0c;包含作词作曲两个部分。擅长作词or作曲就已经很牛了。比如方文山是周杰伦的御用作词人&#xff0c;而周杰伦写过很多耳熟能详的曲子。而兼具作词作曲才华的全能创作人却是难得一见。 最近港中文发布了一款歌曲创作大模型SongComposer&#xff0c;作词作曲都…

SpringBoot底层原理

SpringBoot底层原理 一 配置优先级 1.配置方式 Springboot中支持三种配置方式&#xff0c;分别为&#xff1a; application.propertiesapplication.ymlapplication.yaml 2.配置优先级 当存在多份配置文件时&#xff0c;配置文件会按照它们的优先级生效。 优先级从高到底…

Java——建造者模式(Builder)

建造者模式&#xff08;Builder&#xff09; 1、建造者模式的定义 将一个复杂对象的构建与它的表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。 Builder模式是一步一步创建一个复杂对象的创建型模式&#xff0c;它允许使用者在不知道内部建造细节的情况下&…

【深度学习笔记】深度卷积神经网络——NiN

网络中的网络&#xff08;NiN&#xff09; LeNet、AlexNet和VGG都有一个共同的设计模式&#xff1a;通过一系列的卷积层与汇聚层来提取空间结构特征&#xff1b;然后通过全连接层对特征的表征进行处理。 AlexNet和VGG对LeNet的改进主要在于如何扩大和加深这两个模块。 或者&am…

Freesia项目目录结构

目录结构 前端目录&#xff1a; &#xff08;目录结构来自layui-vue-admin&#xff09; src文件下 api&#xff08;前端请求后端服务的路由&#xff09;assert&#xff08;一些内置或必要的资源文件&#xff09;layouts&#xff08;全局框架样式组件&#xff09;router&…

浅析能耗监测系统在大型数据中心的应用

彭姝麟 Acrelpsl 1总体设计 大型数据中心能耗监测系统包含硬件和软件两大部分&#xff0c;其硬件组成主要包括监控服务器、主机设备、网络设备、环境参数传感器、通风模块等&#xff0c;总体采集逻辑采用三级监控体系。一级为主机设备&#xff0c;作为系统的应用层&#xff0c…

28.HarmonyOS App(JAVA)多页签的实现(Tab)

HarmonyOS App(JAVA)多页签的实现&#xff08;Tab&#xff09; 页面可左右滑动&#xff0c;点击界面1,2,3切换到对应界面 PageSlider的创建和使用 在layout目录下的xml文件中创建PageSlider。 <PageSlider ohos:id"$id:page_slider" ohos:height"300vp&…

基于springboot+vue的校园失物招领系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…