Browse this library

Chinese source article

2 · 方法体系

持续学习的四类方法: 正则化, 回放, 参数隔离与动态架构, 以及预训练大模型上的继续预训练, 参数高效适配和模型合并.

View original Markdown ↗

第 1 章把遗忘归到参数共享: 新任务的梯度改动了旧任务依赖的参数, 一阶意义上就是 gA⊤gB<0g_A^\top g_B<0. 持续学习的方法都在回答同一个问题: 旧任务的信息在训练新任务时以什么形式留下来, 又怎样参与优化. 这一章按信息的载体分成四篇. 参数与函数约束 把旧知识存成参数重要性或旧模型的输出, 回放与记忆 存旧样本, logits 或生成器, 结构与路由 存掩码, 门控或新增模块, 大模型持续训练 讨论起点换成预训练大模型之后, 这三条路各自变成了什么样.

设当前阶段损失为 Lt(θ)\mathcal L_t(\theta), 旧任务集合上的允许退化为 ϵ\epsilon, 存储、参数与计算预算为 BB. 理想问题可以写成

min⁡θ,s Lt(θ;s)s.t.Δ1:t−1(θ,s)≤ϵ,C(θ,s)≤B,(1)\min_{\theta,s}\ \mathcal L_t(\theta;s) \quad\text{s.t.}\quad \Delta_{1:t-1}(\theta,s)\le\epsilon, \qquad C(\theta,s)\le B, \tag{1}

其中 ss 是权重之外保留的状态. 四类方法主要区别在于怎样近似不可直接计算的 Δ1:t−1\Delta_{1:t-1}, 以及把预算花在哪里. 正则化用参数重要性或旧输出代替旧损失; 回放保留一小部分旧分布, 直接估计旧风险; 参数隔离限制哪些参数可以变化; 动态架构增加新容量; PEFT 则借助强预训练骨干, 把变化限制在低维模块.

没有任何载体可以免费保存全部旧函数. 不存数据的正则化丢掉输入分布细节, 有限回放丢掉未入缓冲区的尾部, 固定容量隔离最终会耗尽可用参数, 动态扩展把遗忘问题转成存储与路由问题. 方法选择因此从约束开始: 能否保存样本, 推理时有无任务标识, 参数能否增长, 旧任务是否还会回来, 以及允许多少额外训练.

1 四篇的分工与演进

1.1 三条路线和一个新起点

正则化方法不存旧数据, 只在损失里加一项. EWC 从贝叶斯后验出发, 用 Laplace 近似把旧任务的后验写成以旧最优参数为中心, 以 Fisher 信息为精度的高斯, 得到逐参数加权的二次惩罚; SI 和 MAS 换了重要性的估计方式, 前者沿优化路径累积每个参数对损失下降的贡献, 后者用输出范数对参数的梯度; RWalk 把 EWC++ 的 Fisher 和路径分数合在一起, 再存少量样本. LwF 是另一种约束, 它不管参数, 只要求新模型在新数据上的输出与旧模型一致. 这一族在 Task-IL 和 Domain-IL 下有效, 在 Class-IL 下单独使用时接近顺序微调.

回放让旧数据重新进入优化. ER 在每个 batch 里混入缓冲区样本, 蓄水池采样让流中每个样本以 M/nM/n 的概率留在缓冲区, 不需要任务边界; iCaRL 用 herding 选样本, 用最近类均值分类; GEM 和 A-GEM 用旧样本构造梯度约束, 不把它们混入当前批次训练; DER 连同标签之外的 logits 一起保存; BiC 用两个参数校正新类别的输出偏置; GDumb 只用缓冲区从头训练, 作为检验其他方法的基线. 参数隔离则直接让冲突不发生: PackNet 剪枝后把空出来的权重留给下一个任务, HAT 学每个任务的门控并屏蔽旧任务的梯度, PNN 和 DEN 按需增加容量. 第四篇的起点是预训练大模型, 通用能力也会成为遗忘对象, 方法变成学习率重新预热, 回放比例, 冻结骨干的提示和低秩适配器, 以及不做顺序训练的模型合并.

1.2 各篇之间的承接

四篇的顺序也大致是方法提出的顺序. 2017 年前后, EWC, LwF, iCaRL, GEM, PNN 几乎同时出现, 分别代表三条路线的起点. 之后的工作多是在前一代的代价上改进: Online EWC 和 EWC++ 把多任务的 Fisher 合成一份, 解决存储随任务数增长的问题; A-GEM 把 GEM 的多个约束合成一个, Split CIFAR 上用时约为 GEM 的 1/12, 准确率相当; PackNet 和 HAT 把 PNN 的整列扩展换成固定容量内的划分. 后一篇常把前一篇的方法当基线, 所以 2.1 和 2.2 的公式在 2.3 和 2.4 里反复出现.

2.4 和前三篇的关系不太一样. 冻结骨干的 L2P 本质上是参数隔离, 只是隔离的单位变成了提示; O-LoRA 让不同任务的低秩更新落在正交子空间里, 用的仍是 2.1 的「保护旧任务方向」思路; 继续预训练里的回放比例, 是 2.2 的回放在语料尺度上的版本. 模型合并换了一种做法, 各任务从同一基座独立微调, 再把参数差相加, 它不需要旧数据, 对顺序也不敏感, 前提是所有任务从同一个基座出发, 增量足够小.

1.3 稳定性的成本被放在不同位置

正则化把成本放在可塑性. λ\lambda 越大, 参数越靠近旧锚点, 遗忘通常下降, 新任务的可达解也减少. 当新旧任务最优点沿同一高重要性方向冲突时, 调任何 λ\lambda 都只能选择折中. 对角 Fisher 还会丢掉参数相关性, 它保护的是局部参数几何, 不等于保护所有旧输入上的函数.

回放把成本放在数据与隐私. 它能让旧类重新进入 softmax 竞争, 对 Class-IL 尤其有效; 缓冲区只覆盖常见模式时, 少数类和早期边界样本仍会被忘记. 蓄水池采样保证每个历史样本被保留的概率相同, 没有保证类别平衡和语义覆盖. 保存 logits 能携带旧模型的类间关系, 也会把旧模型的偏差一起保留下来.

参数隔离把成本放在容量和路由. 已占用参数不再更新时, 旧任务可以稳定保持, 新任务只能使用剩余子空间. 任务数量增长后空闲容量减少, 相似任务也无法自然共享被锁住的特征. 动态架构通过新增模块缓解容量耗尽, 模型大小和推理路由随任务增长; 没有任务标识时, 选错专家会让隔离本身失去意义.

持续预训练与 PEFT 把成本重新分配. 大规模混合语料用回放比例换通用能力, 代价是额外 token 与训练算力; LoRA 和提示冻结骨干, 用少量可训练参数降低全局漂移, 代价是受限的更新秩与任务路由. 当新领域需要重写底层表征时, 低秩模块可能装不下; 当底座已经覆盖目标能力时, 全量训练又会为很小增益承担过大的遗忘风险.

2 共用记号与共同前提

2.1 四篇共用的记号

参数记作 θ\theta, 第 kk 个任务训练结束时的参数记作 θk∗\theta_k^, 作为后续惩罚的锚点. 正则化方法的损失统一写成 Lnew(θ)+λ2∑iΩi(θi−θk,i∗)2\mathcal{L}{\text{new}}(\theta)+\frac{\lambda}{2}\sum_i\Omega_i(\theta_i-\theta{k,i}^)^2, 其中 Ωi\Omega_i 是第 ii 个参数的重要性: EWC 里是 Fisher 对角 FiF_i, SI 里是路径积分, MAS 里是输出对参数的敏感度. 2.1 推导了这个二次型的最优点, 说明当某个参数对新旧任务都重要而两边最优值不同时, 二次惩罚只能给出一个折中, 2.3 的开头就从这里出发.

回放一侧, 缓冲区记作 M\mathcal{M}, 容量 MM; 当前 batch 的梯度记作 gg, 第 kk 个旧任务在记忆上的梯度记作 gkg_k, GEM 的约束是 ⟨g,gk⟩≥0\langle\tilde g,g_k\rangle\ge0​,gk​⟩≥0. 参数隔离一侧, 第 kk 个任务的掩码记作 mkm^k. 大模型一侧用 LoRA 的记号, 被适配矩阵的增量 ΔW=BA\Delta W=BA, AA 把输入从 kk 维降到 rr 维, BB 再升回去, 每个任务的专属参数是 r(d+k)r(d+k) 量级. O-LoRA 和 InfLoRA 原论文的记号与此不同, 2.4 里逐一对应.

2.2 共同前提与分歧

多数方法都假设训练时知道任务在哪里切换. EWC, SI, LwF 在边界处更新锚点或旧模型副本, PackNet 在边界处剪枝, iCaRL 在边界处重选样本. 不依赖边界的只有少数: ER 的蓄水池采样, DER, GDumb. 在边界模糊的场景里, 例如大模型的继续预训练, 这些方法要么不能直接用, 要么要人为切出边界.

第二个分歧是推理阶段要不要任务标识. 参数隔离把「用哪组参数」交给任务标识, 标识可靠时遗忘几乎为零; 没有标识时, SupSup 用熵的梯度推断任务, Expert Gate 用自编码器的重建误差选专家, 推断错误会直接变成分类错误. 回放和正则化在推理阶段不需要标识, 但正则化在 Class-IL 下单独使用时失效. 读每篇的实验表时, 先确认它属于哪种场景, 再看数字.

3 方法对照

3.1 载体, 前提与 Class-IL 表现

方法族 保留旧知识的载体 训练时要任务边界 推理时要任务标识 Class-IL 下单独使用
正则化 (2.1) 参数重要性, 旧模型输出 多数要 不要 接近顺序微调
回放 (2.2) 旧样本, logits, 生成器 ER, DER 不要 不要 有效, 随缓冲区增大而提高
参数隔离 (2.3) 掩码, 门控, 新增模块 要 多数要 依赖任务推断, 离上界远
大模型适配 (2.4) 预训练表征, 提示, 低秩适配器 视方法而定 L2P 用提示匹配代替 起点强时可以不存样本

第四列和第五列解释了为什么 Class-IL 下回放占优. 2.1 引用的 Split MNIST 结果里, EWC, Online EWC, SI 的 Class-IL 准确率都在 20% 左右, 与顺序微调相同; 2.2 的 DER 结果里, Seq-CIFAR-10 上缓冲区 200 时 DER++ 的 Class-IL 为 64.88%, ER 为 44.79%. A-GEM 论文的单遍 Split CIFAR 上, EWC 的平均准确率 42.4%, GEM 61.2%. 正则化只约束参数离旧值的距离, 不给旧类别的输出提供任何保持竞争力的信号, 回放则直接让旧类别继续出现在 softmax 的分母里.

参数隔离在 Task-IL 下最强, 换到 Class-IL 就要靠任务推断. L2P 论文同一张表里, 从头训练的 ResNet18 上运行的 SupSup 为 28.34%, 上界 80.41%. 起点换成预训练模型后情况变了: 冻结 ViT-B/16 的 L2P 只训练约占骨干 0.05% 的参数, 不存样本就达到 83.83%. 2.4 的 O-LoRA 在标准基准上达到 75.8%, 每个任务新增无约束 LoRA 的 IncLoRA 为 66.4%. 表中表末一行的「可以不存样本」, 前提是预训练表征已经覆盖了后续任务的分布.

3.2 各自付出的代价

四类方法付出的资源不同. 正则化要存锚点和重要性, EWC 每个任务一份, Online EWC 合并成一份; 70B 模型全量更新时, FP32 的对角 Fisher 就要 280 GB. 回放要存数据, 一张 CIFAR 图片 3072 字节, DER 的 10 个 FP32 logits 只有 40 字节; GEM 每步解二次规划, 计算量随任务数增长. 参数隔离的代价是容量或参数: PackNet 每个参数要 log⁡2N\log_2N 位掩码, VGG-16 本身 537 MB, 加一个任务的掩码约 17 MB; PNN 的横向连接随任务数二次增长, 10 个任务时约为各列自身参数的 4.5 倍.

大模型上的代价还包括通用能力. TRACE 上 Llama-2-Chat 13B 顺序训练 8 个任务后, GSM8K 从 28.8% 掉到 2%; 用 10 条有害样本微调 GPT-3.5 Turbo, 花费不到 0.20 美元, 安全对齐就会失效. 继续预训练的参数改动也比微调大一个数量级, SFT 前后的参数差通常在 0.002 以内, 继续预训练后可达 0.03 左右, 以「增量很小」为前提的 DARE 等合并方法因此不能直接使用. 这几项代价在只看序列内任务准确率的表格里都看不到, 第 3 章的补充指标就是为它们设计的.

3.3 路线怎样组合

实践中很少需要坚持纯路线. DER++ 同时使用回放、旧 logits 和当前标签, 把数据覆盖与函数保持放在一个 batch 里; RWalk 用路径重要性配少量样本, 让参数约束获得输入锚点; iCaRL 同时维护样本、类均值和蒸馏目标. 组合有效的原因很具体: 一种载体补另一种载体丢掉的信息.

组合也会把偏差叠加. 缓冲区类别不平衡时, 蒸馏会忠实保留一个已经偏向旧类的教师, 新标签又推动输出偏向当前类; 两个损失的权重决定最终偏置. 参数隔离配回放时, 若路由错误, 正确旧样本也会进入错误模块. 加入更多组件前, 应先确认每个组件对应哪个失败, 并用消融检查它是否真的改变该失败指标.

一个实用选择顺序从约束开始. 允许保存少量数据且 Class-IL 是重点时, 回放通常是最强参照; 数据不能保存但能访问旧模型时, 输出蒸馏比纯参数距离包含更多函数信息; 任务标识可靠、任务数量有限时, 参数隔离能提供清楚的稳定性; 任务很多且相关时, 需要共享骨干、可组合模块或容量增长. 大模型场景先测试上下文与冻结骨干能否完成任务, 再决定是否把知识写进 PEFT 模块或基础参数.

模型合并适合各任务能够从同一基座独立训练的情况. 它绕开顺序干扰, 不能保证参数增量相加后仍保留各自函数; 任务向量方向冲突、继续预训练增量过大或各分支起点不同, 都会破坏线性合并假设. 这时仍要回到验证集、冲突消解和必要的联合校准.

四篇文章因此形成一条选择链. 2.1 说明只保留局部约束能做到什么, 2.2 加回旧分布的信息, 2.3 处理无法共享的参数方向, 2.4 再把三种选择放到强预训练起点和大规模资源约束下. 每一步都在改变式 (1) 中对旧风险和预算的近似方式.

评测也要跟着载体变化. 正则化需要同时看遗忘与新任务顽固性; 回放要按类别和时间检查缓冲区覆盖, 并把存储算进预算; 参数隔离要报告容量占用和任务路由错误; PEFT 除序列任务成绩外, 还要复测通用知识、安全行为和底座能力. 若一种方法只在自己最容易的指标上比较, 式 (1) 中被转移到别处的成本就会消失.

方法是否值得组合, 最终取决于失败是否互补. 两种方法若都依赖相同任务边界, 组合后不会解决无边界数据流; 两种方法都保护参数距离, 也不会自动恢复旧类输出. 一个组件提供旧分布样本, 另一个限制高重要性方向, 它们才分别覆盖输入空间与参数空间. 先写出各自保存的信息, 再判断组合, 比按论文名称叠模块更可靠.

4 内容依赖

2.1 的 EWC 推导和二次惩罚最优点, 会在 2.3 的容量约束和 2.4 的 O-LoRA 中再次出现; 2.2 的 GEM 约束和 A-GEM 投影则直接使用第 1 章的梯度内积. 指标与任务顺序 补上超参数选择口径: 2.1 中 SI 在 Permuted MNIST 上记为训练失败, 原因正是超参数只用前 3 个任务选出.

Class-IL 的方法差异集中在旧类别能否继续参与输出竞争. 2.2 的 iCaRL, DER 与 BiC直接处理旧类别样本、logits 或偏置; 2.1 的正则化只约束参数移动, 因而在同一设定下容易失效. 存储或隐私约束禁止保存样本时, 2.1 用顽固性换稳定, 2.3 用容量和任务路由换隔离.

2.4 把同一问题移到预训练模型上: 学习率重新预热与回放比例对应持续预训练, TRACE 与安全指标对应指令微调, L2P、O-LoRA、InfLoRA 对应参数高效适配, Task Arithmetic、TIES、DARE 则处理模型合并. 推理阶段适应与序列内 fast weights 分别属于 04 · TestingTime 适应 和 05 · TestingTime 训练与长上下文.

参考文献

  1. De Lange, M., et al. (2022). A continual learning survey: Defying forgetting in classification tasks. IEEE TPAMI.
  2. Wang, L., Zhang, X., Su, H., & Zhu, J. (2024). A Comprehensive Survey of Continual Learning: Theory, Method and Application. IEEE TPAMI.