【论文笔记】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 设定截止时间 五、传递上下文…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...
【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...
从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
论文笔记——相干体技术在裂缝预测中的应用研究
目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...
CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...
