CL-Anomaly: Layer-Adaptive Mixture-of-Experts with Multimodal Large Language Model for Continual Learning in Anomaly Detection¶
会议: ECCV2026
论文: https://eccv.ecva.net/virtual/2026/poster/3905
PDF: https://media.eventhosts.cc/Conferences/ECCV2026/pdfs/3639.pdf
代码: https://github.com/WenDongyp/CL-Anomaly
领域: 模型压缩
关键词: 持续学习、异常检测、任务私有 LoRA、混合专家、层自适应知识迁移
一句话总结¶
CL-Anomaly 在冻结的多模态大语言模型上并联任务私有 LoRA 与共享专家,再按逐层任务相关性合并新旧共享参数,在八任务异常检测序列上取得 85.61% 的最终平均准确率和 −0.96 个百分点的后向迁移指标,主要改善跨任务遗忘而非提出新的异常定位器。
研究背景与动机¶
异常检测系统需要不断接入新产品、新成像条件,甚至从工业图像转向医学图像和三维数据。多模态大语言模型能够根据问题给出异常判断与解释,但每加入一个场景就全量重训并不现实;保存历史数据再反复回放,也可能受到隐私和存储条件限制。本文采用的是异常检测视觉问答数据上的持续指令微调,不应与只看正常样本的无监督异常检测直接混为一谈。
已有 LoRA 持续学习方法大致面临两种相反问题。MoELoRA、CL-MoE 等共享低秩参数,相关产品类别能够互相借力,但工业和医学任务也可能争用同一表示;任务隔离则能避免旧参数被改写,却切断了知识互补。HiDe-LLaVA 已结合任务专属扩展和部分融合,本文进一步指出:不同层中的同号专家并不承担相同功能,同一层里的专家也会随任务改变活跃程度,不能对所有层统一处理。
因此,关键不只是保留几个旧适配器,而是同时回答“哪些信息必须分开保存”与“共享部分该向哪一项任务倾斜”。核心 idea:用任务私有 LoRA 保存不宜混合的知识,用共享专家承接可迁移的表示,再利用逐层路由统计决定新旧专家参数的合并比例。
方法详解¶
整体框架¶
输入是视觉内容与异常相关问题,输出是异常判断或自然语言解释。CL-Anomaly 冻结 LLaVA-OV-7B 的预训练参数,在语言模型线性层增加两条低秩更新路径:任务私有专家保留各任务独立的参数,共享专家通过可学习路由器处理跨任务共性。当前任务训练完成后,层自适应知识迁移根据专家的任务相关性合并共享参数;它是训练任务之间的参数更新步骤,不是每次生成答案都额外执行的模块。
每个适配层保留原始线性输出,并叠加两条路径的增量。论文采用 \(h=W_0x+\lambda f_p(x)+(1-\lambda)f_s(x)\),其中 \(f_p\) 与 \(f_s\) 分别为私有和共享路径输出,\(\lambda=0.5\)。这里混合的是同一隐藏表示的适配增量,而不是先让两个完整模型独立作答再投票;两条路径也不是前后串联。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["视觉输入与问题"] --> B["冻结的多模态主干"]
B --> C["任务私有专家"]
B --> D["共享专家路由"]
D -->|任务训练后| E["层自适应知识迁移"]
C --> F["双路增量融合"]
D --> F
E -.->|更新后续使用的参数| D
F --> G["异常判断与解释"]
关键设计¶
1. 任务私有专家:把不能相互覆盖的任务知识独立保存
每项任务对应一个 PrivLoRA 专家;训练新任务时,只更新该任务的私有低秩矩阵,旧任务的私有矩阵保持冻结。这样的隔离作用于模型各适配层的参数,而不是在训练损失里软性要求“尽量别忘”。它能阻止新任务的梯度直接改写旧任务专属参数,但不等于保证整套模型永不遗忘,因为共享路径和推理时的专家混合仍会影响最终输出。
测试图像不需要先由人工指定任务编号。训练时,模型对每张图像的视觉 patch 特征取平均,再对该任务的训练图像平均,得到一个任务视觉锚点;测试时,以同样的 patch 平均方式得到实例锚点,与所有已保存任务锚点计算余弦相似度并做 softmax,作为各私有专家的输出权重。原文虽然使用“选择专家”的措辞,给出的计算却是对已学习专家的加权求和,并非直接取最相似的单个专家。由此,一个测试实例可以借助多个任务的私有适配结果,但这些专家的训练参数从未因这种推理混合而彼此覆盖。
2. 共享专家路由:让相关任务仍能在同一表示空间积累知识
完全隔离会损失正迁移机会,例如同一成像条件下的不同产品类别仍共享纹理、形状与缺陷判断规律。因此,另一条路径设置固定数量的共享 LoRA 专家,用可训练门控对隐藏输入计算专家权重,再对专家输出加权求和。与私有路径依靠视觉锚点不同,这里的路由器直接从当前隐藏表示学习分配方式;共享参数可以在后续任务中继续适配,使新任务信息有机会改善旧任务的通用表示。
实现设置包含 \(n=4\) 个共享专家。需要区分“前向路由权重”和下一设计中的“关键专家筛选”:原文方法公式对共享专家做带权求和,而后文的 top-\(K\) 是为了判定哪些专家在参数合并时应被重点保留,不能把 \(K=1\) 写成每次前向只计算一个专家的确定结论。私有路径负责避免专属参数冲突,共享路径负责知识互补;后者也可在视觉锚点对任务判断不准时提供补充,但没有消除锚点路由失误的可能。
3. 层自适应知识迁移:根据每层专家的任务作用偏向新参数或旧参数
普通共享专家会被当前任务连续改写,因此本文先从训练已有的门控输出统计重要性。一个专家在某层的任务相关性分数,就是该任务样本分配给它的路由概率的平均值;每层选出分数最高的 \(K\) 个专家,作为该任务的关键专家。这一统计复用了已有前向计算,不要求为了估计重要性再跑一次前向或反向传播;“零额外成本”应理解为不增加这种额外模型遍历,而不是统计、存储和合并完全没有开销。
随后比较当前任务与上一任务的逐层关键专家集合。只对当前任务关键的专家倾向保留新训练参数,只对上一任务关键的专家倾向保留旧参数;两项任务都关键或都不关键的专家,采用等权合并。设 \(\theta_{t-1}^{(l,e)}\) 是此前累计的共享专家参数,\(\varphi_t^{(l,e)}\) 是从这些参数出发在当前任务上微调的结果,更新为:
默认基础系数为 \(\beta=0.75\);仅当前任务关键、仅上一任务关键和其余情形分别使用 \(\beta_{l,e}=0.75\)、\(\beta_{l,e}=0.25\) 和 \(\beta_{l,e}=0.5\)。这不是冻结全部重要专家,而是改变“新参数能覆盖多少旧参数”的程度。还要注意,旧参数累积了历史任务,但原文关键集合的比较对象明确是当前任务和上一任务,不能扩写成对所有历史任务分别维护保护系数。
一个完整示例¶
以序列中从工业图像任务转到 BMAD 医学任务为例,模型新增并训练医学任务的 PrivLoRA,同时冻结工业任务已有的私有专家;共享路径则从之前的共享参数继续训练。若某一层的一个共享专家仅对医学任务关键,该层专家合并时保留 75% 的新参数和 25% 的旧参数;若它仅对上一任务关键,则反过来。这是将论文默认规则代入的说明,不是额外实验结果。
以后再次输入工业图像时,视觉锚点相似度为已有私有专家分配权重,共享路径使用完成合并的参数,两路增量一起影响模型回答。因此,旧任务既有一份没有被医学训练改写的私有参数,也能利用后来更新的共享表示;能否真正受益取决于路由是否合适,以及共享更新是否包含可迁移信息。
损失函数 / 训练策略¶
论文采用异常视觉问答的持续指令微调,按任务依次访问视觉输入、问题和答案,只训练当前私有专家及共享路径,预训练主干冻结。主文没有给出一个新的独立损失项,因此不应自行补写蒸馏、回放或专家均衡损失。任务结束后的动量合并是额外的参数操作,不是正则项。
实验使用 LoRA 秩 \(r=36\)、缩放系数 \(\alpha=72\),每层选 \(K=1\) 个关键专家。每项任务训练 1 个 epoch,AdamW 学习率为 \(1\times10^{-5}\),warm-up 比例为 0.03,使用 8 张 RTX A6000。主文超参数分析处的“默认 0.5”针对逐专家中性合并情形的表述容易混淆;这里以实现设置中的基础 \(\beta=0.75\) 和方法中的分情况规则为准,不把两个符号视为同一默认值。
实验关键数据¶
主实验¶
数据来自 Anomaly-Instruct-125K。八任务主序列涵盖 WebAD 的三个子集(各 35 类)、MVTec-AD、BMAD、MVTec-3D、Real3D-AD 和 Anomaly-ShapeNet,分别体现类别递增、跨领域和跨模态变化。各持续学习基线采用相同 LLaVA-OV-7B 主干;联合训练同时看到所有任务,不受同样的任务顺序约束,不能当成公平的持续学习基线。
Avg 是作者跨阶段的准确率汇总,Last 是全部任务训练结束后的任务平均准确率;两者单位为 %,越高越好。BWT 表示学完后续任务对旧任务表现的后向影响,负值意味着遗忘,单位为百分点、越高越好。原文将精确平均规则放在附录 C.1,而本地缓存仅含主文和参考文献,因此这里不为 Avg 补写未经核对的加权公式。F1 是异常类别精确率与召回率的调和平均,表中为作者最终阶段的汇总值。
| 方法 | Avg ↑(%) | Last ↑(%) | BWT ↑(百分点) | 最终 F1 ↑(%) |
|---|---|---|---|---|
| LoRA | 82.58 | 77.98 | −7.89 | 74.74 |
| CL-MoE | 80.63 | 78.08 | −5.90 | 73.47 |
| HiDe-LLaVA | 77.91 | 73.32 | −6.36 | 68.61 |
| CL-Anomaly | 86.34 | 85.61 | −0.96 | 82.51 |
数据取自主文表 1、表 2;CL-MoE 的 Last 还与表 7 的正序结果交叉核对。按这些表格,CL-Anomaly 相对 CL-MoE 的 Avg、Last、BWT 分别改善 5.71、7.53、4.94 个百分点;原文叙述中的前两项增量与表格不完全一致,因此本笔记采用表格差值,不照抄“提升百分比”。联合训练的最终平均准确率为 88.38%,比 CL-Anomaly 高 2.77 个百分点,但其训练协议不同。
消融实验¶
| 配置 | Avg ↑(%) | Last ↑(%) | BWT ↑(百分点) |
|---|---|---|---|
| 完整模型 | 86.34 | 85.61 | −0.96 |
| 去掉 PrivLoRA | 83.58 | 81.60 | −3.70 |
| 去掉共享路径 | 84.97 | 82.63 | −3.29 |
| 去掉层自适应知识迁移 | 85.09 | 84.06 | −1.38 |
表 3 中去掉 PrivLoRA 的最终准确率下降 4.01 个百分点,去掉共享路径下降 2.98 个百分点,去掉层自适应知识迁移下降 1.55 个百分点。这支持三个机制互补,但不是对三项贡献可线性相加的证明。
关键发现¶
- 私有路径是该组消融中影响最大的组件,说明跨领域、跨模态任务下仅靠共享适配不足以保留旧知识;共享路径的收益又表明完全隔离同样不够。
- 改进不是所有数据集都领先:Anomaly-ShapeNet 上 CL-Anomaly 的 Last 为 73.64%,低于 LoRA 的 76.36%。总体抗遗忘优势不应被写成每项任务都更强。
- 随机任务顺序下,CL-Anomaly 的 Last 为 84.84%,CL-MoE 为 77.99%。这提供了一项顺序扰动证据,但不是对所有排列或随机种子稳定性的证明。
亮点与洞察¶
- 重要性判定落在“层与专家”这个粒度,而非给整个适配器一个统一任务标签。这样同号专家在不同深度可以受到不同保护,贴合论文观察到的层间任务偏好差异。
- 隔离和共享针对的是不同来源的误差,而非互相替代的两种模式。视觉锚点决定私有知识如何组合,隐藏状态路由决定共享知识如何调用,参数合并再控制共享部分如何更新。
局限与展望¶
- 私有专家数量随任务数增加,参数高效不等于存储量恒定;主文没有证明长任务流下的空间与推理成本始终可控。
- 单个任务视觉锚点是平均特征,对任务内多峰分布的区分能力有限;原文消融分析也承认锚点路由可能不理想,不能将专家隔离等同于完美任务识别。
- 主要结果来自一套指令数据和一个主干模型,不能直接外推到正常样本单类训练、像素级定位或临床部署。主文展示了其他模型的专家激活图,但这不等价于完整的跨主干性能复现。
- 缓存没有附录中的指标精确定义、完整数据细节和补充实验;公式抽取也有排版损坏。本文只整理可由主文文字与表格核对的机制和结果,完整复现仍需核对附录与代码。
相关工作与启发¶
- 对比 MoELoRA / CL-MoE:它们主要在共享专家空间持续适配,CL-Anomaly 额外保留全层任务私有参数,并按逐层相关性合并共享参数。优势主要体现在异质任务中的保留能力,代价是更多任务专属状态。
- 对比 HiDe-LLaVA:后者保留顶层独立性并融合非顶层专家,本文强调各适配层的私有专家都独立保存,共享路径再单独承接迁移。区别不是简单“有没有隔离”,而是隔离位置和共享更新粒度。
- 对比传统异常检测:重建误差或特征匹配方法通常直接输出异常分数;本文用指令式多模态模型输出判断与解释,研究重点是知识如何持续更新,实验目标与监督形式并不相同。
评分¶
- 新颖性: 4/5。私有与共享双路已有相关基础,逐层关键专家驱动的合并使组合更有针对性。
- 实验充分度: 4/5。包含异质任务序列、组件消融和顺序分析,但主文不足以核对全部复现细节。
- 写作质量: 3/5。机制主线清楚,部分表格与正文增量及超参数措辞需要仔细辨别。
- 价值: 4/5。为异常视觉问答的参数高效持续学习提供有用证据,但不意味着替代专门异常检测系统。