21、同济、微软亚研院、西安电子科技大提出HPT:层次化提示调优,独属于提示学习的[安妮海瑟薇]

news2024/11/22 14:15:07

前言:

本论文由同济大学、微软亚洲研究院、西安电子科技大学,于2023年12月11日中了AAAI2024

论文:

《Learning Hierarchical Prompt with Structured Linguistic Knowledge for Vision-Language Models》

地址:

[2312.06323] Learning Hierarchical Prompt with Structured Linguistic Knowledge for Vision-Language Models (arxiv.org)

代码:

GitHub - Vill-Lab/2024-AAAI-HPT: Learning Hierarchical Prompt with Structured Linguistic Knowledge for Vision-Language Models (AAAI 2024)

1、Abstract:

提示学习已经成为适应视觉语言基础模型到下游任务的一种普遍策略。随着大型语言模型(LLMs)的出现,最近的研究已经探索了使用类别相关的描述作为输入以增强提示的有效性。然而,传统的描述远远不足以有效地表示特定类别中实体或属性之间的结构化信息。

为了解决这个问题并优先利用结构化知识,本文提出了一种使用LLM构建每个描述的图来模拟类别中的实体和属性及其相关性的方法。现有的提示调优方法在管理这种结构化知识方面存在不足。

因此,作者提出了一种新颖的方法,称为层次化提示调优(HPT),该方法可以同时建模结构和传统的语言知识。具体而言,作者引入了一种关系引导的注意力模块来捕获实体和属性之间的关联性,以便进行低级提示学习。此外,通过结合高级和全局提示来模拟整体语义,所提出的层次结构可以形成跨级别的联系,并使模型能够处理更复杂和长期的关系。

大量实验表明,作者的HPT显示了强大的效果,并且比现有的最先进方法通用性更好。

2、Introduction:

视觉语言基础模型(VLMs)[1, 13],通过在大规模图像文本对数据集上进行训练,在学习可转移表示方面取得了显著的进步。为了有效地探索这些强大基础模型的潜力,提示调优方法[22, 23]旨在学习一组连续的向量,称为提示向量,并将其纳入输入空间,赋予预训练网络强大的表示能力。然而,当面临歧义类别名称时,模型往往很难做出准确的判断关于相应的视觉概念,导致令人失望的表现。因此,在没有语言知识辅助的情况下,将类别名称作为文本输入似乎是不 optimal 的选择。最近的方法[24, 11]通过使用大型语言模型(LLMs),如GPT-3[2],解决了这个问题。他们以手写模板作为输入,生成类似人类的文本,其中包含丰富的语言知识,补充了少样本视觉识别。

在本文中,作者提出了一种新颖的方法,将结构化知识与自然语言描述相结合。作者主张,这种结构化知识对于提示调优至关重要。具体而言,具有非结构化知识的类别的描述包括定义该类的关键实体和属性。

例如,水仙花类别是由像“叶子”、“开花”、“花”等实体定义的,每个实体都与特定的类别属性相关联。参考知识图谱[13, 14]的相关工作,作者将这些实体、属性和它们之间的关联性表示为一张图进行语义理解。这种基于图的表示方法提供了一种更组织化的方式来呈现信息,从而提高了数据理解。它有助于发现可能不明显的原始描述中的隐性联系。

在这项工作中,作者利用现有的大型语言模型从普通的描述中获取结构化信息,如图1所示。对于特定的类别,作者将人工制作的指令输入到LLMs中,旨在生成类似于人类的描述,以及每个描述内的结构化关系,包括实体、属性和它们之间的关系。

然而,现有的提示调优方法无法明确地建模图中所代表的结构化知识。为此,作者提出了一种名为层次化提示调优(HPT)的方法,从LLMs中以层次化的方式整合结构化和传统的语言知识来提高提示的有效性。为了建模复杂的结构化信息,HPT学习具有不同语义级别的层次化提示。具体而言,HPT包含低级提示,代表实体和属性,高级提示包含从描述中派生出的类别相关信息,以及全局级别的提示,包含跨类别的共享知识。

为了捕获LLM生成的实体和属性之间的成对对应关系,作者引入了一种关系引导的注意力模块,其中将可学习的基于注意力的矩阵集成到文本编码器中。此外,为了处理LLM没有完全利用的更复杂和长期的关系,作者采用了跨级别的自注意力来建模不同级别的提示之间的关系。这有效地克服了仅依赖低级 Token 建模的局限性,并允许对类别有更全面的理解。作者的提示是在一个双路径不对称框架下进行训练的[14],其中分别通过将提示图像编码器和文本编码器与另一个模态的冻结编码器对齐来学习。通过用一种新颖的分层提示文本编码器替换普通的提示文本编码器,该编码器仅学习类别无关的提示,可以更好地将文本表示与相应的视觉概念对齐,从而导致出色的识别性能。

作者的工作贡献如下:

1)作者提出使用描述的结构知识辅助学习提示的重要性。因此,作者利用大型语言模型生成具有相应结构关系的类别相关描述;

2)作者提出层次化提示调优(HPT)方法,同时建模结构化和传统语言知识。通过将两种形式的知识相结合,作者可以使用更多的类别相关信息来增强提示的有效性;

3)在三个常用的评估设置上的大量实验表明,作者的方法取得了显著的改进。

3、Related Work

3.1 Large Language Models

大型语言模型(LLMs),如GPT-3[15],OPT[14]和PaLM[13],是在广泛的数据集上进行训练的。最近,ChatGPT[14]由于其生成类似于人类写作的文本和识别跨领域复杂模式的能力而受到了广泛欢迎。利用LLMs的巨大潜力,最近的研究表明它们在解决各种视觉语言任务[13, 15, 16]方面是有效的。此外,其他研究探讨了使用LLMs提示视觉语言模型[14, 15, 16]在图像分类、连续学习、图像描述生成和行为理解方面的效果。在这项研究中,作者旨在利用LLM在图像分类领域的能力。当提示目标类别时,LLM能够生成相关的描述以及相应的结构化关系。

3.2 Visual-Language Models

大型视觉语言模型(VLMs)在推动开放词汇图像分类方面起到了关键作用,CLIP[17]是该领域的开创性工作。显著的方法包括通过使用更多的数据、更大的批量大小和更大的模型来扩展模型,如Align[15]和Basic[16],通过像SLIP[17]、FILIP[18]和Lion[13]这样的模型优化目标函数,并在训练过程中通过像Florence[16]、UniCL[15]、K-LITE[14]和REACT[15]这样的模型集成辅助信息。作者的研究动机是希望通过改进多模态提示来增强CLIP的能力。

3.3 Prompt Learning for V-L Models

提示学习起源于自然语言处理(NLP),旨在增强与大型语言模型的交互[15, 16, 17]。某些努力[13, 14]提出利用LLM中的预训练语言知识来生成提示,从而在不需要额外训练或 Token 的情况下增强V-L模型。为了自动化提示工程并探索最优提示,其他研究[18, 19, 17, 16]使用可学习的文本输入并在训练期间对其进行优化,称为提示调优。随着视觉提示调优(VPT)[15]的出现,最近的方法[12, 16]采用多模态方法对两种模态进行提示以改善视觉和语言表示之间的对齐。与先前的研究不同,作者生成多样化的语言知识并基于它们进行层次化提示调优以生成更健壮的表示。

 4、Method

4.1 Overall Pipeline

在本小节中,作者将介绍作者提出的整体方法 Pipeline ,如图2(a)所示。在特定类别的情况下,作者首先用一组手工艺模板作为指令输入到LLMs中,以生成人类般的描述。此外,作者还向生成的描述中添加另一条指令,以捕捉每个描述内的组织良好的结构,包括实体、属性和它们之间的关系。作者将会在第语言数据生成部分提供更详细的阐述。

在给定生成的数据后,作者应用一个双路径不对称网络[22]进行提示调优与视觉语言模型。该网络擅长解决与学习到的提示相关的过拟合问题,尤其是在少样本学习场景中。为了进行类似于Transformer的编码器的提示调优,作者在每个Transformer层输入空间引入可学习的向量作为提示。该框架包括一个新颖的不对称对比损失,它分别使用来自不同模态的冻结编码器作为指导,单独训练提示图像编码器和文本编码器。具体而言,来自不同模态的提示和冻结编码器的表示以不对称的方式对齐,从而生成两个概率 pi 和pt 。然后,它们分别求平均以得出整体预测 po。

相比于对视觉提示进行任何修改,作者将主要关注文本模态的提示调优。与先前的双路径不对称网络不同,其中两个文本编码器处理相同的文本输入,作者的方法采用一种独特的策略,即冻结文本编码器和提示文本编码器输入完全不同。具体而言,非结构化描述被输入到冻结编码器,而关系引导的图以及相应的类别名称被输入到专门设计和微调的层次化提示文本编码器中,该编码器专门用于建模结构化信息。在层次化提示调优部分,作者将详细介绍这个编码器的核心结构,以便更好地理解来自不同语义级别的提示的调优。为了有效地捕获LLM生成的实体和属性之间的成对对应关系,层次化提示文本编码器集成了关系引导的注意力模块,其详细实现将在关系引导注意力模块部分进行阐述。

4.2 Linguistic Data Generation

为了获取语言知识,作者使用最强大的LLM之一ChatGPT[23]生成具有相应结构关系的描述。如图1所示,作者将N_h个问题模板作为语言指令T输入到LLMs中,例如"What does a [CLASS] look like among all a [TYPE]?"或"What are the distinct features of [CLASS] for recognition among all [TYPE]?"等。[CLASS]表示具有修饰符的特定类别名称,如"a pet Abyssinian"。[TYPE]表示与数据集相关的目标类型,如"宠物类型"对于OxfordPets[20]。作者用T生成的描述表示为D={d_{i}}{i=1}^{N{h}},其中每个描述都由问题模板和相应的答案组成。

5、Experiments

为了评估作者的方法,作者遵循了之前如Coop Zhou等人(2022年)、CoCoOp Zhou等人(2022年)和MaPLe Khattak等人(2023年)所建立的实验设置。作者首先描述评估协议和数据集,然后讨论实现细节。

5.1 Evaluation Protocols

Base-to-New Generalization

为了评估模型在不同类别上的泛化能力,这个过程涉及将数据集划分为基础(已见)和新的(未见)类别,然后使用少量来自基础类别的样本训练模型。最后,作者在基础(少样本性能)和新(零样本性能)类别上评估模型的性能。此外,作者计算基类和新类上的准确率的调和平均值,以突出泛化权衡。

Cross-Dataset Evaluation

这种评估方法旨在评估模型在跨数据集设置下的零样本能力。为了验证作者方法在跨数据集迁移方面的潜在能力,作者在少量样本的情况下在ImageNet的所有类别上训练作者的模型,并在零样本环境中直接在十个其他未见过的数据集上评估它,这些数据集中包含未知类别。

Domain Generalization

为了评估作者的方法在非目标分布数据集上的鲁棒性,作者将ImageNet视为源域,其其他变体视为目标域。作者在少量样本的情况下在ImageNet上微调作者的模型,并在具有相同类别或子集的四个ImageNet变体上评估它,同时表现出不同的域迁移。

Datasets

对于基到新的泛化和跨数据集评估,作者遵循先前的研究工作Zhou等人(2022年)的评估方法。作者在11个图像识别数据集上评估作者的方法,这些数据集涵盖了各种识别任务。具体来说,该基准包括Deng等人(2009年)的ImageNet和Fei-Fei,Fergus,Perona(2004年)的Caltech101,Parkhi等人(2012年)的OxfordPets,Krause等人(2013年)的StanfordCars,Nilsback和Zisserman(2008年)的Flowers101,Bossard等人(2014年)的Food101,Maji等人(2013年)的FGVCAircraft,Xiao等人(2010年)的SUN397,Soomro等人(2012年)的UCF101,Cimpoi等人(2014年)的DTD,以及Helber等人(2019年)的EuroSAT。对于域泛化,作者使用ImageNet作为源数据集,其四个变体作为目标数据集,包括ImageNetV2 Recht等人(2019年),ImageNet-Sketch Wang等人(2019年),ImageNet-A Hendrycks等人(2021年)和ImageNet-R Hendrycks等人(2021年)。

5.2 Result

作者在三个泛化设置中评估作者的方法,即基到新的泛化,跨数据集评估和域泛化。作者将与零样本CLIP和最近的提示学习工作作为强 Baseline 进行比较,包括CoOp和CoCoOp,以及最新的MaPLe等最先进的方法。在CLIP的情况下,作者使用专门为每个数据集设计的定制化提示。作者还进行了几个消融实验和样本分析,以更好地展示所提出的分层提示调优的有效性。

Base-to-New Generalization

表1展示了在基到新的泛化设置下,HPT在11个识别数据集上的性能。与最先进的提示调优方法MaPLe相比,作者的方法在新型类别的平均准确性方面提高了1.72%,同时保持了在高频见过的类别的较高准确率,甚至超过了MaPLe by 2.04%。

当考虑基和新型类时,HPT在调和平均数方面相对于MaPLe实现了1.68%的绝对平均增益,实现了域内和域外数据的合理权衡。在调和平均数方面的最大改进(相对于先前的SOTA为4.64%)在Flowers102上观察到。通过使用分层提示调优训练的模型,作者可以看到在语言知识更多而不是只有类别名称的情况下,模型有了显著的改进。

Cross-Dataset Evaluation

表2展示了作者的HPT与其他现有方法在跨数据集评估上的性能比较。在ImageNet源数据集上,HPT展示了与竞争对手相当的表现,但在10个数据集中的8个上表现出显著优于其他方法的一般化能力。

总的来说,HPT在竞争性能方面表现出众,实现了与先前的SOTA相比67.74%的平均准确性,提高了1.44%。与其他方法不同,作者不仅将学习到的提示向量直接转移到新任务,还提供了一组丰富的类别相关知识以及一种新的分层学习策略来建模知识,从而实现了优越的跨域性能。

Domain Generalization

作者评估了在ImageNet上训练的HPT直接迁移到各种非域数据集的性能,并观察到HPT相对于所有现有方法都持续改进,如表3所示。

与MaPLe相比,HPT在ImageNet-A上的表现略差,但在其他三个上更好。由于变体数据集与ImageNet共享相同的类别或ImageNet的子集类别,因此可以从源域获取相关的语言知识,从而帮助识别非域数据。

6、Conclusion

在本文中,作者提出利用描述中的结构化关系来帮助学习提示的观点至关重要。因此,作者生成了具有相应结构化关系的类人描述,并提出了层次化提示调优(HPT)方法,该方法同时建模结构化和传统的语言知识,以显著增强提示的有效性。作者的方法在三个泛化任务上都展示了优越的性能。作者希望这项工作能够引起对自然语言中结构化知识在提示调优中的作用的更多关注,使其能够应用于分类之外的多样化任务。

7、Professor Goudan playing with snow photos

背后一凉,我看看增么个事?怎么个事?

虚惊一场

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1320449.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

蓝桥杯time模块常用操作

#导入time模块import time #获取时间戳 start_time time.time () print ( "start_time ", start_time) time .sleep ( 3) end_time time.time () print ( "end_time ", end_time)#计算运行时间 print("运行时间 { :.0f } ".format(end_time …

【springboot】application配置文件(1)

servlet:multipart:max-file-size: 100MBmax-request-size: 100MB 这些配置是关于servlet的,特别是与文件上传相关的部分。具体来说,它们涉及到multipart的处理,这是处理HTTP的multipart/form-data类型请求的方法,通常用于文件上传…

双指针算法(二)

三数之和 三数之和 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重…

智能优化算法应用:基于算术优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于算术优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于算术优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.算术优化算法4.实验参数设定5.算法结果6.…

Windows11编译x265源码生成Visual Studio工程详细步骤

概述 x265是一款开源符合HEVC标准的编码器,也属于VLC项目之一。 由于x265是开源的,因此它得到了广泛的应用和开发。许多开源项目和商业产品都使用x265进行视频压缩处理。同时,x265也支持多种编程语言和平台,使得开发者可以方便地…

深度学习记录--随机初始化

权重 权重,指的是变量系数w,决定了变量的变化率 它会改变dw,进而改变下一轮的w(改变更新) 神经网络的权重 对于神经网络(含隐藏层) 由于权重的对称性,我们的隐层的神经单元输出始终不变,出现隐藏神经元的对称性 …

Motion Plan软硬约束下的轨迹生成

Motion Plan之轨迹生成代码实现Motion Plan之搜索算法笔记Motion Plan之基于采样的路径规划算法笔记Motion Plan之带动力学约束路径搜索 Motion Plan之轨迹生成笔记Motion Plan之曲线拟合笔记本项目代码:GitHub - liangwq/robot_motion_planing: 移动机器人轨迹生成…

《PySpark大数据分析实战》-14.云服务模式Databricks介绍基本概念

📋 博主简介 💖 作者简介:大家好,我是wux_labs。😜 热衷于各种主流技术,热爱数据科学、机器学习、云计算、人工智能。 通过了TiDB数据库专员(PCTA)、TiDB数据库专家(PCTP…

C++面向对象(OOP)编程-模板

本文主要讲解C的模板,其中包括模板的分类,函数模板和类模板,以及类模板与友元函数关系引起的几种关系。强调提供代码来搞懂C模板这一泛型编程手段。 目录 1 C模板 2 模板的本质 3 模板分类 4 函数模板 4.1 函数模板定义格式 4.2 函数模…

Android 一分钟使用RecyclerView完美实现瀑布

【免费】安卓RecyclerView瀑布流效果实现资源-CSDN文库 1.WaterfallFlowActivity 主函数代码: package com.example.mytestapplication;import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.widget.Toast;im…

vs code调试.so文件

使用vs code调试.so文件 1 vs code中安装c的debug插件2 【重要】编写launch.json3 在.so的源码中打断点4 debug模式启动进程5 attach进程6 开始调试 .so是一种动态链接库,在大型项目以及跨语言项目中经常用到。在拿到.so文件对应的源码后进行debug呢? 简…

天猫数据分析平台-天猫销售数据查询软件-11月天猫平台冲锋衣市场销售运营数据分析

随着气温逐渐下降,保暖服饰迎来热销,冲锋衣的需求大增。如今冲锋衣已经不仅仅是户外运动的装备,还成为很多年轻人的日常穿搭和时尚的追求。 新的穿搭趋势也带来了巨大的市场机会。据公开数据显示,中国有冲锋衣生产及经营企业超过8…

SpringBoot之响应案例的详细解析

2.3 案例 下面我们通过一个案例,来加强对请求响应的学习。 2.3.1 需求说明 需求:加载并解析xml文件中的数据,完成数据处理,并在页面展示 获取员工数据,返回统一响应结果,在页面渲染展示 2.3.2 准备工作…

Missing artifact org.wltea.analyzer:ik-analyzer:jar:5.0

没有找到【org.wltea.analyzer】 找到了【org.wltea.ik-analyzer】 https://github.com/wks/ik-analyzer https://github.com/wks/ik-analyzer.git https://code.google.com/archive/p/ik-analyzer/downloads?page2 C:\Users\Administrator\Desktop\ik-analyzer-master>m…

LabVIEW软件模拟氢燃料电池在车辆中的应用

LabVIEW软件模拟氢燃料电池在车辆中的应用 在追求可持续能源的时代,氢燃料电池在绿色经济中扮演着关键角色。本研究通过LabVIEW软件模拟和评估了氢燃料电池在车辆应用中的性能和效率。LabVIEW作为一个强大的模拟工具,能够动态模拟氢燃料电池系统在不同条…

Hugging Face实战-系列教程19:文本摘要建模实战1 之 数据清洗(中文商城评价数据处理方法)

🚩🚩🚩Hugging Face 实战系列 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Jupyter Notebook中进行 本篇文章配套的代码资源已经上传 文本摘要建模实战1 之 数据清洗 文本摘要建模实战2 之 Tokenizer处理 1 任务概述 1.1 任…

『踩坑记录』IDEA Spring initialzr新建Spring项目不能选择jdk8的解决方法

问题描述 Spring initializr新建Spring项目不能选低版本java 解决方法 默认官方start.spring.io已不支持自动生成低版本jkd的Spring项目,自定义用阿里云的starter即可 用阿里云的就能支持低版本jdk了 完 欢迎关注我的CSDN博客 :Ho1aAs 版权属于&a…

【C++】POCO学习总结(十九):哈希、URL、UUID、配置文件、日志配置、动态库加载

【C】郭老二博文之:C目录 1、哈希 1.1 说明 std::map和std::set 的性能是:O(log n) POCO哈希的性能比STL容器更好,大约快两; POCO中对应std::map的是:Poco::HashMap; POCO中对应std::set的是 Poco::Hash…

【04】GeoScene导出海图或者电子航道图000数据成果

1创建一个带有覆盖面和定义的产品 如果你没有已存在的S-57数据,你可以通过捕捉新的产品覆盖范围(多边形产品范围)及其所需的产品定义信息(产品元数据)来为新产品创建基础。 注: 如果你已经有一个S-57数据…

3800个字彻底弄清cortex

3800个字彻底弄清cortex arm内核发展历史cortexM0系列芯片系统框图通用寄存器m0特殊寄存器m3/m4/m7特殊寄存器 MSP和PSPxPSRPRIMASKCONTROLFAULTMASKBASEPRI 栈空间操作异常和中断 系统异常 NVIC可嵌套向量中断控制器系统操作寄存器 NVIC寄存器系统控制块SCB寄存器SysTick寄存…