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

2024多模态大模型综述最新总结

摘要

随着人工智能技术的快速发展,多模态大模型(MLLM)已成为研究的新热点。这些模型以强大的大型语言模型(LLM)为基础,能够处理和理解多种模态信息,如文本、图像、视频和音频。本文综述了MLLM的最新进展,包括其基本架构、训练策略、数据和评估方法,并探讨了如何扩展MLLM以支持更细粒度的输入输出、更多模态、语言和应用场景。此外,还讨论了多模态幻觉问题和一些关键技术,如多模态上下文学习(M-ICL)和多模态链式推理(M-CoT)。最后,文章指出了当前MLLM面临的挑战和未来研究方向。

1、引言

近年来,LLM在自然语言处理(NLP)任务上展现出了惊人的零样本/少样本推理能力。然而,这些模型在视觉方面是“盲”的,因为它们只能理解离散的文本。与此同时,大型视觉模型(LVM)在视觉感知方面表现出色,但在推理方面通常落后。MLLM的出现,结合了LLM和LVM的优势,能够接收、推理并输出多模态信息。

2、MLLM的基本构成

MLLM通常由三个模块组成:预训练的模态编码器、预训练的LLM和一个连接它们的模态接口模态编码器将原始信息(如图像或音频)压缩成更紧凑的表示。预训练的LLM则负责理解和推理处理过的信号。模态接口用于对齐不同的模态。一些MLLM还包括一个生成器,用于输出除文本之外的其他模态。

2.1 模态编码器

模态编码器的作用是将原始信息压缩成LLM能够理解的紧凑表示。常见的做法是使用预训练的编码器,这些编码器已经在其他模态上进行了对齐。例如,CLIP结合了一个通过大规模预训练在图像-文本对上语义对齐的视觉编码器。因此,使用这种最初就已经预对齐的编码器与大型语言模型(LLMs)进行对齐预训练会更容易。

表1总结了常用的一系列图像编码器。除了普通的CLIP图像编码器之外,一些研究还探索了使用其他变体。 例如,MiniGPT-4采用了EVA-CLIP(ViT-G/14)编码器,该编码器使用改进的训练技术进行训练。相比之下,Osprey引入了一个基于卷积的ConvNext-L编码器,以利用更高分辨率和多级特征。

在选择编码器时,通常会考虑诸如分辨率、参数大小预训练语料库等因素。值得注意的是,许多研究已经通过实验验证了使用更高分辨率可以实现显著的性能提升。提高输入分辨率的方法可以分为直接缩放分块方法

直接缩放方式将更高分辨率的图像输入到编码器中,这通常涉及进一步调整编码器或替换为更高分辨率的预训练编码器。同样,CogAgent使用双编码器机制,其中两个编码器分别处理高分辨率和低分辨率图像。通过交叉注意力,将高分辨率特征注入到低分辨率分支中。

分块方法将高分辨率图像切割成小块,并重用低分辨率编码器。例如,Monkey和SPHINX将大图像分割成较小的块,并将子图像与降采样的高分辨率图像一起发送到图像编码器,其中子图像和低分辨率图像分别捕获局部和全局特征。

2.2 预训练LLM

与从头开始训练一个大型语言模型(LLM)相比,使用预训练的模型更为高效和实用。通过在网络语料库上的大规模预训练,LLMs已经嵌入了丰富的世界知识,并展现出强大的泛化和推理能力。

在表2中总结了常用的和公开可用的LLMs。值得注意的是,大多数LLMs属于因果解码器类别,遵循GPT-3。其中,Flan-T5系列是较早在BLIP-2和InstructBLIP等工作中使用的LLMs。LLaMA系列Vicuna家族是引起学术界广泛关注的代表性开源LLMs,这两个LLMs主要在英语语料库上进行预训练,因此它们在多语言支持方面受限,例如中文。相比之下,Qwen是一个支持中文和英文的双语LLM。

扩大LLMs的参数规模也能带来额外的收益,类似于提高输入分辨率的情况。具体来说,刘等人发现,仅仅将LLM从70亿参数扩大到130亿参数就能在各种基准测试上带来全面的提升。此外,当使用340亿参数的LLM时,模型显示出了在训练期间仅使用英文多模态数据时的零样本中文能力。

也有一些工作使用较小的LLMs以便于在移动设备上部署。例如,MobileVLM系列使用了缩小版的LLaMA(称为MobileLLaMA 1.4B/2.7B),使得在移动处理器上能够高效推理。

2.3 模态接口

由于LLM只能感知文本,因此需要一个接口来建立自然语言和其他模态之间的桥梁。实践中,通常在预训练的视觉编码器和LLM之间引入一个可学习的连接器。另一种方法是在专家模型的帮助下将图像翻译成语言,然后将语言发送给LLM。

可学习的连接器(Learnable Connector)负责弥合不同模态之间的差距。具体来说,该模块将信息投影到LLM能够高效理解的空间中。根据多模态信息融合的方式,大致有两种实现这种接口的方法,即令牌级别(token-level)和特征级别(feature-level)融合。

  1. 令牌级别(Token-level)融合

    • 在这种方法中,多模态信息被转换成LLM可以处理的令牌(tokens),这些令牌可以直接嵌入到文本序列中,比如BLIP-2。
    • 例如,图像或音频特征可以被转换成特定的令牌,然后与文本令牌一起被送入LLM进行处理。
    • 这种方法的优点是可以直接利用LLM的序列处理能力,但可能需要复杂的令牌设计和预处理步骤。
  2. 特征级别(Feature-level)融合

    • 在特征级别融合中,不同模态的特征被映射到一个共同的特征空间,然后在这个空间中进行融合。
    • 这种方法通常涉及到将图像、音频等模态的特征向量与文本特征向量进行某种形式的组合或加权。
    • 特征级别融合的优点是可以更灵活地处理不同模态的特征,但可能需要更复杂的神经网络架构来实现有效的特征交互。

这两种方法都有其优势和挑战,选择哪一种方法取决于具体的应用场景、数据特性以及模型的设计。在实际应用中,可能需要根据性能和效率的考量来调整和优化连接器的设计。

特征级别(Feature-level)融合通过插入额外的模块来实现文本特征和视觉特征之间的深度交互和融合。以下是一些具体的例子:

  1. Flamingo:Flamingo模型在LLMs的固定Transformer层之间插入额外的交叉注意力层,从而将语言特征与外部视觉提示相结合。Flamingo采用了感知重采样(Perceiver Resampler)技术和门控交叉注意力(Gated Cross-Attention)技术进行视觉多模态信息和LLM的融合。

  2. CogVLM:CogVLM在每个Transformer层中插入一个视觉专家模块,以实现视觉和语言特征之间的双重交互和融合[75]。CogVLM模型包括四个基本组件:视觉转换编码器(ViT)、MLP适配器、预训练的大型语言模型(GPT)和视觉专家模块[23]。视觉专家模块在每一层中由QKV矩阵和每一层的MLP组成,QKV矩阵和MLP的形状与预训练语言模型的形状相同,并从预训练的语言模型中初始化。

  3. LLaMA-Adapter:LLaMA-Adapter引入可学习的提示(prompts)到Transformer层中,这是一种轻量级的方法,使用可学习的提示和零初始化的注意力来适配LLaMA,使其成为一个遵循指令的模型。

这些方法通过在预训练的视觉编码器和LLM之间引入可学习的连接器,有效地实现了不同模态之间的深度融合和交互。通过这种方式,模型能够更好地理解和处理多模态输入,提高在多模态任务上的性能。

在参数规模方面,可学习的接口通常与编码器和大型语言模型(LLMs)相比只占很小一部分。以Qwen-VL为例,Q-Former的参数规模约为0.08亿,占整个参数的不到1%,而编码器和LLM分别占约19.8%(1.9亿)和80.2%(7.7亿)

3、训练策略和数据

MLLM的训练分为三个阶段:预训练、指令调优和对齐调优。每个阶段都需要不同类型的数据,并实现不同的目标。

3.1 预训练

预训练的主要目标是对齐不同模态并学习多模态世界知识。这通常需要大规模的文本配对数据,例如图像描述数据。

3.2 指令调优

指令调优旨在教会模型更好地理解用户的指令并完成任务。这种调优方式使得LLM能够通过遵循新指令泛化到未见任务,从而提高零样本性能

3.3 对齐调优

对齐调优通常用于需要模型与特定人为偏好对齐的场景,例如减少幻觉响应。目前主要有两种技术:基于人类反馈的强化学习(RLHF)和直接偏好优化(DPO)。

4、评估

评估是MLLM开发的重要组成部分,它为模型优化提供反馈,并帮助比较不同模型的性能。MLLM的评估可以分为封闭集开放集两种类型。

4.1 封闭集

封闭集问题是指可能的答案选项被预定义并限制在有限集合中的问题。评估通常在特定任务的数据集上进行。

4.2 开放集

与封闭集问题相比,开放集问题的回答可以更加灵活,MLLM在这类问题中通常扮演聊天机器人的角色。

5、MLLM的扩展

MLLM的研究在扩展其能力方面取得了显著进展,从更强大的基础能力到更广泛的应用场景覆盖。

5.1 粒度支持

为了促进代理与用户之间的更好交互,研究人员开发了具有更细粒度输入和输出支持的MLLM。

5.2 模态支持

增加对模态的支持是MLLM研究的趋势之一。研究人员探索了使MLLM适应支持更多模态内容的输入,如3D点云。

5.3 语言支持

当前模型主要是单语的,部分原因是非英语训练语料库的质量参差不齐。一些工作致力于开发多语言模型,以便覆盖更广泛的用户群体。

5.4 场景/任务扩展

除了开发通用的通用助手外,一些研究还专注于更具体的应用场景,其中需要考虑实际条件,而另一些研究则将MLLM扩展到具有特定专业知识的下游任务。

6、多模态幻觉

多模态幻觉是指MLLM生成的回答与图像内容不一致的现象。这是一个基础且重要的问题,已经引起了越来越多的关注。

6.1 评估方法

评估多模态幻觉的方法包括CHAIR、POPE、MME、HaELM和FaithScore等。

6.2 缓解方法

缓解多模态幻觉的方法大致可分为三类:预校正、过程中校正和后校正。

7、扩展技术

7.1 多模态上下文学习(M-ICL)

M-ICL是LLM的重要能力之一,它允许模型从少数示例中学习并推广到新问题,从而以少样本的方式解决复杂任务。

7.2 多模态链式推理(M-CoT)

M-CoT是将LLM的链式推理能力扩展到多模态领域。M-CoT要求模型不仅输出最终答案,还输出导致答案的推理过程。

7.3 LLM辅助视觉推理

LLM辅助视觉推理系统利用预训练的LLM作为助手,执行视觉推理任务。这些系统表现出强大的泛化能力、新兴能力和更好的交互性及控制性。

8、挑战和未来方向

MLLM的发展仍处于初级阶段,存在许多需要改进的地方:

  • 处理长上下文的多模态信息:当前的MLLM在处理长上下文的多模态信息方面存在限制,这限制了具有更多多模态标记的高级模型的发展。
  • 遵循复杂指令:MLLM需要升级以遵循更复杂的指令,例如生成高质量的问题-答案对数据。
  • M-ICL和M-CoT技术的改进:M-ICL和M-CoT技术的研究仍处于初级阶段,MLLM的相关能力较弱,因此探索其背后的机制和潜在改进是有意义的。
  • 基于MLLM的具身代理的发展:基于MLLM的具身代理是一个热门话题,开发能够与真实世界互动的代理模型具有重要意义。
  • 安全问题:与LLM类似,MLLM可能容易受到精心设计的攻击,可能会被误导输出有偏见或不期望的回答。因此,提高模型的安全性将是一个重要的研究课题。

结论

本文综述了MLLM的现有文献,并提供了其主要方向的广泛视角,包括基本配方和相关扩展。此外,文章强调了当前研究中需要填补的差距,并指出了一些有前景的研究方向。希望本综述能为读者提供MLLM当前进展的清晰图景,并激发更多的研究工作。

相关文章:

2024多模态大模型综述最新总结

摘要 随着人工智能技术的快速发展,多模态大模型(MLLM)已成为研究的新热点。这些模型以强大的大型语言模型(LLM)为基础,能够处理和理解多种模态信息,如文本、图像、视频和音频。本文综述了MLLM的…...

Redis——缓存穿透

文章目录 1. 问题介绍1.1 定义1.2 举例 2. 解决方案2.1 方案一:空值缓存2.1.1 做法2.1.2 举例2.1.3 示例代码2.1.4 优点2.1.5 缺点 2.2 方案二:布隆过滤器2.2.1 思想2.2.2 做法2.2.3 示例代码2.2.4 优点2.2.5 缺点 2.3 方案三:限流3. 总结 1.…...

1.gitlab 服务器搭建流程

前提条件: 一、服务器硬件水平 搭建gitlab服务器最低配置要求2核4G,低于这个配置的服务器运行效果很差。 gitlab官网:https://about.gitlab.com/ 下载地址:gitlab/gitlab-ce - Packages packages.gitlab.com 本机ubuntu 二、安装依赖 su…...

McDonald‘s Event-Driven Architecture 麦当劳事件驱动架构

原文链接 1 mcdonalds-technical-blog/ 原文链接 2 mcdonalds-technical-blog/ 麦当劳在异步、事务性和分析性处理用例中使用跨技术栈的事件,包括移动订单进度跟踪和向客户发送营销通信(交易和促销)。 统一事件平台(unified eve…...

GTID详解

概念和组成 1,全局事务表示:global transaction identifiers 2, GTID和事务一一对应,并且全局唯一 3,一个GTID在一个服务器上只执行一次 4,mysql 5.6.5开始支持 组成 GTID server_uuid:transaction_id 如&#xf…...

图解HTTP-HTTP状态码

状态码 状态码的职责是当客户端向服务器端发送请求时,描述返回的请求结果。 类别原因短语1XXInformational(信息状态码)接收的请求正在处理2XXSuccess(成功状态码)请求正常处理完毕4XXRedirection (重定向状态码)需要…...

sh cmake-linux.sh -- --skip-license --prefix = $MY_INSTALL_DIR

本文来自天工AI --------- 命令用于安装CMake的脚本,其中--skip-license参数表示跳过许可协议的显示,--prefix参数指定了CMake的安装目录。$MYINSTALLDIR是一个环境变量,应该在运行命令之前设置为您想要安装CMake的目录。 -------- sh xx…...

MySQL 在window免安装启动

复制my.ini文件 初始化命令:mysqld --initialize --console 执行启动bat:启动mysql.bat 主要命令是:mysqld --standalone 免密码启动mysql: mysqld --defaults-file"D:\xxx\soft\mysql-8.0.40-winx64\my.ini" …...

[JavaScript] 我该怎么去写一个canvas游戏

首先你得知道canvas的基础语法,此处不过多赘述. 一、如何更新视图 canvas里面有个clearRect方法,可以遮住画布中一个矩形部分. 但是你想这样做就难免会遮住一些本不该遮住的东西,因为它是一个矩形,并且你还要计算它的位置和尺寸…...

【潜意识Java】深度解析黑马项目《苍穹外卖》与蓝桥杯算法的结合问题

目录 为什么要结合项目与算法? 1. 蓝桥杯与《苍穹外卖》项目的结合 实例:基于蓝桥杯算法思想的订单配送路径规划 问题描述: 代码实现:使用动态规划解决旅行商问题 代码解析: 为什么这个题目与蓝桥杯相关&#x…...

python报错系列(16)--pyinstaller ????????

系列文章目录 文章目录 系列文章目录前言一、pyinstaller ????????1.报错如下2.安装pyinstaller3.报错如下:4.封装py文件为exe成功5.国内源 总结 前言 一、pyinstaller ??? 1.报错如下 PS D:\Users\gxcaoty\Desktop\性能覆盖率> pyinstaller37.exe…...

Pytorch | 从零构建ResNet对CIFAR10进行分类

Pytorch | 从零构建ResNet对CIFAR10进行分类 CIFAR10数据集ResNet核心思想网络结构创新点优点应用 ResNet结构代码详解结构代码代码详解BasicBlock 类ResNet 类ResNet18、ResNet34、ResNet50、ResNet101、ResNet152函数 训练过程和测试结果代码汇总resnet.pytrain.pytest.py 前…...

Spring Boot 配置Kafka

1 Kafka Kafka 是由 Linkedin 公司开发的,它是一个分布式的,支持多分区、多副本,基于 Zookeeper 的分布式消息流平台,它同时也是一款开源的基于发布订阅模式的消息引擎系统。 2 Maven依赖 <dependency><groupId>org.springframework.kafka</groupId><…...

基于单片机的火灾报警器 (论文+源码)

1.系统设计 本系统由火灾检测模块、A/D转换模块、信号处理模块、声光报警模块和灭火装置模块组成。火灾检测模块由温度检测和烟雾检测构成&#xff0c;其温度传感器选用DS18B20&#xff0c;烟雾传感器选用MQ-2烟雾传感器。A/D转换模块选用常用的模数转换芯片ADC0832。声光报警…...

分析excel硕士序列数据提示词——包含对特征的筛选,非0值的过滤

文章目录 1 分析出发点2 围绕出发点的文件分析3 功能模块计算重心相关性计算教学倾向百分比多列相关性计算结果封装证伪——过滤0后的交叉相关系数封装和总控——批量处理特征筛选——筛选提问倾向最大和最小的前五代码总的清洗1 分析出发点 写一个python代码,遍历"D:\Ba…...

MongoDB 更新文档

关于MongoDB更新文档的操作&#xff0c;可以通过多种方法实现。以下是一些常用的方法&#xff1a; updateOne() 方法&#xff1a;用于更新匹配过滤器的单个文档。其语法为 db.collection.updateOne(filter, update, options)。其中&#xff0c;filter 用于查找文档的查询条件&a…...

分布式协同 - 分布式事务_TCC解决方案

文章目录 导图Pre流程图2PC VS 3PC VS TCC2PC&#xff08;Two-Phase Commit&#xff0c;二阶段提交&#xff09;3PC&#xff08;Three-Phase Commit&#xff0c;三阶段提交&#xff09;TCC&#xff08;Try-Confirm-Cancel&#xff09;2PC、3PC与TCC的区别2PC、3PC与TCC的联系 导…...

MFC/C++学习系列之简单记录13

MFC/C学习系列之简单记录13 前言memsetList Control代码注意 总结 前言 今天记录一下memset和List control 的使用吧&#xff01; memset memset通常在初始化变量或清空内存区域的时候使用&#xff0c;可以对变量设定特定的值。 使用&#xff1a; 头文件&#xff1a; C&#…...

PostgreSQL表达式的类型

PostgreSQL表达式是数据库查询中非常重要的组成部分&#xff0c;它们由一个或多个值、运算符和PostgreSQL函数组合而成&#xff0c;用于计算出一个单一的结果。这些表达式类似于公式&#xff0c;可以用查询语言编写&#xff0c;并用于查询数据库中的特定数据集。 PostgreSQL表…...

速通Python 第四节——函数

一、函数 编程中的函数和数学中的函数有一定的相似之处. 数学上的函数, 比如 y sin x , x 取不同的值, y 就会得到不同的结果. 编程中的函数, 是一段 可以被重复使用的代码片段 代码示例 : 求一段范围的数的和 , 不使用函数 # 1. 求 1 - 100 的和 sum 0 for i in range(1, …...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全&#xff1a;零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言&#xff1a;云原生安全的范式革命 随着云原生技术的普及&#xff0c;安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测&#xff0c;到2025年&#xff0c;零信任架构将成为超…...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列&#xff0c;以便知晓哪些列包含有价值的数据&#xff0c;…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

适应性Java用于现代 API:REST、GraphQL 和事件驱动

在快速发展的软件开发领域&#xff0c;REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名&#xff0c;不断适应这些现代范式的需求。随着不断发展的生态系统&#xff0c;Java 在现代 API 方…...