O-LoRA: 针对LLM的“灾难遗忘”解决方案

2024年7月25日修改
作者:王枭
大家好!今天来介绍下我们最近在持续学习方向的一篇工作 ——《Orthogonal Subspace Learning for Language Model Continual Learning》。这篇论文介绍了一个全新的持续学习方法:正交低秩适应(O-LoRA)。
附件不支持打印

加载失败,

问题背景
我们都知道,大型语言模型(LLM)在语言理解和生成方面已经取得了非常出色的成绩。但随着LLMs越来越多地融入我们的日常应用,我们期待它们在领域知识、多语言、处理复杂任务和使用工具等能力上都能够更上一层楼。如果每次都为新技能重新去做预训练/alignment,成本过于高昂,所以如何增量地增强LLM成为大家关心的一个方向。不过,有个棘手的问题:当LLM尝试学习多个连续任务时,它们好像有点“健忘”,容易忘记之前学到的东西,这就是我们所说的“灾难性遗忘”。因此,如何在保留先前知识的基础上增量地增强LLM,即进行持续学习,至关重要。
O-LoRA
在提出我们的方法前,我们有两个观察:
1.
过去的方法中,所有任务都是在相同的向量空间中更新模型参数的,这样很容易破坏过去学会的任务表示。
基于第一点观察很容易会想,是否有可能朝着不影响过去任务的loss的梯度方向更新模型参数呢?但是要如何保证更新的梯度和过去的任务都正交呢?难不成保留过去任务的样本,每次在新任务上更新前都算一遍梯度在过去任务上的投影吗?这样不仅有数据隐私的问题,效率也极低。
2. LoRA的低秩假设,即预训练模型的finetune在一个低秩的子空间中进行。
然后第二点观察就发挥了作用,LoRA的低秩假设,即模型的finetune过程往往在低秩的子空间中进行更新。所以LoRA的矩阵参数,不仅代表了对原始模型的数值更新,也捕获了模型参数的更新方向。基于此,我们提出核心假设: 过去任务的LoRA矩阵的子空间可以用来近似其梯度空间
基于这个假设,我们提出了 O-LoRA,即学习新任务的时候,约束其LoRA子空间与过去任务的LoRA子空间正交 。子空间的正交必然会使得存在各自空间中的向量正交,从而保证了新任务的梯度更新不会对过去任务的输出造成影响。为了帮助大家更直观地理解 O-LoRA,这是我们的初版草图
附件不支持打印

加载失败,