MoRA: High-Rank Updating for Parameter-Efficient Fine-Tuning
作者: Ting Jiang, Shaohan Huang, Shengyue Luo, Zihan Zhang, Haizhen Huang, Furu Wei, Weiwei Deng, Feng Sun, Qi Zhang, Deqing Wang, Fuzhen Zhuang
分类: cs.CL, cs.LG
发布日期: 2024-05-20
备注: Work in Progress
💡 一句话要点
MoRA:通过高秩更新实现参数高效的大模型微调
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 参数高效微调 高秩更新 大语言模型 低秩适配 知识记忆
📋 核心要点
- LoRA等低秩微调方法可能限制了大语言模型学习和记忆新知识的能力。
- MoRA通过引入方阵实现高秩更新,在保持参数量不变的同时提升模型性能。
- 实验表明,MoRA在记忆密集型任务上显著优于LoRA,并在其他任务上表现相当。
📝 摘要(中文)
低秩适配(LoRA)是一种流行的大语言模型参数高效微调方法。本文分析了LoRA中低秩更新的影响。研究表明,低秩更新机制可能限制LLM有效学习和记忆新知识的能力。受此启发,我们提出了一种名为MoRA的新方法,该方法采用方阵来实现高秩更新,同时保持相同数量的可训练参数。为了实现这一点,我们引入了相应的非参数算子来降低输入维度并增加方阵的输出维度。此外,这些算子确保权重可以合并回LLM,这使得我们的方法可以像LoRA一样部署。我们在五个任务上对我们的方法进行了全面评估:指令调优、数学推理、持续预训练、记忆和预训练。我们的方法在记忆密集型任务上优于LoRA,并在其他任务上实现了相当的性能。
🔬 方法详解
问题定义:论文旨在解决低秩微调方法(如LoRA)在学习和记忆新知识方面的局限性问题。现有低秩方法的痛点在于,其低秩更新机制限制了模型容量,无法充分利用预训练模型的潜力,尤其是在需要记忆大量新知识的任务中表现不佳。
核心思路:论文的核心思路是通过高秩更新来提升模型的学习能力。具体来说,MoRA使用一个方阵来替代LoRA中的低秩矩阵,从而实现更高秩的更新。为了在保持参数量不变的情况下实现高秩更新,MoRA引入了非参数算子来调整输入和输出维度。
技术框架:MoRA的整体框架与LoRA类似,都是在预训练模型的某些层中插入可训练的适配器。不同之处在于,LoRA使用两个低秩矩阵来近似权重更新,而MoRA使用一个方阵。为了保证参数量不变,MoRA在方阵前后分别添加了非参数的降维和升维算子。这些算子是固定的,不参与训练。
关键创新:MoRA的关键创新在于使用方阵进行高秩更新,并引入非参数算子来控制参数量。与LoRA相比,MoRA能够实现更高秩的更新,从而提升模型的学习能力。此外,MoRA的设计保证了权重可以合并回原始模型,方便部署。
关键设计:MoRA的关键设计包括:1) 使用方阵进行高秩更新;2) 引入非参数算子进行维度调整,保证参数量与LoRA一致;3) 设计算子使得更新后的权重可以合并回原始模型。具体的参数设置包括方阵的维度、降维和升维算子的比例等。论文中没有明确提及损失函数,推测使用的是与LoRA相同的损失函数。
🖼️ 关键图片
📊 实验亮点
MoRA在记忆密集型任务上显著优于LoRA,证明了高秩更新的有效性。具体来说,在某些任务上,MoRA的性能提升超过了LoRA。此外,MoRA在其他任务上实现了与LoRA相当的性能,表明其在提升记忆能力的同时,没有牺牲模型的泛化能力。这些实验结果表明,MoRA是一种有效的参数高效微调方法。
🎯 应用场景
MoRA具有广泛的应用前景,可以应用于各种需要参数高效微调的大语言模型任务中,例如指令调优、知识图谱补全、持续学习等。该方法尤其适用于需要记忆大量新知识的任务,例如Few-shot学习和终身学习场景。MoRA的权重可合并特性也使其易于部署,方便在实际应用中使用。
📄 摘要(原文)
Low-rank adaptation is a popular parameter-efficient fine-tuning method for large language models. In this paper, we analyze the impact of low-rank updating, as implemented in LoRA. Our findings suggest that the low-rank updating mechanism may limit the ability of LLMs to effectively learn and memorize new knowledge. Inspired by this observation, we propose a new method called MoRA, which employs a square matrix to achieve high-rank updating while maintaining the same number of trainable parameters. To achieve it, we introduce the corresponding non-parameter operators to reduce the input dimension and increase the output dimension for the square matrix. Furthermore, these operators ensure that the weight can be merged back into LLMs, which makes our method can be deployed like LoRA. We perform a comprehensive evaluation of our method across five tasks: instruction tuning, mathematical reasoning, continual pretraining, memory and pretraining. Our method outperforms LoRA on memory-intensive tasks and achieves comparable performance on other tasks.