CLoVe:在对比视觉语言模型中编码组合语言

CLoVe:在对比视觉语言模型中编码组合语言

  • 摘要
  • 引言
  • 相关工作
  • CLoVe: A Framework to Increase Compositionality in Contrastive VLMs
    • Synthetic Captions
    • Hard Negatives
    • Model Patching

CLoVe: Encoding Compositional Language inContrastive Vision-Language Models

摘要

近年来,视觉与语言任务的性能显著提高。基础视觉-语言模型(VLMs),如CLIP,已在多种场景中得到应用,并在多项任务中展现出卓越的性能。这些模型擅长以目标为中心的识别,但学习到的文本表示对词序似乎是不变的,无法以新颖方式组合已知概念。

然而,目前没有证据表明任何VLM,包括大规模的单流模型如GPT-4V,能够成功地识别组合。

在本文中,作者引入了一个框架,可以显著提高现有模型编码组合语言的能力,在组合性基准测试上实现了超过10%的绝对改进,同时在标准的目标识别和检索基准测试上保持或提高性能。

代码和预训练模型:https://github.com/netflix/clove

引言

在过去的几年里,视觉和语言任务的性能有了显著的提升(Radford et al., 2021; Jia et al., 2021; Rombach et al., 2022; Alayrac et al., 2022; Laurencon et al., 2023)。视觉-语言模型(VLMs),如CLIP(Radford et al., 2021),已在多种环境下得到应用,直接或间接作为基础模型,并在多个任务中展示了卓越的性能(Bommasani et al., 2021; Ramesh et al., 2021, 2022; Rombach et al., 2022; Castro和Caba, 2022; Li et al., 2023)。

这类模型在以目标为中心的识别上表现出色,但学习到的文本表示似乎对词汇顺序不变(Thrush et al., 2022; Yuksekgonul et al., 2023; Castro et al., 2023),无法以新的方式组合已知概念(Ma et al., 2023; Hsieh et al., 2023)。例如,如图1所示,CLIP在ImageNet任务上性能顶尖,但在组合性基准测试中表现不佳。

在这里插入图片描述
语言组合性对于在图像中识别更复杂的概念或使文本到图像模型成功生成具有特定约束的新场景至关重要(Hafri等人,2023年)。例如,在描绘_“女人对男人大喊”_的图像中,正确理解场景的关键是要认识到是谁在向谁大喊。

然而,没有证据表明任何视觉语言模型(VLM),包括大规模的单一流模型如GPT 4V(OpenAI,2023年),能够成功地识别组合。这一论断得到了现有测试组合性的基准仍然是开放挑战这一事实的支持(Thresh等人,2022年;Yuksekgonul等人,2023年;马等人,2023年;Hsieh等人,2023年)。

为了解决这些限制,之前的研究引入了一些技术来增强预训练视觉语言模型(VLMs)的复合能力,例如NegCLIP(Yuksekgonul等人,2023)和REPLACE(Hsieh等人,2023)。然而,这些方法付出了显著的代价:它们牺牲了在更为常见的以目标为中心的识别任务上的性能,这些性能是通过ImageNet(Deng等人,2009)、EuroSAT(Helber等人,2019,2018)和CIFAR100(Krizhevsky,2009)来衡量的。例如,如图1所示,NegCLIP在SugarCrepe(Hsieh等人,2023)复合性基准上的能力相较于预训练模型有所提升,从72.9%增加到82.5%,而与此同时,其在ImageNet(Deng等人,2009)上的top-1准确度从63.4%下降到55.8%。同样,Hsieh等人(2023)应用REPLACE在SugarCrepe上达到了84.7%的高分,但其ImageNet准确度显著下降至52.9%。
在本文中,作者介绍了一个框架,用以显著提高现有双塔模型编码组合语言的能力,同时保持了在更标准基准测试上的性能,如图1所示。具体来说,作者的贡献如下。首先,作者展示了数据策展可以对模型处理组合知识的方式产生重大影响。其次,作者证实了与困难负样本一同训练可以带来额外的改进。第三,作者通过实验证明,模型修补可以用于保持模型在先前任务上的性能。最后,作者将这些想法融合到一个名为CLoVe的新框架中,并展示了它可以在对比预训练的VLM上显著提高组合性。作为一个案例研究,作者展示了作者的框架如何有效地提高CLIP的组合能力,同时保持其他任务上的性能。在发表时,作者将提供预训练权重,供其他人使用,以便用具有显著更好语言组合能力的版本替换其类似CLIP的模型权重。

相关工作

对组合性的基准测试。已经提出了几种框架来衡量模型在语言组合性上的表现。Shekhar等人(2017年)精心设计了一个基准测试,其中包含通过改变正确标题中的一个单词生成的干扰性图像标题。模型必须确定图像和标题对是否相互对应,以及其他任务。Winoground(Thresh等人,2022年)仔细构建了一个由400个示例组成的高质量数据集,每个示例包含两张图片和两个标题。这两个标题包含完全相同的单词,但按照几种策略中的一种以不同的顺序排列(例如,交换主语和宾语)。为了通过这个测试,每张图像必须与正确的标题相匹配。模型不能仅仅依靠它们在图像中识别概念的能力,因为元素虽然重复,但组合方式不同。

迪万等人(2022年)发现,成功通过Winoground基准测试需要组合技能以及其他许多技能,如常识推理和定位微小物体。尤克塞尔贡等人(2023年)认为Winoground太小,无法得出统计上显著性的结论,并构建了一个名为ARO的基准,其中包括单一图像、正确标题和多个自动生成的错误标题的例子。CREPE(马等人,2023年)制定了一个基准,以衡量系统性和生产率方面的组合性。它同时考虑了已见和未见的复合现象。SugarCrepe(谢等人,2023年)是一个最近的基准,它避免了不语法和荒谬的负面标题,同时数据量庞大。他们展示了不能仅通过计算文本标题的概率而不查看图像来轻易解决这一问题。其他基准也已经创建,它们考虑了组合性以及其他现象,例如VALSE(帕卡尔贝斯库等人,2022年)、RareAct(米奇等人,2020年)、VL-Checklist(赵等人,2022年)、Cola(雷等人,2023年)、SVO-Probes(亨德里克斯和内马茨哈德,2021年)和CLEVR(约翰逊等人,2017年)
提高组合性的方法。几项研究显示视觉语言模型(VLMs)无法成功地识别组合(Shekhar et al., 2017; Miech et al., 2020; Parcalabescu et al., 2022; Thrush et al., 2022; Hendricks and Nematzadeh, 2021; Yuksekgonul et al., 2023; Castro et al., 2023; Ma et al., 2023)。因此,提出了NegCLIP(Yuksekgonul et al., 2023)以改进CLIP(Radford et al., 2021)概念组合的方式。这包括通过获取训练批次中的标题并自动生成含有相同词汇但顺序不同的句子来添加困难负文本。这种方法使模型能够区分正确顺序的图像与标题与任意顺序的确切词汇(以及批次内其他负标题)。Hsieh等人(2023)在NegCLIP和CREPE(Ma et al., 2023)的基础上,提出了三种生成随机负样本的方法:REPLACE,SWAP和NEGATE。所有这些方法都从句子的场景图表示出发并对其进行操作。REPLACE,取得了最好的整体效果,执行单一原子的替换。SWAP在场景图中交换两个原子。最后,NEGATE引入否定词(例如,没有_或_不是)。作者在NegCLIP(Yuksekgonul et al., 2023)和REPLACE(Hsieh et al., 2023)的基础上,提出使用合成生成的标题来扩大规模,并应用模型修补(Ilharco et al., 2022)以避免灾难性遗忘。据作者所知,作者引入了第一种方法,该方法显著提高了对比训练模型的组合技能,同时保留了它们在其他下游任务上的零样本性能。
Cap和CapPa(Tschannen等人,2023年)是两种最近引入的模型,它们采用字幕生成而不是对比学习(如CLIP中那样)来训练视觉语言模型(VLMs)。Tschannen等人(2023年)展示,这些模型在由ARO(Yuksekgonul等人,2023年)和SugarCrepe(Hsieh等人,2023年)测量的组合性方面表现出色。由于这些模型依赖于字幕生成,也即计算给定图像的文本概率,它们对于检索和分类来说效率不高。对于ARO,他们展示无需查看图像就能达到高性能(他们称之为“盲目解码器”)。对于SugarCrepe,作者没有计算这一具体 Baseline 。因此,作者无法推理这些模型在多大程度上成功地处理了组合。作者的方法与它们不同,因为它是建立在对比双塔模型之上的,这些模型对于检索和分类是有效的,且不依赖于计算文本概率,这在这些设置中通常不重要,因为所有文本都是等可能出现的(与图像字幕生成不同)。

CLoVe: A Framework to Increase Compositionality in Contrastive VLMs

为了解决在先前模型中观察到的组合性限制,作者提出了针对开发对比视觉语言模型(VLM)三个主要方面的策略:数据整理、对比学习和模型调优。作者引入了CLoVe框架,它利用现有预训练对比视觉语言模型的优点,并通过语言组合技能进行增强。图2展示了总体概览。
在这里插入图片描述
CLoVe包括以下步骤,下面将详细描述:

3.1 综合字幕。:合成数据生成可以有效地用来扩大训练数据集。作者使用了一个带有综合字幕的大型数据集。

3.2 难以区分的负样本。:对比视觉语言模型依赖于负训练数据的可用性。作者在数据集中添加了随机生成的难以区分的文本负样本,并训练了一个具有增强的组合能力的高精度模型。

3.3 模型修补。:通过模型修补将预训练模型和精调模型结合起来。修补使作者能够在保持精调模型获得的组合性的同时,恢复预训练模型在先前支持的任务上的性能。

Synthetic Captions

合成标题在训练数据集大小和标题质量之间提供了很好的结合。作者利用了LAION-COCO(Schuhmann等人,2022年),一个拥有6亿数据集,其中的图片来自LAION-5B(Schuhmann等人,2022年)的20亿规模英文子集,并且使用了BLIP ViT-L/14(Li等人,2022年)生成的标题,该模型在COCO上进行了微调,并使用两种版本的OpenAI预训练CLIP(Radford等人,2021年;ViT-L/14和RN50x64)进行了过滤。尽管标题的风格有限(通常遵循COCO标题的风格),但LAION-COCO的作者发现,合成的生成的标题与人类编写的标题质量相似。作者相信这些标题更多地关注描述视觉信息,而不是其原始数据集(LAION)中的标题,这是基于该数据集的多个示例得出的。有关训练数据集的消融研究,请参见第4.3节。

Hard Negatives

文本硬负例可以强制模型更好地学习每个单词的含义,因为它们需要根据单词在标题中的使用方式判断其是否与图像相关。Yuksekgonul等人(2023年)提出了NegCLIP,这是对CLIP训练过程的扩展,它通过重新排列图像标题单词为批次中的每个示例生成一个硬负文本。这些生成的负例被包含在学习目标的负测试集中。Hsieh等人(2023年)提出了一个名为REPLACE的替代方法,并显示如果这样的负例是从精心挑选的单个单词替换生成的,模型可以实现更好的组合技能。这些替换是在首先将句子解析为场景图,从中获取实体、关系或属性之一,然后通过利用WordNet(Fellbaum, 2010)从它的反义词或同下义词中选择一个替代词来完成的。这些方法依赖于高质量的标题。否则,生成的负例将会有无法视觉欣赏的变化,或者大多数情况下会是不合语法或无意义的,并且模型的下游性能将受到严重影响。以下面的来自LAION的例子为例,它伴随一张卡片持有者的图片:“5x Orange Ball Wedding Party PLACE CARD HOLDER Table Name Memo Paper Note Clip.” 如果作者应用REPLACE,假设作者可以正确解析这个句子,“table"这个词可以被替换为"bed”。然而,这并不会使其成为负例,因为"table"是标题中包含的无法视觉欣赏的附加上下文信息。这样的变化将给模型的训练过程引入更多噪声。

因此,这些研究工作采用了COCO标题(Lin等人,2014;Chen等人,2015)数据集。COCO包含了图像以及高质量的人工标注描述它们的内容。然而,拥有60万图像-文本对,COCO至少比通常使用的图像-文本训练数据集小三个数量级。这个问题限制了学习,并使模型过拟合。此外,COCO呈现的目标和动作的数量有限。在ImageNet-1k的1000个目标类别中,有700个在COCO中不存在(Venugopalan等人,2017)。作者建议将这些困难负样本技术与一个合成标题数据集相结合,例如LAION-COCO(Schuhmann等人,2022)(在上一小节中介绍)。

Model Patching

模型修补(Ilharco等人,2022年)使经过微调的模型能够在保持目标任务性能的同时,恢复之前支持任务上的性能。NegCLIP(Yuksekgonul等人,2023年)和REPLACE(Hsieh等人,2023年)微调模型以显著提高语言组合能力。然而,作为交换,它们牺牲了在一般物体识别上的性能,如通过它们的ImageNet性能所衡量的那样。因此,作者建议应用其中一种方法,然后接着使用模型修补。这个过程包括在预训练模型和微调模型之间执行权重空间的平均。具体来说,对于每个预训练模型权重 和微调模型权重 ,作者计算它们的加权平均以得到新的模型权重 :

在这里插入图片描述

在4.3节中,作者展示了这种方法帮助模型获得了组合性特性,同时保持了其目标识别性能。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Vivado Design Suite进行BUFG 优化

在 Xilinx FPGA 设计中,BUFG 是一个不带使能功能的全局时钟缓冲器(Global Clock Buffer),它是与专用全局时钟输入管脚相连接的首级全局缓冲。所有从全局时钟管脚输入的信号必须经过IBUFG 单元,否则在布局布线时会报错。…

Mac - Keychron K3 Pro 功能键改键 -via 改键配置 For Mac

前言 Keychron K3 Pro键盘连接Mac使用,顶部一排功能键,默认是Mac的多媒体功能键。F1~F12功能键,需要按:Fn F1~F12。 而在我的日常工作中,常用的是F1~F12,期望F1~F12功…

Excel列匹配VLookUp功能使用

生活中很多关于excel多列数据进行匹配计算等场景,其中最常用的一个函数就是VLookUp了,下面直接上图: 得到结果如下: 得到结果如下: 注意: 1.在需要把计算完的数据粘贴到另一列或者另个sheet时,复制后,不要直接ctrlv粘贴,这样会把计算公式粘贴到对应的列.正确做法是:右键粘贴,选…

硬件-1、体系架构

cpu 处理器 arm处理器的七种工作模式 arm寄存器 两张图是一样的,r0---r12是通用寄存器。其他寄存器可参考图一,cpu架构。 程序状态寄存器psr(cpsr/spsr) 程序异常处理 理解示例 当使用swi(软中断指令)指令…

rust项目组织结构和集成测试举例

概述 在学习rust的过程中,当项目结构略微复杂的时候,写集成测试的时候发现总是不能引用项目中的代码,导致编写测试用例失败。查阅了教程,一般举例都很简单。查阅了谷歌和百度以及ai,也没有找到满意的答案。这里记录一…

论文笔记:Large Language Models as Analogical Reasoners

iclr 2024 reviewer打分5558 1 intro 基于CoT prompt的大模型能够更好地解决复杂推理问题 然而传统CoT需要提供相关的例子作为指导,这就增加了人工标注的成本——>Zero-shot CoT避免了人工标注来引导推理 但是对于一些复杂的任务难以完成推理,例如c…

Prometheus+grafana环境搭建redis(docker+二进制两种方式安装)(四)

由于所有组件写一篇幅过长,所以每个组件分一篇方便查看,前三篇 Prometheusgrafana环境搭建方法及流程两种方式(docker和源码包)(一)-CSDN博客 Prometheusgrafana环境搭建rabbitmq(docker二进制两种方式安装)(二)-CSDN博客 Prometheusgrafana环境搭建m…

Android APP加固利器:深入了解混淆算法与混淆配置

Android APP 加固是优化 APK 安全性的一种方法,常见的加固方式有混淆代码、加壳、数据加密、动态加载等。下面介绍一下 Android APP 加固的具体实现方式。 混淆代码 使用 ipaguard工具可以对代码进行混淆,使得反编译出来的代码很难阅读和理解&#xff…

基于单片机多功能充电器系统设计

**单片机设计介绍,基于单片机多功能充电器系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机多功能充电器系统设计是一个集电源管理、充电控制和用户界面于一体的综合性项目。以下是对该系统设计的概…

Pnpm + Turbo 搭建 Web Component Monorepo 组件库

技术选型 使用 Pnpm Turbo 搭建 Web Component Monorepo项目 stencil-component-ui 组件库 pnpm 作为包管理器Turborepo 作为构建系统Vitepress 管理文档 pnpm 技术 什么是 pnpm? 它有哪些优势? pnpm 跟 npm、yarn一样,都是用于管理Node包依赖的管…

比nestjs更优雅的ts控制反转策略-依赖查找

一、Cabloy5.0内测预告 Cabloy5.0采用TS对整个全栈框架进行了脱胎换骨般的大重构,并且提供了更加优雅的ts控制反转策略,让我们的业务开发更加快捷顺畅 1. 新旧技术栈对比: 后端前端旧版js、egg2.0、mysqljs、vue2、framework7新版ts、egg3…

JVM基础

初识JAM JVM就是JAVA虚拟机,本质上是一个运行在计算机上的程序,他的职责是运行JAVA字节码文件. 下面是java代码执行过程 JVM的功能 1.解释和运行 对字节码文件中的指令实时的解释成机器码 2.内存管理 自动为对象,方法等分配内存自动的垃圾回…

java中大型医院HIS系统源码 Angular+Nginx+SpringBoot云HIS运维平台源码

java中大型医院HIS系统源码 AngularNginxSpringBoot云HIS运维平台源码 云HIS系统是一款满足基层医院各类业务需要的健康云产品。该产品能帮助基层医院完成日常各类业务,提供病患预约挂号支持、病患问诊、电子病历、开药发药、会员管理、统计查询、医生工作站和护士工…

MySQL-排序与分页

1. 排序 如果没有使用排序操作,默认情况下查询返回的数据是按照添加数据的顺序显示的。 SELECT * FROM employees;1.1 基本使用 1)使用 ORDER BY 对查询到的数据进行排序操作。 升序:ASC(ascend)降序:DESC (descend) 练习&am…

使用 LLMLingua-2 压缩 GPT-4 和 Claude 提示

原文地址:Compress GPT-4 and Claude prompts with LLMLingua-2 2024 年 4 月 1 日 向大型语言模型(LLM)发送的提示长度越短,推理速度就会越快,成本也会越低。因此,提示压缩已经成为LLM研究的热门领域。 …

JVM基础:类的生命周期详解

JDK版本:jdk8 IDEA版本:IntelliJ IDEA 2022.1.3 文章目录 一. 生命周期概述二. 加载阶段(Loading)2.1 加载步骤2.2 查看内存中的对象 三. 连接阶段(Linking)3.1 连接之验证3.2 连接之准备3.3 连接阶段之解析 四. 初始化阶段(Initialization)4.1 单个类的…

ChatGPT(3.5版本)开放无需注册:算力背后的数据之战悄然打响

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

Logback日志框架(超详细)

logback-classic-1.2.3.jarhttp://链接: https://pan.baidu.com/s/1cA3gVB_6DEA-cSFJN6MDGw 提取码: sn8i 复制这段内容后打开百度网盘手机App,操作更方便哦 logback-core-1.2.3.jarhttp://链接: https://pan.baidu.com/s/19eCsvsO72a9PTqpXvXxrgg 提取码: 5yp…

元宇宙虚拟空间的场景构造(二)

前言 该文章主要讲元宇宙虚拟空间的场景构造,基本核心技术点,不多说,直接引入正题。 场景的构造 使用引入的天空模块 this.sky new Sky(this); 在Sky模块里,有设置对其中的阳光进行不同时间段的光线处理。而天空又是怎么样的…

微软云学习环境

微软公有云 - Microsoft Azure 本文介绍通过微软学习中心Microsoft Learn来免费试用Azure上的服务,也不需要绑定信用卡。不过每天只有几个小时的时间。 官网 https://docs.microsoft.com/zh-cn/learn/ 实践 比如创建虚拟机,看到自己的账号下多了Learn的…