本文聚焦于视觉语言模型在迁移学习中的提示优化问题。近期虽然有研究通过引入外部大型语言模型来提供类别描述,但类似方法显著增加了计算成本。本文提出了一种名为TextRefiner的即插即用方法,通过利用VLMs内部的视觉特征来高效地优化文本提示,从而提升模型在下游任务中的性能,同时避免了外部知识引入带来的推理开销。
论文标题:
TextRefiner: Internal Visual Feature as Efficient Refiner for Vision-Language Models Prompt Tuning
论文链接:
https://arxiv.org/abs/2412.08176
开源代码:
https://github.com/xjjxmu/TextRefiner
感谢@zheng li在看到了TextRefiner后来找我交流论文的相关想法(在textrefiner发表之前和lizheng大佬还不认识),并且鼓励我写推文来介绍自己的工作。另外,最近也收到了一些关于TextRefiner的咨询,因此有了这篇推文。在论文里,我们也选择了PromptKD [0] ,当前sota的baseline,来验证我们方法在这种基于KD的visual prompt框架下也能够有效果。 一、背景
传统的视觉表示学习依赖于预定义的标签集,难以扩展到未见类别。然而,对比视觉语言模型,以自然语言作为监督信号,利用对比损失将图像与文本对齐到统一的嵌入空间,成功实现了视觉表示与语言的高度关联与泛化,代表性方法如 ALIGN 和 CLIP [1] 。得益于大规模数据和对比学习目标,这些模型在目标检测、语义分割和深度估计等下游任务中表现卓越。
在 CLIP 推理阶段,只需要利用图像编码器和文本编码器将图像和文本分别映射到一个联合的嵌入空间,并计算它们的相似度以进行匹配,就可以得到下游的预测结果。
为了进一步提高CLIP在下游任务上的性能,Prompt Tuning技术开始被引入CLIP来提升模型适配性 [2] ,主要通过优化上图中CLIP“a photo of {class_name}”文本部分描述,通过向其中插入learnable prompt token,通过仅微调这些少量prompt token,去学习下游任务中对应任务信息,以生成更适配任务的下游任务的文本描述。
二、动机
尽管上述prompt learning可以完成CLIP在下游任务的迁移,但难以捕捉下游细粒度描述信息,也容易过拟合到下游任务泛化性差。针对这一问题,最近CVPR2024中的两篇文章提出的解决方案是借助LLM广泛的先验知识来为class产生大量属性描述内容,然后作为额外的细粒度信息输入到text-encoder中:
其中LLaMP [3] 是借助LLM输出对类别进行细致描述的段落的hidden state / KV cache,而ArGue [4] 是利用LLM输出的属性描述来作为额外的textual prompt token。这些方法具有两个显著缺点:
需要额外的参数 / 操作来保证LLM输出的知识符合对应class的分布,例如LLaMP得到h所需要的额外可训练module以及ArGue的属性采样过程。
引入了额外的文本token来实现细粒度信息的注入增加了TextEncoder的计算开销,再加上1中需要的额外操作,从而使得推理时间大大增加。例如LLaMP比原始只具有soft prompt的CoOp慢了8倍。
尽管引入大模型提供的外部知识能够细化类别级信息,但推理效率和成本问题成为新的瓶颈。我们认为细粒度的描述信息其实已经蕴藏在图像分支中, 我们只需要对图像分支的视觉特征进行合理利用,也可以实现对文本分支信息密度的丰富 ,与之而来有两个优点:
图像分支的知识完全来自于下游class自身,我们如果能利用好图像分支天然的视觉属性知识,就不需要上述提到的额外的过滤操作。
我们也只需要设计一个操作让图像分支知识能够注入,就可以完成对文本信息的丰富,不需要增加额外的prompt token,极大减少了额外的参数存储和计算开销。
因此我们提出了TextRefiner, 通过挖掘图像分支中的局部特征,将丰富的视觉属性注入到文本嵌入中,从而提升模型的表示能力和泛化性 。该方法不同以往依赖外部专家辅助的方式来注入属性知识,突破视觉-语言模型在细粒度信息表示中的瓶颈,实现了局部对齐。 三、方法
TextRefiner围绕三个核心模块展开: Local Cache 、Feature Aggregation 和 Feature Alignment 。
3.1 Local Cache:捕获局部视觉属性 图像编码器(如ViT)会将输入图像划分为不重叠的patch,并通过不断堆叠的transformer block来对patch特征进行聚合,这些聚合后的特征包含了丰富的视觉属性,如纹理、边缘等细粒度信息。我们通过设计 Local Cache 模块,将这些局部特征以结构化的方式存储起来,用于表征图像中的关键视觉概念。
具体来说,Local Cache包含固定数量的条目,每个条目表示某类视觉属性。为了提高效率,我们不直接存储所有局部特征,而是通过计算它们与条目的相似度,将相似的特征聚合到对应的条目中。例如,当处理一张老虎图像时,其标志性的黑黄条纹会被分配并聚合到一个“纹理”条目中。而这一特性不仅对老虎有效,还能够泛化到其他具有类似纹理的物体(如同样具有黑黄间隔条纹的蜜蜂)。这种泛化性使得Local Cache能够实现知识的跨类迁移。具体实现如方法途中的Local Cache部分所示,设局部特征为 ,Local Cache为 (M 为条目数量,d 为特征维度)。我们通过余弦相似度计算每个局部特征 与条目 的匹配程度:
其中 为动量系数, 表示与条目 最匹配的特征集合。 3.2 Feature Aggregation:注入视觉属性知识 为了将Local Cache中存储的视觉知识注入到文本模态中,我们设计了一个特征聚合模块,将Local cache中与文本当前表示的内容相关的的局部属性与文本全局表示进行结合。
具体操作如下:
1. 视 觉知识查询 :我们根据类别文本嵌入 与Local Cache中条目的相似度,计算视觉属性的加权特征: 2. 特征融合 :将 与文本的全局特征 在通道维度拼接,通过线性层完成最终聚合。这种方式避免了引入额外token,也能完成细粒度信息注入,有效提升了文本的细粒度描 述能力。 3.3 Feature Alignment:局部特征模态对齐 由于视觉模态中的局部特征 V 在训练过程中并未直接对齐文本模态,这可能导致模态间的差距,影响视觉知识的查询效果。为此,我们引入了特征对齐模块。通过简单的两层MLP,将局部特征 转换到文本嵌入空间,使其能够与文本模态对齐。通过模态对齐,显著提升了局部特征在视觉模态和文本模态间的适配能力。 通过上述设计,TextRefiner具有了以下特点 细粒度表示 :利用局部缓存模块,捕捉图像中的细粒度视觉属性,并实现类间泛化。 轻量化设计 :无额外token需求,仅通过拼接和线性变换完成视觉-文本特征融合。 模态对齐增强 :消除局部特征和文本嵌入间的模态差异,提高视觉知识的查询质量。 从而实现了细粒度视觉知识的高效注入,让视觉与文本的协同表达更加精细且自然。 四、主要实验结果
验证了视觉特征作为属性 / 细粒度知识的来源是可以和外部专家知识实现相同的泛化性。
TextRefiner和LLaMP在不同数据集上的表现具有差异。针对 DTD 和 EuroSAT 数据集的性能差异,我们进行了深入分析。EuroSAT 数据集,图像分辨率较低,细节模糊,主要依赖于全局特征理解。LLaMP 提供的外部知识(如“景观上有一条细长的暗线”)更适合这种图像类型,因此表现优于 TextRefiner,而DTD 数据集图像质量高、分辨率清晰,细粒度特征(如纹理和边缘)至关重要。TextRefiner 的局部特征聚合在此类任务中展现显著优势,因此优于 LLaMP。我们也验证了 TextRefiner 在增强 LLaMP 表现方面的能力。例如,在 EuroSAT 数据集中,即使对于依赖全局特征的任务,结合局部信息的策略依然能够带来性能提升。这进一步证明了 TextRefiner 是一种 灵活且通用的插件策略 ,能够为多种任务赋能。
得益于Local cache利用方式简单,TextRefiner的 FPS 显著高于 CoCoOp和LLaMP,显示其在推理速度上的高效性。CoCoOp和LLaMP因为都需要设计复杂的模块获取聚合了额外信息的prompt token再作为输入影响attention计算,FPS 较低。
五、换个角度
也是一种Concept Bottlenecks Models 。上一周在听到一个talk里谈到一篇ICML2020文章《Concept Bottlenecks Models》,当下就发现TextRefiner实际上也能算是Concept Bottlenecks Models变种。Concept Bottlenecks Models通过将模型预测划分为两个步骤:先预测高层次的人为设置的属性概念,再基于这些概念预测最终的目标。而TextRefiner相当于把人为设置的属性变成了以图像分支的先验知识。
TextRefiner整个框架不复杂,主要验证了原生的视觉信息可以作为泛化性的细粒度知识,还有很多结构上的探索和设计等探索 ,包括某些patch features可能给内部知识带来噪音,local cache中条目的初始化和动态设计等等;另外,在这个架构上也可以进一步去考虑如何仅在推理时更新内部知识。欢迎大家基于textrefiner框架去进行后续的探索工作。最后,因为资源限制我们主要探索的是少样本的setting,希望后续有人可以探索数据量scale后的效果。 来源:【知乎】 https://zhuanlan.zhihu.com/p/15940023585 llustration From IconScout By IconScout Store “AI技术流”原创投稿计划
TechBeat是由将门创投建立的AI学习社区( www.techbeat.net )。 社区上线600+期talk视频,3000+篇技术干货文章,方向覆盖CV/NLP/ML/Robotis等;每月定期举办顶会及其他线上交流活动,不定期举办技术人线下聚会交流活动。我们正在努力成为AI人才喜爱的高质量、知识型交流平台,希望为AI人才打造更专业的服务和体验,加速并陪伴其成长。
投稿内容
// 最新技术解读/系统性知识分享 //
// 前沿资讯解说/心得经历讲述 //
投稿须知
稿件需要为原创文章,并标明作者信息。
我们会选择部分在深度技术解析及科研心得方向,对用户启发更大的文章,做原创性内容奖励
投稿方式
发送邮件到
[email protected]
或添加工作人员微信(yellowsubbj ) 投稿,沟通投稿详情;还可以关注“将门创投”公众号,后台回复“投稿 ”二字,获得投稿说明。
将门 是一家以专注于 数智核心科技领域 的 新型创投机构 ,也是 北京市标杆型孵化器 。 公司致力于通过连接技术与商业,发掘和培育具有全球影响力的科技创新企业,推动企业创新发展与产业升级。 将门成立于2015年底,创始团队由微软创投在中国的创始团队原班人马构建而成,曾为微软优选和深度孵化了126家创新的技术型创业公司。 如果您是技术领域的初创企业,不仅想获得投资,还希望获得一系列持续性、有价值的投后服务, 欢迎发送或者推荐项目给我“门”: