A Survey on Multimodal Large Language Models综述
论文题目:A Survey on Multimodal Large Language Models
论文地址:https://arxiv.org/pdf/2306.13549
话题:多模态LLMs综述
MLLMs Paper: https://github.com/BradyFU/Awesome-Multimodal-Large-Language-Models
1. 摘要
近期,以GPT-4V为代表的跨模态大型语言模型(MLLM)成为研究热点,它利用强大的大型语言模型(LLM)作为大脑执行跨模态任务。MLLM展现出如基于图像创作故事、OCR-free数学推理等令人惊讶的能力,这在传统跨模态方法中极为罕见,预示着通往通用人工智能的潜在路径。为此,学术界和产业界都在努力开发能与GPT-4V竞争甚至更好的MLLM,以惊人的速度推动研究极限。本文旨在追踪和总结MLLM的近期进展。首先,我们阐述了MLLM的基本公式及其相关概念,包括架构、训练策略和数据以及评估。接着,我们介绍了如何扩展MLLM以支持更多粒度、模态、语言和场景的研究主题。随后,我们探讨了跨模态幻觉和扩展技术,包括多模态ICL(M-ICL)、多模态CoT(M-CoT)和LLM辅助视觉推理(LAVR)。最后,我们讨论了现有挑战并指出有潜力的研究方向。鉴于MLLM时代才刚刚开始,我们将持续更新此综述,希望它能激发更多研究。
2. 引言
近年来,大型语言模型(LLMs)在数据规模和模型规模上的扩展带来了显著的进步,包括指令遵循、情境学习(ICL)和思维链(CoT)等能力。尽管LLMs在大多数自然语言处理(NLP)任务上展示了令人惊讶的无/少量样本推理性能,但由于它们只能理解离散文本,因此对视觉信息是“盲”的。与此同时,大型视觉模型(LVMs)在视觉识别上表现良好,但在推理能力上通常落后。
LLM(大型语言模型)和LVM(多模态模型)的结合催生了MLLM这一新领域。MLLM能够接收、推理和输出多模态信息,是基于LLM的模型。在MLLM之前,多模态研究分为判别式和生成式两种范式,具体代表是CLIP和OFA。CLIP是判别式范式的代表,它将视觉和文本信息投影到统一的空间,为下游多模态任务搭建桥梁。OFA是生成式范式的代表,它以序列到序列的方式统一多模态任务。MLLM在序列操作上与OFA类似,但有两个显著特点:一是基于具有亿级参数的LLM,二是采用新的训练范式,如多模态指令调整,以鼓励模型遵循新指令。由于这两个特点,MLLM展现出新的能力,如根据图像编写网站代码、理解梗的深层含义以及无OCR的数学推理。
自GPT-4发布以来,多模态语言模型(MLLMs)因其多模态能力而引发了研究热潮。研究迅速发展,得益于学术界和工业界的努力。初步研究集中在基于文本提示和图像、视频、音频等模态的内容生成。后续工作扩展了能力或应用场景,包括:1)更细粒度的支持,通过框或点击来支持特定区域或对象;2)增强对输入和输出模态的支持,如图像、视频、音频和点云;3)改进语言支持,将MLLMs的成功扩展到其他语言;4)扩展到更多领域和用例,如医学图像理解和文档解析,以及开发多模态代理来辅助现实世界交互。图1展示了MLLMs的发展时间线。
接着,深入讨论了MLLMs的一些重要问题,如如何进一步改进或扩展、以及如何缓解多模态幻觉问题。随后,介绍了三个关键技术,分别针对特定场景:M-ICL用于提升少样本性能,M-CoT用于复杂推理任务,以及一个开发基于LLM的系统来解决复合推理任务或处理常见用户查询的一般思路。最后,综述以总结和潜在的研究方向结束。
3. 结构
典型的MLLM可以抽象为三个模块:预训练的模态编码器、预训练的LLM(大型语言模型)以及连接它们的模态接口。这些模块可以类比为人类感官系统,其中模态编码器(如图像/音频编码器)相当于人的眼睛和耳朵,接收并预处理光学/声学信号,而LLM则相当于大脑,理解和推理处理后的信号。模态接口的作用是协调不同模态。一些MLLM还包括一个生成器,除了文本外还能输出其他模态。图2展示了这种架构的图示。在这一节中,我们依次介绍了每个模块。
3.1 模态编码器(Modality Encoder)
编码器将原始信息(如图像或音频)压缩成更紧凑的表示形式。为了提高效率,通常使用已经与其他模态对齐的预训练编码器,而不是从头开始训练。例如,CLIP通过在大规模图像-文本对上进行预训练,使其视觉编码器在语义上与文本对齐。因此,使用这种预先对齐的编码器通过对齐预训练更容易与LLM对齐。
常用的图像编码器总结在表1中。除了基本的CLIP图像编码器外,一些研究也探索了使用其他变体。例如,MiniGPT-4使用了EVA-CLIP(ViT-G/14)编码器,并采用了改进的训练技术。Osprey则引入了基于卷积的ConvNext-L编码器,以利用更高分辨率和多级特征。还有一些工作探索了无编码器架构,例如Fuyu-8b直接将图像块投影到LLM之前,从而自然支持灵活的图像分辨率输入。
在选择编码器时,通常考虑的因素包括分辨率、参数大小和预训练语料库。许多研究表明,使用更高分辨率的图像可以显著提高性能。提高输入分辨率的方法可以分为直接缩放和块划分方法。直接缩放方法将高分辨率图像输入到编码器中,这通常需要进一步调整编码器或使用更高分辨率的预训练编码器。CogAgent使用双编码器机制,分别处理高分辨率和低分辨率图像,并通过交叉注意力将高分辨率特征注入到低分辨率分支。块划分方法将高分辨率图像切割成块,并复用低分辨率编码器。与输入分辨率相比,参数大小和训练数据组成的重要性较小。
其他模态的编码器。例如,Pengi使用CLAP模型作为音频编码器,而ImageBind-LLM使用ImageBind编码器,它支持编码图像、文本、音频、深度、热成像和惯性测量单元(IMU)数据。这些强大的编码器使得ImageBind-LLM能够响应多种模态的输入。
3.2 Pre-trained LLM
使用预训练的大型语言模型(LLM)的效率和实用性,因为它们已经通过大量的网络语料库预训练,包含了丰富的世界知识,并展现出强大的泛化和推理能力。表格2总结了常用的公共LLM,其中大多数属于因果解码器类别,遵循GPT-3。FlanT5系列是早期LLM,用于BLIP-2和InstructBLIP等工作中。LLaMA系列和Vicuna家族是具有代表性的开源LLM,吸引了学术界的关注。由于这两个LLM主要在英语语料库上预训练,因此在多语言支持方面有限,如中文。相比之下,Qwen是一个支持中文和英语的双语LLM。
增加LLM的参数规模可以带来额外的收益,类似于提高输入分辨率的效果。例如,从7B到13B的参数规模提升在各种基准测试中带来了全面的改进。使用34B的LLM时,模型展示了零样本的中文能力,尽管训练数据中只有英语的多模态数据。Lu等人通过将LLM从13B扩展到35B和65B/70B也观察到了类似的现象,较大的模型在针对多语言LLM设计的基准测试中带来了持续的提升。同时,也有一些工作使用较小的LLM来促进在移动设备上的部署,例如MobileVLM系列使用缩放后的LLaMA(1.4B/2.7B)模型,使其能够在移动处理器上高效地进行推理。
最近,对于LLM中混合专家(MoE)架构的研究引起了越来越多的关注。与密集模型相比,稀疏架构通过选择性地激活参数,可以在不增加计算成本的情况下扩大总参数规模。实验上,MM1和MoE-LLaVA发现,MoE的实现几乎在所有基准测试中都比密集模型有更好的性能。
3.3 Modality interface
相关文章:

A Survey on Multimodal Large Language Models综述
论文题目:A Survey on Multimodal Large Language Models 论文地址:https://arxiv.org/pdf/2306.13549 话题:多模态LLMs综述 MLLMs Paper: https://github.com/BradyFU/Awesome-Multimodal-Large-Language-Models 1. 摘要 近期,以GPT-4V为代表的跨模态大型语言模型(MLLM…...

Leetcode3208. 交替组 II
Every day a Leetcode 题目来源:3208. 交替组 II 解法1:环形数组 把数组复制一份拼接起来,和 3101 题一样,遍历数组的同时,维护以 i 为右端点的交替子数组的长度 cnt。 如果 i ≥ n 且 cnt ≥ k,那么 i…...

汇编教程2
本教程主要教大家如何安装32位Linux虚拟机,为后续实验拆炸弹做准备 下载系统映像文件 以Ubuntu14.04.6系统为例 官方网站:下载地址 点击下载图中32位系统 如果官网进不去可以使用镜像网站 清华镜像网站:下载地址 进入之后找到下图中链接…...
使用 git 和 GitHub 互动
本文根据《GitHub入门与实践》整理 创建账户 要想使用GitHub那就必须先有GitHub账号,账号自行注册,不作介绍。 本地生成 SSH Key SSH 提供了一种安全的方式来通过不安全的网络进行通信。当你使用SSH key连接到GitHub时,你的身份是通过密钥对(一个公钥和一个私钥)来验…...
【Spring Boot 中的 `banner.txt` 和 `logback-spring.xml` 配置】
文章目录 一、banner.txt1. 创建自定义 banner.txt2. 配置 banner.txt 的内容 二、logback-spring.xml1. 创建 logback-spring.xml2. 配置 logback-spring.xml 一、banner.txt banner.txt 是 Spring Boot 项目启动时显示的自定义横幅内容。用来展示项目名称、版本信息或者其他…...

Python Linux环境(Centos8)安装minicoda3+jupyterlab
文章目录 安装miniconda安装python环境启动 最近服务器检查,我下面的服务器有漏洞,不得已重装了,正好记录下怎么从零到python写代码。 安装miniconda miniconda是anconda的精简版,就是管理python环境的得力助手。 # 创建一个名…...

Python PDF Magic:合并和拆分随心所欲
大家好!小编今天要为大家带来一篇关于Python操作PDF的秘籍——无论是要将PDF合并成一份整体,还是将一个庞大的PDF文件拆分成多个小伙伴,都轻松hold住!你准备好了吗?让我们开始这场奇妙的PDF操作之旅吧! 准…...
Gmsh应用程序编程接口
Gmsh应用程序编程接口(API)允许将Gmsh库集成到使用C、C、Python、Julia或Fortran编写的外部应用程序中。从设计上讲,Gmsh API是纯粹功能性的,并且仅使用目标语言的基本类型。 API的结构反映了底层的Gmsh数据模型(也请参…...
DP 203 学习笔记
考试内容总览 Learning Objects: 工具 Designing and implementing data storage 1. Storage Azure Synapse Analytics Azure Databricks Azure Data Lake Storage Gen2(ADLS2,可代替Hadoop Distributed File System也就是HDFS) 2. Shard Partition data store …...
SQLite 事务
SQLite 事务 SQLite 是一种轻量级的数据库管理系统,广泛用于各种应用程序中,特别是在移动设备和嵌入式系统中。它支持标准的 SQL 语法,包括事务处理。事务是数据库管理系统中的一个重要概念,它允许将一系列操作作为一个单独的工作单元来处理,以确保数据库的一致性和可靠性…...

LabVIEW和Alicat Scientific质量流量计实现精确流量控制
在现代工业自动化和科研实验中,精确的气体流量控制至关重要。这里将介绍一个使用LabVIEW与Alicat Scientific公司的质量流量计实现流量控制的项目。项目采用Alicat Scientific的质量流量计(型号:M-200SCCM-D),通过LabV…...

2024-07-19 Unity插件 Odin Inspector10 —— Misc Attributes
文章目录 1 说明2 其他特性2.1 CustomContextMenu2.2 DisableContextMenu2.3 DrawWithUnity2.4 HideDuplicateReferenceBox2.5 Indent2.6 InfoBox2.7 InlineProperty2.8 LabelText2.9 LabelWidth2.10 OnCollectionChanged2.11 OnInspectorDispose2.12 OnInspectorGUI2.13 OnIns…...
Go操作Redis详解
文章目录 Go操作Redis详解来源介绍Redis支持的数据结构Redis应用场景Redis与Memcached比较准备Redis环境go-redis库 安装连接普通连接连接Redis哨兵模式连接Redis集群基本使用set/get示例zset示例Pipeline事务WatchGo操作Redis详解 来源 https://www.liwenzhou.com/posts/Go/…...

钡铼Modbus TCP耦合器BL200实现现场设备与SCADA无缝对接
前言 深圳钡铼技术推出的Modbus TCP耦合器为SCADA系统与现场设备之间的连接提供了强大而灵活的解决方案,它不仅简化了设备接入的过程,还提升了数据传输的效率和可靠性,是工业自动化项目中不可或缺的关键设备。本文将从Modbus TC、SCADA的简要…...

数据分析入门:用Python和Numpy探索音乐流行趋势
一、引言 音乐是文化的重要组成部分,而音乐流行趋势则反映了社会文化的变迁和人们审美的变化。通过分析音乐榜单,我们可以了解哪些歌曲或歌手正在受到大众的欢迎,甚至预测未来的流行趋势。Python作为一种强大的编程语言,结合其丰…...
数仓工具—Hive语法之替换函数和示例
Hive 替换函数和示例 默认情况下,并没有可用的 Hive 替换函数。如果在处理字符串时需要替换特定值,例如垃圾值,字符串操作函数替换是非常需要的。在本文中,我们将检查 Hive 替换函数 的替代方法,以便在需要时使用。 如前所述,Apache Hive 不提供替换函数的支持。但是,…...

[SUCTF 2019]EasySQL1
这是一个简单的SQL注入题,但是因为我的SQL基础约等于0,所以做起来很难。 首先试试引号是否被过滤 可以看到单引号、双引号都被过滤了,试试其他的盲注都不行,基本上可以确定不能用这种方法。 在测试的过程中发现,输入…...

elasticsearch, kibana, 6.8.18 版本下的创建索引,指定timestamp,java CRUD,maven版本等
ELK 这一套的版本更迭很快, 而且es常有不兼容的东西出现, 经常是搜一篇文章,看似能用,拿到我这边就不能用了。 很是烦恼。 我这边的ELK版本目前是 6.8.18,这次的操作记录一下。 (涉密内容略有删改…...

无人机侦察:二维机扫雷达探测设备技术详解
二维机扫雷达探测设备采用机械扫描方式,通过天线在水平方向和垂直方向上的转动,实现对目标空域的全方位扫描。雷达发射机发射电磁波信号,遇到目标后产生反射,反射信号被雷达接收机接收并处理,进而得到目标的位置、速度…...

未来互联网的新篇章:深度解析Web3技术
随着技术的飞速发展,Web3作为新一代互联网技术范式,正在重新定义我们对互联网的认知和使用方式。本文将深入探讨Web3技术的核心概念、关键特征以及其在未来互联网发展中的潜力和影响,为读者打开Web3时代的大门。 Web3技术的核心概念和特征 1…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...

【JavaEE】-- HTTP
1. HTTP是什么? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议,HTTP是基于TCP协议的一种应用层协议。 应用层协议:是计算机网络协议栈中最高层的协议,它定义了运行在不同主机上…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...

MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...

《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...