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

多模态大模型 - MM1

1. 摘要

本文主要通过分析模型结构和数据选择讨论如何构建一个好的多模态大模型(MLLM),并同时提出了MM1模型,包括30B dense版本和64B的MoE版本。
具体贡献:

  • 模型层面:影响效果的重要性排序为:image resolution,visual encoder loss和capacity和visual encoder预训练数据。multimodal预训练数据类型:image caption,interleaved image-text和text-only。
    • 在few-shot和text-only上的表现:interleaved image-text和text-only两种数据最为重要。
    • 在zero-shot上的表现:image caption数据最为重要。

以上两种特性,在SFT阶段也有体现。

  • 通过扩大LLM大小的方式进行scale up。模型大小分别有3B,7B,30B等。

2. 方法和实验

2.1 简介

在这里插入图片描述
这部分主要探索三个(结构,数据和训练步骤)对多模态大模型效果的影响,

  • 模型基础配置:
    • Image Encoder:ViT-L/14模型,训练loss为clip loss,训练数据DFN-5B和VeCap-300M,image size为336*336
    • Vision-Language Connector:C-Abstractor,最大输出144 image token。
    • Pre-training Data:45% image caption数据,45% interleaved image-text数据和10% text-only数据。
    • Language Model: 1.2B transformer decoder-only模型。

2.2 模型结构影响

2.2.1 Image Encoder Pre-training

Image Encoder的选择对多模态大模型的预训练和微调都有很大的影响。
在这里插入图片描述

  • contrastive loss:能让image encoder学习到语义知识。示例模型:CLIP
  • Reconstructive loss:在一些dense prediction上,clip类模型很难达到很好的效果,比如说VQA和caption,这类任务需要对image有很好的理解。示例模型:AIM
  • 小结:
    • Image resoluton最为重要,其次是model size和训练数据组成。从上图中可以看出,增加image resolution效果最为明显,而增加model size和数据效果提升在1%左右。
    • 模型类型:对比学习loss训练的模型比reconstructive loss训练的模型效果要好。但这个结论并不确定,因为AIM模型训练数据较少。

2.2.2 Vision-Language Connector and Image Resolution

  • 配置

    • 使用64或144个token代表每个image,
    • 有两个不同的resolution:224和336.
    • 结构选择:
      • average pooling:对ViT输出结果使用n*n average pooling,然后接上linear projection。(n=[8, 12])
      • attention pooling:使用k learnable queries,通过改变k来改变输出到LLM的image token数。k=[64, 144]
      • Convolutional mapping:C-Abstractor module:ResNet block,through adaptive pooling can change the number of image tokens。
  • 小结:visual token数和image resolution最为重要,VL connector有少量影响。在instruction tuning阶段,这三种结构在不同的分辨率和image token时有着相似的结果。
    在这里插入图片描述

2.3 预训练数据影响

在这里插入图片描述

  • 小结:
    在这里插入图片描述

    • Interleaved data对few-shot和text-only的表现最为重要,captioning data对zero-shot表现比较重要。
    • Text-only数据对few-shot和text-only表现有帮助。
    • 细致的混合image和text数据能够得到最优的多模态性能和好的文本性能。最好的比例为caption:interleaved:text=5:5:1。
    • 合成数据对few-shot有帮助。

2.4 训练步骤

  • 模型参数和学习率关系:
    在这里插入图片描述
    具体关系如下:
    在这里插入图片描述

3. 结论

  • MM1模型预训练参数:
    • Image Encoder:ViT-H,分辨率378*378,训练数据DFN-5B,CLIP objective
    • Vision-Language Connector:VL connection with 144 tokens,选择用C-Abstractor
    • Data:45% interleaved image-text documents, 45% image-text pair documents, and 10% text-only documents.
    • 超参:batch size=512,max sequence lenght=4096,
    • LR schedule:在初始的2000步,linear warmup,然后在2e5训练步数中降到10%。
    • 使用AdamW优化器,在30B模型训练中,加上z-loss。
  • pretrain 效果如下:
    在这里插入图片描述
  • SFT数据配比:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

参考文献

MM1: Methods, Analysis & Insights from Multimodal LLM Pre-training

相关文章:

多模态大模型 - MM1

1. 摘要 本文主要通过分析模型结构和数据选择讨论如何构建一个好的多模态大模型(MLLM),并同时提出了MM1模型,包括30B dense版本和64B的MoE版本。 具体贡献: 模型层面:影响效果的重要性排序为:…...

FPGA设计之跨时钟域(CDC)设计篇(2)----如何科学地设计复位信号?

1、复位是干嘛的? 时钟信号和复位信号应该是一个数字系统最重要和最常用的两个信号了。时钟的重要性大家都懂,没有时钟整个系统就无法同步,自然也就谈不上运行了。那么复位(reset)到底是干嘛的? 所有的数字系统在上电的时候都会进行复位,这样才能确保该系统的初始运行状…...

GPS北斗标准时钟同步服务器结构是什么?安徽京准

GPS北斗标准时钟同步服务器结构是什么?安徽京准 GPS北斗标准时钟同步服务器结构是什么?安徽京准 电厂时钟同步系统组成及配置 随着计算机和网络通信技术的飞速发展,火电厂热工自动化系统数字化、网络化的时代已经到来。一方面它为控制和信息系…...

9.5 栅格图层符号化多波段彩色渲染

文章目录 前言多波段彩色渲染QGis设置为多波段彩色二次开发代码实现多波段彩色 总结 前言 介绍栅格图层数据渲染之多波段彩色渲染说明:文章中的示例代码均来自开源项目qgis_cpp_api_apps 多波段彩色渲染 以“3420C_2010_327_RGB_LATLNG.tif”数据为例&#xff0c…...

力扣第九题

回文数 提示: 给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 代码展示&#…...

鞭炮插画:成都亚恒丰创教育科技有限公司

鞭炮插画:年味里的绚烂记忆 在岁末年初的温柔时光里,总有一抹色彩,能瞬间唤醒沉睡的年味——那便是鞭炮插画中跃动的红与金,成都亚恒丰创教育科技有限公司 它们不仅仅是纸与墨的交织,更是情感与记忆的桥梁&#xff0c…...

python 循环

循环 while语句 for语句 循环控制语句 break 立即退出循环。 continue 跳过当前循环的剩余部分,并开始下一次迭代。 else for 和 while 循环都可以有一个可选的 else 子句,当循环正常结束时执行。 嵌套 占位符pass pass 是一个空操作语句。当你需要在代…...

映美精黑白相机IFrameQueueBuffer转halcon的HObject

映美精黑白相机&#xff0c;用wpfhalcon开发取图 1.到官网下载&#xff0c;开发包 1sdk 2c开发例子 3c#开发例子 引入TIS.Imaging.ICImagingControl35.dll 3.ICImagingControl使用这个类控制相机 /// <summary> /// 相机控制 /// </summary> public ICImagingC…...

Linux的load(负载)

负载(load)是Linux机器的一个重要指标&#xff0c;直观了反应了机器当前的状态。 在Linux系统中&#xff0c;系统负载是对当前CPU工作量的度量&#xff0c;被定义为特定时间间隔内运行队列中的平均线程数。 Linux的负载高&#xff0c;主要是由于CPU使用、内存使用、10消…...

杜比全景声——空间音频技术

什么是杜比&#xff1f;是否是标清、高清、超清之上的更清晰的格式&#xff1f;杜比全景声 和传统多声道立体声的差别&#xff1f;杜比全景声音频的渲染方式&#xff1f;车载平台上杜比技术的应用&#xff1f; 杜比技术的起源 杜比实验室&#xff08;Dolby Laboratories&…...

C 语言指针进阶

1.0 指针的定义 指针是内存中一个最小单元的编号&#xff08;内存单元的编号称之为地址【地址就是指针指针就是地址】&#xff09;指针通常是用来存放内存地址的一个变量。本质上指针就是地址&#xff1a;口语上说的指针起始是指针变量&#xff0c;指针变量就是一个变量&#…...

SpringBootWeb 篇-入门了解 Swagger 的具体使用

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 Swagger 介绍 1.1 Swagger 和 Yapi 的使用场景 2.0 Swagger 的使用方式 2.1 导入 knife4j 的 maven 坐标 2.2 在配置类中加入 knife4j 相关配置 2.3 设置静态资源…...

Python面试题:如何在 Python 中处理大数据集?

在 Python 中处理大数据集可能面临许多挑战&#xff0c;包括内存限制、计算性能和数据处理效率等。以下是一些处理大数据集的常见方法和技术&#xff1a; 1. 使用高效的数据处理库 1.1 Pandas Pandas 是一个强大的数据分析库&#xff0c;可以处理中等大小的数据集&#xff0…...

C++:入门基础

1.命名空间 1.1namespace的价值 在C/C中&#xff0c;变量、函数和后面要学到的类都是大量存在的&#xff0c;这些变量、函数和类的名称都将存在于全局作用域中&#xff0c;可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化&#xff0c;避免命名冲突或者名字…...

微信小游戏 彩色试管 倒水游戏 逻辑 (二)

最近开始研究微信小游戏&#xff0c;有兴趣的 可以关注一下 公众号&#xff0c; 记录一些心路历程和源代码。 定义一个 Water class 1. **定义接口和枚举**&#xff1a; - WaterInfo 接口定义了水的颜色、高度等信息。 - PourAction 枚举定义了水的倒动状态&#xff0c;…...

【链表】算法题(一) ---- 力扣 / 牛客

一、移除链表元素 移除链表中值为val的元素&#xff0c;并返回新的头节点 思路&#xff1a; 题目上这样说&#xff0c;我们就可以创建一个新的链表&#xff0c;将值不为val的节点&#xff0c;尾插到新的链表当中&#xff0c;最后返回新链表的头节点。 typedef struct ListNo…...

Linux系统之部署盖楼小游戏

Linux系统之部署盖楼小游戏 一、小游戏介绍1.1 小游戏简介1.2 小游戏玩法基本介绍1.3 项目预览二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍2.3 版本要求三、检查本地环境3.1 检查本地操作系统版本3.2 检查系统内核版本四、安装node.js4.1 安装nvm4.2 查看nvm版本4.3 安装…...

“金山-讯飞”杯2024年武汉理工大学程序设计竞赛 A. Mobiusp败走***(思维题-点双连通分量、连通性)

题目 思路来源 官方题解 题解 手玩发现&#xff0c;能换的话&#xff0c;当且仅当.和1在一个环里&#xff0c;而这就是点双连通分量 所以最优策略是先把.换到(x,y)的位置&#xff0c;然后判断.和1在不在一个环里 也就是&#xff1a; 1. 判断删掉1时&#xff0c;.和(x,y)联…...

【机器翻译】基于术语词典干预的机器翻译挑战赛

文章目录 一、赛题链接二、安装库1.spacy2.torch_text 三、数据预处理赛题数据类定义 TranslationDataset批量处理函数 collate_fn 四、编码器和解码器Encoder 类Decoder 类Seq2Seq 类注意事项 五、主函数1. load_terminology_dictionary(dict_file)2. train(model, iterator, …...

推荐系统:从协同过滤到深度学习

目录 一、协同过滤&#xff08;Collaborative Filtering, CF&#xff09;1. 基于用户的协同过滤2. 基于物品的协同过滤 二、深度学习在推荐系统中的应用1. 深度学习模型的优势2. 深度学习在推荐系统中的应用实例 三、总结与展望 推荐系统是现代信息处理和传播中不可或缺的技术&…...

萌新梦开始的地方

大家好&#xff0c;我是一名双非本科的大一新生&#xff0c;目前就读于计算机科学与技术这个专业&#xff0c;平时的兴趣爱好就是听听歌&#xff0c;健健身&#xff0c;这是我写的第一篇博客&#xff0c;我想以此来作为我学习编程的开始&#xff0c;同同时也以此来见证我在编程…...

OpenSpeedy终极指南:5分钟掌握免费开源游戏加速工具

OpenSpeedy终极指南&#xff1a;5分钟掌握免费开源游戏加速工具 【免费下载链接】OpenSpeedy &#x1f3ae; An open-source game speed modifier. 项目地址: https://gitcode.com/gh_mirrors/op/OpenSpeedy 你是否曾经在游戏中遇到过这样的烦恼&#xff1f;剧情推进太慢…...

微服务架构中的服务网格实践:构建更可靠的分布式系统

微服务架构中的服务网格实践&#xff1a;构建更可靠的分布式系统别叫我大神&#xff0c;叫我 Alex 就好。一、引言 大家好&#xff0c;我是 Alex。在微服务架构中&#xff0c;服务间的通信和管理是一个重要的挑战。随着微服务数量的增加&#xff0c;传统的服务治理方式已经难以…...

黑盒LLM幻觉抑制:10大落地方案全解析

面向API调用黑盒LLM的幻觉抑制落地方案 一、零成本提示工程与推理引导类(仅修改Prompt,直接API调用即可生效) 方案1:Self-Consistency(自一致性投票)- SelfCheckGPT 论文基础信息 标题:SelfCheckGPT: Zero-Resource Black-Box Hallucination Detection for Generativ…...

1996-2024年全国各地区交通事故、火灾事故数据

资源介绍 交通事故与火灾事故是衡量区域公共安全水平与风险治理能力的重要客观指标&#xff0c;直接关系到居民生命财产安全、社会稳定以及政府公共治理绩效。从研究视角看&#xff0c;事故类数据不仅反映突发性风险事件的发生频率&#xff0c;也在一定程度上刻画了区域基础设施…...

新手福音:通过快马生成tokenp钱包代码示例,轻松入门区块链开发

作为一名刚接触区块链开发的新手&#xff0c;我最近在学习tokenp钱包的相关知识。刚开始看文档时&#xff0c;那些密钥对、地址生成、签名验证的概念让我一头雾水。直到我尝试用InsCode(快马)平台生成示例代码&#xff0c;才真正理解了这些核心概念。下面分享我的学习过程&…...

从论文到落地:剖析因果U-Net+波束形成在语音增强中的工程化细节与调优心得

因果U-Net与波束形成的工程实践&#xff1a;语音增强从实验室到产品的关键路径 在视频会议成为工作常态的今天&#xff0c;远场语音拾取质量直接决定了沟通效率。传统单通道降噪算法在小型会议室表现尚可&#xff0c;但当麦克风与声源距离超过3米&#xff0c;混响与噪声问题就会…...

(技术解析)TabDDPM:如何用扩散模型攻克表格数据生成的异构性难题?

1. 扩散模型为何成为生成建模的新宠&#xff1f; 我第一次接触扩散模型是在2021年&#xff0c;当时正在为一个医疗数据分析项目寻找更好的数据增强方案。传统GAN生成的血压、血糖等生理指标数据总会出现数值断层&#xff0c;而VAE生成的年龄分布又常常偏离真实情况。直到尝试了…...

从俄罗斯电商数据到销量预测:Kaggle竞赛项目实战中的特征工程避坑指南

俄罗斯电商销量预测实战&#xff1a;特征工程中的7个关键陷阱与解决方案 在Kaggle的"Predict Future Sales"竞赛中&#xff0c;俄罗斯电商数据呈现出一系列独特挑战。本文将深入剖析特征工程环节中最易踩中的7个陷阱&#xff0c;并分享经过实战验证的解决方案。 1.…...

OpenClaw 架构深度剖析:从设计哲学到技术实现

OpenClaw 架构深度剖析&#xff1a;从设计哲学到技术实现 本文是「OpenClaw 研究」专题的第二篇&#xff0c;深入解析 OpenClaw 的架构设计与技术实现。 &#x1f4da; 系列文章导航 序号文章标题内容方向状态01OpenClaw 入门&#xff1a;新一代 AI 智能助手平台全景解析介绍 …...