首页 > 其他分享 >TPT(论文解读):Test-Time Prompt Tuning for Zero-Shot Generalization in Vision-Language Models

TPT(论文解读):Test-Time Prompt Tuning for Zero-Shot Generalization in Vision-Language Models

时间:2024-09-08 19:50:58浏览次数:11  
标签:Prompt Tuning Language 提示 样本 CLIP TPT 测试 图像

Comment: NeurIPS 2022

视觉语言模型中用于zero-shot泛化的测试期间提示调优

摘要

预训练的视觉语言模型在许多具有恰当文本提示的下游任务中表现出不错的zero-shot泛化。最近的研究并非使用手动设计的提示,而是使用下游任务中的训练数据来学习提示。虽然这种方法是有效的,但是对于特定领域的数据进行训练,当面对不可见的新领域时,模型的泛化能力会下降。

本文提出了TPT(Test-time prompt tuning),这是一种可以使用单个测试样本动态学习自适应提示的方法。对于图像分类,TPT通过最小化熵(置信度筛选 )来优化提示,以至于模型在每个测试样本的不同增强视图中具有一致的预测。

在评估对自然分布偏移的泛化时,TPT将CLIP的Zero-shot top-1准确性平均提高了3.6%,超过了先前需要额外任务特定训练数据的调优方法。在评估具有不可见类别的跨数据集泛化时,TPT 的性能与使用额外训练数据的最新方法相当。

Introduction

视觉语言预训练模型的最新研究,如CLIP 和ALIGN,为开发视觉任务的基础模型提供了一个很有前途的方向。这些基础模型在数百万含噪声的图像-文本对上训练后编码了广泛的视觉概念,并且可以在没有特定任务训练数据的情况下以zero-shot的方式应用于下游任务。这可以通过设计适当的指令提示来实现。

解释图1:使用提示' a photo of a '预定一个类别名称。然后使用CLIP来测量图像与各种类别描述的对齐度,进而对图像进行分类。因此,设计提示在以zero-shot的方式将基础模型应用于下游任务中起着至关重要的作用。然而,这种手工设计的提示需要特定领域的启发,并且可能不是最优的。

最近的工作提出使用下游任务的训练数据直接学习提示来解决这个问题。可以使用训练数据微调提示,因为提示嵌入是模型输入的一部分并且关于损失函数是可微的。这种方法可以找到比手工制作的提示更好的提示,但是学习到的提示仅限于训练数据对应的分布和任务,除此之外可能具有有限的泛化性。此外,这种方法需要带有标注的训练数据,这可能是昂贵的,并且对于零样本任务是不可用的。

本文方法:为了解决以上挑战,本文提出测试时间提示调优( TPT ),它仅使用给定的测试样本实时地调整提示。调整后的提示适应于每个任务,使其适用于zero-shot泛化,而不需要任何任务特定的训练数据或标注。由于没有使用额外的训练数据或标注,TPT保留了零样本泛化设置。

本文在两种不同的下游任务上探索TPT:图像分类和上下文相关的视觉推理。针对每个下游任务,本文设计了符合任务本质的定制化测试时间调优策略。保证一般性,考虑CLIP作为视觉语言基础模型,因为它在设计上的简单性和它的广泛适用性。

对于图像分类,一个测试样本就是一个输入图像。给定测试时的单个样本,通过随机生成多个增强视图来进行提示调优,并优化文本提示,使模型在不同的增强视图中具有一致的预测。这是通过最小化增强视图输出之间的边际熵来实现的。此外,由于某些增强视图可能会误导模型预测,因此本文提出置信度选择来过滤掉带有噪声的增强视图。我们丢弃了具有高预测熵(即低置信度)的增强视图,在一致性优化中只包含高置信度的视图。

本文评估了TPT在两种图像分类设置下的zero-shot的泛化能力:自然分布偏移和跨数据集泛化。对于评估自然分布偏移的设置,TPT在zero-shot设置下将CLIP的Top - 1准确率平均提升了3.6 %,与之前需要额外训练数据的提示调优方法相比,达到了相当的准确率。相比于使用手工提示,TPT在ImageNet - A上最大提升了6.9 %,超过了现有few-shot提示调优方法5.1 %。对于评估包含未知类别的跨数据集泛化的设置,TPT采用最先进的少样本快速调优方法,无需额外的训练数据或标注,实现了准性能。

对于上下文相关视觉推理的第二个任务,例如Bongard-HOI,一个测试样本包含两组支持图像和一个用于评估的查询图像。这两组支持图像的集合分别体现了人-物体交互(HOI)概念(例如骑自行车)的存在与不存在,然后要求模型推断查询图像是否包含底层概念。给定一个测试样本,我们使用提示调优来应用TPT,来更好的区分两个支持集,以至于更好对查询图像进行分类。尽管使用了支持集,本文仍然被认为是zero-shot的视觉推理,因为既没有使用来自其他概念的训练任务,也没有使用测试时查询图像的标注来更新测试任务的提示。通过将TPT应用于上下文相关的视觉推理,我们比现有方法高出4.1%。

本文贡献

(1)本文提出了测试时域提示调优(TPT),它不需要任何训练样本或标注来优化提示。本文是第一个以zero-Shot方式对单个测试样本进行提示调优的。

(2)本文引入了置信度选择作为TPT用于图像分类的即插即用的模块。它通过过滤带有噪声的增强视图来改善增强视图之间的熵最小化。

(3)本文在自然分布偏移、跨数据集泛化和上下文相关的视觉推理下对图像分类进行了广泛的实验。TPT以零样本的方式改进CLIP,使其与需要额外训练数据的提示调优方法相当。

TPT:Test-Time Prompt Tuning

本节首先讨论如何使用手工提示且以zero-shot的方式将CLIP应用于下游任务中。然后介绍使用下游任务的训练来进行CLIP提示调优方法的发展。最后介绍如何将本文的方法应用到图像分类中。本文也介绍用于上下文相关的视觉推理的TPT及其背景知识。

3.1 Background

Contrastive Language-Image Pre-training (CLIP)

CLIP包含两个并行的编码器,其中图像编码器将图像输入映射为特征向量,文本编码器将文本输入映射为文本的特征向量。CLIP通过促进两个特征向量之间发相似性对比损失来训练,从而促使文本和图像在特征空间中对齐。F = {Evisual, Etext}表示CLIP模型,Evisual表示图像编码器, Etext表示文本编码器。

首先回顾如何使用手工提示且以zero-shot方式将CLIP应用于下游任务。本文以图像分类为例。对于K类分类问题,y类的单个测试图像Xtest。在zero-shot的基线设置中,我们在每个类别Y = {y1,y2,,,,yk}前加一个手工设置的提示前缀p=”a photo of a”,形成特定的文本输入{p;yi}。然后将这些类别描述输入到文本编码器中,得到文本特征{ t1,t2,..,tK },其中ti = Etext( { p ; yi })。将每个文本特征ti与图像特征v = Evision ( X )进行匹配,计算相似度得分si = sim(ti·v),其中sim( ,)表示余弦相似度。图像X在k个类别上的预测概率为:

Prompt tuning using downstream training data

当下游任务的数据标注可以获得情况下,提示调优方法没有使用手工设计的提示,而是训练提示信息提高性能。在文本嵌入空间中,使用来自下游任务中的带有标注的训练数据Dtrain = {(Xi, yi)}来优化提示(L为token数目,D为token维度)。目标是获得文本输入{ p;Y } = { { P;Yi } for yi∈Y },可以为模型提供关于任务的最有用的上下文信息。对于具有交叉熵损失L的图像分类问题,该问题可以表述为:

Context-dependent visual reasoning

对于上下文相关的视觉推理任务,如Bongard- HOI,一个测试样本包含两组支持图像和一个用于评估的查询图像。这两组支持图像分别体现了人-物体交互( HOI )概念(例如, "骑自行车")的存在和不存在,然后要求模型推断查询图像是否包含底层概念。具体来说,该任务中的每个概念是一个视觉关系c =〈s,a,o〉,其中s是主语( s = HOI任务中的"人"),a表示动作,o表示对象。每个测试样本Xtest通过在一组支持图像(正例)中呈现c =〈s,a,o〉来捕捉这个概念,而在另一组支持图像(反例)中呈现c′=〈s,a′,o〉,其中a′≠a。值得注意的是,o和a都不是显式给定的,它依赖于模型的推理能力来预测查询图像是否包含测试样本的特征概念c。

现有方法通过在一组相似任务上训练模型来逼近Bongard-HOI问题,使其能够在测试时刻对测试样本做出相似推断。当将CLIP应用于该任务时,我们不使用额外的训练数据,因为CLIP学习了丰富的视觉概念,因此自然适用于此类视觉推理任务。

3.2 TPT: Test-Time Prompt Tuning

Why optimize prompts?

CLIP包含了在海量多样的数据集上通过预训练得到的丰富知识。然而,如何有效地提取这些知识仍然是一个开放的问题。一个简单的策略是直接在一个输入类别上对模型进行端到端或子集层的微调。然而,先前的工作表明,这种微调策略会导致模型针对特定领域,从而失去基础模型的分布外泛化性和鲁棒性。另一方面,提示调优通过修改模型输入的上下文信息,在预训练模型之外工作,从而不扭曲预训练的特征。

本文目标是利用CLIP的现有知识,以zero-shot的方式提高其泛化能力。因此提示调优是实现该目标的好方法。更进一步,本文将测试时间提示调优作为一种方法,为模型提供针对单个测试样本的情境,这有助于精确检索CLIP的知识。

在推理阶段,唯一可用的信息就是没有标签信息的单个测试样本Xtest。因此,TPT在单个测试样本的基础上对测试时刻的提示P进行了优化。一般来说,本文的目标可以表述为:

与以上使用下游任务数据进行提示调优的方法不同的是本文方法不需要任何标签或zero-shot测试样本以外的任何数据。

TPT for image classification.

因为测试期间提示调优中不可获得标签数据,因此本文必须选择无监督损失用于提示调优。本文设计的TPT目标为对于给定测试样本的不同增强视图之间预测的一致性。具体来说,我们使用一组随机增广操作A来对测试样本进行操作得到多个增强视图,并且最小化平均预测概率分布的熵:

其中代表当提供提示p和第i个增强视图时,模型产生的类别概率向量。

此外,为例减少随机增强产生的噪声,本文提出置信度筛选来过滤掉低置信度(高熵)预测的视图。图像的这些视图可能缺乏正确分类的重要信息,例如随机裁剪可能剪掉了重要的图像内容。本文选择熵值低于τ的自信样本,为每个测试样本自适应调整τ,将N个增强视图按照熵值由低到高排序(也就是置信度由高到低排序),然后取ρ分位点的熵值。对于τ,置信度筛选可以写成增广样本[H(pi) ≤ τ ]上的掩码,其中H表示增广视图上预测的自熵。

在N个增强视图熵使用ρ分位数截断进行置信度筛选,公式4平均概率改为:

TPT for context-dependent visual reasoning.

与图像分类不同,每幅图像只有一个真实标签,而在Bongard-HOI 中预测的正确性依赖于上下文(也就是图像样本),即是二进制的(也就是包含概念c或者不包含概念c)。在二元标签的情况下, 一种简单的提示策略是对正例和反例进行手工标注,例如真假或者Yes/No。另一方面,对于我们提出的TPT,我们可以直接在测试样本的示例图像上学习一个最优的标签token cls。更重要的是,对于视觉推理,TPT可以以文本提示的形式显示学习上下文(视觉概念),并借助语言上下文辅助视觉语言模型的视觉推理。形式上,给定每个测试样本中的M个支持图像,上下文相关推理的TPT目标可以写为:

其中y ∈ {0, 1}分别代表正例或者负例,用于计算交叉熵损失。

与图像分类不同的是,我们同时调节二值标签token cls = {cls1, cls2}和提示p。对于每张图像,我们将输入到CLIP的文本集合为T = {T1, T2 | Ti = {p, clsi}}。

需要注意的是,支持集是Bongard-HOI中必不可少的一部分,它为上下文相关的任务提供了上下文。因此,本文的方法仍然是在测试期间工作,没有训练数据或标注。

Conclusion

本文研究如何充分挖掘预训练视觉-语言基础模型作为更好的zero-shot学习器的潜力。本文提出了测试时间提示调优( Test-time Prompt Tuning,TPT ),一种新的提示调优方法,它可以通过单个测试样本学习自适应提示。本文使用CLIP作为基础模型,证明了在对自然分布偏移和跨数据集泛化的鲁棒性上的有效性。在不需要任何训练数据或标注的情况下,TPT提高了CLIP的零样本泛化能力。

标签:Prompt,Tuning,Language,提示,样本,CLIP,TPT,测试,图像
From: https://blog.csdn.net/m0_54248968/article/details/141939170

相关文章

  • A Comprehensive Survey of Accelerated Generation Techniques in Large Language Mo
    本文是LLM系列文章,针对《AComprehensiveSurveyofAcceleratedGenerationTechniquesinLargeLanguageModels》的翻译。大型语言模型中加速生成技术的全面调查摘要1引言2推测解码3早退4非自回归模型5讨论和局限性6结论摘要尽管在大型语言模型(L......
  • A COMPREHENSIVE SURVEY ON EVALUATING LARGE LANGUAGE MODEL APPLICATIONS IN THE ME
    本文是LLM系列文章,针对《ACOMPREHENSIVESURVEYONEVALUATINGLARGELANGUAGEMODELAPPLICATIONSINTHEMEDICALINDUSTRY》的翻译。关于评估医疗行业中大型语言模型应用程序的综合调查摘要1引言和背景2综述的分类和结构3医学领域LLM应用评估的现状4挑战......
  • Meta-Prompt: 自动构建Prompt
    我强烈建议你使用claude-3.5-sonnet,在生成Prompt这个工作上比GPT-4o有着更好的表现将用户的输入需求转化为一个清晰结构化的Prompt,确保Prompt简单而且富有层次,能够让LLM理解并且高效地执行#Thought‍‍```mermaidmindmaproot((如何设计高效Prompt))需求分析......
  • prompt提示词调优工具介绍-promptfoo
    认识promptfoopromptfoo是一款开源的prompt调优工具,该工具支持如下功能:支持常见OpenAI、Anthropic、Azure、Google、HuggingFace、开源模型(如Llama),或自定义API程序以用于任何LLM模型提示词调优。支持批量跑提示词;支持提示词文件导入,模型应答结果导出;还有更多功能,......
  • AI 网关基于 IP 地理位置,增强 Prompt 修饰能力
    作者:沈鑫糠,来自昆仑数智瑞道云团队,专注于云原生领域产品研发和相关技术。前言什么是PromptEngineering提示词工程(PromptEngineering),也被称为上下文提示(In-ContextPrompting),指的是通过结构化文本等方式来完善提示词,引导LLM输出我们期望的结果。通过提示词工程可以在不更新模型......
  • AI 网关基于 IP 地理位置,增强 Prompt 修饰能力
    作者:沈鑫糠,来自昆仑数智瑞道云团队,专注于云原生领域产品研发和相关技术。前言什么是PromptEngineering提示词工程(PromptEngineering),也被称为上下文提示(In-ContextPrompting),指的是通过结构化文本等方式来完善提示词,引导LLM输出我们期望的结果。通过提示词工程可以在不更新......
  • 通俗解读大模型微调(Fine Tuning)
    前言我们对技术的理解,要比技术本身更加重要。大模型会成为AI时代的一项基础设施。作为像水、电一样的基础设施,预训练大模型这样的艰巨任务,只会有少数技术实力强、财力雄厚的公司去做。绝大多数人,是水、电的应用者。对这部分人来说,掌握如何用好大模型的技术,更加重要。用好大模型的第......
  • arXiv最热NLP大模型论文:一文读懂大模型的prompt技术
    引言:探索高效提示方法的重要性在人工智能领域,大语言模型(LLMs)已经成为了自然语言处理(NLP)任务的重要工具。随着模型规模的不断扩大,如何高效地利用这些模型,尤其是在资源有限的情况下,成为了一个迫切需要解决的问题。提示方法(Prompting)作为一种新兴的范式,能够通过简洁的指令引导模型完成......
  • 【Intel Hackathon大赛】基于OpenVINO™ Model Optimizer + ChatGLM-6B + P-Tuning的A
    随着人工智能技术的飞速发展,自然语言处理(NLP)领域迎来了前所未有的变革,而大语言模型(LargeLanguageModel,LLM)作为这一变革的核心驱动力,正逐步成为连接人类语言与机器智能的桥梁。LLM通过海量文本数据的学习,掌握了丰富的语言知识、上下文理解能力以及生成高质量文本的能力,为智能教......
  • 论文解读:Prompt-aligned Gradient for Prompt Tuning
    摘要得益于CLIP等大型预训练的视觉语言模型VLM,我们可以通过离散的提示设计构建Zero-shot分类器,例如,利用图像与提示语句"aphotoofa[CLASS]"之间的相似度,可以获得图像属于某个类别的置信度分数。此外,如果我们使用少量样本对软提示进行微调,提示调优表现出VLMs快速适应下......