4M-21: An Any-to-Any Vision Model for Tens of Tasks and Modalities论文精度

news2024/10/3 18:42:53

在这里插入图片描述

  • 贡献:在21种高度不同的模态中训练一个统一的模型,并且对比专有模型不会有性能损失
  • 做法:将不同模态映射到不同的token空间,并且可以生成不同的模态token【Any-to-any】
  • 关键点:如何在不同的模态中应用tokenization进行映射
  1. Introduction
  • 先前的方法将不同的模态映射为统一表征取得成功,但是这些方法的模态数量有限;
  • 提出modality-specific discrete tokenizers,让21个不同模态的任务可以协同训练:
    • image:ViT-based VQ-VAE tokenizers
    • 3D Human / image embeddings:MLP-based discrete VAEs
    • text:WordPiece tokenizer
  • 文章实现了在一个3B模型上进行One-to-all generation【只输入一种模态,可生成多种模态】
    [图片]
  1. Method
    2.1 Modalities
  • RGB:2D图像(tokenized and pixel)、调色板(可以控制生成图像的条件);

  • Geometric:surface normals, depth, and 3D human poses & shape,使用开源模型生成的伪标签作数据;

  • Semantic:semantic segmentation and bounding boxes,使用检测分割模型(例如SAM)生成伪标签;

  • Edges:Canny edges(low-level) and SAM edges;

  • Feature maps:从CILP、DINOv2和ImageBind搜集embeddings,因为他们具有强大的迁移学习和检索能力;

  • MetaData:从上述模态中得到的更多信息,例如实例数量、实例类别等等;

  • Text:captions、web text。
    2.2 Tokenizations
    [图片]

  • ViT tokenizer (with optional diffusion decoder) :使用VQ-VQE,为图像生成small grid token(14² or 16²)

  • MLP tokenizer:使用Bottleneck MLP和Memcodes量化;

  • Text tokenizer:使用WordPiece对文本进行编码
    2.3 4M:Massively Multimodal Masked Modeling

  • 4M-21是在4M模型的基础上增加更多的模态与训练数据,并且采用了一致的训练策略得到的模型;

  • Masking strategy:与MultiMAE相似,4M采用【对称Dirichlet分布】随机采样不同模态的token:

    • MultiMAE pretraining → 只使用随机采样的token参与预训练,高效且有效;
    • 在类图像模态上,使用MaskGIT → 每个迭代中,模型同时并行地预测所有token,但只保留最自信的token;剩余的token被mask掉,并将在下一个迭代中重新预测,不断迭代直到细化生成所有token;
    • 在类文本模态上,使用next-token-generation的自回归方式;
      [图片]
  • Chained multimodal generation:4M可以作为一个生成模型,可以通过各种模态为条件,实现多模态编辑
    [图片]

2.4 Training Details

  • Datasets & Pre-training

    • CC12M:一个庞大的图像-文本对数据集,4M在此基础上生成了不同模态的伪标签;
    • COYO700M:更大规模的图像-文本对数据集,是CC12M的50倍;
    • 由于4M在CC12M上有过拟合倾向,4M-21使用CC12M混合COYO700M进行预训练,同时引入文本数据集C4同步参与训练(CC12M+COYO+C4)。训练时在混合数据的一个batch中随机抽取元素,4M-21模型不需要经过微调就已具备强大的能力;
      • 在COYO700M只用伪标签标注7种不同模态(与4M相同),从而减少标注消耗;
      • 在CC12M上对所有21种模态进行伪标签标注。
        [图片]
  • Architecture

    • 使用4M的encoder-decoder based transformer结构
    • 除了RGB tokens,encoder也可以直接通过learnable patch-wise projection接收RGB pixels
    • 使用了与4M相同的Masking strategy
  1. Multimodel capabilities
    3.1 Steerable multimodal generation
  • 4M-21可以在有条件和无条件情况下生成不同模态的token,这得益于训练时采用多种模态的混合自回归训练;
    [图片]

3.2 Multimodel retriveval

  • 通过4M-21可以生成例如DINOv2和ImageBind的图像特征,这些特征可以通过简单的余弦相似度进行检索:
    在这里插入图片描述3.3 Evaluating out-of-the-box capabilities
  • 4M-21模型可以完成多种不同的常规视觉任务
    在这里插入图片描述
  1. Transfer experiments
  • 4M-21的encoder在any-to-any的配置下进行训练之后,可以通过迁移学习,迁移到其他下游任务进行微调。微调过程不使用decoder,而是训练相应的task-specific head:
    • 单模态迁移学习(RGB):

      • 加入更多模态之后,4M-21相比于4M-7在共有的模态上没有性能损失;
      • 对于全新的下游任务,例如3D Detection,4M-21实现了性能提升;
        在这里插入图片描述
    • 多模态迁移学习(RGB + depth):相较于4M-7,4M-21对于多模态的利用能力更强
      [图片]

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MySQL 07】内置函数

目录 1.日期函数 日期函数使用场景: 2.字符串函数 字符串函数使用场景: 3.数学函数 4.控制流函数 1.日期函数 函数示例: 1.在日期的基础上加日期 在该日期下,加上10天。 2.在日期的基础上减去时间 在该日期下减去2天 3.计算两…

【MySQL】服务器管理与配置

MySQL服务器 服务器默认配置 查看服务器默认选项和系统变量 mysqld --verbose --help 查看运行时的系统变量,可以通过like去指定自己要查询的内容 状态变量的查看 系统变量和状态变量的作用域 全局作用域: 对于每个会话都会生效当前会话:只…

通信工程学习:什么是SNMP简单网络管理协议

SNMP:简单网络管理协议 SNMP(Simple Network Management Protocol,简单网络管理协议)是一种用于在计算机网络中管理网络节点(如服务器、工作站、路由器、交换机等)的标准协议。它属于OSI模型的应用层&#…

TIM的PWM模式

定时器的工作流程: 定时器对时钟传来的脉冲次数计数,并且在次数到达范围值时触发中断。如向下计数模式时为0,向上计数为达到自动重装载计时器的值时触发中断。 STM32里面的定时器有多个定时器。 如TIM1、TIM2、TIM3 定时器的输入捕获模式来测量输…

我为什么决定关闭ChatGPT的记忆功能?

你好,我是三桥君 几个月前,ChatGPT宣布即将推出一项名为“记忆功能”的新特性,英文名叫memory。 这个功能听起来相当吸引人,宣传口号是让GPT更加了解用户,仿佛是要为我们每个人量身打造一个专属的AI助手。 在记忆功…

【笔记】平面

一、平面及其方程(3个条件,4种表达) F ( x , y , z ) F(x,y,z) F(x,y,z)为平面方程: 在这个平面上的点满足 F ( x , y , z ) 0 F(x,y,z)0 F(x,y,z)0不在这个平面上的点不满足 F ( x , y , z ) 0 F(x,y,z)0 F(x,y,z)0 归根结底&…

Python 课程23-LibROSA

前言 LibROSA 是一个用于音频分析的 Python 库,特别擅长音乐信号处理和音频特征提取。它提供了广泛的工具来处理音频文件,包括加载、变换、特征提取、可视化等功能。LibROSA 在音乐信息检索(MIR)、机器学习中的音频预处理和音频信…

java发送邮件email实战

1.首先在项目中增加依赖&#xff0c;在pom文件中添加如下坐标 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>2.发邮件工具类如下 package com.example.demo.…

安卓13默认使用大鼠标 与配置分析 andriod13默认使用大鼠标 与配置分析

总纲 android13 rom 开发总纲说明 文章目录 1.前言2.问题分析3.代码分析4.代码修改5.彩蛋1.前言 android13里面的鼠标貌似比以前版本的鼠标小了,有些客户想要把这个鼠标改大。这个功能,android有现成的,就在这里,设置 =》无障碍 =》色彩和动画 =》 大号鼠标指针。 我们通过…

JavaWeb - 8 - 请求响应 分层解耦

请求响应 请求&#xff08;HttpServletRequest&#xff09;&#xff1a;获取请求数据 响应&#xff08;HttpServletResponse&#xff09;&#xff1a;设置响应数据 BS架构&#xff1a;Browser/Server&#xff0c;浏览器/服务器架构模式。客户端只需要浏览器&#xff0c;应用程…

【解决方案】关于 UART 接收数据时丢失数据的解决办法——环形缓冲存储区

文章目录 UART 通信丢失数据的常见原因总结串口&#xff08;UART&#xff09;数据丢失 Bug 的复现引入环形队列解决数据丢失问题总结 在嵌入式系统和物联网&#xff08;IoT&#xff09;设备中&#xff0c;串行通信是一种非常普遍且重要的数据传输方式。无论是通过 UART、RS-232…

【Godot4.3】基于中心点连线的矩形重叠检测

概述 这个方法是我自己想到的&#xff0c;经典的矩形重叠&#xff08;碰撞&#xff09;检测&#xff0c;是一段很复杂的逻辑判断&#xff0c;而根据两个矩形中点连线&#xff0c;与两个矩形宽度和高度之和一半的比较&#xff0c;就可以判断两个矩形是否重叠&#xff0c;并且能…

SQL进阶技巧:统计各时段观看直播的人数

目录 0 需求描述 1 数据准备 2 问题分析 3 小结 如果觉得本文对你有帮助&#xff0c;那么不妨也可以选择去看看我的博客专栏 &#xff0c;部分内容如下&#xff1a; 数字化建设通关指南 专栏 原价99&#xff0c;现在活动价39.9&#xff0c;十一国庆后将上升至59.9&#…

TransFormer 视频笔记

TransFormer BasicsAttention单头注意力 single head attentionQ&#xff1a; query 查寻矩阵 128*12288K key matrix 128*12288SoftMax 归一 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/19e3cf1ea28442eca60d5fc1303921f4.png)Value matrix 12288*12288 MLP Bas…

边缘概率 | 条件概率

关于什么是边缘概率分布和条件概率分布&#xff0c;在理论上&#xff0c;我自己也还没有理解&#xff0c;那么现在就根据我学习到的理解方式来记录一下&#xff0c;有错误指出&#xff0c;请大家指正&#xff01;&#xff01;&#xff01; 例如&#xff0c;一个箱子里有十个乒乓…

YOLO11改进|上采样篇|引入CARAFE上采样模块

目录 一、CARAFE上采样模块1.1CARAFE上采样模块介绍1.2CARAFE核心代码 五、添加MLCA注意力机制5.1STEP15.2STEP25.3STEP35.4STEP4 六、yaml文件与运行6.1yaml文件6.2运行成功截图 一、CARAFE上采样模块 1.1CARAFE上采样模块介绍 CARAFE 的主要思想&#xff1a; 将特征图的上采…

C# (.net6)实现Redis发布和订阅简单案例

概念&#xff1a; 在 .NET 6 中使用 Redis 的/订发布阅模式。发布/订阅&#xff08;Pub/Sub&#xff09;是 Redis 支持的一种消息传递模式&#xff0c;其中一个或多个发布者向一个或多个订阅者发送消息,Redis 客户端可以订阅任意数量的频道。 多个客户端可以订阅一个相同的频道…

【Java】—— 集合框架:Collection接口中的方法与迭代器(Iterator)

目录 1. 集合框架概述 1.1 生活中的容器 1.2 数组的特点与弊端 1.3 Java集合框架体系 1.4 集合的使用场景 2. Collection接口及方法 2.1 添加 2.2 判断 2.3 删除 2.4 其它 3. Iterator(迭代器)接口 3.1 Iterator接口 3.2 迭代器的执行原理 3.3 foreach循环 1. 集…

【rust/egui/android】在android中使用egui库

文章目录 说在前面AndroidStudio安装编译安装运行问题 说在前面 操作系统&#xff1a;windows11java版本&#xff1a;23android sdk版本&#xff1a;35android ndk版本&#xff1a;22rust版本&#xff1a; AndroidStudio安装 安装AndroidStudio是为了安装sdk、ndk&#xff0c;…

【Matlab绘图】从Excel导入表格并进行三维绘图

前言 今天手头上拿到一份论文的xlsx数据&#xff0c;要求使用MATLAB绘制进行三维图标坐标绘制。那么我们来看看如何使用如下数据进行绘图。 如上数据所示&#xff0c;数据是一个30行25列的数据&#xff0c;数据的内容是论文某项模型模拟的结果&#xff0c;我们希望把横坐标x取…