辽宁网站建设哪里好找,企业品牌网站建设应该怎么做,wordpress 分页静态,实训报告网站开发目录 摘要1 引言2 相关工作3 方法4 实验5 结果6 结论7 局限性和未来工作 关注公众号TechLead#xff0c;分享AI与云服务技术的全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验#xff0c;同济本复旦硕#xff0c;复旦机器人智能实验室成员#xff0… 目录 摘要1 引言2 相关工作3 方法4 实验5 结果6 结论7 局限性和未来工作 关注公众号TechLead分享AI与云服务技术的全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验同济本复旦硕复旦机器人智能实验室成员阿里云认证的资深架构师项目管理专业人士上亿营收AI产品研发负责人。 摘要
尽管通过扩展导致具有数千亿参数的大型网络在统治和效率方面表现突出但训练过参数化模型的必要性仍然难以理解且替代方法不一定能使训练高性能模型的成本降低。在本文中我们探索了低秩训练技术作为训练大型神经网络的替代方法。我们引入了一种名为 ReLoRA 的新方法该方法利用低秩更新来训练高秩网络。我们将 ReLoRA 应用于预训练最多达 350M 参数的变换器语言模型并展示了与常规神经网络训练相当的性能。此外我们观察到 ReLoRA 的效率随着模型大小的增加而提高使其成为训练多十亿参数网络的有效方法。我们的研究发现揭示了低秩训练技术的潜力及其对扩展规律的影响。代码已在 GitHub 上提供。
1 引言
在过去的十年中机器学习领域一直被训练越来越多参数化的网络或采取“叠加更多层”的方法所主导。大型网络的定义已经从具有1亿个参数的模型演变到数百亿个参数这使得与训练这样的网络相关的计算成本对大多数研究团队来说变得过于昂贵。尽管如此与训练样本相比需要训练数量级更多的参数的模型的必要性在理论上仍然理解不足。
例如更有效的计算扩展最优化、检索增强模型、以及通过更长时间训练较小模型的简单方法等替代扩展方法都提供了新的权衡。然而它们并没有让我们更接近理解为什么我们需要过参数化的模型也很少使这些模型的训练民主化。例如训练RETRO需要一套复杂的训练设置和基础设施能够快速搜索数万亿的标记而训练LLaMA-6B仍然需要数百个GPU。
相比之下像零冗余优化器、16位训练、8位推断和参数有效微调PEFT等方法在使大型模型更易访问方面发挥了关键作用。具体来说PEFT方法使得在消费者硬件上微调十亿规模的语言或扩散模型成为可能。这引发了一个问题这些方法是否也能惠及预训练
一方面预训练正是允许对网络进行微小修改以使其适应新任务的步骤。Aghajanyan等人已经证明预训练网络越多学习任务所需的更改的秩就越小。另一方面多项研究已经证明了语言和视觉模型提取和利用的特征的简单性以及它们的低固有维度。例如变换器中的注意力模式通常呈现小秩这已经被成功用于开发更高效的注意力变体。此外训练过程中也并不需要过参数化。彩票票据假说从经验上证明在初始化或训练早期时存在子网络 - 获胜票据当单独训练时可以达到整个网络的性能。
在本研究中我们专注于低秩训练技术并介绍了ReLoRA它使用低秩更新来训练高秩网络。我们凭经验证明ReLoRA执行高秩更新并实现与常规神经网络训练相似的性能。ReLoRA的组成部分包括神经网络的初始完全秩训练类似于Frankle等人LoRA训练重新开始锯齿状学习速率计划以及部分优化器重置。我们对ReLoRA在高达350M参数的变换器语言模型上的效果进行评估。我们选择专注于自回归语言建模因为这种方法在神经网络的大多数应用中已经展示了其通用性。最后我们观察到ReLoRA的效率随着模型大小的增加而增加使其成为有效训练多十亿参数网络的可行选择。
本研究中的每个实验均未使用超过8个GPU天的计算。 2 相关工作
缩放与效率 过参数化与神经网络的可训练性和泛化之间的关系已经得到了广泛的研究但仍然是一个谜。此外缩放法则展示了网络大小与其在各种模态之间的性能之间存在简单而强烈的幂律依赖关系。这一发现不仅支持过参数化而且还鼓励对非常消耗资源的神经网络进行训练。然而彩票假设表明原则上可以最小化过参数化。具体来说它表明在训练初期存在可以训练以达到整个网络性能的子网络中奖彩票。
参数高效微调 Aghajanyan等人发现预训练减少了网络的变化量或其固有维数以通过微调学习新任务。即更大的网络或在更多数据上预训练的网络在学习新任务时需要较小的修改就其范围的秩而言。这解释了参数高效微调方法的成功并且还激发了像LoRA和Compacter这样的低秩微调方法的发展。
低秩神经网络训练 在CNN压缩、正则化和高效训练的背景下已经探讨了训练低秩表示。然而这些方法中的大多数要么特定于CNN要么不具备良好的可扩展性要么没有在具有数亿参数的大型转换器上进行评估而这些转换器可以从高效训练中大大受益。虽然转换器已被证明具有低秩的内部维数和表示但Bhojanapalli等人的研究表明在多头注意力中关键和查询投影的低秩限制了转换器的性能。我们自己的实验第3节也表明与完整秩基线和ReLoRA相比低秩转换器的性能明显较差。 3 方法
让我们从重新审视线性代数101开始。特别是我们对两个矩阵之和的秩感兴趣 rank(A B) ≤ rank(A) rank(B)。1 对和的秩的这个界限是紧的对于矩阵A有rank(A) dim(A)存在B使得rank(B) dim(B)并且矩阵之和的秩高于A或B。我们想要利用这个属性来制造一种灵活的参数高效的训练方法。我们从LoRA开始它是一种基于低秩更新思想的参数高效微调方法。LoRA可以应用于任何通过W ∈ R^m×n参数化的线性操作。具体来说LoRA将权重更新δW分解为低秩乘积WAWB如方程2所示其中s ∈ R是通常等于1/r的固定缩放因子。 δW sWAWB WA ∈ R^in×r , WB ∈ R^r×out2 在实践中LoRA通常是通过添加新的可训练参数WA和WB来实现的这些参数可以在训练后合并回原始参数。因此即使方程1允许在训练时间P_t δWt内的总更新具有高于任何单个矩阵的更高的秩LoRA实现也受到秩r maxWA,WB rank(WAWB)的限制。
如果我们可以重新启动LoRA即在训练期间合并WA和WB并重置这些矩阵的值我们可以增加更新的总秩。多次这样做将整个神经网络更新带到 ∆W ΣT1_t0 δWt ΣT2_tT1 δWt · · · ΣTN_tTN−1 δWt sW1_AW1_B sW2_AW2_B · · · sWN_AWN_B3 其中总和是独立的意味着rank(Wi_AWi_B) rank(Wj_AWj_B) ≥ r。然而在实践中实现重新启动并不是微不足道的需要对优化过程进行一些修改。天真的实现会导致模型在重新启动后立即发散。与仅依赖于当前优化时间步的梯度值的普通随机梯度下降不同Adam更新主要由之前步骤累积的梯度的第一和第二时刻指导。在实践中梯度矩滑参数β1和β2通常非常高即0.9 - 0.999。假设在重新初始化边界W1_A和相应的梯度矩mA和vA处是全秩的®。那么在合并和重新初始化后继续使用W2_A的旧梯度矩将引导它沿着W1_A的相同方向并优化相同的子空间。
为了解决这个问题我们提出了ReLoRA。ReLoRA在合并和重新初始化期间对优化器状态进行部分重置并将学习率设置为0并随后进行热启动。具体来说我们将99%的低幅度优化器状态值设置为零并使用锯齿状余弦学习率计划图2。我们的消融研究表3表明这两项修改都是提高LoRA性能的必要条件。
重申一下ReLoRA是一种受LoRA启发的低秩训练方法通过重新启动来增加更新的有效秩使用部分优化器重置和锯齿调度器来稳定训练和热启动。所有这些都使ReLoRA能够通过一次仅训练一小部分参数实现与全秩训练相当的性能特别是在大型变换器网络中。ReLoRA在算法1中描述。
提高计算效率 与其他低秩训练技术不同ReLoRA通过保持原始网络的冻结权重并添加新的可训练参数来遵循LoRA方法。乍一看这似乎在计算上是低效的然而冻结和可训练参数之间的区别在参数高效微调中起到了关键作用。
这些方法通过减小梯度和优化器状态的大小显著提高了训练时间和内存效率。值得注意的是Adam状态消耗的内存是模型权重的两倍。此外对于大型网络通常的做法是以32位精度保持梯度累积缓冲区从而增加了梯度的内存消耗的重要开销。
通过大幅减少可训练参数的数量ReLoRA使得能够使用更大的批次大小最大化硬件效率。此外它还减少了分布式设置中的带宽要求这通常是大规模训练的限制因素。
此外由于冻结参数在重新启动之间没有被更新所以它们可以保持在低精度量化格式中进一步减少它们的内存和计算影响。
这一额外的优化有助于整体提高ReLoRA在内存利用和计算资源方面的效率并在规模上增加。 4 实验
为了评估ReLoRA的有效性我们将其应用于使用各种模型大小60M、130M、250M和350M在C4数据集上训练变换器语言模型。语言建模已被证明是机器学习的基本任务它能够实现文本和图像分类、翻译、编程、上下文学习、逐步推理等许多其他新兴能力。鉴于其重要性本文的目的仅关注语言建模。
架构和训练超参数 我们的架构基于变换器并与LLaMA非常相似。具体来说我们使用预归一化、RMSNorm、SwiGLU激活、全连接隐藏状态大小以及旋转嵌入。对于所有LoRA和ReLoRA实验我们使用秩r 128因为我们的初步实验显示它具有最佳的困惑度/内存权衡。所有超参数均在表1中呈现。
我们对所有浮点操作使用bfloat16并使用Flash注意力进行有效的注意力计算。与LLaMA中使用float32进行softmax计算的注意力相比这增加了50-100%的训练吞吐量而没有任何训练稳定性问题。
我们大部分模型在8个RTX 4090上训练了一天或更短的时间。由于计算限制我们训练的模型要比LLaMA小得多最大的模型拥有350M个参数与BERT Large相同。我们根据Chinchilla缩放定律为所有模型选择预训练令牌的数量除了最大的一个我们为其训练了6.8B个令牌而9.5B个令牌是Chinchilla最优的。
ReLoRA和基线设置 在我们的低秩训练实验中ReLoRA替换了所有注意力和全连接网络参数同时保持嵌入全秩。RMSNorm参数化保持不变。由于ReLoRA封装的模型比全秩训练具有更少的可训练参数因此我们包括了一个控制基线即具有与ReLoRA相同数量可训练参数的全秩变换器。
我们从全秩训练的5,000次更新步骤的检查点开始初始化ReLoRA并在此后的每5,000步重置一次总共3次。每次重置后基于大小修剪99%的优化器状态并在接下来的100次迭代中预热损失。ReLoRA参数按照LoRA的最佳实践重新初始化A矩阵使用Kaiming初始化B矩阵使用零。如果不使用重新启动B矩阵也使用Kaiming初始化以避免梯度对称性问题。 5 结果
参数高效的预训练 我们的主要结果在表2中展示。ReLoRA显著优于低秩LoRA训练展示了我们所提出修改的有效性在第3节中剖析。此外ReLoRA的表现与全秩训练相似且随着网络大小的增加性能差距逐渐减小。
通过低秩更新进行高秩训练 为了确定ReLoRA是否执行比LoRA更高的秩更新我们绘制了ReLoRA、LoRA和全秩训练的热启动权重与最终权重之间差异的奇异值谱图。图3描绘了LoRA和ReLoRA在WQ、WK、WV和Wdown的奇异值之间的显著定性差异。
虽然LoRA的大部分奇异值为零图4且有显著数量的异常高值超过1.5但ReLoRA在0.1和1.0之间呈现更高的分布质量让人联想到全秩训练。这一观察强调了高秩更新的重要性并展示了ReLoRA的定性功效其通过执行多个低秩更新实现高秩更新。
5.1 剖析研究
我们对ReLoRA的四个关键组件重启、锯齿状调度、优化器重置和温暖启动进行剖析研究使用130M大小的模型。结果展示在表3中。在本节中我们将重点关注和分析这些组件的某些组合。
LoRA ReLoRA没有上述组件本质上等同于通过LoRA参数化训练低秩网络。这种方法产生了极高的困惑度表明简单的矩阵分解与全秩训练有显著不同的训练动态。
添加重启和优化器重置 ReLoRA没有锯齿状调度和优化器重置表现与LoRA相似因为旧的优化器状态将新初始化的参数强制进入与先前权重相同的子空间限制了模型的容量。然而用ReLoRA进行天真的优化器重置会导致模型发散。锯齿状调度有助于稳定训练并对混合物产生积极影响。在我们的初步实验中我们还观察到部分优化器重置和锯齿状调度器的组合允许更快的预热低至50步而不是从头开始初始化优化器时所需的数百步。
温暖启动 温暖启动显示了最显著的改进使困惑度降低了近10点。为了调查预热后训练是否有助于损失我们测量了预热网络的困惑度等于27.03。它优于所有低秩方法除了我们最终的ReLoRA配方但仍然显示出与最终网络的显著差异。这展示了早期训练的重要性类似于彩票假说与倒带的概念。 6 结论
在本文中我们研究了大型变换器语言模型的低秩训练技术。我们首先检查了简单低秩矩阵分解LoRA方法的局限性并观察到它在有效训练高性能变换器模型方面存在困难。为解决这个问题我们提出了一种名为ReLoRA的新方法它利用秩的和性质通过多个低秩更新来训练高秩网络。与彩票假说和倒带相似ReLoRA在转变为ReLoRA之前采用全秩训练的温暖启动。此外ReLoRA引入了合并和重新初始化重启策略、锯齿状学习速率调度器和部分优化器重置这些共同增强了ReLoRA的效率并使其更接近全秩训练特别是在大型网络中。随着网络大小的增加ReLoRA的效率提高使其成为多十亿规模训练的可行候选方案。
我们坚信低秩训练方法的发展对于提高训练大型语言模型和一般神经网络的效率具有很大的潜力。此外低秩训练还有潜力为深度学习理论的进步提供有价值的见解有助于我们通过梯度下降理解神经网络的可训练性以及在过参数化体系中的卓越泛化能力。
7 局限性和未来工作
超越350M的扩展 由于计算资源有限我们的实验仅限于训练多达350M参数的语言模型。然而ReLoRA已经在此规模上展示了有希望的结果。不过我们预计其真正的潜力将在1B参数区域实现。此外虽然350M模型胜过控制基线但并未继续缩小ReLoRA和全秩训练之间的差距的趋势。我们将这一现象归因于次优的超参数选择这需要进一步研究。
此外在60-350M的实验中尽管ReLoRA显著减少了可训练参数的数量但我们并未观察到对这种大小的网络在内存和计算方面的实质改进。为了评估我们当前实现在更大规模上的效率我们训练了1.3B参数的模型进行少量迭代以估计ReLoRA的内存和计算改进。在这个规模下我们观察到30%的内存消耗减少和52%的训练吞吐量增加。我们期望在更大的网络中观察到相对全训练基线的更大改进因为ReLoRA的可训练参数数量与LoRA类似相较于冻结参数的数量增加得要慢得多。ReLoRA的实现可以通过有效利用ReLoRA层的梯度检查点、自定义反向函数和将冻结模型权重转换为int8或int4量化格式[14]来进一步改进。
与其他低秩训练方法的比较 早期的工作已经探索了许多低秩训练方法与其他模型架构的组合[44,49,55]。我们的工作与这些早期努力有两个方面的不同。首先我们提出的方法通过低秩训练执行高秩更新。其次我们的工作展示了在具有100M参数的大规模变换器语言模型中低秩训练方法的竞争力。 关注公众号TechLead分享AI与云服务技术的全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验同济本复旦硕复旦机器人智能实验室成员阿里云认证的资深架构师项目管理专业人士上亿营收AI产品研发负责人。