【论文笔记】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特征成为了本文的研究重点。
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

- LLM Decoder: OPT model
将X-Former的特征与冻结的LLM对齐。
- 🔥 X-Former、FC
- ❄️ CLIP Image Encoder、MAE Image Encoder、LLM Decoder
实验
主实验

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

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

GQA中的详细比较。

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

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

Table 5: 对MAE-ViT特征的消融。将MAE-ViT特征替换为CLIP-ViT的浅层特征。
Table 6: 重建损失的消融。
总结
在这篇论文中,我们介绍了X-Former,这是一种新型架构,旨在通过整合预训练的MAE和CLIP视觉编码器来增强多模态语言模型(MLLMs)的视觉表示。
我们的动机源于以下几点观察:
- 现有的MLLMs主要依赖于CLIP-ViT,但往往无法捕捉到细粒度的视觉信号;
- 我们的实证研究表明,简单地将CLIP-ViT和MAE-ViT相结合并不一定能带来性能提升;
- 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 漏洞概述 (一)定义 XXE(XML 外部实体注入)漏洞源于 XML 解析器对外部实体的不当处理,攻击者借此注入恶意 XML 实体,可实现敏感文件读取、远程命令执行和内网渗透等危险操作。 (二&am…...
Discuz | 全站多国语言翻译和繁体本地转换插件 特色与介绍
Discuz全站多国语言翻译和繁体本地转换插件 特色与介绍 特殊:集成了2个开源库1.多国语言翻译 来自:github.com/xnx3/translate特色:无限使用接口 免费使用2个翻译端 带有一级和二级缓存 实现秒翻译 2.简体 繁体(台湾)…...
【毕业设计】基于SpringBoot的网上商城系统
前言 🔥本系统可以选作为毕业设计,运用了现在主流的SSM框架,采用Maven来帮助我们管理依赖,所选结构非常合适大学生所学的技术,非常合适作为大学的毕业设计,难以适中。 🔥采用技术:Sp…...
【GIT】.gitignore文件的使用
使用 Visual Studio 开发项目,并使用 Git 将项目推送到 GitLab 时,有一些文件是自动生成的、特定于开发环境的文件,通常不应该被推送到远程仓库。这就是 .gitignore 文件的作用,它可以告诉 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*)
最短路径算法(D / BF / SPFA / F / A*) 1. 最短路径之dijkstra(D算法)思路模拟过程程序实现拓展 2. dijkstra算法堆优化思路程序实现 3. Bellman_ford 算法(BF算法)松弛模拟过程拓展 4. Bellman_ford 队列优…...
Scala中的reduce
作用:reduce是一种集合操作,用于对集合中的元素进行聚合操作,返回一个单一的结果。它通过指定的二元操作(即取两个元素进行操作)对集合中所有的元素进行递归处理,并最终将其合并为一个值。 语法࿱…...
调查显示软件供应链攻击增加
OpenText 发布了《2024 年全球勒索软件调查》,强调了网络攻击的重要趋势,特别是在软件供应链中,以及生成式人工智能在网络钓鱼诈骗中的使用日益增多。 尽管各国政府努力加强网络安全措施,但调查显示,仍有相当一部分企…...
JMeter使用不同方式传递接口参数
1、使用 HTTP 请求中的参数: 在 JMeter 的测试计划中,添加一个 "HTTP 请求" 元件。 在 "HTTP 请求" 元件的参数化选项中,可以添加参数的名称和值。可以手动输入参数,也可以使用变量来传递参数值。 如果要使…...
《C++开发 AR 游戏:开启未来娱乐新潮流》
一、引言 在当今科技飞速发展的时代,增强现实(AR)技术正以惊人的速度改变着我们的生活和娱乐方式。从智能手机上的 AR 滤镜到沉浸式的 AR 游戏,这项技术的应用越来越广泛。而在众多编程语言中,C以其高效、强大的性能在…...
列表、元组、集合、字典和 pandas 数据框(DataFrame)之间的数据转换
二、列表、元组、集合、字典和 pandas 数据框(DataFrame)之间的数据转换 在 Python 中,列表、元组、集合、字典和 pandas 数据框(DataFrame)是常见的数据结构,它们可以通过多种方式相互转换。每种数据结构…...
美图设计室
美图设计室 体验地址:美图设计室 一、产品描述 美图设计室是美图公司推出的一款集图形设计、广告制作、海报制作等功能于一体的智能设计软件。它凭借其独特的界面设计、强大的工具功能、智能化辅助设计以及丰富的社区互动功能,为用户提供了一个便捷、高…...
张雪峰:如果你现在是计算机专业,一定要优先报网络安全,它是未来国家发展的大方向
🤟 基于入门网络安全/黑客打造的:👉黑客&网络安全入门&进阶学习资源包 前言 “计算机专业 一定要优先报 网络安全 它是未来国家发展的大方向” 为什么推荐学网络安全? “没有网络安全就没有国家安全。”当前ÿ…...
Golang | Leetcode Golang题解之第486题预测赢家
题目: 题解: 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定时任务
✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…...
Android compose 重建流程1
前言 本文是笔者学习Compose是如何自动触发UI刷新的笔记,可能缺乏一定可读性和教导性.(建议阅读参考文献更具启发性) 使用以下BOM作为研究环境. composeBom "2024.04.01" androidx-compose-bom { group "androidx.compose", name "compose-bom…...
C++:模板(2)
目录 非类型模板参数 模板的特化 概念 函数模板特化 类模板特化 全特化 偏特化 模板的分离编译 分离编译的概念 模板的分离编译 编辑 模板总结 非类型模板参数 模板参数分为类型形参与非类型形参。 类型形参:在模板参数列表中,跟在class…...
Golang 并发编程:Context 包的使用与并发控制
文章目录 一、简介二、Context 的基本概念1. context 包常用函数 三、Context 的基本用法1. WithCancel:取消任务的上下文 四、超时控制:WithTimeout 和 WithDeadline1. 使用 WithTimeout 控制任务超时2. 使用 WithDeadline 设定截止时间 五、传递上下文…...
【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
网页端 js 读取发票里的二维码信息(图片和PDF格式)
起因 为了实现在报销流程中,发票不能重用的限制,发票上传后,希望能读出发票号,并记录发票号已用,下次不再可用于报销。 基于上面的需求,研究了OCR 的方式和读PDF的方式,实际是可行的ÿ…...
【PX4飞控】mavros gps相关话题分析,经纬度海拔获取方法,卫星数锁定状态获取方法
使用 ROS1-Noetic 和 mavros v1.20.1, 携带经纬度海拔的话题主要有三个: /mavros/global_position/raw/fix/mavros/gpsstatus/gps1/raw/mavros/global_position/global 查看 mavros 源码,来分析他们的发布过程。发现前两个话题都对应了同一…...
Qwen系列之Qwen3解读:最强开源模型的细节拆解
文章目录 1.1分钟快览2.模型架构2.1.Dense模型2.2.MoE模型 3.预训练阶段3.1.数据3.2.训练3.3.评估 4.后训练阶段S1: 长链思维冷启动S2: 推理强化学习S3: 思考模式融合S4: 通用强化学习 5.全家桶中的小模型训练评估评估数据集评估细节评估效果弱智评估和民间Arena 分析展望 如果…...
Web APIS Day01
1.声明变量const优先 那为什么一开始前面就不能用const呢,接下来看几个例子: 下面这张为什么可以用const呢?因为复杂数据的引用地址没变,数组还是数组,只是添加了个元素,本质没变,所以可以用con…...
关于 ffmpeg设置摄像头报错“Could not set video options” 的解决方法
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/148515355 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…...
