DPC:双提示协作为视觉-语言模型调优,解耦基础任务和新任务的优化过程

数据派THU分享:DPC框架通过解耦基础任务和新任务的提示优化,显著提升视觉-语言模型在基础类别上的性能,同时保持对新类别的泛化能力。

原文标题:【CVPR2025】DPC:双提示协作用于视觉-语言模型调优

原文作者:数据派THU

冷月清谈:

本文介绍了一种名为双提示协作(DPC)的框架,旨在解决基于 CLIP 的提示调优过程中常见的基础-新类别权衡(BNT)问题。该问题表现为对基础类别的持续微调会导致模型在新类别上的泛化能力下降。DPC 框架的核心思想是在提示级别上解耦基础任务和新任务的优化过程。具体来说,它克隆了一个可学习的并行提示,并引入加权解耦框架,独立控制双提示的优化方向,避免泛化冲突。此外,还提出了动态硬负样本优化器,利用双提示为基础类别构建更具挑战性的优化任务,从而增强模型性能。实验证明,DPC 框架能够在不引入任何外部知识的情况下,显著提升模型在基础类别上的性能,同时保持对新类别的泛化能力。

怜星夜思:

1、DPC框架中“解耦基础任务和新任务的优化过程”是如何具体实现的?除了克隆提示和加权解耦框架,还有没有其他可能的解耦方法?
2、文章中提到的“动态硬负样本优化器”是如何增强模型性能的? 为什么为基础类别构建更具挑战性的优化任务就能提升性能?
3、文章提到“提示向量在优化过程中的特征通道不变性”,这有何意义? 为什么这能为 DPC 的加权解耦提供理论支持?

原文内容

来源:专知

本文约1000字,建议阅读5分钟

我们提出了一种即插即用的双提示协作(Dual-Prompt Collaboration, DPC)框架,首次在提示级别上解耦基础任务和新任务的优化过程。


基础-新类别权衡(BNT)问题在基于 CLIP 的提示调优(Prompt Tuning)优化过程中普遍存在,表现为对基础(目标)类别的持续微调会同时导致模型在新(未见)类别上的泛化能力下降。现有方法尝试通过添加约束来调节提示调优过程,以平衡 BNT 问题。然而,这些约束作用于同一目标提示,无法完全避免基础类别和新类别优化方向之间的互斥性。针对这一挑战,我们提出了一种即插即用的双提示协作(Dual-Prompt Collaboration, DPC)框架,首次在提示级别上解耦基础任务和新任务的优化过程。具体而言,我们基于骨干提示(backbone prompt)克隆了一个可学习的并行提示,并引入了一个加权解耦框架(Weighting-Decoupling Framework),以独立控制针对基础任务或新任务的双提示优化方向,从而避免泛化冲突。同时,我们提出了一种动态硬负样本优化器(Dynamic Hard Negative Optimizer),利用双提示为基础类别构建更具挑战性的优化任务,以增强模型性能。为了增强可解释性,我们证明了提示向量在优化过程中的特征通道不变性,为 DPC 的加权解耦提供了理论支持。在多个骨干模型上的广泛实验表明,DPC 能够在不引入任何外部知识的情况下,显著提升模型在基础类别上的性能,同时保持对新类别的泛化能力。代码已开源,可在以下链接获取:https://github.com/JREion/DPC



关于我们

数据派THU作为数据科学类公众号,背靠清华大学大数据研究中心,分享前沿数据科学与大数据技术创新研究动态、持续传播数据科学知识,努力建设数据人才聚集平台、打造中国大数据最强集团军。




新浪微博:@数据派THU

微信视频号:数据派THU

今日头条:数据派THU


动态硬负样本优化器通过不断挖掘那些容易被模型错误分类的“硬”负样本,来增强模型的区分能力。 简单来说,就是让模型不断地“犯错”,然后在“错误”中学习,从而提高识别正确样本的能力。



为基础类别构建更具挑战性的优化任务的逻辑是:如果模型能够正确区分与基础类别相似的新类别(即硬负样本),那么它在基础类别上的性能自然会得到提升。 这就像是训练一个拳击手,如果他能战胜更强的对手,那么对付一般的对手自然不在话下。

要我说啊,这个思路有点像“田忌赛马”,把优势资源用在刀刃上。不过,如果基础类别和新类别的差异很大,这种解耦会不会导致模型在新类别上的学习效率降低? 或者说,有没有可能出现“捡了芝麻,丢了西瓜”的情况? 从工程角度看,感觉引入了更多参数,推理速度会不会下降?

我不是做理论的,但是我觉得这个可能和神经网络的可解释性有关。 如果特征通道是可变的,那就很难解释每个通道代表什么含义。 保持特征通道不变性,可能有助于我们更好地理解模型是如何工作的。 当然,这只是我的猜测。

我觉得这个“特征通道不变性”可以理解为一种正则化约束,它可以防止模型过度拟合到特定的数据集上。 这种不变性使得模型能够学习到更加通用的特征表示,从而提高模型的泛化能力。 从理论上讲,这种不变性保证了 DPC 框架的有效性。

DPC框架的解耦主要通过克隆一个可学习的并行提示,并引入加权解耦框架来实现。克隆提示相当于为每个任务(基础/新类别)提供了一个专门的学习空间。加权解耦框架则进一步控制这两个提示的优化方向,避免它们互相干扰。

至于其他的解耦方法,我觉得可以考虑以下思路:
1. 基于注意力的解耦:引入注意力机制,让模型在处理不同类别时关注不同的特征或提示部分。
2. 对抗学习解耦:训练一个判别器来区分基础类别和新类别的提示,并用对抗学习的方式来解耦它们的特征表示。
3. 元学习解耦:使用元学习策略,让模型学习如何更好地解耦基础类别和新类别的知识。

个人觉得,关键在于如何有效地分离不同任务的信息,并避免它们在优化过程中产生冲突。

我理解这个“动态硬负样本优化器”有点像GAN里面的判别器,不断地给模型制造难题,让模型不断地提升自己。关键在于这个“动态”,意味着负样本是不断变化的,可以避免模型过拟合到某些特定的负样本上。 至于为什么提升基础类别性能就能提升整体性能,我觉得可能是因为作者认为基础类别的数据量更大,或者基础类别在整个任务中更重要。

我觉得可以从信息论的角度来理解。 引入“硬负样本”本质上是增加了模型的学习难度,让模型能够学到更多有区分性的信息。 就像我们在学习的时候,如果只做简单的题目,就很难真正掌握知识。 多做难题,才能更好地理解知识的本质。

这篇文章的核心是提出了一个解决“基础-新类别权衡(BNT)”问题的新思路。DPC 通过将提示解耦,避免了直接在同一提示上进行调整导致的冲突。我觉得要理解这个解耦,关键在于理解这个权衡问题。其他解耦方法,我想到的是迁移学习的思路,是不是可以考虑用迁移学习的方法,将基础类别的知识迁移到新类别上,这样也能减少直接在新类别上进行学习的需求?

“提示向量在优化过程中的特征通道不变性”意味着在优化过程中,提示向量的各个特征通道相对独立,不会相互干扰。 这就像是不同的“专家”在各自的领域内进行优化,而不会互相影响。



这种不变性为 DPC 的加权解耦提供了理论支持,因为它表明我们可以独立地控制不同提示向量的优化方向,而不用担心它们之间会产生有害的耦合。 简单来说,就是可以放心地让不同的“专家”去处理不同的任务,而不用担心他们会互相拖后腿。