资讯网站开发,网站建设合同要求,桂林市区景点,猫猫 wordpress现在有很多关于大型语言模型#xff08;LLM#xff09;的研究#xff0c;都围绕着如何高效微调展开。微调是利用模型在大规模通用数据上学到的知识#xff0c;通过有针对性的小规模下游任务数据#xff0c;使模型更好地适应具体任务的训练方法。 
在先前的工作中#xff…现在有很多关于大型语言模型LLM的研究都围绕着如何高效微调展开。微调是利用模型在大规模通用数据上学到的知识通过有针对性的小规模下游任务数据使模型更好地适应具体任务的训练方法。 
在先前的工作中全量微调的训练代价昂贵、Adapter Tuning 的训练和推理存在延迟Prefix Tuning 会减少原始训练数据中的有效文字长度因此有人提出使用低秩微调 LoRA在原始预训练矩阵的旁路上用低秩矩阵 A 和 B 来近似替代增量更新。 
近期又有了新方法助力大型语言模型更高效地适应任务来自清华的研究团队在 LoRA 的基础上提出了一项名为 Sparse Low-Rank AdaptationSoRA的创新微调方法通过动态调整内在秩实现了对预训练模型的高效微调。SoRA 不仅在多项任务上取得了令人瞩目的性能而且通过稀疏方式显著减少了参数数量加速了训练过程。 
论文题目:Sparse Low-rank Adaptation of Pre-trained Language Models 
论文链接:https://arxiv.org/abs/2311.11696 
GitHub 地址:https://github.com/TsinghuaC3I/SoRA 微调策略 
全量微调 
全量微调full-parameter fine-tuning是指在微调预训练模型时对整个模型的所有参数进行调整。 在预训练阶段模型使用大规模数据集进行训练学习了通用的语言表示。  在微调阶段模型根据特定任务或领域的小规模数据集进行进一步训练以适应特定任务的要求。  
全量微调的过程包括调整模型的所有权重和参数使其更好地适应微调阶段的任务。 优点模型可以充分利用预训练阶段学到的通用知识。  缺点需要较大的计算资源和时间并且在一些小规模任务上容易过拟合。  
参数效率微调 
参数效率微调是一类微调预训练模型的策略旨在通过调整模型的部分参数而不是整个参数集以降低计算成本、提高微调效率并在小规模任务上取得良好性能。这些方法的核心思想是在保留模型在大规模预训练任务中学到的通用知识的同时通过有选择地微调模型的部分参数减少计算开销和提高微调效率并使其更适应特定任务。这些方法特别是在资源受限或数据有限的情况下很有效。 适配器Adapter 这是一种轻量级的模型扩展方法通过在预训练模型的层之间插入额外的小型神经网络适配器来微调模型。这些适配器仅包含相对较少的参数因此微调的计算成本相对较低。  低秩自适应Low-Rank AdaptationLoRA 使用低秩矩阵来近似权重的变化从而减少需要微调的参数数量。通过冻结大多数预训练权重只微调低秩矩阵的参数可以在保留性能的同时显著减少计算开销。  
什么是近端正则化 
近端梯度方法是一类优化算法通常用于处理带有正则化项的优化问题。这类方法结合了梯度下降和近端操作以有效地在考虑正则化惩罚的同时更新模型参数。 
在机器学习中正则化用于控制模型的复杂性以防止过度拟合训练数据。近端梯度方法通过在每次迭代中对梯度下降的步骤应用“近端操作”来实现正则化这通常是指应用软阈值或硬阈值等函数将每个参数调整到一个接近零的值以促使模型参数更稀疏或具有低秩性。 
近端梯度方法的目标是在梯度下降的基础上最小化损失函数并通过近端操作来确保参数满足正则化的要求。在处理稀疏性和低秩性等正则化问题时非常有用因为它们能够有效地在梯度下降和正则化之间取得平衡。 
回顾 LoRA 
LoRALow-Rank Adaptation是用于参数有效微调预训练语言模型的方法。具体来说如图 1 所示预训练的权重被冻结而可训练的 LoRA 模块使用低秩矩阵来近似每个权重矩阵的变化。这个变化矩阵可以分解为两个低秩矩阵的乘积其中一个用于下投影down projection另一个用于上投影up projection。通过这种方式LoRA 可以在微调的过程中调整模型的参数而不改变主模型的结构。 ▲图1 LoRA 的结构 
核心思想是使用低秩矩阵来表示权重矩阵的变化从而在微调中保持模型的参数效率。通过这种方式LoRA 能够在适应特定任务时保留预训练模型的知识并且相对于直接对整个模型进行微调它的参数量更小计算效率更高。 
SoRA 方法 
SoRASparse Low-Rank Adaptation基于 LoRA 进行改进旨在解决 LoRA 在选择最佳秩时的不灵活性。在 LoRA 中秩是一个离散的值其选择会直接改变模型的结构而 SoRA 的目标是通过引入一种自适应秩选择机制更灵活地调整模型的秩。 
核心思想是自适应秩选择机制如图 2 所示SoRA 引入了一个可优化的门控单元gate通过使用近端梯度方法proximal gradient method来调整这个门控单元从而实现对模型秩的动态调整。这使得在训练过程中可以自适应地选择最佳的秩而不再受到离散秩选择的限制。SoRA 的方法相对于 LoRA 更为灵活能够更好地适应不同的骨干模型和下游任务。 ▲图2 稀疏低秩自适应SoRA的示意图 
构建模块 
首先确定一个最大的可接受秩 每个 SoRA 模块继承自 LoRA包括下投影矩阵和上投影矩阵。如何以一种稀疏的方式有效地控制最大秩  呢受到奇异值分解SVD启发在投影矩阵之间引入一个门控单元 SoRA 模块的前向传播表示如下 优化 
使用随机梯度方法类似于 LoRA 中对下投影和上投影矩阵的优化。每个门控单元  以不同的方式提高稀疏性并通过以下公式进行更新 其中 表示语言模型的原始损失函数 表示完整的可调参数包括门 表示第  次迭代的步长λ 作为促使稀疏性的正则化强度超参数。此外 表示下述软阈值soft-thresholding operation函数的逐元素广播 其中  是阈值。 
进一步修剪 
为减少计算负担当训练完成后通过进一步修剪 SoRA 权重来去除被零化的秩并将模块还原为 LoRA 形式。 
调度  以探索记忆和泛化 
作者将用于调整模型稀疏性的阈值参数表示为  。在适应过程中通过动态更改 SoRA 可以作为一个有效的工具用于评估模型 M 和数据 D 下的记忆和泛化方面的行为。 
如算法 1 所示在适应过程中逐步增加  的值以提升模型的稀疏性。该过程允许评估模型在给定模型 M 和数据集 D 下达到特定性能水平额外所需的参数量。 ▲算法1 
SoRA 和 AdaLoRA 的比较 
SoRA 和 AdaLoRA2023 年提出的新方法都受到了奇异值分解SVD的启发但它们在实现上存在区别 正交正则化的应用 SoRA 不使用 AdaLoRA 中采用的正交正则化技术。相反SoRA 通过使用稀疏化门  来进行秩选择避免了正交正则化的应用。这样的设计选择是为了减少计算开销因为坚持 SVD 的原始要求可能导致额外的计算负担。  移动平均的重要性分数与秩选择的关系 AdaLoRA 中使用移动平均的重要性分数作为启发式参数“敏感性”的度量用于近似损失变化。然而SoRA 采用了一种基于软阈值操作公式 10的明确秩选择方法。相比之下SoRA 的秩选择方法更为清晰而且其合理性得到了通过近端梯度迭代的理论证明。  
总体而言SoRA 的更新规则是通过权衡插值复杂性和最小化正则化损失目标来制定的这使得其在应对参数敏感性、计算效率等方面具有一定优势。 
实验 
如下表所示不论是 AdaLoRA 还是 SoRA都始终优于初始 baseline —— LoRA这表明了自适应秩是增强模型适应性的有效解决方案。不过尽管使用更少的参数SoRA 的表现都比 AdaLoRA 更为出色这证明了近端梯度方法可能是实现自适应秩更有效和重要的途径。并且SoRA只需要0.91M的参数是LoRA的70%就能够达到89.36%的平均表现明显优于LoRA的88.38%。展现了SoRA强大的自适应稀疏化能力。 ▲表1 SoRA 在 GLUE 基准上的测试结果 
为了深入了解自适应秩的有效性下表的实验结果证实SoRA 在不同参数预算下都具有优越性。 ▲表2 在 GLUE 基准上使用不同  初始化的 SoRA 与具有相同秩的 LoRA 进行的比较测试涉及性能表现和参数量 
稀疏调度器 
作者通过逐步增加 SoRA 中的稀疏指示器  来在适应过程中动态微调。图 3 展示了在 MRPC、RTE、STS-B、CoLA、QNLI 和 SST-2 数据集上的 RoBERTa-large 的记忆和泛化曲线。其中记忆通过在训练集上的性能衡量而泛化是通过在验证集上的性能来衡量的。 ▲图3 在不同数据集上的记忆和泛化曲线 几乎在所有数据集上都存在强大的“压缩性能”。在 SST-2 上即使限制了 4 万多个非零参数模型仍能保持超过 99% 的性能。  存在一些关键参数支撑着性能。随着稀疏化过程的进行模型在不同的数据上遇到了不同的“拐点”而后性能显著下降。  模型在不同数据集上的适应难度存在不同程度的差异。某些数据集会更早更显著地导致性能下降。  在稀疏化过程中的记忆和泛化趋势是一致的。  中间和深层参数保持其密集的趋势而浅层参数显示出更高的稀疏性倾向。  
秩分析 
当单一模型适应不同的下游数据集时会面临不同程度的挑战。同时并非模型中的所有参数都具有相等的重要性有些参数对性能的贡献更为关键。 
通过图 4 的可视化反映了存在不同程度的挑战。此外确定模型性能和参数的最佳平衡时需要具体考虑特定的情境和问题不能一成不变。 ▲图4 在四个数据集即QQP、MNLI、QNLI 和 MRPC上使用 SoRA 进行训练后的最终秩 
效率分析 
如表 4 所示**SoRA 相对于 AdaLoRA 的训练时间减少约 30%**在训练效率上有明显的优势。相反尽管在其他数据集上 SoRA 一直领先于 AdaLoRA但优势并不那么显著。这种差异可能是由于AdaLoRA和SoRA在不同任务下具有不同的秩分布所致。这种分布对于AdaLoRA中正则化计算的影响可能导致了这种效果上的变化。 ▲表4 相同 batch size 下每个 epoch 的平均训练时间 
总结 
在本文中作者深入研究了稀疏低秩适应SoRA方法为大型预训练语言模型提供了高效的参数微调策略。通过充分利用内在稀疏性假设引入可优化的门控单元并采用近端梯度方法微调稀疏性SoRA展现了出色的性能为模型提供了一种灵活的替代秩从而扩展了优化空间并提升了参数效率。 
然而还要认识到研究中存在一些限制 实验主要聚焦在传统自然语言处理任务上对于其他领域的适应性仍需进一步研究。例如参数高效的方法可能在跨模态或指导微调的场景中具有广泛应用。  虽然稀疏调度器提供了关于语言模型适应过程的思路但深入解释该过程及更有效地评估适应难度仍然是一个具有挑战性事情。  
最后我们期待未来能有更多研究可以持续推动人工智能领域的发展。通过合理利用计算资源借助更小规模的参数微调为大模型“减负”我们能不断提升模型的性能拓展模型适应性的边界更好地应对多样化的任务和数据场景。