VPT的核心思想是,在适配下游任务时,我们应当冻结 (freeze) 强大的预训练模型本身,只通过训练一小组额外添加的、轻量级的提示 (Prompts) 来引导模型的行为。

这很容易理解,想想GPT:为什么一个Transformer Decoder能做这么多事?就是因为对于不同的任务,我们会喂给模型不同的prompt麻。

前置知识(prompt tuning)

这里说一下prompt tuning。

研究者发现,人想出来的文字指令不一定是最高效的。于是,一个聪明的想法诞生了:
我们不再手动设计文字,而是创建几个可学习的虚拟指令 (learnable vectors)。我们冻结大模型,只训练这几个“虚拟指令”,让机器自己学会针对特定任务的、最高效的“暗号”。

VPT就是将这个思想完美地迁移到了视觉领域。它解决了核心问题:对于一个看图的模型,它的“暗号”应该是什么?答案就是可学习的提示向量 (Prompt Tokens)。

VPT的核心方法

  • 首先,准备一个强大的、已预训练好的Vision Transformer (ViT) 模型,并冻结其所有参数。这意味着ViT本身庞大的知识库在整个微调过程中保持不变。

  • 创建一小组(例如 k=10k=10k=10 个)全新的、可学习的向量,称为提示向量(Prompt Tokens)

  • 在处理一张图片时,ViT会先将其切分为一系列图像块向量 (patch tokens)。我们将上一步创建的“提示向量”插入到这串图像块向量序列的最前面。

  • 在训练时,只有这些新插入的“提示向量”和任务所需的分类头 (classification head) 会被更新。整个ViT主干网络(上亿参数)不参与梯度更新。

  • 训练的目标是,让这些最初随机的“提示向量”学会充当一个任务指令。例如,在飞机型号识别任务中,这些提示会通过学习,演变成一种能引导ViT模型将注意力高度集中于区分不同飞机(如波音系列)细微特征的“控制信号”。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐