
摘要
视觉提示调优(Visual Prompt Tuning, VPT)是一种极具前景的方法,通过引入可学习的提示令牌(prompt tokens),实现对预训练模型在下游任务中的定制化适配。然而,VPT及其变体在实际应用中常面临提示初始化、提示长度选择以及自监督预训练阶段性能不佳等挑战,限制了其在上下文环境中的有效适应能力。本研究首先深入探讨了在高效训练过程中,提示令牌与图像块令牌(patch tokens)之间相关性的动态演变规律。受观察发现——提示令牌与图像块令牌之间存在较高的互信息——的启发,我们提出采用下游任务的令牌原型(downstream token prototypes)作为提示的初始化方式。这一策略替代了传统的随机或固定初始化方法,在微调阶段显著提升了模型性能。为进一步优化,我们设计了一条简化的令牌构建流程,在几乎不增加计算开销的前提下,保持了与VPT相当甚至更优的性能表现。大量实验结果表明,所提出的方法在多个基准上显著超越现有技术。例如,在FGVC和VTAB-1K基准上,该方法在24项任务中的19项上优于全量微调(full fine-tuning),且仅使用不到0.4%的可学习参数。尤为突出的是,该方法在自监督预训练场景下的适应能力获得显著提升,任务性能提升幅度高达10%至30%。此外,实验结果还表明,所提出的自适应提示调优方法(Self-Prompt Tuning, SPT)对提示长度具有较强的鲁棒性,并能随着模型容量和训练数据规模的扩大而良好扩展。最后,本研究还深入探讨了促进预训练模型向下游任务迁移所需的目标数据量,为模型适配提供了有价值的见解。相关代码已开源,地址为:https://github.com/WangYZ1608/Self-Prompt-Tuning。
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| visual-prompt-tuning-on-fgvc | SPT-Deep(ViT-B/16_MAE_pretrained_ImageNet-1K) | Mean Accuracy: 83.26 |
| visual-prompt-tuning-on-fgvc | SPT-Shallow(ViT-B/16_MoCo_v3_pretrained_ImageNet-1K) | Mean Accuracy: 84.08 |
| visual-prompt-tuning-on-fgvc | SPT-Shallow(ViT-B/16_MAE_pretrained_ImageNet-1K) | Mean Accuracy: 73.95 |
| visual-prompt-tuning-on-fgvc | SPT-Deep(ViT-B/16_MoCo_v3_pretrained_ImageNet-1K) | Mean Accuracy: 86.00 |
| visual-prompt-tuning-on-vtab-1k-natural-7 | SPT-Shallow(ViT-B/16_MAE_pretrained_ImageNet-1K) | Mean Accuracy: 62.53 |
| visual-prompt-tuning-on-vtab-1k-natural-7 | SPT-Deep(ViT-B/16_MoCo_v3_pretrained_ImageNet-1K) | Mean Accuracy: 76.20 |
| visual-prompt-tuning-on-vtab-1k-natural-7 | SPT-Shallow(ViT-B/16_MoCo_v3_pretrained_ImageNet-1K) | Mean Accuracy: 74.47 |
| visual-prompt-tuning-on-vtab-1k-natural-7 | SPT-Deep(ViT-B/16_MAE_pretrained_ImageNet-1K) | Mean Accuracy: 67.19 |
| visual-prompt-tuning-on-vtab-1k-specialized-4 | SPT-Shallow(ViT-B/16_MoCo_v3_pretrained_ImageNet-1K) | Mean Accuracy: 83.93 |
| visual-prompt-tuning-on-vtab-1k-specialized-4 | SPT-Deep(ViT-B/16_MAE_pretrained_ImageNet-1K) | Mean Accuracy: 83.15 |
| visual-prompt-tuning-on-vtab-1k-specialized-4 | SPT-Deep(ViT-B/16_MoCo_v3_pretrained_ImageNet-1K) | Mean Accuracy: 84.95 |
| visual-prompt-tuning-on-vtab-1k-specialized-4 | SPT-Shallow(ViT-B/16_MAE_pretrained_ImageNet-1K) | Mean Accuracy: 80.90 |
| visual-prompt-tuning-on-vtab-1k-structured-8 | SPT-Deep(ViT-B/16_MAE_pretrained_ImageNet-1K) | Mean Accuracy: 59.23 |
| visual-prompt-tuning-on-vtab-1k-structured-8 | SPT-Shallow(ViT-B/16_MoCo_v3_pretrained_ImageNet-1K) | Mean Accuracy: 55.16 |
| visual-prompt-tuning-on-vtab-1k-structured-8 | SPT-Deep(ViT-B/16_MoCo_v3_pretrained_ImageNet-1K) | Mean Accuracy: 58.36 |
| visual-prompt-tuning-on-vtab-1k-structured-8 | SPT-Shallow(ViT-B/16_MAE_pretrained_ImageNet-1K) | Mean Accuracy: 53.46 |