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

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,这次的操作记录一下。 (涉密内容略有删改&#xf…...

无人机侦察:二维机扫雷达探测设备技术详解

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

未来互联网的新篇章:深度解析Web3技术

随着技术的飞速发展,Web3作为新一代互联网技术范式,正在重新定义我们对互联网的认知和使用方式。本文将深入探讨Web3技术的核心概念、关键特征以及其在未来互联网发展中的潜力和影响,为读者打开Web3时代的大门。 Web3技术的核心概念和特征 1…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...

线程同步:确保多线程程序的安全与高效!

全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

无法与IP建立连接,未能下载VSCode服务器

如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...

【JVM】- 内存结构

引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...

JAVA后端开发——多租户

数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...

Java数值运算常见陷阱与规避方法

整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...