当前位置: 首页 > 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 设定截止时间 五、传递上下文…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架&#xff0c;用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录&#xff0c;以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课&#xff0c;做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程&#xff0c;它的核心机制是 Goroutine 协程、Channel 通道&#xff0c;并基于CSP&#xff08;Communicating Sequential Processes&#xff0…...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问&#xff1a;说说对 IP 数据报中 TTL 的理解&#xff1f;我们都知道&#xff0c;IP 数据报由首部和数据两部分组成&#xff0c;首部又分为两部分&#xff1a;固定部分和可变部分&#xff0c;共占 20 字节&#xff0c;而即将讨论的 TTL 就位于首…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章&#xff0c;二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑&#xff1a; &#x1f504; 一、起源与初创期&#xff1a;Swagger的诞生&#xff08;2010-2014&#xff09; 核心…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

Xen Server服务器释放磁盘空间

disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...