一、ClIP 和 ALIGN
将图像及其文本描述放在一起,同时排除特征空间中不匹配的对(将图像和文本在公共特征空间中对齐)。 通过大规模预训练,模型可以学习不同的视觉概念,并可以通过提示轻松转移到任何下游任务。特别是,对于任何新的分类任务,可以首先通过向文本编码器提供描述任务相关类别的句子来合成分类权重,然后与图像编码器生成的图像特征进行比较。
对于预训练的视觉语言模型,文本输入(prompt)在下游数据集中起着关键作用。然而,识别正确的提示并不是一项简单的任务,它通常需要花费大量时间来调整单词——措辞上的微小变化可能会对性能产生巨大的影响。 添加与任务相关的上下文可以带来显着的改进,调整句子结构可以带来进一步的改进。 然而,即使进行了广泛的调整,所产生的提示不能保证对于这些下游任务来说是最佳的。
二、CoOp——第一个将prompt learning应用于大视觉语言模型
(1)自动化提示工程(prompt engineering)。
(2)CoOp旨在促进视觉语言模型在下游数据集中的适应和部署。
(3)CoOp 使用可学习向量(learnable context)对提示的上下文单词进行建模,这些向量可以使用随机值或预训练的单词嵌入进行初始化。
CoOp 有效地将预先训练的视觉语言模型转变为数据高效的视觉学习器,只需1 or 2 shot即可以相当大的优势击败手工制作的提示。使用更多shot性能还可以进一步提升。尽管 CoOp 是一种基于学习的方法,但它在域转换方面比零样本模型(使用手动提示)表现出更强的鲁棒性。
CoOp使用从数据中端到端学习的连续向量建模上下文单词来避免手动提示调整,同时冻结大量预训练参数。