公司动态
ADOPD:参考特权与在线策略蒸馏实现MLLM工业异常检测
工业异常检测是制造业视觉质检的核心场景但长期以来它有一个尴尬的矛盾传统手工模型精度高、可解释却难以处理复杂纹理和多样缺陷多模态大模型MLLM理解能力强、能说人话却经常在细节判断上“掉链子”产生幻觉。ADOPD 这篇工作提出了一个很有意思的方向不直接让大模型上场而是用“参考特权 在线策略蒸馏”的方式把大模型的能力压缩给一个轻量、可控、可部署的下游模型。这篇文章我会从头梳理这套方案的核心逻辑、方法流程、关键设计点并补充工程落地视角的思考。1. 背景与核心问题1.1 工业异常检测为什么难工业异常检测Industrial Anomaly Detection是视觉领域里一个非常特殊的任务。它通常被定义为在仅有正常样本或无缺陷样本的情况下判断当前产品是否存在异常。注意这里有个隐含条件——很多时候你只有正常样本没有或者极少有缺陷样本。现实产线里的异常往往是长尾的。划痕、脏污、毛刺、凹陷、异色每种缺陷的形态、大小、位置都可能完全不一样。更麻烦的是同一条产线上换一个产品型号纹理和背景就全变了。传统的做法通常是基于重构误差的方法训练一个自编码器或者 GAN正常样本能重构得很好异常样本会明显重构失败。基于特征嵌入的方法用预训练网络提取正常样本的特征分布检测时计算测试样本与正常分布的距离。基于合成异常的方法人为生成伪缺陷训练一个二分类或分割模型。这些方法在特定数据集上效果不错但有一个共同短板泛化能力有限换产品、换场景往往需要重新调参甚至重新训练。而且它们“不会说话”只能输出一个分数或掩码无法解释为什么判定为异常。1.2 MLLM 入场后带来了什么多模态大语言模型Multimodal Large Language ModelMLLM出现后研究者自然想到能不能让模型直接“看图说话”告诉产线人员这个产品有没有缺陷、缺陷在哪里、可能是什么类型MLLM 的优势很明显。它具备丰富的视觉-语言先验知识能够理解“这是一个金属外壳”“这里有一道细长的划痕”“白色异物可能在左上角”这类描述。它还可以支持少样本提示few-shot prompting通过给几张参考图来快速适配新场景不需要重新训练模型。但问题也非常突出幻觉问题。大模型在回答开放性问题时经常一本正经地生成看似合理但实际错误的回答。在质检场景幻觉意味着漏检或误判这直接关系生产成本和生产安全。计算开销大。完整的 MLLM 推理需要跑视觉编码器和大语言模型主干每张图都要消耗大量算力产线实时检测很难承受。输出不可控。大模型的输出是自然语言可能有格式漂移、前后不一致。工业生产需要的是稳定、可重复的判定结果。参考信息利用不充分。给大模型看几张正常参考图它不一定能精确对比出细微异常。模型的注意力机制并不保证会把参考图和测试图逐像素对齐。这就引出了 ADOPD 的核心动机既然 MLLM 有强大的理解能力但难以直接部署传统轻量模型可以部署但能力有限那能不能通过蒸馏把 MLLM 的能力迁移给一个适合部署的学生模型1.3 本文要解决什么ADOPD 到底是什么ADOPD 的完整名称是 Reference-Privileged On-Policy Distillation for MLLM-Based Industrial Anomaly Detection直译过来是“用于基于 MLLM 的工业异常检测的参考特权在线策略蒸馏”。我拆解一下名字里的几个关键词Reference-Privileged参考特权。指的是在训练/蒸馏阶段教师模型MLLM可以利用完整的参考图信息而在部署阶段这些特权信息被压缩或移除学生模型在更苛刻的条件下复现教师的能力。On-Policy Distillation在线策略蒸馏。这里借鉴了强化学习中的 on-policy 概念强调的是学生模型在推理过程中所产生的状态/中间结果也参与到蒸馏训练里而不是像传统蒸馏那样只使用固定数据集离线学习。MLLM-Based整套方案的最终目标是服务于基于多模态大模型的工业异常检测能力。Industrial Anomaly Detection工业异常检测这是应用落点。从标题可以推断这篇工作想要打造一条路径利用 MLLM 的推理能力作为“教师”通过在线策略蒸馏去训练一个实际可用的“学生”模型同时让参考信息以某种特权形式在训练阶段提供辅助。为了理解这套方案我们得先把几个前置概念讲清楚。2. 前置概念梳理2.1 知识蒸馏从教师到学生知识蒸馏Knowledge Distillation最早来自模型压缩领域核心思路是用一个大模型教师的输出信号来监督一个小模型学生的训练。传统分类任务里教师输出的软标签soft label即类别概率分布比硬标签包含了更多“类间关系”的信息。比如一张图在教师眼里有 80% 概率是猫、15% 概率是狗、5% 概率是狐狸这个分布告诉学生“猫和狗比较像猫和狐狸有一定相似性”学生学到的就不只是一个孤立结论。在更复杂的生成或决策任务里蒸馏的不只是分类概率还可能是特征图、注意力矩阵、token 序列、决策路径等。蒸馏的目标都是同一个让学生模型在更小的参数规模下尽量逼近教师的能力。在 ADOPD 里教师是一个具备参考能力的 MLLM学生是一个轻量级的视觉模型。它们之间蒸馏的内容根据标题中的 “On-Policy” 可以推测不只是最终答案还包括推理过程中的某一类信号。2.2 On-Policy 与 Off-Policy为什么在线策略重要On-Policy在线策略和 Off-Policy离线策略原本是强化学习里的概念。Off-Policy智能体用一组历史经验数据来学习这些数据不一定来自当前策略。比如 Q-Learning 可以从 replay buffer 里采样旧数据训练。On-Policy智能体用当前策略与环境交互产生的数据来学习。典型代表是 Policy Gradient 和 PPO每一步更新都要求数据来自当前策略。为什么蒸馏也要区分 on-policy 和 off-policy我们可以把它映射到生成模型蒸馏场景Off-Policy 蒸馏教师提前在固定数据集上生成监督信号学生离线学习这些预生成的数据。这种方式简单高效但有一个隐患教师生成的数据分布与学生自己实际生成的数据分布不一致。学生可能在某些输入上产生与教师完全不同分布的状态而教师没有在这一状态上提供过指导学生就会“跑偏”。On-Policy 蒸馏学生在当前策略下实际生成数据教师根据学生的生成结果比如输出的 token 序列或中间特征提供实时指导。这样教师总是在学生真正会遇到的分布上纠正学生训练和部署分布更一致。在工业异常检测场景里这一点尤其重要。异常检测任务的输出空间很复杂既包括“正常/异常”的二元判断也可能包括区域定位、异常类型描述等结构化信息。如果学生模型的输出策略与教师指导时假设的策略不一致蒸馏效果会明显下降。ADOPD 采用 on-policy 蒸馏本质上是希望解决这个分布不匹配问题让学生在自己实际推理路径上逐步对齐教师的能力。2.3 Reference-Privileged参考信息是一种特权工业异常检测里参考信息reference通常指一组正常产品的图像有时候也叫“支持集”或“参考集”。模型需要借助这些参考图来确定“什么是正常的”从而判断当前输入是否偏离正常分布。这里有个关键矛盾参考信息很有用但全面利用参考信息可能很昂贵。假设教师 MLLM 的完整推理过程是输入测试图 N 张参考图输出异常判定结果这种“每张测试图都携带 N 张参考图”的方式在 LLM 的上下文窗口里会占用大量 token计算开销巨大。尤其当 N 接近 8、16 甚至更多时每次推理的显存消耗和延迟都会显著增长。“Reference-Privileged” 想表达的是在训练阶段教师模型享受“参考特权”可以完整看到所有参考图利用这些信息做出最精准的判断但在部署阶段学生模型不再拥有同样的完整特权而是通过蒸馏学到的能力在更轻量的输入条件下复现教师的判断。换句话说参考特权是训练阶段的特权是教师独有的优势。学生通过蒸馏学会的是“如何把参考信息隐含地利用起来”而不是“每步都显式地携带大量参考图”。3. ADOPD 方法与流程拆解3.1 完整链路教师-学生框架接下来我整理一个逻辑上的完整链路。由于原论文的细节没有完整公开以下结构是我根据标题和领域惯用设计还原的推理框架有助于理解论文思想但具体实现需要以论文版本为准。整体上分为两个阶段训练阶段蒸馏阶段构造参考-测试样本对。教师 MLLM 接收测试图和参考图输出“高质量”的异常解析结果。学生模型接收测试图以及可能的压缩参考信息尝试输出自己的解析结果。学生结果与教师结果进行对齐同时引入 on-policy 机制学生自身的推理中间状态也被纳入对齐目标。反复迭代直到学生模型在部署场景中达到接近教师的性能。部署阶段推理阶段只输入测试图或相对轻量的参考摘要信息。学生模型输出异常判定结果。丢弃占用资源巨大的 MLLM 教师。这个链路里最核心的问题有两个教师如何提供监督信号学生如何利用参考特权压缩后的信息3.2 在线策略蒸馏的核心机制on-policy distillation 在这个任务里怎么落地我理解为一种迭代式对齐过程。传统的蒸馏里教师是静态的它不管学生现在处于什么状态只是对同一批输入输出固定的结果。而 on-policy 蒸馏下学生的生成结果会直接影响后续训练信号的采集。可以用下面的伪代码来理解for each training iteration: # 1. 学生模型基于当前输入生成结果 student_input prepare_input(test_image, reference_summary) student_output student_model(student_input) # 2. 学生当前生成路径被记录下来 student_trajectory capture_trajectory(student_model, student_input, student_output) # 3. 教师模型参考完整信息基于学生生成路径进行指导 teacher_input prepare_input(test_image, full_reference_images) teacher_signal mllm_teacher(teacher_input, conditionstudent_trajectory) # 4. 学生根据教师信号优化 loss distillation_loss(student_output, teacher_signal) update(student_model, loss)在这个流程里conditionstudent_trajectory是一个关键设计教师指导不是凭空产生的而是“先看学生说了什么”再针对性地给出纠偏信号。这正是 on-policy 和 off-policy 的核心差异。举个具体的例子。假设教师看到参考图后认为“这是一个抛光金属面主要看反光是否均匀”但学生模型第一轮输出只关注了纹理特征忽略了反光特征。这时候教师的指导信号会根据学生的输出分布强调“注意反光均匀性”这一维度。这种针对性指导显然比一次性输出固定答案更高效。3.3 参考特权如何传递参考特权是训练阶段教师独有的优势但它需要一个“传递介质”才能变成学生能力。我推测这个传递过程包含两层第一层信号层。教师 MLLM 基于完整参考信息生成的结果本身就包含了参考信息带来的判断增益。比如教师对比参考图后发现测试图上的细微颜色偏差它会把这个偏差写进输出。学生通过拟合这个输出间接学习了“如何做参考对比”。第二层表示层。更高阶的蒸馏不只是拟合最终答案还拟合中间表示。教师在观察参考图时会形成某种“正常样本的完备表征”这种表征会体现在 attention map 或 token embedding 里。如果蒸馏目标包含这些中间表示学生就能学到更强的判别性特征。关键问题是部署阶段学生到底还能不能看到参考信息这里有两种可能的设计路线路线 A学生可以接收参考图但只能接收 N 张完整图像的轻量特征比如预提取的 embedding输入规模远小于教师因为不需要把所有参考图都塞进 LLM 上下文。路线 B学生完全不接收参考图而是在训练过程中把参考信息“内化”为模型权重的一部分。这种设计更极端对场景固定度高参考集稳定的情况有效但换产品就需要重新适配。从 “Reference-Privileged” 的名字来看路线 A 更合理即部署时参考图仍然以某种更低成本形式存在。毕竟工业场景中正常参考图本身是现成的直接放弃它们很可惜。关键在于学生模型处理参考信息的成本要远低于教师模型。3.4 训练目标与损失结构蒸馏任务通常不是单一损失函数而是多个损失的组合。我推测 ADOPD 的训练目标至少包含以下几个方向任务损失Task Loss学生模型在异常判定、异常区域定位、异常类型描述上的准确度。如果输出是结构化的比如“是否异常 类型 掩码”就需要多任务损失。蒸馏损失Distillation Loss学生输出与教师输出之间的对齐。如果是自然语言输出可能使用交叉熵或 KL 散度如果是特征输出可能使用 L2 距离或对比损失。策略一致性损失Policy Consistency Loss这部分与 on-policy 相关。目的是保证学生模型在当前策略下生成的数据分布与教师在同一状态下的输出分布一致。对学生模型而言教师信号的“软性程度”也很关键。如果只用教师的硬标签异常/正常学生很难学到丰富的判别信息。但如果用教师的完整输出分布学生可以学到更细腻的判断证据。一个典型的损失组合可以表达为总损失 任务损失(学生输出, 真实标签) λ1 * 蒸馏损失(学生输出, 教师输出) λ2 * 策略一致性损失(学生轨迹, 教师反馈)其中 λ1 和 λ2 都是权重超参需要根据实验调整。过早引入过强的蒸馏损失可能导致学生完全退化成“复制教师但不会泛化”的模型太弱则学不到教师的能力。4. 面向工业落地这套方案能带来什么4.1 解决“能力”与“成本”的矛盾工业异常检测的部署场景通常有严格的成本限制。一个典型产线的视觉检测工位可能只有一块工业相机 一台带 GPU 的工控机甚至有些边缘场景只能跑 CPU 推理。要让 MLLM 直接参与实时检测无论从延迟还是硬件成本来说都不现实。ADOPD 这种“教师-学生”蒸馏路线的核心价值在于把 MLLM 的“认知能力”迁移到小模型上。企业可以离线使用强大的 MLLM 作为教师在线部署一个轻量学生模型兼顾检测精度和推理成本。4.2 提升 MLLM 的可控性直接使用 MLLM 做产线质检最怕的是模型“胡说”。蒸馏过程实际上会有一个隐式的“去幻觉”效果因为学生模型的输出形式更简单、更受限它不会像大模型那样自由生成无关描述。当学生模型经过充分训练后它的行为更加稳定、可预测这是工业场景很看重的一点。4.3 保留参考信息的关键增益工业异常检测里参考图的价值是明确的。很多缺陷只有在与正常样本对比时才清晰。ADOPD 的参考特权设计让教师在训练时充分利用参考信息并试图把这个“对比的能力”压缩进学生模型。这比直接让学生看图分类的传统方法多了一个优势它不只是在学习某些固定的异常形态而是在学习“比较测试样本与正常状态”的过程。4.4 快速响应产线换型如果参考信息可以被有效地利用那么产线换产品时可能只需要更新参考集或少量微调而不需要完全重训模型。这对实际生产很有价值因为消费电子、汽车零部件等行业的产品型号迭代非常频繁。5. 从论文到工程实践会遇到哪些难点跨出论文的设定真正想把 ADOPD 这类方案落地会遇到不少现实问题。下面我列出几个关键难点供后续研究和工程参考。5.1 数据构建与标注成本训练这套方案需要大量的“测试图 参考集 教师输出”三元组。教师输出的质量直接决定学生模型的上限。为了获得高质量的教师输出可能需要人工筛选和修正 MLLM 的结果这本身就是很高的成本。另一个问题是负样本的构建。工业异常检测里真正的缺陷样本往往很少如何构造足够的异常样本来训练学生模型是一个经典难题。如果只依赖合成异常学生模型可能在真实缺陷上表现不佳。5.2 教师输出信息的利用效率教师模型的输出包含丰富信息但如何从教师输出里提取最适合学生学习的监督信号需要仔细设计。如果只用最终的文本判断学生学到的只是“结论”丢失了推理过程。如果尝试对齐特征图需要确保教师和学生特征空间的语义对齐而 MLLM 的特征空间与小视觉模型的特征空间差异通常很大。如果对齐 token 序列学生模型可能也需要是序列模型这会增加部署成本。我认为比较可行的折中方案是让教师输出“结构化推理摘要”学生模型只学习摘要中的关键信息比如“异常区域位置 异常类型 置信度”。5.3 参考集动态变化工业场景中参考集并不是恒定不变的。光照条件、产品批次、设备状态都可能让“正常样本”的分布发生漂移。如果学生模型把参考信息内化到权重里那么参考集每次变化都可能需要重新适配模型如果学生模型在推理时仍携带一定的参考信息则需要设计好参考特征的更新机制。5.4 异常检测的评估指标工业异常检测的评估本身就存在不少争议。像素级AUROCArea Under the Receiver Operating Characteristic curve与图像级AUROC哪个更重要缺陷的检测率与误报率如何权衡如果模型输出的是语言描述如何计算这些标准指标在 ADOPD 框架下还需要额外评估蒸馏带来的性能损失。学生模型与教师模型之间的差距有多大什么场景下差距会明显放大这些都是落地前必须验证的问题。6. 常见误区与思考方向6.1 误区一MLLM 可以直接替代传统检测算法这个想法很诱人但现实往往不成立。MLLM 的定位更接近“理解者”而非“测量仪”。对需要高精度、低延迟、高一致性的产线质检任务直接用 MLLM 会很吃力。ADOPD 的思路实际上非常务实用 MLLM 当教练而不是当运动员。6.2 误区二蒸馏就是让小模型拟合大模型的输出如果只是简单拟合输出那确实是传统 off-policy 蒸馏。但 on-policy 蒸馏强调的是“分布对齐”是让教师根据学生实际产生的状态来指导。这个差异在数据分布不稳定或生成任务复杂的场景中会被放大。工业异常检测的输出空间比较结构化on-policy 的有效性需要实验验证但它的设计逻辑是合理的。6.3 误区三参考信息越多越好参考图数量增加一方面会给模型更多正常信息另一方面也可能带来冗余和干扰——如果参考图本身存在微小污染或者参考图与测试图的光照差异过大反而可能误导模型。ADOPD 的参考特权机制需要解决的核心问题之一就是如何在有限但关键的参考信息上做决策。6.4 值得研究的方向参考选择策略如何从大量正常样本中选出信息量最大的参考子集是提升效率和精度的关键。学生网络结构设计不是所有结构都适合蒸馏需要考虑到部署时的算力约束。在线策略频率控制实际训练中每一步都让教师重新解析学生结果成本太高可能需要隔若干步或按概率触发。跨域蒸馏教师在一个产品线训练学生能否快速迁移到另一个产品线这关系到方案的通用性。7. 总结与学习路线ADOPD 的核心贡献是提出了一种思考方式不要把 MLLM 当作最终部署模型而是把它当作异常检测能力的“授予者”。通过参考特权设计让教师在训练时充分利用参考图像通过在线策略蒸馏让学生在部署时用更低成本复现教师的能力。这套思路对工业异常检测中的能力压缩和可控部署很有启发意义。如果你对这个方向感兴趣建议按下面的路线深入学习先掌握经典异常检测基础阅读 PatchCore、PaDiM、SPADE 等特征嵌入方法的原理理解参考集在传统方法里的作用。再理解蒸馏学习 Hinton 的知识蒸馏原始论文然后看 DINO、LLM 蒸馏相关的近期工作理解 soft label、特征对齐、分布匹配这些概念。接着研究 on-policy 机制阅读 PPO 等强化学习算法的核心逻辑理解为什么当前策略产生的数据对训练如此关键。最后关注 MLLM 落地研究 MLLM 在视觉任务中的结构化输出方法和提示工程结合工业场景思考如何让模型输出可靠的质检结论。如果你正好在探索 MLLM 落地工业视觉的场景掌握知识蒸馏和在线策略的思想会在设计解决方案时多一个非常有效的工具箱。