当前位置: 首页 > news >正文

【论文笔记】X-Former: Unifying Contrastive and Reconstruction Learning for MLLMs

🍎个人主页:小嗷犬的个人主页
🍊个人网站:小嗷犬的技术小站
🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。


基本信息

标题: X-Former: Unifying Contrastive and Reconstruction Learning for MLLMs
作者: Sirnam Swetha, Jinyu Yang, Tal Neiman, Mamshad Nayeem Rizve, Son Tran, Benjamin Yao, Trishul Chilimbi, Mubarak Shah
发表: ECCV 2024
arXiv: https://arxiv.org/abs/2407.13851

基本信息

摘要

近期在多模态大型语言模型(MLLMs)方面的进步,通过将视觉感知能力整合到大型语言模型(LLMs)中,已经彻底改变了视觉-语言理解领域。

该领域的流行趋势涉及使用来自视觉-语言对比学习(CL)的视觉编码器,擅长捕捉整体表示,但在捕捉详细局部模式方面存在困难。

在本工作中,我们通过结合通过掩码图像建模(MIM)获得的高频和详细视觉表示与由CL捕获的语义丰富的低频表示,来增强MLLMs的视觉表示。为了实现这一目标,我们引入了X-Former,这是一个轻量级的Transformer模块,通过创新交互机制利用CL和MIM的互补优势。

具体来说,X-Former首先从两个冻结的视觉编码器,即基于CL的CLIP-ViT和基于MIM的MAEViT,启动视觉-语言表示学习和多模态到多模态生成学习。它进一步从冻结的LLM启动视觉到语言的生成学习,以确保X-Former的视觉特征可以被LLM解释。

为了证明我们方法的有效性,我们在需要详细视觉理解的任务上对其性能进行了评估。广泛的评估表明,X-Former在涉及GQA数据集中结构和语义类别的视觉推理任务中表现出色。对细粒度视觉感知基准的评估进一步证实了其在视觉理解方面的优越能力。

主要贡献

  • 提出利用CL和MIM中的视觉编码器,从冻结的图像编码器中捕捉全局和局部视觉表示,以提升视觉语言理解能力。
  • 提出具有双重交叉注意力的X-Former,用于通过图像-文本对启动多模态到多模态的生成学习,完全无需使用精心挑选或视觉指令数据。

方法

预备知识

CLIP-ViT与MAE-ViT的训练目标使得其关注点有所不同。CLIP-ViT更多关注低频信号和全局视觉表示,而MAE-ViT在理解详细视觉特征方面更加出色。

原生的Q-Former仅采用CLIP-ViT特征,尽管其在VQA和图像描述等下游任务上表现出色,但在详细视觉特征理解方面遇到了挑战。

将CLIP-ViT特征与MAE-ViT特征融合

BLIP2、BLIP2+Concatenation、BLIP2+Early Cross-Attention以及我们的方法在VQAv2(a)、GQA(b)和OKVQA(c)数据集上的性能比较

如何融合CLIP-ViT特征和MAE-ViT特征成为了本文的研究重点。

X-Former

Pre-Training

X-Former Pre-Training

  • CLIP-ViT: pre-trained ViT-G model from EVA-CLIP
  • MAE-ViT: pre-trained ViT-H model

X-Former通过优化重建、ITC、ITM和ITG损失来学习提取局部和全局表示。

  • 🔥 X-Former
  • ❄️ CLIP Image Encoder、MAE Image Encoder、MAE Image Decoder
LLM Alignment

X-Former LLM Alignment

  • LLM Decoder: OPT model

将X-Former的特征与冻结的LLM对齐。

  • 🔥 X-Former、FC
  • ❄️ CLIP Image Encoder、MAE Image Encoder、LLM Decoder

实验

主实验

VQAv2数据集上的零样本视觉问答结果

VQAv2数据集上的零样本视觉问答结果。

GQA和OKVQA数据集上零样本视觉问答结果

GQA和OKVQA数据集上零样本视觉问答结果。

GQA中的详细比较

GQA中的详细比较。

MLLMs在物体计数(OC)和多类识别(MCI)任务上的零样本细粒度视觉感知评估

MLLMs在物体计数(OC)和多类识别(MCI)任务上的零样本细粒度视觉感知评估。

COCO与NoCaps上的无微调结果零样本图像描述结果

COCO与NoCaps上的无微调结果零样本图像描述结果。

消融实验

消融实验

Table 5: 对MAE-ViT特征的消融。将MAE-ViT特征替换为CLIP-ViT的浅层特征。
Table 6: 重建损失的消融。

总结

在这篇论文中,我们介绍了X-Former,这是一种新型架构,旨在通过整合预训练的MAE和CLIP视觉编码器来增强多模态语言模型(MLLMs)的视觉表示。

我们的动机源于以下几点观察:

  1. 现有的MLLMs主要依赖于CLIP-ViT,但往往无法捕捉到细粒度的视觉信号;
  2. 我们的实证研究表明,简单地将CLIP-ViT和MAE-ViT相结合并不一定能带来性能提升;
  3. MLLMs的有效性高度依赖于大规模图像-文本对进行预训练和精心策划的指令调整数据集进行微调。

X-Former通过双重交叉注意力机制有效地整合了CLIP-ViT和MAE-ViT,同时保持计算需求可控。我们的方法即插即用,可以应用于其他模型。

我们的实验结果明确表明,X-Former在各种需要稳健视觉理解的视觉推理任务中超越了BLIP-2。值得注意的是,这些优越的结果仅使用了十分之一的图像-文本对数据集,且无需任何指令调整数据集。

相关文章:

【论文笔记】X-Former: Unifying Contrastive and Reconstruction Learning for MLLMs

🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 基本信息 标题: X-Former: Unifying Contr…...

带权并查集注意事项

食物链 #include<bits/stdc.h> using namespace std; const int N5e410; int p[N],d[N]; int find(int x) {if(p[x]!x){int rootfind(p[x]);d[x]d[p[x]];p[x]root;}return p[x]; } int main() {int n,k;cin>>n>>k;for(int i1;i<n;i)p[i]i;int ans0;while…...

No.18 笔记 | XXE(XML 外部实体注入)漏洞原理、分类、利用及防御整理

一、XXE 漏洞概述 &#xff08;一&#xff09;定义 XXE&#xff08;XML 外部实体注入&#xff09;漏洞源于 XML 解析器对外部实体的不当处理&#xff0c;攻击者借此注入恶意 XML 实体&#xff0c;可实现敏感文件读取、远程命令执行和内网渗透等危险操作。 &#xff08;二&am…...

Discuz | 全站多国语言翻译和繁体本地转换插件 特色与介绍

Discuz全站多国语言翻译和繁体本地转换插件 特色与介绍 特殊&#xff1a;集成了2个开源库1.多国语言翻译 来自&#xff1a;github.com/xnx3/translate特色&#xff1a;无限使用接口 免费使用2个翻译端 带有一级和二级缓存 实现秒翻译 2.简体 繁体&#xff08;台湾&#xff09…...

【毕业设计】基于SpringBoot的网上商城系统

前言 &#x1f525;本系统可以选作为毕业设计&#xff0c;运用了现在主流的SSM框架&#xff0c;采用Maven来帮助我们管理依赖&#xff0c;所选结构非常合适大学生所学的技术&#xff0c;非常合适作为大学的毕业设计&#xff0c;难以适中。 &#x1f525;采用技术&#xff1a;Sp…...

【GIT】.gitignore文件的使用

使用 Visual Studio 开发项目&#xff0c;并使用 Git 将项目推送到 GitLab 时&#xff0c;有一些文件是自动生成的、特定于开发环境的文件&#xff0c;通常不应该被推送到远程仓库。这就是 .gitignore 文件的作用&#xff0c;它可以告诉 Git 忽略这些文件或文件夹。 1. 哪些文…...

【Qt】控件——Qt多元素控件、常见的多元素控件、多元素控件的使用、List Widget、Table Widget、Tree Widget

文章目录 QtQt多元素控件List WidgetTable WidgetTree Widget Qt Qt多元素控件 List Widget 使用 QListWidget 能够显示一个纵向的列表。 属性说明currentRow当前被选中的是第几行。count一共有多少行。sortingEnabled是否允许排序。isWrapping是否允许换行。itemAlignment元素…...

【图论】(五)最短路径算法(D / BF / SPFA / F / A*)

最短路径算法&#xff08;D / BF / SPFA / F / A*&#xff09; 1. 最短路径之dijkstra&#xff08;D算法&#xff09;思路模拟过程程序实现拓展 2. dijkstra算法堆优化思路程序实现 3. Bellman_ford 算法&#xff08;BF算法&#xff09;松弛模拟过程拓展 4. Bellman_ford 队列优…...

Scala中的reduce

作用&#xff1a;reduce是一种集合操作&#xff0c;用于对集合中的元素进行聚合操作&#xff0c;返回一个单一的结果。它通过指定的二元操作&#xff08;即取两个元素进行操作&#xff09;对集合中所有的元素进行递归处理&#xff0c;并最终将其合并为一个值。 语法&#xff1…...

调查显示软件供应链攻击增加

OpenText 发布了《2024 年全球勒索软件调查》&#xff0c;强调了网络攻击的重要趋势&#xff0c;特别是在软件供应链中&#xff0c;以及生成式人工智能在网络钓鱼诈骗中的使用日益增多。 尽管各国政府努力加强网络安全措施&#xff0c;但调查显示&#xff0c;仍有相当一部分企…...

JMeter使用不同方式传递接口参数

1、使用 HTTP 请求中的参数&#xff1a; 在 JMeter 的测试计划中&#xff0c;添加一个 "HTTP 请求" 元件。 在 "HTTP 请求" 元件的参数化选项中&#xff0c;可以添加参数的名称和值。可以手动输入参数&#xff0c;也可以使用变量来传递参数值。 如果要使…...

《C++开发 AR 游戏:开启未来娱乐新潮流》

一、引言 在当今科技飞速发展的时代&#xff0c;增强现实&#xff08;AR&#xff09;技术正以惊人的速度改变着我们的生活和娱乐方式。从智能手机上的 AR 滤镜到沉浸式的 AR 游戏&#xff0c;这项技术的应用越来越广泛。而在众多编程语言中&#xff0c;C以其高效、强大的性能在…...

列表、元组、集合、字典和 pandas 数据框(DataFrame)之间的数据转换

二、列表、元组、集合、字典和 pandas 数据框&#xff08;DataFrame&#xff09;之间的数据转换 在 Python 中&#xff0c;列表、元组、集合、字典和 pandas 数据框&#xff08;DataFrame&#xff09;是常见的数据结构&#xff0c;它们可以通过多种方式相互转换。每种数据结构…...

美图设计室

美图设计室 体验地址&#xff1a;美图设计室 一、产品描述 美图设计室是美图公司推出的一款集图形设计、广告制作、海报制作等功能于一体的智能设计软件。它凭借其独特的界面设计、强大的工具功能、智能化辅助设计以及丰富的社区互动功能&#xff0c;为用户提供了一个便捷、高…...

张雪峰:如果你现在是计算机专业,一定要优先报网络安全,它是未来国家发展的大方向

&#x1f91f; 基于入门网络安全/黑客打造的&#xff1a;&#x1f449;黑客&网络安全入门&进阶学习资源包 前言 “计算机专业 一定要优先报 网络安全 它是未来国家发展的大方向” 为什么推荐学网络安全&#xff1f; “没有网络安全就没有国家安全。”当前&#xff…...

Golang | Leetcode Golang题解之第486题预测赢家

题目&#xff1a; 题解&#xff1a; func PredictTheWinner(nums []int) bool {return total(nums, 0, len(nums) - 1, 1) > 0 }func total(nums []int, start, end int, turn int) int {if start end {return nums[start] * turn}scoreStart : nums[start] * turn total…...

【Golang】Go语言中如何创建Cron定时任务

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…...

Android compose 重建流程1

前言 本文是笔者学习Compose是如何自动触发UI刷新的笔记,可能缺乏一定可读性和教导性.(建议阅读参考文献更具启发性) 使用以下BOM作为研究环境. composeBom "2024.04.01" androidx-compose-bom { group "androidx.compose", name "compose-bom…...

C++:模板(2)

目录 非类型模板参数 模板的特化 概念 函数模板特化 类模板特化 全特化 偏特化 模板的分离编译 分离编译的概念 模板的分离编译 ​编辑 模板总结 非类型模板参数 模板参数分为类型形参与非类型形参。 类型形参&#xff1a;在模板参数列表中&#xff0c;跟在class…...

Golang 并发编程:Context 包的使用与并发控制

文章目录 一、简介二、Context 的基本概念1. context 包常用函数 三、Context 的基本用法1. WithCancel&#xff1a;取消任务的上下文 四、超时控制&#xff1a;WithTimeout 和 WithDeadline1. 使用 WithTimeout 控制任务超时2. 使用 WithDeadline 设定截止时间 五、传递上下文…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展&#xff1a;显示创建时间8. 功能扩展&#xff1a;记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...