CorDA: Context-Oriented Decomposition Adaptation of Large Language Models for Task-Aware Parameter-Efficient Fine-tuning
作者: Yibo Yang, Xiaojie Li, Zhongzhu Zhou, Shuaiwen Leon Song, Jianlong Wu, Liqiang Nie, Bernard Ghanem
分类: cs.LG, cs.AI
发布日期: 2024-06-07 (更新: 2025-03-07)
备注: NeurIPS 2024
💡 一句话要点
CorDA:面向上下文分解自适应的大语言模型参数高效微调方法
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 参数高效微调 大语言模型 上下文学习 奇异值分解 知识保留
📋 核心要点
- 现有PEFT方法忽略了下游任务和需要维护知识的上下文,导致性能下降和知识遗忘。
- CorDA通过上下文导向的权重分解构建任务感知适配器,保留重要知识并适应特定任务。
- 实验表明,CorDA在数学、代码和指令跟随任务上表现出色,有效提升了微调性能。
📝 摘要(中文)
现有的参数高效微调(PEFT)方法构建的适配器通常与下游任务的上下文或需要维护的重要知识的上下文无关。这导致了与全参数微调相比存在性能差距,同时微调后的模型会遭受预训练世界知识的灾难性遗忘。本文提出了CorDA,一种面向上下文分解自适应的方法,它从权重分解中构建可学习的、任务感知的适配器,分解方向由下游任务或需要维护的世界知识的上下文决定。具体而言,我们收集少量数据样本,并对预训练LLM的每个线性层乘以输入激活的协方差矩阵进行奇异值分解。协方差矩阵的逆与分解后的分量相乘,以重建原始权重。通过这种方式,代表性样本的上下文通过决定分解方向来捕获。我们的方法支持两种选择:知识保留自适应和指令预览自适应。对于前者,我们使用问答样本来获得协方差矩阵,并使用具有最小$r$个奇异值的分解分量来初始化可学习的适配器,同时冻结其他分量,以便更好地保留世界知识。对于后者,我们使用来自微调任务的指令数据,例如数学或编码,来确定分解方向,并训练与要学习的任务最相关的最大的$r$个分量。我们在数学、代码和指令跟随任务上进行了广泛的实验。
🔬 方法详解
问题定义:现有参数高效微调方法(PEFT)在构建适配器时,往往忽略了下游任务的上下文信息以及需要保留的预训练知识的上下文信息。这导致微调后的模型在特定任务上的性能与全参数微调相比存在差距,并且容易遗忘预训练阶段学习到的通用知识。因此,如何构建能够感知上下文信息,同时高效地进行微调的适配器是一个关键问题。
核心思路:CorDA的核心思路是利用下游任务或需要保留的知识的上下文信息来指导权重分解,从而构建任务感知的适配器。具体来说,通过计算输入激活的协方差矩阵,并对其进行奇异值分解(SVD),可以提取出与特定上下文相关的权重分量。然后,根据任务类型选择性地训练或冻结这些分量,以实现知识保留和任务适应。
技术框架:CorDA的整体框架包括以下几个主要步骤:1) 数据收集:收集少量代表下游任务或需要保留知识的数据样本。2) 协方差计算:对于预训练LLM的每个线性层,计算输入激活的协方差矩阵。3) 奇异值分解:对协方差矩阵进行奇异值分解,得到一系列奇异值和对应的奇异向量。4) 适配器构建:根据奇异值的大小,选择一部分奇异向量来初始化可学习的适配器。5) 微调:使用下游任务的数据对适配器进行微调,同时可以选择性地冻结其他奇异向量,以保留预训练知识。
关键创新:CorDA的关键创新在于提出了上下文导向的权重分解方法。与传统的PEFT方法不同,CorDA不是盲目地添加适配器,而是利用上下文信息来指导适配器的构建,从而使适配器能够更好地适应特定任务,并保留重要的预训练知识。此外,CorDA还提出了两种具体的自适应策略:知识保留自适应和指令预览自适应,分别用于保留预训练知识和适应特定任务。
关键设计:CorDA的关键设计包括:1) 协方差矩阵的计算方式:使用少量代表性样本计算协方差矩阵,以降低计算成本。2) 奇异值的选择策略:根据奇异值的大小选择用于初始化适配器的奇异向量,以保证适配器能够捕捉到最重要的上下文信息。3) 冻结策略:可以选择性地冻结一部分奇异向量,以保留预训练知识。4) 两种自适应策略:知识保留自适应和指令预览自适应,分别针对不同的任务需求。
🖼️ 关键图片
📊 实验亮点
论文在数学、代码和指令跟随任务上进行了大量实验,结果表明CorDA能够显著提升微调性能。例如,在数学任务上,CorDA相比于其他PEFT方法取得了明显的性能提升。此外,实验还验证了CorDA在保留预训练知识方面的有效性,表明CorDA能够有效避免灾难性遗忘。
🎯 应用场景
CorDA具有广泛的应用前景,可以应用于各种需要对大型语言模型进行微调的场景,例如自然语言处理、代码生成、数学问题求解等。通过利用CorDA,可以高效地构建任务感知的适配器,提高模型在特定任务上的性能,同时避免灾难性遗忘,从而降低模型部署和维护的成本。未来,CorDA还可以与其他PEFT方法相结合,进一步提升微调效果。
📄 摘要(原文)
Current parameter-efficient fine-tuning (PEFT) methods build adapters widely agnostic of the context of downstream task to learn, or the context of important knowledge to maintain. As a result, there is often a performance gap compared to full-parameter fine-tuning, and meanwhile the fine-tuned model suffers from catastrophic forgetting of the pre-trained world knowledge. In this paper, we propose CorDA, a Context-oriented Decomposition Adaptation method that builds learnable task-aware adapters from weight decomposition oriented by the context of downstream task or the world knowledge to maintain. Concretely, we collect a few data samples, and perform singular value decomposition for each linear layer of a pre-trained LLM multiplied by the covariance matrix of the input activation using these samples. The inverse of the covariance matrix is multiplied with the decomposed components to reconstruct the original weights. By doing so, the context of the representative samples is captured through deciding the factorizing orientation. Our method enables two options, the knowledge-preserved adaptation and the instruction-previewed adaptation. For the former, we use question-answering samples to obtain the covariance matrices, and use the decomposed components with the smallest $r$ singular values to initialize a learnable adapter, with the others frozen such that the world knowledge is better preserved. For the latter, we use the instruction data from the fine-tuning task, such as math or coding, to orientate the decomposition and train the largest $r$ components that most correspond to the task to learn. We conduct extensive experiments on Math, Code, and Instruction Following tasks.