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

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-17 07:14:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-17 07:14:01       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-17 07:14:01       58 阅读
  4. Python语言-面向对象

    2024-07-17 07:14:01       69 阅读

热门阅读

  1. 掌握Xcode的魔术:自定义Storyboard的创建与管理

    2024-07-17 07:14:01       29 阅读
  2. Telegram Bot、小程序开发(三)Mini Apps小程序

    2024-07-17 07:14:01       22 阅读
  3. Google 地图参考手册

    2024-07-17 07:14:01       25 阅读
  4. 通过swagger自动生成jmeter脚本

    2024-07-17 07:14:01       23 阅读
  5. B树(B-tree)

    2024-07-17 07:14:01       28 阅读
  6. 081、Python 关于方法重写

    2024-07-17 07:14:01       21 阅读
  7. 【linux 100条命令】

    2024-07-17 07:14:01       23 阅读
  8. Emacs: 可扩展的编辑器之神

    2024-07-17 07:14:01       27 阅读
  9. 如何在VSCode中配置Python环境

    2024-07-17 07:14:01       27 阅读
  10. 计算机视觉和自然语言处理:OCR 模型

    2024-07-17 07:14:01       25 阅读
  11. 【Memcached】一文详解 Memcached

    2024-07-17 07:14:01       24 阅读