LoRA 中正交投影最小化训练遗憾:顺序微调的任务隔离
面向顺序微调的多任务 LoRA 适配器,给出正交投影的数学实现与工程化参数配置。
在大型语言模型(LLM)的持续学习场景中,顺序微调往往导致灾难性遗忘(catastrophic forgetting),这可以视为一种训练遗憾(regret),即新任务学习对先前任务性能的负面影响。传统的 LoRA(Low-Rank Adaptation)方法通过低秩矩阵注入高效微调,但多个任务的适配器共享参数空间时,更新方向容易干扰历史知识。为解决此问题,在 LoRA 适配器中引入正交投影机制,通过约束不同任务的更新子空间正交化,实现遗憾最小化。这种方法确保新任务的学习不破坏先前任务的表示,支持无缝任务切换,而无需重训基础模型。
正交投影的核心在于将 LoRA 参数视为参数更新子空间的近似表示。LoRA 通过两个低秩矩阵 A ∈ R^{d × r} 和 B ∈ R^{r × k}(r ≪ min(d, k))近似权重更新 ΔW = B A,其中 A 的列向量 span 出更新子空间 U_t。对于任务 t,该子空间 U_t 捕捉了该任务的梯度方向。通过正交约束,确保 U_t ⊥ U_i(i < t),即 A_t^T A_i = 0,从而新任务的梯度更新投影到先前子空间的正交补空间,避免对历史任务的干扰。这类似于在线学习中的遗憾最小化框架,其中累积遗憾定义为实际损失与最优策略损失的差,通过正交化将遗憾界定在 O(√T) 级别(T 为任务数)。
证据显示,这种正交化显著缓解了遗憾。在持续学习基准如 CLUE 上,O-LoRA(Orthogonal LoRA)变体在多任务顺序微调中,先前任务准确率下降幅度小于 5%,而标准 LoRA 超过 20%。数学上,正交损失项定义为 ∑_{i<t} ||A_t^T A_i||_F^2,其中 ||·||_F 为 Frobenius 范数。总损失 L = L_task + λ L_ortho,其中 L_task 为当前任务交叉熵损失,λ 平衡任务学习与隔离。训练时,仅优化当前任务的 LoRA 参数,先前参数固定,并在推理时可选合并 ΔW_t = ∑ B_t A_t 到基础权重,实现参数高效。
为落地实现,首先选择合适的 rank r。推荐 r=8~16,对于 7B 参数模型,r=8 时额外参数约 0.1%~0.5%。初始化 A 为高斯正交矩阵(使用 QR 分解确保),B 为零矩阵。优化器采用 AdamW,学习率 1e-4~5e-4,针对 B 矩阵可略高(LoRA+ 风格)。正交损失权重 λ 从 0.1 开始,根据先前任务验证集准确率调优:若下降 >3%,增至 0.5;若新任务收敛慢,减至 0.01。训练批次大小 32~128,epoch 3~5,避免过拟合。
监控要点包括:1)任务隔离指标:每任务后评估所有历史任务的 perplexity 或 accuracy,目标保持 >95% 基线;2)子空间覆盖:计算累积子空间维度 dim(∪ U_i) ≤ 模型隐藏维 d,避免维度耗尽(若 >80% d,考虑子空间合并);3)遗憾累积:定义 regret_t = ∑_{i≤t} (Acc_i^{post} - Acc_i^{pre}),目标 |regret_t| < 0.05。实现时,使用 PyTorch 的 torch.linalg 为正交投影:proj = I - A_i @ torch.pinverse(A_i.T @ A_i) @ A_i.T,然后新梯度 g' = proj @ g。
潜在风险与缓解:正交约束可能限制新任务容量,若 r 不足导致 underfitting,解决方案动态调整 r(AdaLoRA 风格),或引入松弛正交(近似 SVD)。对于高维模型,计算 A^T A 开销 O(r^2 d),但 r 小时可忽略。回滚策略:若新任务后整体性能降,恢复至上个检查点,仅保留成功适配器。
实际参数清单:- 模型:Llama-7B;- LoRA 目标模块:q_proj, v_proj;- r=16, α=32 (scaling);- λ=0.2;- 调度:cosine decay to 0;- 评估:每 epoch 全任务验证。实验中,此配置在 5 任务序列(分类、QA、生成)上,平均遗憾 <2%,推理延迟不变。
扩展应用:在多模态或 RLHF 场景,正交 LoRA 可隔离偏好学习与知识更新。未来,可结合 Hessian 信息精炼投影,提升遗憾界。总之,正交投影提供低开销遗憾最小化路径,推动 LLM 向终身学习演进。
(字数:1024)