Bootstrap

51c多模态~合集2

我自己的原文哦~  https://blog.51cto.com/whaosoft/11586489

#史上最大多模态数据集

开源多模态大模型或将开始腾飞。

值此 Llama 3.1 占领各大头条之际,又突然冒出了另一个也非常重要的发布 —— 一个规模空前的开源多模态数据集。

对大模型来说,数据集的重要性无需多言,甚至可以说没有大型数据集就不可能有大模型。现在正是多模态大模型(LMM)发展正盛的时候,规模足够大的优质且开源的多模态数据集已经成为该领域的一大「刚需」。

不过,相比于开源的文本数据集,现有的开源多模态数据集都比较小、多样性也不足,并且来源基本都是 HTML 文档 —— 这就限制了数据的广度和多样性。这无疑限制了开源 LMM 的发展,让开源 LMM 与闭源 LMM 之间的差异变得非常大。

近日,华盛顿大学、Salesforce Research 和斯坦福大学等机构的联合团队填补了这一空白,构建了一个万亿 token 级的交织多模态的开源数据集 MINT-1T(Multimodal INTerleaved)。毫无疑问,这是目前最大的开源多模态数据集。

  • 数据集地址:https://github.com/mlfoundations/MINT-1T
  • 论文地址:https://arxiv.org/abs/2406.11271
  • 论文标题:MINT-1T: Scaling Open-Source Multimodal Data by 10x: A Multimodal Dataset with One Trillion Tokens

MINT-1T 共包含一万亿文本 token 和三十亿张图像,并且其有 HTML/PDF/ArXiv 等多种不同来源。在 MINT-1T 问世之前,该领域最大的开源数据集是 OBELICS,其包含 1150 亿文本 token 和 3.53 亿张图像,并且来源只有 HTML。图 1 比较了这些数据集。

图片

数据集的构建

首先,该团队从多样化的来源(包括 HTML、PDF、ArXiv)收集了大量多模态数据,图 2 展示了这些不同来源的多模态文档样本。

图片

然后,为了提高数据质量和安全性,他们执行了文本质量过滤、图像过滤、安全过滤(包括去除 NSFW 图像和可识别个人身份的信息)以及去重。图 3 简要展示了这些数据过滤过程。

图片

最终,他们得到的 MINT-1T 数据集包含 9220 亿 HTML token、1060 亿 PDF token 和 90 亿 ArXiv token。值得注意的是,整个数据处理过程耗费了大约 420 万 CPU 小时数。表 1 对比了一些常见的开源或闭源多模态数据集。

图片

模型实验

该团队也实验了使用该数据集训练多模态模型的效果,并与其它数据集进行了比较。

他们使用的模型架构是 Salesforce 的 XGen-MM,评估的则是模型在数据集上学习之后的上下文学习和多图像推理能力。评估基准包括:视觉描述基准(COCO 和 TextCaps)、视觉问答基准(VQAv2、OK-VQA、TextVQA 和 VizWiz)、多图像推理基准(MMMU 和 Mantis-Eval)。

实验结果

在 HTML 文档上训练

该团队首先对比了 MINT-1T 的 HTML 部分与 OBELICS;因为 OBELICS 是之前领先的多模态数据集并且也是基于 HTML 文档,他们基于这两个数据集分别用 100 亿多模态 token 训练了两个模型,并评估了它们的上下文学习性能。

表 2 给出了在常见基准上的 4-shot 和 8-shot 性能。

图片

可以看到,对于 VQA(视觉问答)任务,在 MINT-1T HTML 文档上训练的模型表现优于在 OBELICS 训练的模型,但前者在视觉描述任务上表现更差一些。平均而言,OBELICS 比 MINT-1T (HTML) 略好一点。

添加 PDF 和 ArXiv 文档

之后,该团队又在 MINT-1T 全数据集上进行了测试,即同时包含 HTML、PDF 和 ArXiv 文档。他们通常采样了 100 亿多模态 token,其中 50% 来自 HTML、45% 来自 PDF、5% 来自 ArXiv。

结果同样见表 2,可以看到在 MINT-1T 混合数据上训练的模型在大多数基准上都优于在 OBELICS 和 MINT-1T (HTML) 上训练的模型。

而在更为复杂的多模态推理任务上,如表 3 所示,用 MINT-1T 训练的模型在 MMMU 上优于用 OBELICS 训练的模型,但在 Mantis-Eval 基准上不及后者。

图片

更细粒度的测试和模型架构的影响请参考原论文。

这个超大规模的开源多模态数据集能否成为一系列传奇的起点,最终造就一个类似 Llama 系列模型那样的多模态大模型系列呢?让我们拭目以待吧。

#Bootstrapped Preference Optimization(BPO)

是真看到了,还是以为自己看到了?多模态大模型对文本预训练知识的过度依赖该解决了

本文第一作者皮仁杰是香港科技大学三年级博士生,师从张潼教授和周晓方教授。此前获得香港大学计算机工程学士学位。研究兴趣为多模态大语言模型,以数据为中心的人工智能,以及自动化机器学习。

随着大型语言模型(LLMs)的进步,多模态大型语言模型(MLLMs)迅速发展。它们使用预训练的视觉编码器处理图像,并将图像与文本信息一同作为 Token 嵌入输入至 LLMs,从而扩展了模型处理图像输入的对话能力。这种能力的提升为自动驾驶和医疗助手等多种潜在应用领域带来了可能性。

尽管 MLLMs 具有出色的图文理解能力,但它们仍然会出现错误或幻觉,生成与输入图像不相符的相应,例如回答不存在的对象或错误识别属性等。我们认为多模态大模型在不同训练阶段的数据量和训练时间的不平衡是产生这类偏见的主要原因之一。多模态大模型的语言模块往往使用了海量的文本数据进行预训练,而模态对齐阶段则使用更小的数据规模和更短的训练时间。

为了解决上述问题,我们提出了一种偏好对齐方法 --Bootstrapped Preference Optimization(BPO),能在缓解多模态大模型的幻觉现象的同时提升模型的视觉理解能力。

  • 论文标题:Strengthening Multimodal Large Language Model with Bootstrapped Preference Optimization
  • 论文链接:https://arxiv.org/pdf/2403.08730
  • 代码链接:https://github.com/pipilurj/bootstrapped-preference-optimization-BPO-

图片

具体来讲,我们设计了两种方法去自动构建偏好学习的负样本,使得多模态模型对与训练的过度依赖暴露出来。之后,我们用原本的数据标注当作正样本,对多模态模型进行偏好微调。总的来说,我们的主要贡献有:

1. 我们提出了一种新的视角,将多模态对齐问题转化为偏好学习任务,其中预训练偏见和视觉理解能力被视为旧的和新的偏好;

2. 我们介绍了一种自动化构建大规模偏好数据集的方法。通过该方法能构造出大量带有预训练偏见信息的负面样本;

3. 在大量实验上证明了我们的方法能有效地提升多模态大模型对于图像的认知能力,训练后的模型在多个基准测试中性能得到提升。

可扩展的偏好数据集构建

对于偏好数据集的正面样本,已经有许多为监督微调而设计的现成数据集,例如通过 LlaVA 和 MiniGPT4 生成的高质量标注问答数据、ShareGPTV 利用强大的 GPT4-V 作为工具为图像生成高质量标题。我们将这些已标注完成的公开数据集作为偏好数据集中的正面响应,在保证高质量数据对的同时避免了昂贵的人工标注。

为了能收集到能反映预训练偏见的负面响应数据,我们提出了两种方法。

a. 弱化图像提示:我们给偏好数据集中的图片数据加上噪声,以此破坏图像特征,使多模态大模型在回答时更倾向原始的预训练分布,由此产生的错误响应会包含 LLM 模块的固有偏见。从图中可以看到,我们通过像图片中加入不同程度的噪声,正确答案出现的概率就越小,带有预训练偏见的答案出现的概率也就越大。

图片

b. 错误注入:我们要求多模态大模型对应的大语言模型直接改写响应,要求模型生成与答案相近但不完全一样的错误回答。

接下来,我们采用直接偏好优化(DPO)对多模态模型进行优化:

图片

实验评估

我们采用经过 BPO 微调过后的 LLaVA 模型(LLaVA-7B-BPO 和 LLaVA-13B-BPO)在 MM-Vet,LLaVA-Wild 和 Object HalBench 上测试。MM-Vet 和 LlaVA-Bench 是专门用来衡量模型综合能力的榜单,Object HalBench 则是评估多模态大模型的视觉可信度。

实验结果表明,经过 BPO 微调后的模型在三个基准测试榜单的所有任务中均取得领先。在大多数任务上,LLaVA-7B-BPO 的表现甚至超过了未曾微调的 LLaVa1.5-13B 模型。

图片

我们还将 BPO 与监督微调训练(SFT)进行对比。我们通过直接使用数据集中的正样本作为监督数据对模型进行微调。实验表明经过 BPO 微调过的多模态大模型在不同类别的子任务下的表现均优于 SFT 微调。

图片

在定性结果上,我们对比了 BPO 微调前后多模态大模型的表现。我们发现经过 BPO 微调后的模型能生成更忠诚于图像输入的答案,并且包含更少错误信息。

图片

更多研究细节,可参考原论文。

#PreFLMR

剑桥大学团队开源:赋能多模态大模型RAG应用,首个预训练通用多模态后期交互知识检索器

本篇分享 ACL 2024 论文​​PreFLMR: Scaling Up Fine-Grained Late-Interaction Multi-modal Retrievers​​,由剑桥大学团队开源,赋能多模态大模型 RAG 应用,首个预训练通用多模态后期交互知识检索器。

  • 论文链接:https://arxiv.org/abs/2402.08327
  • 项目主页:https://preflmr.github.io/

简介

PreFLMR模型是一个通用的预训练多模态知识检索器,可用于搭建多模态RAG应用。模型基于发表于 NeurIPS 2023 的 Fine-grained Late-interaction Multi-modal Retriever (FLMR) 并进行了模型改进和 M2KR 上的大规模预训练。目前训练数据、预训练权重、微调代码等均已开源。该模型已在企业级RAG应用成功落地。作者团队将在8月10日-17日参加ACL 2024,欢迎学术交流和商业合作。

背景

尽管多模态大模型(例如GPT4-Vision、Gemini等)展现出了强大的通用图文理解能力,它们在回答需要专业知识的问题时表现依然不尽人意。即使GPT4-Vision也无法回答知识密集型问题(图一上),这成为了很多企业级落地应用的瓶颈。

图片

图1:GPT4-Vision在PreFLMR多模态知识检索器的帮助下可以获得相关知识,生成正确的答案。图中展示了模型的真实输出。

针对这个问题,检索增强生成(RAG,Retrieval-Augmented Generation)提供了一个简单有效的让多模态大模型成为”领域专家”的方案:首先,一个轻量的知识检索器(Knowledge Retriever)从专业数据库(例如Wikipedia或企业知识库)中获得相关的专业知识;然后,大模型将这些知识和问题一起作为输入,生成准确的答案。多模态知识提取器的知识 “召回能力”直接决定了大模型在回答推理时能否获得准确的专业知识。

近期,剑桥大学信息工程系人工智能实验室完整开源了首个预训练、通用多模态后期交互知识检索器PreFLMR (Pre-trained Fine-grained Late-interaction Multi-modal Retriever)。相比以往常见的模型,PreFLMR有以下特点:

  1. PreFLMR是一个可以解决文文检索,图文检索,知识检索等多个子任务的通用预训练模型。该模型经过百万级的多模态数据预训练后,在多个下游检索任务中取得了优秀的表现。同时,作为一个优秀的基底模型,PreFLMR在私有数据上稍加训练就能够获得表现极佳的领域专用模型。

图片

图2:PreFLMR模型同时在多项任务上取得极佳的多模态检索表现,是一个极强的预训练基底模型。

  1. 传统的密集文本检索(Dense Passage Retrieval, DPR)只使用一个向量表征问询(Query)或文档(Document)。剑桥团队在NeurIPS 2023发表的FLMR模型证明了DPR的单向量表征设计会导致细粒度信息损失,导致DPR在需要精细信息匹配的检索任务上表现不佳。尤其是在多模态任务中,用户的问询(Query)包含复杂场景信息,压缩至一维向量极大抑制了特征的表达能力。PreFLMR继承并改进了FLMR的结构,使其在多模态知识检索中有得天独厚的优势。

图片

图3:PreFLMR在字符级别(Token level)上编码问询(Query,左侧1、2、3)和文档(Document,右侧4),相比于将所有信息压缩至一维向量的DPR系统有信息细粒度上的优势。

  1. PreFLMR能够根据用户输入的指令(例如“提取能用于回答以下问题的文档”或“提取与图中物品相关的文档”),从庞大的知识库中提取相关的文档,帮助多模态大模型大幅提升在专业知识问答任务上的表现。

图片

图4:PreFLMR可以同时处理图片提取文档、根据问题提取文档、根据问题和图片一起提取文档的多模态问询任务。

剑桥大学团队开源了三个不同规模的模型,模型的参数量由小到大分别为:PreFLMR_ViT-B (207M)、PreFLMR_ViT-L (422M)、PreFLMR_ViT-G (2B),供使用者根据实际情况选取。

除了开源模型PreFLMR本身,该项目还在该研究方向做出了两个重要贡献:

  1. 该项目同时开源了一个训练和评估通用知识检索器的大规模数据集,Multi-task Multi-modal Knowledge Retrieval Benchmark (M2KR),包含10个在学界中被广泛研究的检索子任务和总计超过百万的检索对。
  2. 在论文中,剑桥大学团队对比了不同大小、不同表现的图像编码器和文本编码器,总结了扩大参数和预训练多模态后期交互知识检索系统的最佳实践,为未来的通用检索模型提供经验性的指导。

下文将简略介绍M2KR数据集,PreFLMR模型,和实验结果分析。

M2KR 数据集

为了大规模预训练和评估通用多模态检索模型,作者汇编了十个公开的数据集并将其转换为统一的问题-文档检索格式。这些数据集的原本任务包括图像描述(image captioning),多模态对话(multi-modal dialogue)等等。下图展示了其中五个任务的问题(第一行)和对应文档(第二行)。

图片

图5:M2KR数据集中的部分知识提取任务

PreFLMR检索模型

图片

图6:PreFLMR的模型结构。问询(Query)被编码为Token-level的特征。PreFLMR对问询矩阵中的每一个向量,找到文档矩阵中的最近向量并计算点积,然后对这些最大点积求和得到最后的相关度。

PreFLMR模型基于发表于NeurIPS 2023的Fine-grained Late-interaction Multi-modal Retriever (FLMR)并进行了模型改进和M2KR上的大规模预训练。

相比于DPR,FLMR和PreFLMR用由所有的token向量组成的矩阵对文档和问询进行表征。Tokens包含文本tokens和投射到文本空间中的图像tokens。后期交互(late interaction)是一种高效计算两个表征矩阵之间相关性的算法。

具体做法为:对问询矩阵中的每一个向量,找到文档矩阵中的最近向量并计算点积。然后对这些最大点积求和得到最后的相关度。这样,每个token的表征都可以显式地影响最终的相关性,以此保留了token-level的细粒度(fine-grained)信息。

得益于专门的后期交互检索引擎,PreFLMR在40万文档中提取100个相关文档仅需0.2秒,这极大地提高了RAG场景中的可用性。

PreFLMR的预训练包含以下四个阶段:

  • 文本编码器预训练:首先,在MSMARCO(一个纯文本知识检索数据集)上预训练一个后期交互文文检索模型作为PreFLMR的文本编码器。
  • 图像-文本投射层预训练:其次,在M2KR上训练图像-文本投射层并冻结其它部分。该阶段只使用经过投射的图像向量进行检索,旨在防止模型过度依赖文本信息。
  • 持续预训练:然后,在E-VQA,M2KR中的一个高质量知识密集型视觉问答任务上持续训练文本编码器和图像-文本投射层。这一阶段旨在提升PreFLMR的精细知识检索能力。
  • 通用检索训练:最后,在整个M2KR数据集上训练所有权重,只冻结图像编码器。同时,将问询文本编码器和文档文本编码器的参数解锁进行分别训练。这一阶段旨在提高PreFLMR的通用检索能力。

同时,作者展示了PreFLMR可以在子数据集(如OK-VQA、Infoseek)上进一步微调以在特定任务上获得更好的检索性能。

实验结果和纵向扩展

最佳检索结果:表现最好的PreFLMR模型使用ViT-G作为图像编码器和ColBERT-base-v2作为文本编码器,总计二十亿参数。它在7个M2KR检索子任务(WIT,OVEN,Infoseek, E-VQA,OKVQA等)上取得了超越基线模型的表现。

扩展视觉编码更加有效:作者发现将图像编码器ViT从ViT-B(86M)升级到ViT-L(307M)带来了显著的效果提升,但是将文本编码器ColBERT从base(110M)扩展到large(345M)导致表现下降并造成了训练不稳定问题。实验结果表明对于后期交互多模态检索系统,增加视觉编码器的参数带来的回报更大。同时,使用多层Cross-attention进行图像-文本投射的效果与使用单层相同,因此图像-文本投射网络的设计并不需要过于复杂。

PreFLMR让RAG更加有效:在知识密集型视觉问答任务上,使用PreFLMR进行检索增强大大提高了最终系统的表现:在Infoseek和EVQA上分别达到了94%和275%的效果提升,经过简单的微调,基于BLIP-2的模型能够击败千亿参数量的PALI-X模型和使用Google API进行增强的PaLM-Bison+Lens系统。

结论

剑桥人工智能实验室提出的PreFLMR模型是第一个开源的通用后期交互多模态检索模型。经过在M2KR上的百万级数据预训练,PreFLMR在多项检索子任务中展现出强劲的表现。M2KR数据集,PreFLMR模型权重和代码均可以在项目主页 https://preflmr.github.io/ 获取。

拓展资源

  • FLMR paper (NeurIPS 2023): https://proceedings.neurips.cc/paper_files/paper/2023/hash/47393e8594c82ce8fd83adc672cf9872-Abstract-Conference.html
  • 代码库:https://github.com/LinWeizheDragon/Retrieval-Augmented-Visual-Question-Answering
  • 英文版博客:https://www.jinghong-chen.net/preflmr-sota-open-sourced-multi/
  • FLMR简介:https://www.jinghong-chen.net/fined-grained-late-interaction-multimodal-retrieval-flmr/

#mPLUG-Owl3

迈向多图长序列理解,阿里开源多模态大模型 mPLUG-Owl3

图片

多模态多轮对话场景

图片

长视频理解场景

阿里的mPLUG系列在多模态大模型领域产出了多项研究工作。从mPLUG-Owl初代模型引入了视觉对齐-语言模型微调的训练模式,到mPLUG-Owl2通过模块化的模态自适应解决模态拉扯,再到mPLUG-DocOwl通过切图建模高分辨率。这一系列模型一直在探索更为高效有效的多模态大语言模型。

尽管近年包括mPLUG-Owl在内的主流多模态大模型在多种单图任务上取得了一系列进展,当前对于多模态大模型来说,多图长序列输入仍然是一个极具挑战性的场景。如图1、2所示的多模态多轮对话、长视频理解等实际应用,就对模型的多图长序列理解能力提出了很高的要求。

现有的支持多图输入的工作,主要存在两个方面的缺陷:LLaVA-Next-Interleave等工作直接将视觉特征与文本序列拼接,在多图长序列输入时会带来很高的推理成本;Flamingo等使用的cross-attention结构,虽然降低了计算成本,但造成了细粒度视觉信息的损失,限制了其在单图和多图场景的性能。

针对上述问题,阿里通义实验室的研究人员提出通用多模态大模型mPLUG-Owl3,该模型能够在支持多图长序列输入的同时,兼顾性能和效率。为实现这一点,作者提出轻量级的hyper attention模块,实现视觉和语言信息的高效自适应融合。与相似参数规模的模型相比,mPLUG-Owl3在单图、多图、视频等多达14个benchmark上表现出SOTA性能。

  • paper: https://arxiv.org/pdf/2408.04840
  • code: https://github.com/X-PLUG/mPLUG-Owl/
  • HF: https://huggingface.co/spaces/mPLUG/mPLUG-Owl3
  • 魔搭:https://modelscope.cn/studios/iic/mPLUG-Owl3

模型结构

mPLUG-Owl3模型的主体结构由视觉编码器SigLIP-400M、语言模型Qwen2和线性连接层组成。视觉编码器提取图像特征后,经线性层映射到与语言模型相同的维度。

作者在文本序列中使用了<|image|>作为图像标记位,并通过self-attention和cross-attention并行建模的方式将视觉特征融合到文本特征中。

与Flamingo、EVLM等工作在语言模型的每一层插入cross-attention层的做法不同,mPLUG-Owl3仅将网络的少数层拓展为提出的Hyper Attention Transformer Block (HATB),从而避免了增加大量参数和计算。

图片

模型结构

HATB模块

如下图(a)所示,Flamingo、IDEFICS等工作采用的cross-attention结构存在以下几点缺陷:(1) 增加大量参数和计算开销;(2) 视觉输入的理解无法受益于语言模型学习到的知识;(3) 未充分考虑图像在输入序列中的位置,限制其在多图场景的性能。

相比之下,作者提出的Hyper Attention Transformer Block (HATB)模块,通过共享LayerNorm、设置模态专属的Key-Value映射、自适应门控等设计,使得文本间的self-attention和跨模态的cross-attention能够高效地并行建模和自适应融合。

图片

HATB模块

具体设计上,如图(b)所示,视觉特征与文本特征首先经过一个共享的LN层。作者在实验中发现,相比为视觉输入单独训练一个LN模块,视觉-语言共享同一个LN表现出更好的收敛性。经过LN层后,继承了mPLUG-Owl2的经验,其为视觉输入设置专属的Key-Value映射,而与文本输入共享相同的Query映射,从而在保留视觉模态特性的同时,使得语言模型能够基于文本语义自适应地获取需要的视觉信息。

在完成文本间self-attention和跨模态cross-attention的并行建模后,作者设计自适应门控机制,通过计算文本特征经线性映射后的激活值获得门控值,实现文本和视觉信息的自适应融合。

此外,作者在进行attention建模之前,引入了多模态交错的旋转位置编码MI-Rope来保留图文的位置信息。由于在文本序列中使用了<|image|>作为图像标记位,对于第n幅图片,其所有patch特征共享对应的标记位的位置编码,从而确保了位置编码不仅能反映图片的顺序,也能反映其在文本序列中的位置。

模型训练

在模型训练上,mPLUG-Owl3采用了三阶段的训练方式:

  1. 第一阶段的预训练中,作者从公开数据中收集和采样了约40M图文对用于跨模态对齐,并更新新引入的模块参数,即线性连接层、视觉KV映射以及动态门控模块的参数。
  2. 第二阶段多图预训练,为增强模型的多图理解能力,作者收集了交错图文、富文本图片和视频这三类数据,并对线性连接层和大语言模型的参数进行更新。
  3. 第三阶段指令微调,使用单图、多图、视频等不同类型的混合数据进行指令微调,训练设置与第二阶段保持一致。三个阶段使用的训练数据及比例如下表所示。

图片

训练数据

实验结果

图片

多图Benchmark评估结果

图片

(多图) MIBench评估结果

作者首先在多个多图benchmark上评估了mPLUG-Owl3的性能。实验结果显示,在NLVR2、Mantis-Eval等多图数据集上,mPLUG-Owl3取得了SOTA性能,领先于Idefics2、Mantis、LLaVA-Interleave等多图模型。

在近期开源的大规模多图评测数据集MIBench上,mPLUG-Owl3也在涵盖多图指令和多模态外部知识等场景的多个任务中取得了大幅领先现有开源模型的效果。

图片

视频数据集评估结果

在MVBench、VideoMME等视频多模态权威benchmark上,mPLUG-Owl3也取得了优于现有多图及视频多模态大模型的性能,体现出模型出色的视频理解能力。

图片

VQA数据集评估结果

图片

(单图)多模态Benchmark评估结果

此外,作者也在多个流行的VQA数据集以及单图输入的多模态benchmark上评估了mPLUG-Owl3的性能。可以看到,尽管mPLUG-Owl3是针对多图长序列设计的,其在单图场景同样具备十分出色的表现。

与相近参数规模的多模态大模型相比,在多个数据集上取得了SOTA效果,甚至在部分数据集上领先于更大参数规模的CogVLM、EVLM等模型。

图片

超长多图序列评估结果

图片

推理效率对比

除了常规的单图、多图和视频理解,作者还利用MMBench验证集数据构造了一个名为Distractor Resistance的新任务,将原始query图片混入多张图片组成的超长序列中,以评估模型面对多图长序列中大量干扰图像时的鲁棒性。

实验结果显示,现有Mantis、LLaVA-Interleave等多图模型的性能均随着序列长度的增加而急剧衰减,而mPLUG-Owl3则在输入多达数百张图像时仍能保持较高的性能。此外,得益于HATB模块的高效设计,mPLUG-Owl3在取得更优性能的同时,兼顾了更高的推理效率。

样例展示

图片

样例1

图片

样例2

上图对比了mPLUG-Owl3和LLaVA-Interleave模型在超长视频理解场景中的表现,对于输入指令,mPLUG-Owl3能够从长达40余分钟的视频中捕捉到关键信息,并给出正确的回答。相比之下,LLaVA-Interleave模型则未能很好地把握细节信息。

#MLLMs

西工大等最新多模态大型语言模型

这里系统地梳理了MLLM在自然语言、视觉和音频等多模态任务中的应用。

摘要——在数据爆炸性增长和技术快速发展的时代,多模态大型语言模型(MLLMs)处于人工智能(AI)系统的前沿。MLLMs旨在无缝集成包括文本、图像、视频、音频和生理序列在内的多种数据类型,解决远远超出单一模态系统能力范围的复杂现实应用问题。在本文中,我们系统地梳理了MLLM在自然语言、视觉和音频等多模态任务中的应用。我们还对不同MLLM在任务中的关注点进行了对比分析,并深入探讨了当前MLLMs的不足之处,并提出了未来研究的潜在方向。通过这些讨论,本文希望为MLLM的进一步发展和应用提供宝贵的见解。

关键词——MLLMs, 任务, AI应用, 融合技术。

多模态大型语言模型(MLLMs)是设计用来处理和集成各种类型数据的复杂人工智能(AI)系统,包括文本、图像、视频、音频和生理序列数据[1],[2],[3] 。随着我们进入多模态数据融合的时代,信息技术的快速进步和数据量的爆炸性增长,单一模态系统的能力已不足以应对复杂的现实任务[4],[5],[6]。因此,MLLMs的发展不仅是技术进化的必然趋势,也是提高AI应用有效性的关键改进。通过融合来自多个数据源的信息,MLLMs培育了更全面和准确的信息表示,这种能力不仅释放了巨大的潜力,还展示了在各个领域的显著实际应用价值。多样化数据集的整合使得MLLMs能够更有效地执行任务,确立其作为下一代技术的不可或缺地位,致力于充分发挥AI技术的潜力[7],[8],[9]。值得注意的是,MLLMs在语言、图像、视频和音频处理等多种多模态任务中表现出了显著的性能。这些模型在集成多模态信息以增强多模态任务的有效性方面表现出色。

在自然语言处理(NLP)任务中,如文本生成和机器翻译,MLLMs利用图像、视频和音频提供上下文支持,增强生成文本的准确性和表达力[10],[11],[12] 。这些模型在情感分析和对话系统中也表现出色,通过整合多模态信息来提高理解和生成能力。特别是,MLLMs通过结合视觉和听觉数据,丰富了文本生成和机器翻译[13],[14],[15]。这些模型提高了生成文本的准确性和表达力,提供了传统模型无法实现的细腻上下文支持。在情感分析和对话系统中,MLLMs能够整合多模态信息,进一步加深系统的理解和响应能力,展示了在人机交互方面的重大进步[16],[17]。

此外,在视觉任务中,MLLMs显著提升了任务的理解、分析和生成能力。整合文本描述和图像指令使得图像分类、目标检测和图像注释等任务更加准确。例如,像GPT-4V[13]和Gemini[18]这样的MLLMs结合图像内容和自然语言描述,产生更生动和精确的注释结果。这些模型在图像生成方面也取得了进展,可以从文本描述生成图像或实现跨模态图像风格迁移,从而拓宽了该领域的可能性。同时,由于视频处理的复杂性,它提出了独特的挑战。然而,MLLMs的出现推动了语言模型在这一领域的能力发展。像NExT-GPT[19]和Sora[20]这样的模型在多模态视频生成方面处于领先地位,通过学习多模态数据生成更丰富和逼真的视频内容。此外,智能视频理解技术的进步,如VideoChat[21]和Video-LLaVA[22],显著增强了分析和处理视频内容的能力。这些发展在虚拟现实、电子游戏和教育应用中承诺了增强的用户体验。

在音频任务中,MLLMs为音频处理任务带来了新的技术变革。传统的音频处理通常依赖于单一模态的信号处理方法,如语音识别[23]或音频分类[24],这些方法在处理复杂的多模态数据时存在局限性。MLLMs通过结合音频信号、文本和视觉信息,能够更好地理解和生成音频相关内容。例如,在语音生成任务中,MLLMs可以利用文本和视觉信息生成更自然和上下文相关的语音输出[25],[26]。在音频理解任务中,这些模型可以结合视觉线索和文本描述,更准确地执行情感识别、音频分类或音频事件检测。此外,MLLMs在跨模态音频文本翻译、音频配乐生成和多模态情感分析等任务中显示出强大的潜力[27],[18]。这些技术进步不仅提高了音频处理的有效性,还扩展了其在智能家居、虚拟助手、影视制作等现实应用中的场景。

本文回顾了MLLM应用的最新进展,在第二节介绍了MLLMs的基本概念和主要架构,第三节描述了它们在不同领域的表现,以识别其优缺点,第四节通过比较分析突出MLLMs的变革性影响,并在第五节提供了未来研究的路线图。我们的讨论旨在激励持续创新,确保MLLMs在AI技术发展的前沿位置。通过对当前实施和进展的全面回顾,本文旨在总结研究成果,提供有价值的参考,并为MLLM领域的未来研究提供指导。我们的目标是激发新思想和新方向,以确保MLLMs在AI技术发展中保持领先地位。​

II. 多模态大型语言模型概述

A. 定义和基本概念

总体而言,MLLMs 代表了人工智能和机器学习领域的重大进展,具备处理和解释多种数据类型(包括文本、图像、音频和视频)的能力[28], [29], [30]。通过整合和合成这些不同模态的数据,MLLMs 实现了对信息更全面和精确的理解和生成[3]。

特别是,MLLMs 是专门设计用来同时处理和解码多模态数据的复杂系统。MLLMs 的核心原理在于不同模态的整合和交互,这显著增强了模型的有效性。这种多模态方法不仅提升了对单一数据类型的理解,还促进了它们之间的更细致的互动,从而扩展了 AI 应用的范围和准确性。例如,在图像描述任务中,MLLMs 利用文本和视觉数据生成准确且上下文相关的图像描述。这种协同作用使模型能够超越单一模态系统的限制,提供更丰富和详细的输出。此外,音频和视觉数据的结合可以大大提高视频理解和注释任务的性能,使 MLLMs 成为需要详细多媒体分析的应用中的宝贵工具。

通过利用各种数据类型的集体优势,MLLMs 不仅增强了 AI 解释和与世界互动的能力,还为机器理解复杂、多方面的信息开辟了新的发展方向。

B. 多模态大型语言模型的主要组件

MLLM 通过多个关键组件有效地处理和整合来自不同模态的数据。这些组件设计用于将各种来源的原始输入转化为可操作的见解,使这些模型非常通用和有效。这些模型的架构大致可以分为三个主要组件:多模态输入编码器、特征融合机制和多模态输出解码器。

多模态输入编码器:多模态输入编码器是 MLLMs 中的关键组件,设计用于将来自不同模态的原始输入数据转化为模型可以有效处理的结构化格式。这个重要模块专门处理不同类型的数据,确保每种数据形式都能被优化编码,从而有效地贡献于模型的整体功能。以下是编码器如何处理每种数据类型的细节:

  • 文本:对于文本数据,编码器利用嵌入层技术,将词汇映射到连续数字向量中,以及多层感知器(MLP)或更高级的 Transformer 来管理文本中的长程依赖和上下文。
  • 图像:视觉数据通过最先进的架构如 Vision Transformer (ViT) [31] 处理,ViT 将图像部分视为序列以更好地捕捉关系,或通过残差网络(ResNet)[32] 处理,ResNet 帮助在各层中学习更深的特征而不丢失上下文。
  • 音频:音频数据使用 C-Former [33]、HuBERT [34]、BEATs [35] 或 Whisper [36] 等模型进行分析。这些模型专门捕捉声音的独特特性,从基本音调到复杂的语言,增强了模型准确解释听觉信息的能力。
  • 序列数据:对于如脑电图(EEG)和心跳等序列数据,编码器采用 1D 卷积神经网络(1D-CNN)和长短期记忆网络(LSTM)单元的组合。该设置特别有效于捕捉数据中的时间和空间模式,这对于医疗应用中的早期诊断至关重要。
  • 通用编码器:一种较新的创新是通用编码器,旨在标准化处理各种高度多样化的数据类型,包括音频、视频和功能性磁共振成像(fMRI)。该编码器利用一种通用方法来处理和整合多种形式的数据,促进数据处理的一致性和效率。这些编码器将原始输入转换为特征向量,然后转化为固定长度的特征序列。这种标准化对于进一步处理数据至关重要,确保模型的后续层可以有效地执行特征融合和解码。

通过适应和优化各种数据类型的初始处理,多模态输入编码器不仅提升了模型的性能,还扩展了其在不同领域的适用性。无论是提高图像描述的准确性,丰富机器翻译的上下文,还是推进医疗诊断工具的精度,这个编码器在使 AI 模型能够执行复杂任务方面发挥了基础性作用。

特征融合机制:多模态模型的核心在于整合不同模态的特征。这个整合可以在不同阶段进行[37],[38]:

  • 早期融合:在初始阶段结合输入数据,利用不同模态的原始互联性。
  • 中期融合:在特征提取阶段融合特征,使每种模态都能为统一表示做出独特贡献。
  • 晚期融合:在决策阶段整合单独模态路径的最终输出,通常用于需要多种数据类型综合判断的任务。
  • 联合融合:一种混合方法,结合早期、中期和晚期融合,最大化各阶段的数据利用。这些融合过程通常利用预训练的大型语言模型(LLM),这些模型虽然最初设计用于文本数据,但通过高级特征投影和序列化技术适应处理和综合多模态输入。多模态输出解码器:最后,多模态输出解码器将融合、综合的多模态信息重新转换为特定任务所需的可用形式。比如在图像描述任务中,解码器可能基于视觉输入生成描述性文本。在视频理解任务中,它可能生成结合视觉和听觉数据的注释或摘要。每个解码器都经过精心设计以优化准确性和质量,确保输出精确反映从综合模态中获得的见解。

总之,多模态大型语言模型的复杂架构使其能够通过整合和合成文本、图像和音频数据来处理复杂任务。这种能力不仅提升了 AI 应用的性能,还为我们理解和互动技术开辟了新的创新途径。

C. 大型语言模型中的多模态特征概述

在融合多模态特征时,通常不会从零开始训练新模型,而是利用现有的预训练大型模型,如 LLMs。尽管预训练的 LLMs 主要设计用于处理文本输入,但可以通过各种技术使这些模型适应处理多模态数据。我们将在本节介绍一个具体示例,以详细说明融合过程并进行理解。

首先,需要将每种模态的数据编码并投影到统一的特征空间中。例如,可以使用预训练模型如 ResNet 或 Vision Transformer 将图像数据转换为特征向量 Vimage。文本数据可以使用预训练文本编码器如 BERT [39] 转换为特征向量 Vtext,音频数据可以通过预训练音频编码器如 wav2vec [40] 转换为特征向量 Vaudio。然后,通过线性变换或其他投影方法将不同模态的特征向量映射到共享特征空间中。为了将这些多模态特征输入到预训练的 LLM 中,需要将来自不同模态的特征组织成一个序列。可以简单地通过连接来自不同模态的特征(如 [Vimage, Vtext, ..., Vaudio, Vtext])来形成多模态特征序列。

接下来,将构建的多模态特征序列输入到预训练的 LLM 中进行处理。Transformer 模型通过多层自注意力机制和前馈神经网络处理输入特征序列。每一层包含自注意力和前馈网络模块,更新和整合特征表示,逐步提取更高层次的特征。经过多层 Transformer 处理后,模型生成一个包含综合信息的特征表示序列。根据任务需求,可以通过特定的输出层生成最终结果。例如,如果任务是生成文本描述,可以将综合特征表示输入到文本生成器中以生成描述性文本。

通过遵循这些步骤,可以有效地由 LLM 处理多模态特征。尽管预训练语言模型如 GPT 和 LLAMA 主要设计用于文本输入,但其能力可以通过特征投影和序列化方法扩展,以处理和整合多模态数据,从而执行复杂的多模态任务。

#从视觉表征到多模态大模型

转眼2024,距离上次知乎写作就快过去一年,上一次的计划主题还是“开源大模型”(参见《ChatGPT的朋友们:大语言模型经典论文一次读到吐》),无奈这个方向变化太快,而且也不乏优质总结文章,也就一直没有动笔。正好最近做图文多模态大模型相关的工作,在查阅资料的过程中没遇到比较完整的脉络梳理文章,往往需要综合参考;反观这个方向的综述型论文又过于追求“完美”,个人感觉详略把控不尽人意。

因此,借此机会结合自己的学习过程,对多模态和多模态大模型做一个系统的梳理,尝试以一个亲历者的视角谈谈这部分技术的发展思路,希望能给读者一些不一样的收获,如有偏颇,欢迎指正。

为了表述简单,我们不严谨的将“图文多模态”表述为“多模态”(标题有些夸张),如果后面有机会可以讨论更多模态的相关工作。此外,本文假设读者已经对视觉表征和多模态融合有一定入门背景,希望通过一篇文章回顾将过去几年的经典工作。

一、总览

由于是讲“图文多模态”,还是要从“图”和“文”的表征方法讲起,然后讲清楚图文表征的融合方法。对于文本模态的表征发展,我们在《闲话NLP:文本表征的半世今生》一文中有过一轮的梳理,因此本文只要讲两件事情:

视觉表征:分为两个部分问题,一是如何合理建模视觉输入特征,二是如何通过预训练手段进行充分学习表征,这两点是基于视觉完成具体算法任务的基础;
视觉与自然语言的对齐(Visul Language Alignment)或融合:目的是将视觉和自然语言建模到同一表征空间并进行融合,实现自然语言和视觉语义的互通,这点同样离不开预训练这一过程。模态对齐是处理多模态问题的基础,也是现在流行的多模态大模型技术前提。

对于视觉表征,从发展上可以分为卷积神经网络(CNN)和Vision Transformer(VIT)两大脉络,二者分别都有各自的表征、预训练以及多模态对齐的发展过程。而对于VIT线,另有多模态大模型如火如荼的发展,可谓日新月异。

因此,本文的行文思路也就非常简单,如图1所示。第一部分介绍以CNN为基础的视觉表征和预训练手段,以及在此基础上的多模态对齐的方法。由于预训练已经成为AI技术取得效果的标配,多模态对齐部分的内容也是以多模态预训练技术承载;第二部分从VIT技术出发,分别介绍VIT视觉表征的预训练探索工作、多模态对齐的预训练工作以及近两年火热的研究方向多模态大模型。

由于多年间的优秀工作太多,不胜枚举,本文仅挑选笔者从业过程中印象较深,且有标志性特点的工作为代表。优秀的工作不止于本文,不过还是期望通过有限的工作,将近几年的图文多模态相关技术串连起来,方便读者按图索骥进行更深入的学习。下面开始正式的内容。

二、CNN:视觉理解的一代先驱

2.1 卷积视觉表征模型和预训练

对视觉信息的表征,简单来说是将图像信息转化成深度学习输入所需的特征向量或向量序列,如图2。深度学习时代,卷积神经网络(CNN)凭借其局部区域连接、权重共享以及位移不变性等特点,天然的符合了图像信息的建模归纳假设,成为早期最适合视觉表征的模型。具体的,卷积神经网络应用视觉表征的模型很多,我们简单从LeNet-5、AlexNet、VGG和ResNet等模型的演进一窥其在关键要素。

2.1.1 卷积视觉表征:从LeNet到ResNet

LeNet-5早期在数字识别中取得了成功的应用,网络结构是 [CONV-POOL-CONV-POOL-FC-FC]。卷积层使用 5 * 5的卷积核,步长为1;池化层使用 2*2 的区域,步长为2;后面是全连接层;AlexNet相比LeNet-5做了更多层数的堆叠,网络参数进行了相应的调整,并在ImageNet大赛2012夺得冠军;相应VGG网络使用更小的卷积核,同时相比AlexNet进一步提升了网络层数。

随着研究的深入,神经网络的层数也出现了爆发式地增长,由此也不可避免的带来梯度消失和梯度爆炸的问题,使得模型训练的困难度也随之提升。一种解决方法是将神经网络某些层跳过下一层神经元的连接,隔层相连,弱化每层之间的强联系。这种神经网络被称为Residual Network(ResNet)残差网络,网络结构的原理是将卷积层的堆叠,替换成跨层连接的模块,如图3所示。

有了合理的建模模型,可以使用具体任务的训练数据学习视觉表征,进而完成不同的任务(如分类、分割、目标检测等)。而更加有效的方式通常是先用“海量”的数据让模型学到通用的视觉表征,再进行下游具体任务数据的学习,也就是预训练+微调的范式。

2.1.2 卷积视觉预训练

在CNN视觉表征体系下,早期的视觉预训练有另一个叫法是迁移学习,在BERT的预训练+微调范式流行之前就已经被广泛应用。迁移学习中,传统CNN视觉模型在做具体任务训练之前,先在大量的图像任务数据集上进行预先训练(如ImageNet分类任务数据集等)。然后使用预训练的CNN权重初始化Backbone,并增加一些任务定制网络模块,完成在下游任务上的微调(如Backbone+全连接层做分类任务)。

卷积神经网络视觉表征和预训练的优化升级工作还有很多,介绍相关内容的资料也很多,篇幅原因我们对此不进行详细展开和概述,而是把更多的笔墨放在近几年更热门的研究方向上。​

2.2 早期多模态融合与预训练

接着是CNN体系下的多模态融合和预训练,视觉和自然语言的跨模态对齐和融合有两种表现形式:一种是双塔结构,多模态分别表征,通过对比学习机制实现视觉和文本在同一空间中的距离度量;另一种是视觉表征和文本表征通过交互型网络结构融合成多模态表征,进而完成下游任务应用。由于前者可以看作后者的特例,我们用后一种表现形式为例,将二者统一,进而讲述以CNN为基础的早期多模态融合与预训练技术。

如图4,展示了上述的多模态融合框架,包括视觉特征提取模块、文本特征提取模块和模态融合模块。文本模块是常见的Token Embedding方式;视觉表征方面,由于CNN已经验证了有效性,因此大多数的工作在都考虑使用CNN做视觉特征抽取,得到高级语义特征,然后将高级语义表征作为输入,和文本Token Embedding序列一起输入到下游融合模块。不同工作的差异主要集中在视觉特征提取CNN Backbone以及Modality Interaction两个模块。

我们以2019年作为粗略分界点,在此之后BERT的训练范式开始流行,多模态方向上的研究热点则是借鉴BERT的成功,使用Transformer网络(特指Transformer Encoder)作为Modality Interaction模块把视觉和自然语言进行特征融合,并通过大规模预训练来学习得到多模态表征;而在此之前的方案通常是简单的多层全连接网络实现,我们不多赘述。

顺着这个思路,确定了使用Transformer作为模型融合模块这个大方向后,第二个问题是如何对视觉特征进行有效编码,得到和文本一样的Token Embedding序列作为模型输入?这一问题的解法在CNN为主的时期有两种主要方式,如图5:

  • Region Feature Base:先通过基于CNN的目标检测模型(Fast R-CNN等),识别图像中的关键物体区域集合(ROI,Region Of Interest),并提取区域的表征向量,作为Transformer模型的视觉输入Embedding序列。这么做的动机是,每个ROI区域,都有明确的语义表达(人、建筑、物品等),方便后续和文本特征的对齐。比较有代表性的工作如LXMERT、VL-BERT和UNITER等;
  • Grid Feature Base:区域特征方法虽然看上去合理,但是依赖前置的目标检测模型,整体链路较重。因此也有工作探索,不经过区域检测,直接使用CNN网络提取深层的像素特征作为交互模型输入,同样取得了一些成果。比较有代表性的工作如Pixel-Bert等。

下面我们分别介绍这一时期的经典工作,了解其中基本思路和方法。

2.2.1 LXMERT

LXMERT是早期进行多模态特征融合的工作之一,如图6,模型采用经典的两路深层表征输入结构。在视觉侧关注单图,图像经过目标检测模型得到区域块的特征序列,又经过Transformer做进一步编码区域块之间的关系(Object-Relationship Encoder);文本侧通过BERT结构得到文本的特征序列(Language Encoder),最后两者使用深层Transformer结构做交叉Attention,最后进行多任务的预训练。LXMERT的预训练任务相比BERT较多,包括Masked图像特征的预测、图像Label的预测(猫、狗等)、VQA、图文是否匹配以及纯文本侧的Masked语言模型(MLM)。

预训练模型经过特定任务微调后,LXMERT在两个视觉问答数据集(VQA和GQA)上达到了当时最先进的结果。作者还展示了LXMERT可以很好地泛化到一个具有挑战性的视觉推理任务(NLVR2),并将之前的最佳结果提高了22%(从54%到76%),是一个比较优秀的工作。

2.2.2 VL-BERT

另一个Region Feature Base的经典工作是VL-BERT。如图7,与LXMERT不同的是,VL-BERT属于单路输入模式,视觉特征在经过目标检测模型进行Region特征提取后,直接和文本Embedding一起拼接输入到Transformer网络中进行多模态的交叉Attention。

VL-BERT设计了两个预训练任务:带视觉特征的掩码语言模型学习(Masked Language Modeling with Visual Clues)、带文本特征的视觉Region分类(Masked RoI Classification with Linguistic Clues)。经过预训练和微调流程,模型可以适用于多种视觉和语言任务,并在视觉问答、图像-文本检索、视觉常识推理等任务上都取得了非常不错的性能。VL-BERT印证了,多模态语义特征不需要各自的单独深度编码,直接做交互也可以取得有效结果。

2.2.3 UNITER

如图8,UNITER使用和VL-BERT类似的架构,同样的单路架构,同样是目标检测模型做视觉的语义特征抽取,并进一步使用更多的训练数据、更多的预训练任务,希望得到一个更加通用的图文多模态表征模型。UNITER通过在四个图像和文本数据集(COCO, Visual Genome, Conceptual Captions, and SBU Captions)上进行大规模的预训练,可以支持多种视觉和语言任务的联合多模态表征。同时设计了四种预训练任务:遮蔽语言建模(MLM),遮蔽区域建模(MRM,有三种变体),图像-文本匹配(ITM),和词-区域对齐(WRA)。

相比于之前方案,UNITER提出了通过最优传输(OT,Optimal Transport)的方法来进行WRA,在预训练过程中显式地加强词和图像区域之间的细粒度对齐。相比其他工作仅使用图像-文本匹配(ITM)的全局对齐方式,WRA更加精准。经过大量的消融实验,UNITER还探索了预训练任务的最佳组合方式,并最终在视觉问答,图像-文本检索,指代表达理解,视觉常识推理,视觉蕴含,和NLVR2等任务上都达到了新的最先进的水平。

UNITER称得上是Region Feature Based多模态预训练的集大成者,同时期的大多数工作也多是类似结构上的修补或增强。但也不乏另辟蹊径的工作,其中以Grid Feature Based相关工作最具影响力。

2.2.4 Pixel-BERT

Pixel-BERT是Grid Feature Based多模态融合代表工作之一。如图9,与Region Feature Based方法不同的是,Pixel-BERT不需要使用目标检测模型进行ROI区域的特征抽取,而是直接通过卷积网络提取图片的像素级别特征,直觉和文本特征一起输入到下游的Transformer网络进行特征融合。这种方式减少了目标检测区域框标注的成本,同时缓解了视觉语义label与文本语义的不均衡问题(区域框的物体类别往往上千规模,而文本可以表达的语义远不止于此)。

详细来说,当时主流的Region Feature Based方法提取视觉特是使用如Fast R-CNN的目标检测模型,通常在Visual Genome数据集上训练得到。这种目标检测模型,通常先提取可能存在物体的区域,然后根据区域特征进行物体类别的分类。相应的,这些区域的特征往往局限在固定的类目集合范围内,语义范围较为有限,这是也使用区域语义特征的固有缺陷。

图片

此外,Pixel-BERT使用随机像素采样机制来增强视觉表示的鲁棒性,并使用MLM和ITM作为预训练任务进行预训练。最后通过对下游任务进行广泛的实验,在包括视觉问答(VQA)、图像文本检索和视觉推理等下游任务中取得了SOTA效果。

三、VIT:拥抱Transformer

Pixel-BERT之类的网络,减少了对与目标检测模型的依赖,仅使用深层卷积神经网络提取像素级别的特征作为下游多模态融合模块,极大简化了图文多模态表征模型的网络结构。那么,我们能不能进一步简化视觉表征模块,直接把图像特征简单加工后就直接输入到Transformer网络和文本特征一起做模态的融合?要做到这一点,我们需要先回答另一个问题,Transformer网络能不能替换CNN作为视觉表征的Backnone?虽然现在来看,答案是肯定的,但在开始阶段,这个过程并不是那么顺利。

我们知道,CNN应用于视觉表征有着很强的归纳偏置或者说先验,在 CNN 中,局部性、二维邻域结构和平移不变性是在整个模型的每一层中都有体现,和视觉图像的特点极其类似:

  • 局部感知性:卷积层通过卷积操作和参数共享,能够高效地提取输入图像的局部特征。这种局部感知性使得CNN能够捕捉图像中的局部结构,例如边缘、纹理等,从而更好地表征图像。
  • 层级结构:CNN的层级结构包括卷积层、激活函数、池化层和全连接层。这种层级结构使得CNN能够逐层提取和组合特征,从低级到高级,形成更复杂的视觉表征。
  • 参数共享:卷积层中的参数共享使得CNN的训练更加高效。相同的卷积核在不同位置对图像进行卷积操作,共享参数减少了模型的复杂度,同时也增强了模型的泛化能力。
  • 空间不变性:卷积操作具有平移不变性,即无论图像中的物体在图像中的位置如何变化,卷积核都能检测到相应的特征,这对于图像分类、目标检测和图像分割等计算机视觉任务非常重要。

而在 Transformer 中的Self-Attention层则是全局的,对于视觉输入的局部关系建模、图像的2D位置关系的建模,以及图像元素的平移不变性的把握上,都需要从头学习。然而,即便是困难重重,因为有BERT的巨大成功,仍然有许多的研究者前赴后继投入到这个方向,并最终取得成功,其中Vision Transformer (ViT) 是最为经典的案例之一。​

3.1 VIT范式视觉表征和预训练

3.1.1 VIT:Transformer视觉表征

如图10,VIT将输入图片平铺成2D的Patch序列(16x16),并通过线性投影层将Patch转化成固定长度的特征向量序列,对应自然语言处理中的词向量输入。同时,每个Patch可以有自己的位置序号,同样通过一个Embedding层对应到位置向量。最终Patch向量序列和视觉位置向量相加作为Transfomer Encoder的模型输入,这点与BERT模型类似。

同样,VIT通过一个可训练的CLS token得到整个图片的表征,并接入全链接层服务于下游的分类任务。当经过大量的数据上预训练,迁移到多个中等或小规模的图像识别基准(ImageNet, CIFAR-100, VTAB 等)时,ViT取得了比CNN系的模型更好的结果,同时在训练时需要的计算资源大大减少。按说,ViT的思路并不复杂,甚至一般人也不难想到,但是为什么真正有效的工作确没有很快出现?不卖关子,VIT成功的秘诀在于大量的数据做预训练,如果没有这个过程,在开源任务上直接训练,VIT网络仍会逊色于具有更强归纳偏置的CNN网络。

因此,在此之后的一大研究方向就是如何更加有效的对VIT结构的网络进行预训练。下面我们通过MAE和BEIT两个优秀的工作,来讨论这个方向上的两类主流方案。

3.1.2 MAE:激进的Mask自监督预训练

与自然语言理解类似,VIT模型能取得成功得益于预训练+微调的训练范式。前文提到,传统CNN视觉模型的预训练,仅仅是在大量的图像任务数据集上进行预先训练(如ImageNet分类任务等),然后使用训练后的权重进行初始化Backbone,在下游任务上继续微调完成相应任务。

早期的VIT的预训练和CNN预训练一样,都是通过大规模的有监督分类任务数据集进行训练,和BERT的自监督预训练仍有区别。而自监督预训练有着数据获取成本低、不需要标注、任务难度大模型学习充分等诸多好处,因此很多研究工作探索自监督视觉预训练,比较有代表性的实践工作如Masked AutoEncoder(MAE)。

如图11,所示,MAE以VIT为基础模型,先对完整图片进行Patch掩码,接着使用一个Transformer Encoder对未Mask的Patch进行编码,然后通过相对小的Transformer Decoder模型还原被Masked Patch,从而实现模型的自监督预训练。

MAE取得成功的另一个核心原因是通过75%的高掩码率来对图像添加噪音,这样图像便很难通过周围的像素来对被掩码的像素进行重建,从而使编码器去学习图像中的语义信息。预训练之后,解码器被丢弃,编码器可以应用于未掩码的图像来进行识别任务。

相对于自然语言的自监督训练,MAE使用了更大的掩码比例。后人进一步分析,这么做动机是考虑自然语言和视觉特征的信息密度不同,简单来说:文本数据是经过人类高度抽象之后的一种信号,信息是密集的,可以仅仅预测文本中的少量被掩码掉的单词就能很好的捕捉文本的语义特征。而图像数据是一个信息密度非常小的矩阵,包含着大量的冗余信息,像素和它周围的像素存在较大的相似性,恢复被掩码的像素并不需要太多的语义信息。

3.1.3 BEIT:视觉“分词”表征预训练

另一类Transformer视觉模型预训练的代表范式是BEIT(BERT Pre-Training of Image Transformers)模型。为了与BERT的预训练框架对齐,BEIT通过辅助网络模块先对视觉Patch进行Tokenizer,得到整张图各部分的视觉Token ID。然后将视觉Patch视为自然语言中的单词进行掩码预测,完成预训练流程。

具体的如图12,在预训练之前,BEIT先通过一个离散自回归编码器( discrete Variational AutoEncoder,dVAE)学习了一个“图像分词”器,最终可以将图像编码成离散的视觉Token集合。而在预训练阶段,输入的图片存在两个视角,一是图像Patch,另一个是视觉Token。BEIT随机对Patch进行掩码,并将掩码部分替换为特殊的Mask Embedding([M],图中的灰色部分),随后将掩码后的Patch序列输入到VIT结构的模型中。预训练的目标则是基于被掩码的图像输入向量序列,预测源图像对应的视觉Token ID。

BEIT需要单独的dVAE网络辅助,相对MAE更为复杂。在效果上,MAE验证了使用normalized pixels进行目标像素重建,也可以实现类似效果,因此视觉tokenization过程并非必须。但即便如此,BEIT为视觉预训练提供了一个不错的范式,同样是一次十分有价值的探索。​

3.2 VIT为基础的多模态对齐与预训练

以VIT为基础的视觉预训练可以通过Transformers对视觉进行有效表征,这种方法也逐渐成为目前视觉信息编码的主流手段。以此为延伸,基于此的多模态预训练工作也层出不穷,也为如今的多模态大模型的顺理成章打下了坚实基础。

如图13,梳理了以VIT为延伸的多模态对齐和预训练工作,各工作之间都或多或少的有所关联,可谓是一脉相承。下面我们分别介绍这个技术方向的经典工作,读完本小结下面的内容再来看图中的模型关系,可能会更有感觉。

3.2.2 CLIP

CLIP模型是OpenAI 2021发布的多模态对齐方法。与OpenAI的许多工作类似,CLIP强调强大的通用性和Zero-Shot能力,也因此至今仍有很强的生命力,相关技术被广泛应用。

CLIP的核心思路是通过对比学习的方法进行视觉和自然语言表征的对齐。如图xx(1),CLIP首先分别对文本和图像进行特征抽取,文本的Encoder为预训练BERT,视觉侧的Encoder可以使用传统的CNN模型,也可是VIT系列模型。得到图文表征向量后,在对特征进行标准化(Normalize)后计算Batch内图文Pair对之间的余弦距离,通过Triple Loss或InfoNCELoss等目标函数拉近正样本对之间的距离,同时使负样本对的距离拉远。

经过大量的图文Pair对进行预训练后,我们可以得到在同一表征空间下的文本Encoder和图像Encoder。下游应用通常也是两种方式,一是在下游任务上对模型进行微调,适应定制的图文匹配任务,或者仅使用文本或图像Encoder做单模态任务;另一种使用方式是直接使用预训练的图文表征Zero-Shot方式完成下游任务。

CLIP进行Zero-Shot的一种使用方式如图14(2)和(3),对于一个图像分类任务,可以首先将所有的候选类别分别填充“A photo of a {object}”的模板,其中object为候选类别,对于一张待预测类别的图像,通过图像Encoder的到视觉表征后,与所有类别的模板文本Encoder表征进行相似度计算,最后选择相似度最高的类别即可作为预测结果。

CLIP凭借其简洁的架构和出众的效果,被后来很多工作引用,并使用CLIP预训练的Backbone作为视觉表征模块的初始化参数。

3.2.3 VILT

CLIP方法简单有效,双塔的网络结构对于下游应用也十分友好。但是如同表示型语义匹配类似,双塔结构同样也有交互不足的问题,内积或余弦距离的模态融合方式匹配能力上限较低,对于一些需要细粒度跨模态匹配的任务(VQA等)有时力不从心。因此,交互式的多模态对齐和融合仍然极具价值,典型的如VILT模型。

VILT是VIT在图文多模态方向上的工作延续。我们了解了基于Transformer的自然语言模型和视觉模型的预训练范式后,进阶到多模态融合十分容易理解。如图15所示,与BERT文本对的输入方式类似,VILT将文本和视觉Patch的Embedding直接拼接作为Transformer编码器的输入,两种模态有各自可学习的位置编码和模态类型编码。

通过深层的Transformer编码,文本与视觉的模态得到了充分的融合。ViLT使用常用的ITM(Image Text Matching)和MLM(Masked Language Modeling)作为预训练目标。

  • ITM(Image Text Matching):图文是否匹配的二分类目标,正样本为常用数据集中提供的语义一致的图文Pair对,负样本对以0.5的概率随机地用替换正图文对中的图片为其他图片;此外借鉴前人工作,匹配目标还增加了图文子区域的匹配目标Word Patch Alignment (WPA),该目标并不常用,我们也不作过多展开。
  • MLM(Masked Language Modeling):以0.15的概率对文本的Token进行掩码,并通过图文的整体上下文信息对预测被掩码的Token。

如图16,可以对比以CNN为基础的多模态预训练和以VIT为基础的预训练,在模型架构上的区别。

而在ViLT之后,多模态预训练的一个较为明显的趋势,是进一步提升模态对齐与融合的效果以及模型结构的通用性,使用统一模型视角进行跨模态对齐和融合。在这个过程中,ALBEF(Align before Fuse)、BLIP(Bootstrapping Language-Image Pre-training)与BEIT-3系列等工作极具参考价值,下面我们简单对比其设计思路。

3.2.5 ALBEF与BLIP

ALBEF通过多任务联合训练将类似CLIP的对比学习和类ViLT的交互融合范式统一到一个训练框架中。如图17所示,模型结构包括一个图像Encoder(12层)、一个文本Encoder(6层)和一个多模态融合的Encoder(6层),各Encoder均沿用Transformer网络。ALBEF的训练任务包括图文对比ITC(Image-Text Contrastive Learning)、ITM(Image-Text Matching)、MLM(Masked Language Modeling)。

  • ITC:在图文模态深层融合之前,在对图文的表征序列Pooling后,通过对比学习Loss对图文单模态表征进行对齐。这部分和CLIP模型的训练设置类似,不同的是文本的Encoder相对视觉Encoder层数更浅。
  • ITM:图文Encoder输出的表征序列深层交互后,判断输入图文对是否匹配,与VILT一样是二分类任务。不同的是负样本对的构造,使用对比学习模块进行了Batch内的难负样本挖掘。主要思路是,对比学习模块中一个Batch中,模型认为最为相似的负样本对可以作为难负样本。
  • MLM:与VILT类似,随机对输入文本token进行掩码,通过图文上下文的输入信息预测被掩码的Token。

最后,由于ALBEF的预训练数据多数为互联网中挖掘的图文对,天然存在较大的噪声数据。为了缓解这个问题,ALBEF在训练过程中通过一个动量自蒸馏的模块(一个移动平均版本的ALBEF模型),生成训练数据集的伪标签,用来辅助模型的训练。

ALBEF通过多任务训练机制将模态对比匹配和深度模态融合结合在一起,下游任务可以根据具体需求使用不同的模块进行微调。与之遥相呼应的的是BLIP模型,在ALBEF基础上,将MLM替换为LM( Language Modeling)Loss,的使得训练得到的模型同时可以支持图像描述文本的生成能力,如图18所示。使得多模态融合预训练有了多模态大模型即视感。

经过大规模多模态数据的预训练,ALBEF和BLIP在下游任务微调中均取得了十分亮眼的效果,在工业界也被广泛应用。

3.2.8 VL-BEIT、VLMO与BEIT-3

ALBEF和BLIP之类的工作虽然能够同时兼顾对比和深度融合两种训练模式,但视觉和自然语言仍然需要单独的Encoder分别编码,这显然还不是我们所期望的真正的多模态统一模型框架。我们可以从Microsoft Research的VL-BEIT、VLMO与BEIT-3这一系列工作一窥这个方向的探索过程。

VL-BEIT可以看作是前文提到的BEIT在多模态对齐预训练工作的延续,同时借鉴了ViLT的网络结构。如图19,与ViLT的区别在于,VL-BEIT期望将单模态和多模态统一到一个模型中,在预训练任务设计上,同时考虑了纯文本、纯视觉以及图文多模态任务。纯文本任务为MLM(a);纯视觉特征的MIM,其中MIM的目标是BEIT工作中的Visual Token ID(b);图文多模态任务包括考虑文本特征的视觉Token预测,以及考虑视觉特征的文本Token预测(c)。

VLMO是VL-BEIT的同期工作,如图20。VLMO相较于VL-BEIT的不同之处在于:1、舍弃了视觉侧的Visual Token ID预测,简化了整体的网络结构;2、增加了类似CLIP的图文对比学习任务,以及交互型的图文匹配任务。虽然VLMO相对于VL-BEIT在效果上并不出彩,但为后续BEIT-3的工作奠定了基础。网络结构上,VLMO是VL-BEIT都使用MoME Transformer结构,对不同的模态使用不同的Expert头,以区分不同模态的表征。

与VLMO网络结构类似,BEIT-3将图像、文本和图文多模态输入统一到一个单独的Multiway Transformer网络。不同于经典的Transformer,BEIT-3使用一个多类型输入共享的多头自注意力模块(Multi-Head Self-Attention),不同类型的模态输入各有一个全连接专家模块单独学习。如图21,视觉模态使用V-FFN、文本模态对应L-FFN,图文多模态输入对应VL-FFN,模型会根据不同类型的模态输入选择不同的模块生效。

在预训练任务上,如图22,BEIT-3相比之下也更加全面,不仅包括常用的图文对比学习、MLM和图像文本描述生成任务,还引进了文本和图像的单模态任务。这样的训练方式,使得BEIT-3真正统一了多模态的不同输入类型,同时更加全面和灵活的支持不同模态的下游任务。为了能够实现这样的能力,BEIT-3使用了更多的预训练数据,模型容量相对于之前的工作也有了显著的提高(达到1.9B),相应地最终也取得了在当时更好的效果。

BEIT-3将多模态对齐和预训练的研究推到了一个新的高度,验证了更多的数据+更大的模型取得更好的效果,在这个研究方向仍不失准。虽然开始饱受争议,但随着ChatGPT的问世,这个发展思路的正确性被进一步加深,也催生了后面多模态大模型的一众研究工作。

四、多模态与大模型

写到这里,经过大规模篇幅的铺垫,终于到了大家都关心的多模态大模型章节。打开前两天的笔记,原来的计划是这部分内容参考综述论文的梳理,选择一些有代表性的工作进行问题的串连。当我重新下载这篇综述论文,想截一张示意图时,却是目瞪狗呆。对比一下,图23是年前的截图,图24是年后的。

这个速度,属实有点跟不上了。调整情绪后,我告诉自己很多工作万变不离其宗,可以延续原来的思路继续写,不增加加新的内容。这样,应该也挺合理的吧。下面我们通过各时期的优秀工作,来系统看一下类似GPT-4的多模态大模型的主流思路。​

4.1 Flamingo

如今GPT-4代表着多模态大模型的顶尖水平,但在此之前,甚至在ChatGPT之前就已有相关探索工作,其中谷歌的Flamingo最具当前主流技术雏形。事实上,Flamingo更像是图文多模态领域的GPT-3,不同的是它支持图文上下文的输入,通过In-Context Few-Shot方式完成任务。Flamingo同样支持视频帧序列作为输入,通过Prompt指令完成Video理解任务。

做到这种功能,在模型侧和GPT-3类似,不同的是Flamingo在文本Transfomer网络中增加视觉输入特征,模型结构如图26,包括三个部分。

  • 视觉侧特征抽取使用预训练的ResNet和采样模块(Perceiver Resampler,将变长的视觉特征输入转成少量的视觉特征)模型;
  • 文本侧模型使用LLM(基座使用Chinchilla,同样是谷歌发布的对标GPT-3的大语言模型,并提供了1.4B、7B、和70B等版本,分别对应Flamingo-3B、Flamingo-9B和Flamingo-80B);
  • GATED XATTN-DENSE层,用于连接LLM 层与视觉特征,允许 LM 在处理文本时考虑视觉信息。通过交叉注意力,LM 可以关注与视觉特征相关的部分。预训练LLM和视觉ResNet参数训练过程中是冻结状态。

相应的,在数据层面Flamingo也是使用了多样形式的训练语聊,包括:

  • 图文穿插形式:MultiModal MassiveWeb (M3W),43 Million;
  • 图文Pair对形式:LTIP(Long Text & Image Pairs),312 Million;
  • 带文本描述的短视频:VTP (Video & Text Pairs) ,27 Million 。

最后Flamingo在各种多模态任务上的效果也非常优秀,甚至在有些数据集上通过few-shot方式可以超过经典模型的SOTA。

Flamingo凭借其出色的效果,吸引了许多研究者对于多模态大模型的注意,但当时这种规模的模型训练不是谁都能玩的起,因此并没有引起特别火热的跟风潮。直到ChatGPT的出现,让人逐渐接受了大模型这条道路的正确性,以前觉得自己玩不起的机构,砸锅卖铁拉投资也愿意投入,自此相关的开源研究开始如火如荼。

在众多开源工作中,BLIP-2以及与之一脉相承的InstructBLIP算是早期的探路者之一,我们可以从这两个工作开始讲起。​

4.2 BLIP-2和InstructBLIP

BLIP-2的论文标题是Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models,核心思路是通过利用预训练好的视觉模型和语言模型来提升多模态效果和降低训练成本。

BLIP-2的网络结构如图28所示,从架构上来说,和Flamingo十分类似。包括视觉编码层、视觉与文本的Adapter(Q-Former)以及大语言模型层。

  • 视觉编码层:使用ViT模型,权重初始化通过CLIP预训练完成,并剔除最后一次提升输出特征的丰富性;训练过程中冻结权重,不更新;
  • 文本侧的大语言模型层:早期的BLIP-2使用OPT/FlanT5来实验Decoder based和Encoder-Decoder based LLM的效果;这部分同样在训练过程中冻结权重,不更新;
  • 图文Adapter层:Q-Former结构,类似BLIP网络(同样先进行了图文多模态预训练模块),通过Queries向量,提取视觉侧的关键信息输入到LLM;这部分是多模态大模型训练过程中的主要参数。

和Flamingo相比,BLIP-2简化了视觉特征和大模型的交互,直接仅仅将视觉特征和文本特征一起作为大模型的输入,没有深层的交互模块(如GATED XATTN-DENSE层);另一方面在视觉和LLM的Adapter层做了更多的设计,即Q-Former结构,如图29。从Q-Former结构图,我们可以看到BLIP的影子,最大的不同在于一个Learned Queries模块,用于对ViT输出的视觉特征进行采样(Pooling),得到固定长度的视觉特征序列。

上面提到,为了避免灾难遗忘,BLIP-2冻结了ViT和LLM的参数,只训练Q-Former模块。为了训练更加稳定,Q-Former模块的训练包括两个阶段。

  • Stage1: 将Q-Former与冻结的ViT拼接,借鉴BLIP,使用 ITC(图文对比学习)、ITG(图生成文本)和ITM(图文匹配)任务进行学习,对参数进行初始化,学习图文相关性特征。
  • Stage2:如图30,将Stage1得到的模型再拼接LLM,即Q-Former的输出可通过线性投影输入到LLM(冻结参数),进行视觉到自然语言的生成学习,目标是训练Q-Former使其输出的视觉特征和LLM的输入分布对齐。

BLIP-2通过视觉和LLM的特征对齐,使得LLM具备了多模态理解能力,但其训练数据主要沿用BLIP(图文Pair对形式),和当下的多模态模型的主流技术方案仍存在一定GAP,是早期代表性探索之一。不过,随着指令微调成为大模型必备流程,后续BLIP-2也自然升级为InstructBLIP。

如图31,InstructBLIP的网络结构与BLIP-2几乎一致,同样也是2阶段训练,不同的是采样了指令微调范式,将文本模态的Instruction也作为输入同时给到Q-former和LLM进行学习。

对应的,InstructBLIP的另一个不同是训练数据也使用指令形式,将各种类型任务的开源学术数据,使用模板构造成指令多模态数据。数据模板如图31。

通过指令数据和指令微调,是的InstructBLIP可以像GPT-4一样通过指令提示词的方式完成任务,虽然效果上仍有差距。即使不是InstructBLIP的训练范式并不是开创性的,但是我们依然可以用InstructBLIP作为参考,来看对比后面要介绍的其他工作。​

4.3 Qwen-VL

阿里巴巴的Qwen-VL是另一个比较经典的模型,十分值得作为案例介绍多模态大模型的训练要点。Qwen-VL使用Qwen-7B LLM作为语言模型基座,Openclip预训练的ViT-bigG作为视觉特征Encoder,随机初始化的单层Cross-Attention模块作为视觉和自然语言的的Adapter,总参数大小约9.6B。

如图33,Qwen-VL的训练过程分为三个阶段:

  • Stage1 为预训练,目标是使用大量的图文Pair对数据对齐视觉模块和LLM的特征,这个阶段冻结LLM模块的参数;
  • Stage2 为多任务预训练,使用更高质量的图文多任务数据(主要来源自开源VL任务,部分自建数据集),更高的图片像素输入,全参数训练;
  • Stage3 为指令微调阶段,这个阶段冻结视觉Encoder模块,使用的数据主要来自大模型Self-Instruction方式自动生成,目标是提升模型的指令遵循和多轮对话能力。

Qwen-VL的另一个启发是在Stage2和Stage3的训练过程中,不止使用VL数据,还使用了纯文本的训练数据,避免遗忘LLM的能力,这个策略的效果在其他的工作中也有所印证。此外,相比InstructBLIP,Qwen-VL模型视觉和LLM的Adapter模块简化很多,仅仅是一个浅层的Attention Pooling模块,通过更加细节的训练流程和更加丰富的训练数据,仍取得了比InstructBLIP更优的效果。​

4.4 LLaVA1.5

同样,微软的LLaVA也是一个持续更新的系列工作,这里主要总结LLaVA和LLaVA1.5的核心思路。图34为LLaVA1.5的数据和模型概况。可以看到,和Qwen-VL相比,LLaVA1.5在预训练和指令微调数据上使用了更少的数据(将Qwen-VL的Stage2和Stage3都视作指令微调);在模型结构上,除了视觉Encoder和LLM均使用了不同的基座模型,视觉和自然语言的Adapter使用更简单的MLP层。

LLaVA1.5模型的效果在一些评测数据集上相比Qwen-VL有更好的效果,说明通过一些优化工作,使用更少的数据,更简单的Adapter结构,也能使LLM具备不错的多模态理解能力。在数据层面,如图35,对比LLaVA1.5和LLaVA工作,通过增加高质量细粒度的VL数据、丰富指令、纯文本指令微调数据、提升图片输入像素、提升LLM参数规模等手段,可以有效提升模型效果。​

4.5 VILA

另一个与LLaVA比较类似,但有所补充的工作是英伟达的VILA(不是显卡)。VILA模型的网络结构和LLaVA十分类似,我们不做过多赘述。不同的是VILA通过实验,总结了多模态预训练的一些经验,其中有些经验在相关工作中也有所体现,主要为以下三点:

  • LLM参与训练更好:在预训练阶段冻结LLM参数,能做到不错的zero-shot的能力,但会损失in-context学习的能力,而LLM参数参与训练的话可以有效缓解;
  • 预训练数据使用图文交替数据更好:图文Pair对并不是最优的选择,图文交错的数据效果更好;
  • SFT时纯文本数据图文数据混合更好:在图文指令微调训练数据中混入纯文本的指令数据,不仅可以缓解纯文本能力的遗忘,还能提升VL任务的能力。

具体的,如图37,VILA的训练分为3个阶段,视觉编码模块ViT参数均是冻结状态。Step 0 使用图文Pair数据对初始化Projector(图文Adapter)参数,LLM模块参数冻结;Step 1使用图文交替数据全参数预训练;Step 2使用指令微调数据进行全参数微调,其中微调数据混合了图文指令和纯文本指令;

VILA是较新的工作,因此有更丰富的模型效果对比,如图38,相对各时期的SoTA,VILA在公开评测指标上有不错的效果。​

4.6 Gemini 1.0和Gemini 1.5

目光来到闭源世界,与VILA同阶段,谷歌公司发布了Gemini系列,又在近期发布了性能更强的Gemini 1.5,可惜被另一个热爱闭源的OpenAI的Sora抢了风头,属实悲催。由于Gemini系列并没有开源,我们只能通过技术报告中的简单介绍来了解其方法。

Gemini 1.0是一个多模态模型,这里模态除了图图像和文还包括音频、视频,符合谷歌多模态大模型一贯的ALL IN ONE的风格,这也是依赖积累丰富的数据资源和算力资源。Gemini 1.0提供Ultra、Pro和Nano版本,分别适应不同能力、参数大小和推理速度要求,最小的Nano甚至可以端上运行。

方法上,Gemini 1.0的网络结构同样是Transformer Decoders,支持32K上下文长度,使用了Multi-Query Attention等优化机制。如图39,模型输入可以是文本、音频、视觉输入,输入视觉可以是图片、图表、截图、PDFs或视频等,输出可以是图片和文本(没错,可以生成图片)。视觉的Encoder模块借鉴了谷歌自己的Flamingo、CoCa和PaLI,结合这些模型,可以输入多模态的同时,也可以通过离散的视觉Tokens生成图片或视频等视觉模态。

图片

对于音频模态,Gemini可以直接输入Universal Speech Model (USM)的16kHz特征,具体可以参考USM工作。对于视频理解,Gemini通过将视频编码为长上下文窗口中的一系列帧来实现。视频帧或图像可以与文本或音频自然交织在一起,作为模型输入的一部分。Gemini同时支持不同像素输入的视觉以满足不同粒度的理解任务。

在具体训练数据方面,技术报告同样并没有提过多细节,只是简单说了数据包括什么模态、经过了什么清洗步骤等,我们也不再深究。至于最近的Gemini 1.5,同样是技术报告的形式发布,没有特别多技术细节,主要介绍了模型是如何的强。区别要点包括:模型在Gemini 1.0基础上引入了sparse mixture-of-expert (MoE),同时强化了上下文长度(32K->10M)同时几乎没有损失上下文感知能力。在训练过程中,Gemini 1.5强化了指令微调过程,使用了用户偏好数据。

总体来说,虽然Gemini没有提供技术细节,但也体现了谷歌对于多模态大模型技术方向的判断,比如我们可以get到网络结构的MoE、一个模型更多模态、超长上下文、文本生成+多模态生成结合等。

4.7 LWM

最后,我们再介绍一篇和Gemini类似的开源工作《World Model on Million-Length Video And Language With RingAttention》,模型名LWM(Large World Model)。至于为什么叫World Model,意思可以通过视觉和视频的理解物理世界,,LWM是UC Berkeley最近发布的一篇工作,个人认为在开源方向上是一个优秀的工作,但好像也是由于Sora和Gemini 1.5的热度,没有引起太多关注。

LWM希望完成的任务和Gemini十分相似,核心是超长上下文理解的多模态大模型。凭借支持1M的token输入,LWM可以对超过一小时的视频进行理解,在Gemini 1.5之前几乎是多模态大模型中最长的上下文输入(之一)。LWM的主要工作要点包括:

  • 支持超长上下文,可处理超长的文本、图片序列或视频等;
  • 一些技术难点方案:Masked Sequence Packing方法混合的输入长度;通过loss weighting 平衡视觉和文本模态;模型自动生成长序列问答数据集用于模型训练;
  • 实现了高性能的RingAttention,Masked Sequence Packing等优化项,完成了百万级别长度的多模态序列的训练;
  • 开源7B参数规模的大模型,包括长上下文的文本模态模型(LWM-Text,LWM-Text-Chat),和多模态模型(LWM,LWM-Chat)。

具体方案上,LWM使用Transformer架构,在LLama2 7B基础上扩充上下文理解的长度上限,模型结构如图40:

与之前大多数方法不同的是,视觉的编码器使用VQGAN,可以将256 × 256输入图片编码成16 × 16 离散Token。这使得LWM不仅可以生成文本,也可以基于文本生成Image Token还原成视频。对于多图或视频帧,可以分别做视觉特征抽取,和文本模态一起输入到LLM中。

在模型训练流程上,主要分为两个阶段的训练:

  • 阶段一,使用Books数据集,先扩充文本LLM上下文长度到1M;
  • 阶段二,长上下文的多模态训练,即混合图-文数据、视频-文本数据、以及纯文本的Books数据进行训练。

上面两个过程有两个核心问题需要解决:1、长文档的可扩展训练;2、如何稳定地扩展LLM的上下文。前者关注训练的效率和开销,后者则关注长上下文拓展的有效性。针对问题1,LWM主要实现了高效的RingAttention,同时结合了FlashAttention;针对问题2,一方面,两个训练阶段都是多轮训练方式,逐步提升上下文长度的方式,如图41。另一方面通过简单的调整了RoPE的参数,提升模型长文本的位置编码能力。

总的来说,LWM是一篇不错的文章,最重要的是开源,技术方案基本没有保留,值得拉出来单独讨论。在效果上LWM和Gemini 1.0 Pro以及GPT4有一定的竞争力,更多的细节可以阅读原论文。

五、总结

写到这里,吐一口老血,但还是要总结一下。本文梳理了2019年之后视觉表征和多模态表征的一些变化,主要涉及视觉表征和视觉预训练、多模态表征对齐(或融合)和多模态预训练、多模态大模型技术的相关工作。各工作之间的简化关系如图42,脉络主要是结合笔者自己各阶段的实践经历和认识,会出现一些地方不严谨的地方,欢迎指正。

关于未来畅想,从最近的工作上来看,多模态的呈现出以大模型为主线,逐步开始朝长上下文、混合模态、世界模型、多模态生成等方向发展。开始在自己工作的实践中得到的一个个人观点,是多模态大模型的惊艳能力主要来自于文本大模型中所蕴含的知识,以及超强的上下文理解能力,视觉特征只是从属的信息输入或感知源。但近期Gemini 1.5、LWM、甚至Sora等工作又开始尝试大模型理解物理世界(引出世界模型的概念),大模型好像开始从文本之外的模态强化输入信息的影响力。不管怎么说,持续的更新迭代让人耳目一新,相信也会不断刷新人们对人工智能边界的认知。

#Octopus v3

多模态 AI 系统的特点在于能够处理和学习包括自然语言、视觉、音频等各种类型的数据,从而指导其行为决策。近期,将视觉数据纳入大型语言模型 (如 GPT-4V) 的研究取得了重要进展,但如何有效地将图像信息转化为 AI 系统的可执行动作仍面临挑战。

在最近的一篇论文中,研究者提出了一种专为 AI 应用设计的多模态模型,引入了「functional token」的概念。

  • 论文标题:Octopus v3: Technical Report for On-device Sub-billion Multimodal AI Agent
  • 论文链接:https://arxiv.org/pdf/2404.11459.pdf
  • 模型权重和推理代码:https://www.nexa4ai.com/apply

为确保该模型能兼容边缘设备,研究者将其参数量优化至 10 亿以内。与 GPT-4 类似,该模型能同时处理英文和中文。实验表明,该模型能在包括树莓派等各类资源受限的终端设备上高效运行。

研究背景

人工智能技术的飞速发展彻底改变了人机交互的方式,催生出一批能够根据自然语言 \ 视觉等多种形式的输入执行复杂任务、做出决策的智能 AI 系统。这些系统有望实现从图像识别、语言翻译等简单任务到医疗诊断、自动驾驶等复杂应用的自动化。多模态语言模型是这些智能系统的核心,使其能够通过处理整合文本、图像乃至音视频等多模态数据,理解和生成近乎人类的回复。相较于主要关注文本处理和生成的传统语言模型,多模态语言模型是一大飞跃。通过纳入视觉信息,这些模型能够更好地理解输入数据的语境和语义,从而给出更加准确、相关的输出。例如,一个在图文匹配数据上训练的多模态语言模型,相比单纯的文本模型,能够为新图生成更具描述性、更符合上下文的文字说明。处理和整合多模态数据的能力,对于开发多模态 AI 系统至关重要,使其能完成需要同时理解语言和视觉信息的任务,如视觉问答、图像导航、多模态情感分析等。

开发多模态语言模型的一大挑战在于,如何将视觉信息有效地编码为模型可处理的格式。这通常借助卷积神经网络 (CNN) 或 transformer 等架构来实现,如视觉 transformer (ViT) 。CNN 凭借从图像中提取层次化特征的能力,在计算机视觉任务中得到广泛应用,使模型能够学习到输入数据越来越复杂的表示。另一方面,ViT 等基于 transformer 的架构由于能捕捉长距离依赖、建模全局上下文,在理解图像中物体间关系方面优势突出,近年来备受青睐。这些架构使模型能够从输入图像中提取有意义的特征,并将其转化为可与文本输入整合的向量表示。

编码视觉信息的另一种方法是图像符号化 (tokenization), 即将图像分割为更小的离散单元或 token。这种方法让模型能以类似处理文本的方式来处理图像,实现两种模态的更无缝融合。图像 token 信息可与文本输入一同送入模型,使其能同时关注两种模态并生成更准确、更契合上下文的输出。例如,OpenAI 开发的 DALL-E 模型采用 VQ-VAE (向量量化变分自编码器) 的变体对图像做符号化,使模型能根据文本描述生成新颖图像。开发出能够根据用户提供的查询和图像采取行动的小型高效模型,对 AI 系统的未来发展影响深远。这些模型可部署于智能手机、物联网设备等资源受限的设备上,扩大其应用范围和场景。借助多模态语言模型的威力,这些小型系统能以更自然、直观的方式理解和回应用户的问询,同时考虑用户提供的视觉语境。这为实现更具吸引力、个性化的人机互动开启了可能,如根据用户喜好提供视觉推荐的虚拟助手,或根据用户面部表情调节设置的智能家居设备。

此外,多模态 AI 系统的发展有望实现人工智能技术的民主化,让更广泛的用户和行业受益。更小巧高效的模型可在算力较弱的硬件上训练,降低部署所需的计算资源和能耗。这可能带来 AI 系统在医疗、教育、娱乐、电商等各个领域的广泛应用,最终改变人们的生活和工作方式。

相关工作

多模态模型由于能够处理和学习文本、图像、音频等多种数据类型而备受关注。这类模型能捕捉不同模态间复杂的交互,并利用它们的互补信息来提升各类任务的性能。视觉 - 语言预训练 (VLP) 模型如 ViLBERT、LXMERT、VisualBERT 等,通过跨模态注意力学习视觉和文本特征的对齐,生成丰富的多模态表征。多模态 transformer 架构如 MMT、ViLT 等则对 transformer 做了改进,以高效处理多种模态。研究者还尝试将音频、面部表情等其他模态纳入模型,如多模态情感分析 (MSA) 模型、多模态情绪识别 (MER) 模型等。通过利用不同模态的互补信息,多模态模型相比单模态方法取得了更优的性能和泛化能力。

终端语言模型定义为参数量少于 70 亿的模型,因为研究者发现即使采用量化,在边缘设备上运行 130 亿参数的模型也非常困难。这一领域近期的进展包括 Google 的 Gemma 2B 和 7B、Stable Diffusion 的 Stable Code 3B 以及 Meta 的 Llama 7B。有趣的是,Meta 的研究表明,与大型语言模型不同,小型语言模型采用深而窄的架构会有更好的表现。其他对终端模型有益的技术还包括 MobileLLM 中提出的 embedding 共享、分组 query 注意力以及即时分块权重共享等。这些发现凸显了在开发终端应用的小型语言模型时,需要考虑不同于大模型的优化方法和设计策略。

Octopus 方法

Octopus v3 模型开发中采用的主要技术。多模态模型开发的两个关键方面是:将图像信息与文本输入相整合,以及优化模型预测动作的能力。

视觉信息编码

图像处理中存在多种视觉信息编码方法,常用隐藏层的 embedding。例如,VGG-16 模型的隐藏层 embedding 被用于风格迁移任务。OpenAI 的 CLIP 模型展示了对齐文本和图像 embedding 的能力,利用其图像编码器来嵌入图像。ViT 等方法则采用了图像 tokenization 等更先进的技术。研究者评估了多种图像编码技术,发现 CLIP 模型的方法最为有效。因此,本文采用基于 CLIP 的模型进行图像编码。

Functional token

与应用于自然语言和图像的 tokenization 类似,特定 function 也可封装为 functional token。研究者为这些 token 引入了一种训练策略,借鉴了自然语言模型处理未见词的技术。这一方法与 word2vec 类似,通过 token 的上下文环境来丰富其语义。例如,高级语言模型最初可能难以应对 PEGylation 和 Endosomal Escape 等复杂化学术语。但通过因果语言建模,尤其是在包含这些术语的数据集上训练,模型能够习得这些术语。类似地,functional token 也可通过并行策略习得,其中 Octopus v2 模型可为此类学习过程提供强大的平台。研究表明,functional token 的定义空间是无限的,从而能够将任意特定 function 表示为 token。

多阶段训练

为开发出高性能的多模态 AI 系统,研究者采用了集成因果语言模型和图像编码器的模型架构。该模型的训练过程分为多个阶段。首先,因果语言模型和图像编码器分别训练,建立基础模型。随后,将这两个部件合并,并进行对齐训练以同步图像和文本处理能力。在此基础上,借鉴 Octopus v2 的方法来促进 functional token 的学习。最后一个训练阶段中,这些能够与环境交互的 functional token 提供反馈,用于进一步优化模型。因此,最后阶段研究者采用强化学习,并选择另一个大型语言模型作为奖励模型。这种迭代训练方式增强了模型处理和整合多模态信息的能力。

模型评估

本节介绍模型的实验结果,并与集成 GPT-4V 和 GPT-4 模型的效果进行对比。在对比实验中,研究者首先采用 GPT-4V (gpt-4-turbo) 处理图像信息。然后将提取的数据输入 GPT-4 框架 (gpt-4-turbo-preview), 将所有 function 描述纳入上下文并应用小样本学习以提升性能。在演示中,研究者将 10 个常用的智能手机 API 转化为 functional token 并评估其表现,详见后续小节。

值得注意的是,虽然本文仅展示了 10 个 functional token, 但该模型可以训练更多 token 以创建更通用的 AI 系统。研究者发现,对于选定的 API, 参数量不到 10 亿的模型作为多模态 AI 表现可与 GPT-4V 和 GPT-4 的组合相媲美。

此外,本文模型的可扩展性允许纳入广泛的 functional token, 从而能够打造高度专业化的 AI 系统,适用于特定领域或场景。这种适应性使本文方法在医疗、金融、客户服务等行业尤为有价值,这些领域中 AI 驱动的解决方案可显著提升效率和用户体验。

在下面的所有 function 名称中,Octopus 仅输出 functional token 如 < nexa_0>,...,<nexa_N>, 研究者将 functional token 替换为相应的函数名称以便更好地演示。以下所有结果都是直接生成的,无需任何输出解析器。Octopus v3 是一个单一模型,可同时处理中文和英文,这意味着无需专门训练另一个中文模型。   

发送邮件

发送短信

Google 搜索

亚马逊购物

智能回收

失物招领

室内设计

Instacart 购物

DoorDash 外卖

宠物护理

社会影响

在 Octopus v2 的基础上,更新后的模型纳入了文本和视觉信息,从其前身纯文本方法迈出了重要一步。这一显著进展实现了视觉和自然语言数据的同步处理,为更广泛的应用铺平了道路。Octopus v2 引入的 functional token 可适应多个领域,如医疗和汽车行业。随着视觉数据的加入,functional token 的潜力进一步扩展到自动驾驶、机器人等领域。此外,本文的多模态模型让树莓派等设备实际转化为 Rabbit R1 、Humane AI Pin 之类的智能硬件成为可能,它采用终端模型而非基于云的方案。

Functional token 目前已获得授权,研究者鼓励开发者参与本文框架,在遵守许可协议的前提下自由创新。在未来的研究中,研究者旨在开发一个能够容纳音频、视频等额外数据模态的训练框架。此外,研究者发现视觉输入可能带来相当大的延迟,目前正在优化推理速度。

#E2E-MFD

多模态融合检测端到端算法E2E-MFD来了!

西安电子科大、上海AI Lab等提出多模态融合检测算法E2E-MFD,将图像融合和目标检测整合到一个单阶段、端到端框架中,简化训练的同时,提升目标解析性能。

恶劣天气下,自动驾驶汽车也能准确识别周围物体了?!

西安电子科大、上海AI Lab等提出多模态融合检测算法E2E-MFD,将图像融合和目标检测整合到一个单阶段、端到端框架中,简化训练的同时,提升目标解析性能。

相关论文已入选顶会NeurlPS 2024 Oral,代码、模型均已开源。

论文链接(非最终版本):https://arxiv.org/abs/2403.09323

代码链接:https://github.com/icey-zhang/E2E-MFD

其中图像融合是指,把不同来源(比如可见光和红外相机)的图像合并成一张,这样就能在一张图像中同时看到不同相机捕捉到的信息;目标检测即找出并识别图像中的物体。

端到端意味着,E2E-MFD算法可以一次性处理这两个任务,简化训练过程。

而且,通过一种特殊的梯度矩阵任务对齐 (GMTA) 技术,这两个任务还能互帮互助,互相优化。

最终实验结果显示,E2E-MFD在信息传递、图像质量、训练时间和目标检测方面均优于现有方法。

E2E-MFD:多模态融合检测端到端算法

众所周知,精确可靠的目标解析在自动驾驶和遥感监测等领域至关重要。

仅依赖可见光传感器可能会导致在恶劣天气等复杂环境中的目标识别不准确。

可见光-红外图像融合作为一种典型的多模态融合(MF)任务,通过利用不同模态的信息互补来解决这些挑战,从而促进了多种多模态图像融合技术的快速发展。

诸如CDDFuse和DIDFuse方法采用两步流程:

首先训练多模态融合网络(MF),然后再训练目标检测(OD)网络,用来分别评估融合效果。

尽管深度神经网络在学习跨模态表征能力上取得了显著进展,并带来了多模态融合的良好结果,但大多数研究主要集中在生成视觉上吸引人的图像,而往往忽略了改进下游高级视觉任务的能力,如增强的目标解析。

最近的研究开始设计联合学习方法,将融合网络与目标检测和图像分割等高级任务结合在一起。

其中,多模态融合检测(MFD)方法中MF与OD的协同已成为一个活跃的研究领域。

这种协同作用使得MF能够生成更丰富、更有信息量的图像,从而提升OD的性能,而OD则为MF提供了有价值的目标语义信息,从而准确地定位和识别场景中的物体。

通常,MFD网络采用一种级联设计,其中联合优化技术使用OD网络来引导MF网络创建便于目标检测的图像。

但是依旧存在以下问题:

1) 当前的优化方法依赖于多步骤、渐进的联合方法,影响训练效率;

2) 这些方法过于依赖目标检测(OD)信息来增强融合,导致参数平衡困难并易于陷入单个任务的局部最优解。

因此,寻求一个统一的特征集,同时满足每个任务的需求,仍然是一项艰巨的任务。

为此,研究提出了一种名为E2E-MFD的端到端多模态融合检测算法。

(1)这是一种高效同步联合学习的方法,将图像融合和目标检测创新性地整合到一个单阶段、端到端的框架中,这种方法显著提升了这两项任务的成果。

(2)引入了一种新的GMTA技术,用于评估和量化图像融合与目标检测任务的影响,帮助优化训练过程的稳定性,并确保收敛到最佳的融合检测权重配置。

(3)通过对图像融合和目标检测的全面实验验证,展示了所提出方法的有效性和稳健性。在水平目标检测数据集M3FD和有向目标检测数据集DroneVehicle上与最先进的融合检测算法相比,E2E-MFD表现出强大的竞争力。

其整体架构如下:

展开来说,E2E-MFD通过同步联合优化,促进来自两个领域的内在特征的交互,从而实现简化的单阶段处理。为了协调细粒度的细节与语义信息,又提出了一种全新的对象-区域-像素系统发育树 (ORPPT)概念 ,并结合粗到细扩散处理 (CFDP)机制 。

该方法受视觉感知自然过程的启发,专为满足多模态融合(MF)和目标检测(OD)的具体需求而设计。

此外,研究引入了梯度矩阵任务对齐(GMTA)技术,以微调共享组件的优化,减少传统优化过程中固有的挑战。

这确保了融合检测权重的最优收敛,增强了多模态融合检测任务的准确性和有效性。

实验实验细节

展开来说,E2E-MFD通过同步联合优化,促进来自两个领域的内在特征的交互,从而实现简化的单阶段处理。为了协调细粒度的细节与语义信息,又提出了一种全新的对象-区域-像素系统发育树 (ORPPT)概念 ,并结合粗到细扩散处理 (CFDP)机制 。

实验结果

研究提供了不同融合方法在TNO、RoadScene和M3FD数据集上的定量结果。

模型的训练(Tr.)和测试(Te.)时间均在NVIDIA GeForce RTX 3090上统计。

可以看出,E2E-MFD在MI指标上普遍获得了最佳度量值,表明其在信息传递方面比其他方法从两个源图像中提取了更多有用的信息。

EN值进一步显示,E2E-MFD能够生成包含清晰边缘细节且对象与背景对比度最高的图像。

较高的VIF值则表明,E2E-MFD的融合结果不仅具有高质量的视觉效果,同时在失真度方面较低。

此外,该方法的训练时间最快,表明在新的数据集上能够实现更快速的迭代更新。

生成融合图像的测试时间在所有方法中排名第三。

定性结果如下图所示,所有融合方法均在一定程度上融合了红外和可见光图像的主要特征,但E2E-MFD具备两个显著优势。

首先,它能够有效突出红外图像的显著特征,例如在M3FD数据集中,E2E-MFD捕捉到了骑摩托车的人员。

与其他方法相比,E2E-MFD展示了更高的物体对比度和识别能力。

其次,它保留了可见图像中的丰富细节,包括颜色和纹理。

在M3FD数据集中,E2E-MFD的优势尤为明显,比如能够清晰显示白色汽车的后部以及骑摩托车的人。

E2E-MFD在保留大量细节的同时,保持了图像的高分辨率,并且没有引入模糊现象。而其他方法则未能同时实现这些优势。

为了更有效地评估融合图像对下游检测任务的影响,研究在M3FD数据集上使用了YOLOv5s检测器对所有SOTA方法进行了测试,结果如表所示。

与单模态检测相比,SOTA方法在融合图像上的表现明显提升,表明良好融合的图像能够有效地支持下游检测任务。

E2E-MFD生成的融合图像在YOLOv5s检测器上表现最佳,同时在DiffusionDet检测器上也取得了出色的成绩。

即使与端到端目标检测方法(E2E-OD)相比,E2E-MFD的方法仍显示出了显著的性能提升,充分证明了其训练范式和方法的有效性。

检测结果的可视化如下图所示。

当仅使用单模态图像作为输入时,检测结果较差,常常漏检诸如摩托车和骑手等目标,尤其是在图像右侧靠近汽车和行人的区域。

几乎所有的融合方法都通过融合两种模态的信息,减少了漏检现象并提升了检测的置信度。

通过设计端到端的融合检测同步优化策略,E2E-MFD生成了在视觉上和检测上都非常友好的融合图像,尤其在处理遮挡和重叠的目标时表现出色,比如图像右侧蓝色椭圆中的摩托车和重叠的行人。

在DroneVehicle数据集上的目标检测定量结果多模态如表所示,E2E-MFD达到了最高的精度。

此外,使用生成的融合图像在YOLOv5s-OBB和LSKNet上进行检测时,较单一模态至少提高了5.7%和3.1%的AP值,验证了方法的鲁棒性。

这证明了融合图像的优异质量,表明它们不仅在视觉上令人满意,还为检测任务提供了丰富的信息。

小结

研究提出了多模态融合检测算法E2E-MFD,仅以单步训练过程同时完成融合和检测任务。

引入了一个系统发育树结构和粗到细扩散处理机制,来模拟在不同任务需求下,不同视觉感知中需要完成的这两项任务。

此外,研究对融合检测联合优化系统中的任务梯度进行了对齐,消除联合优化过程中两个任务的梯度优化冲突。

通过将模型展开到一个设计良好的融合网络和检测网络,可以以高效的方式生成融合与目标检测的视觉友好结果,而无需繁琐的训练步骤和固有的优化障碍。

更多细节欢迎查阅原论文。

作者主页:
​​​https://icey-zhang.github.io/​

​https://yangxue0827.github.io/​

#从视觉表征到多模态大模型

多模态以及多模态大模型的系统梳理以及技术发展思路探讨。

转眼2024,距离上次知乎写作就快过去一年,上一次的计划主题还是“开源大模型”(参见《ChatGPT的朋友们:大语言模型经典论文一次读到吐》(​​https://zhuanlan.zhihu.com/p/620360553​​)),无奈这个方向变化太快,而且也不乏优质总结文章,也就一直没有动笔。正好最近做图文多模态大模型相关的工作,在查阅资料的过程中没遇到比较完整的脉络梳理文章,往往需要综合参考;反观这个方向的综述型论文又过于追求“完美”,个人感觉详略把控不尽人意。

因此,借此机会结合自己的学习过程,对多模态和多模态大模型做一个系统的梳理,尝试以一个亲历者的视角谈谈这部分技术的发展思路,希望能给读者一些不一样的收获,如有偏颇,欢迎指正。

为了表述简单,我们不严谨的将“图文多模态”表述为“多模态”(标题有些夸张),如果后面有机会可以讨论更多模态的相关工作。此外,本文假设读者已经对视觉表征和多模态融合有一定入门背景,希望通过一篇文章回顾将过去几年的经典工作。

一、总览

由于是讲“图文多模态”,还是要从“图”和“文”的表征方法讲起,然后讲清楚图文表征的融合方法。对于文本模态的表征发展,我们在《闲话NLP:文本表征的半世今生》(​​https://zhuanlan.zhihu.com/p/473195206​​)一文中有过一轮的梳理,因此本文只要讲两件事情:

  • 视觉表征:分为两个部分问题,一是如何合理建模视觉输入特征,二是如何通过预训练手段进行充分学习表征,这两点是基于视觉完成具体算法任务的基础;
  • 视觉与自然语言的对齐(Visul Language Alignment)或融合:目的是将视觉和自然语言建模到同一表征空间并进行融合,实现自然语言和视觉语义的互通,这点同样离不开预训练这一过程。模态对齐是处理多模态问题的基础,也是现在流行的多模态大模型技术前提。

对于视觉表征,从发展上可以分为卷积神经网络(CNN)和Vision Transformer(VIT)两大脉络,二者分别都有各自的表征、预训练以及多模态对齐的发展过程。而对于VIT线,另有多模态大模型如火如荼的发展,可谓日新月异。

因此,本文的行文思路也就非常简单,如图1所示。第一部分介绍以CNN为基础的视觉表征和预训练手段,以及在此基础上的多模态对齐的方法。由于预训练已经成为AI技术取得效果的标配,多模态对齐部分的内容也是以多模态预训练技术承载;第二部分从VIT技术出发,分别介绍VIT视觉表征的预训练探索工作、多模态对齐的预训练工作以及近两年火热的研究方向多模态大模型。

图1

由于多年间的优秀工作太多,不胜枚举,本文仅挑选笔者从业过程中印象较深,且有标志性特点的工作为代表。优秀的工作不止于本文,不过还是期望通过有限的工作,将近几年的图文多模态相关技术串连起来,方便读者按图索骥进行更深入的学习。下面开始正式的内容。

二、CNN:视觉理解的一代先驱

2.1 卷积视觉表征模型和预训练

对视觉信息的表征,简单来说是将图像信息转化成深度学习输入所需的特征向量或向量序列,如图2。深度学习时代,卷积神经网络(CNN)凭借其局部区域连接、权重共享以及位移不变性等特点,天然的符合了图像信息的建模归纳假设,成为早期最适合视觉表征的模型。具体的,卷积神经网络应用视觉表征的模型很多,我们简单从LeNet-5、AlexNet、VGG和ResNet等模型的演进一窥其在关键要素。

图2

2.1.1 卷积视觉表征:从LeNet到ResNet

LeNet-5早期在数字识别中取得了成功的应用,网络结构是 [CONV-POOL-CONV-POOL-FC-FC]。卷积层使用 5*5的卷积核,步长为1;池化层使用 2*2 的区域,步长为2;后面是全连接层;AlexNet相比LeNet-5做了更多层数的堆叠,网络参数进行了相应的调整,并在ImageNet大赛2012夺得冠军;相应VGG网络使用更小的卷积核,同时相比AlexNet进一步提升了网络层数。

随着研究的深入,神经网络的层数也出现了爆发式地增长,由此也不可避免的带来梯度消失和梯度爆炸的问题,使得模型训练的困难度也随之提升。一种解决方法是将神经网络某些层跳过下一层神经元的连接,隔层相连,弱化每层之间的强联系。这种神经网络被称为Residual Network(ResNet)残差网络,网络结构的原理是将卷积层的堆叠,替换成跨层连接的模块,如图3所示。

图3

有了合理的建模模型,可以使用具体任务的训练数据学习视觉表征,进而完成不同的任务(如分类、分割、目标检测等)。而更加有效的方式通常是先用“海量”的数据让模型学到通用的视觉表征,再进行下游具体任务数据的学习,也就是预训练+微调的范式。

2.1.2 卷积视觉预训练

在CNN视觉表征体系下,早期的视觉预训练有另一个叫法是迁移学习,在BERT的预训练+微调范式流行之前就已经被广泛应用。迁移学习中,传统CNN视觉模型在做具体任务训练之前,先在大量的图像任务数据集上进行预先训练(如ImageNet分类任务数据集等)。然后使用预训练的CNN权重初始化Backbone,并增加一些任务定制网络模块,完成在下游任务上的微调(如Backbone+全连接层做分类任务)。

卷积神经网络视觉表征和预训练的优化升级工作还有很多,介绍相关内容的资料也很多,篇幅原因我们对此不进行详细展开和概述,而是把更多的笔墨放在近几年更热门的研究方向上。

2.2 早期多模态融合与预训练

接着是CNN体系下的多模态融合和预训练,视觉和自然语言的跨模态对齐和融合有两种表现形式:一种是双塔结构,多模态分别表征,通过对比学习机制实现视觉和文本在同一空间中的距离度量;另一种是视觉表征和文本表征通过交互型网络结构融合成多模态表征,进而完成下游任务应用。由于前者可以看作后者的特例,我们用后一种表现形式为例,将二者统一,进而讲述以CNN为基础的早期多模态融合与预训练技术。

如图4,展示了上述的多模态融合框架,包括视觉特征提取模块、文本特征提取模块和模态融合模块。文本模块是常见的Token Embedding方式;视觉表征方面,由于CNN已经验证了有效性,因此大多数的工作在都考虑使用CNN做视觉特征抽取,得到高级语义特征,然后将高级语义表征作为输入,和文本Token Embedding序列一起输入到下游融合模块。不同工作的差异主要集中在视觉特征提取CNN Backbone以及Modality Interaction两个模块。

图4

我们以2019年作为粗略分界点,在此之后BERT的训练范式开始流行,多模态方向上的研究热点则是借鉴BERT的成功,使用Transformer网络(特指Transformer Encoder)作为Modality Interaction模块把视觉和自然语言进行特征融合,并通过大规模预训练来学习得到多模态表征;而在此之前的方案通常是简单的多层全连接网络实现,我们不多赘述。

顺着这个思路,确定了使用Transformer作为模型融合模块这个大方向后,第二个问题是如何对视觉特征进行有效编码,得到和文本一样的Token Embedding序列作为模型输入?这一问题的解法在CNN为主的时期有两种主要方式,如图5:

  • Region Feature Base:先通过基于CNN的目标检测模型(Fast R-CNN等),识别图像中的关键物体区域集合(ROI,Region Of Interest),并提取区域的表征向量,作为Transformer模型的视觉输入Embedding序列。这么做的动机是,每个ROI区域,都有明确的语义表达(人、建筑、物品等),方便后续和文本特征的对齐。比较有代表性的工作如LXMERT、VL-BERT和UNITER等;
  • Grid Feature Base:区域特征方法虽然看上去合理,但是依赖前置的目标检测模型,整体链路较重。因此也有工作探索,不经过区域检测,直接使用CNN网络提取深层的像素特征作为交互模型输入,同样取得了一些成果。比较有代表性的工作如Pixel-Bert等。

图5

下面我们分别介绍这一时期的经典工作,了解其中基本思路和方法。

2.2.1 LXMERT

LXMERT是早期进行多模态特征融合的工作之一,如图6,模型采用经典的两路深层表征输入结构。在视觉侧关注单图,图像经过目标检测模型得到区域块的特征序列,又经过Transformer做进一步编码区域块之间的关系(Object-Relationship Encoder);文本侧通过BERT结构得到文本的特征序列(Language Encoder),最后两者使用深层Transformer结构做交叉Attention,最后进行多任务的预训练。LXMERT的预训练任务相比BERT较多,包括Masked图像特征的预测、图像Label的预测(猫、狗等)、VQA、图文是否匹配以及纯文本侧的Masked语言模型(MLM)。

图6

预训练模型经过特定任务微调后,LXMERT在两个视觉问答数据集(VQA和GQA)上达到了当时最先进的结果。作者还展示了LXMERT可以很好地泛化到一个具有挑战性的视觉推理任务(NLVR2),并将之前的最佳结果提高了22%(从54%到76%),是一个比较优秀的工作。

2.2.2 VL-BERT

另一个Region Feature Base的经典工作是VL-BERT。如图7,与LXMERT不同的是,VL-BERT属于单路输入模式,视觉特征在经过目标检测模型进行Region特征提取后,直接和文本Embedding一起拼接输入到Transformer网络中进行多模态的交叉Attention。

图7

VL-BERT设计了两个预训练任务:带视觉特征的掩码语言模型学习(Masked Language Modeling with Visual Clues)、带文本特征的视觉Region分类(Masked RoI Classification with Linguistic Clues)。经过预训练和微调流程,模型可以适用于多种视觉和语言任务,并在视觉问答、图像-文本检索、视觉常识推理等任务上都取得了非常不错的性能。VL-BERT印证了,多模态语义特征不需要各自的单独深度编码,直接做交互也可以取得有效结果。

2.2.3 UNITER

如图8,UNITER使用和VL-BERT类似的架构,同样的单路架构,同样是目标检测模型做视觉的语义特征抽取,并进一步使用更多的训练数据、更多的预训练任务,希望得到一个更加通用的图文多模态表征模型。UNITER通过在四个图像和文本数据集(COCO, Visual Genome, Conceptual Captions, and SBU Captions)上进行大规模的预训练,可以支持多种视觉和语言任务的联合多模态表征。同时设计了四种预训练任务:遮蔽语言建模(MLM),遮蔽区域建模(MRM,有三种变体),图像-文本匹配(ITM),和词-区域对齐(WRA)。

图8

相比于之前方案,UNITER提出了通过最优传输(OT,Optimal Transport)的方法来进行WRA,在预训练过程中显式地加强词和图像区域之间的细粒度对齐。相比其他工作仅使用图像-文本匹配(ITM)的全局对齐方式,WRA更加精准。经过大量的消融实验,UNITER还探索了预训练任务的最佳组合方式,并最终在视觉问答,图像-文本检索,指代表达理解,视觉常识推理,视觉蕴含,和NLVR2等任务上都达到了新的最先进的水平。

UNITER称得上是Region Feature Based多模态预训练的集大成者,同时期的大多数工作也多是类似结构上的修补或增强。但也不乏另辟蹊径的工作,其中以Grid Feature Based相关工作最具影响力。

2.2.4 Pixel-BERT

Pixel-BERT是Grid Feature Based多模态融合代表工作之一。如图9,与Region Feature Based方法不同的是,Pixel-BERT不需要使用目标检测模型进行ROI区域的特征抽取,而是直接通过卷积网络提取图片的像素级别特征,直觉和文本特征一起输入到下游的Transformer网络进行特征融合。这种方式减少了目标检测区域框标注的成本,同时缓解了视觉语义label与文本语义的不均衡问题(区域框的物体类别往往上千规模,而文本可以表达的语义远不止于此)。

图9

详细来说,当时主流的Region Feature Based方法提取视觉特是使用如Fast R-CNN的目标检测模型,通常在Visual Genome数据集上训练得到。这种目标检测模型,通常先提取可能存在物体的区域,然后根据区域特征进行物体类别的分类。相应的,这些区域的特征往往局限在固定的类目集合范围内,语义范围较为有限,这是也使用区域语义特征的固有缺陷。

Pixel-BERT的思路是直接学习像素级别的表征来代替物体框为主的区域特征,具体的,像素特征通过ResNet之类的卷积神经网络提取得到。对于给定的图片I,先使用CNN backbone提取特征 (如从  经过多层卷积网络到  channel_dim) 。然后按空间顺序,铺平网格特征序列,计作  ,  为像素的数量。最终的视觉语义embedding特征记作  ,其中  是可学习的语义表征向量,用于区分文本表征向量。由于所有的像素共用s_v,索引s_v也可以看作是CNN backbone的一个bias项。

此外,Pixel-BERT使用随机像素采样机制来增强视觉表示的鲁棒性,并使用MLM和ITM作为预训练任务进行预训练。最后通过对下游任务进行广泛的实验,在包括视觉问答 (VQA)、图像文本检索和视觉推理等下游任务中取得了SOTA效果。

三、VIT:拥抱Transformer

Pixel-BERT之类的网络,减少了对与目标检测模型的依赖,仅使用深层卷积神经网络提取像素级别的特征作为下游多模态融合模块,极大简化了图文多模态表征模型的网络结构。那么,我们能不能进一步简化视觉表征模块,直接把图像特征简单加工后就直接输入到Transformer网络和文本特征一起做模态的融合?要做到这一点,我们需要先回答另一个问题,Transformer网络能不能替换CNN作为视觉表征的Backnone?虽然现在来看,答案是肯定的,但在开始阶段,这个过程并不是那么顺利。

我们知道,CNN应用于视觉表征有着很强的归纳偏置或者说先验,在 CNN 中,局部性、二维邻域结构和平移不变性是在整个模型的每一层中都有体现,和视觉图像的特点极其类似:

  • 局部感知性:卷积层通过卷积操作和参数共享,能够高效地提取输入图像的局部特征。这种局部感知性使得CNN能够捕捉图像中的局部结构,例如边缘、纹理等,从而更好地表征图像。
  • 层级结构:CNN的层级结构包括卷积层、激活函数、池化层和全连接层。这种层级结构使得CNN能够逐层提取和组合特征,从低级到高级,形成更复杂的视觉表征。
  • 参数共享:卷积层中的参数共享使得CNN的训练更加高效。相同的卷积核在不同位置对图像进行卷积操作,共享参数减少了模型的复杂度,同时也增强了模型的泛化能力。
  • 空间不变性:卷积操作具有平移不变性,即无论图像中的物体在图像中的位置如何变化,卷积核都能检测到相应的特征,这对于图像分类、目标检测和图像分割等计算机视觉任务非常重要。

而在 Transformer 中的Self-Attention层则是全局的,对于视觉输入的局部关系建模、图像的2D位置关系的建模,以及图像元素的平移不变性的把握上,都需要从头学习。然而,即便是困难重重,因为有BERT的巨大成功,仍然有许多的研究者前赴后继投入到这个方向,并最终取得成功,其中Vision Transformer (ViT) 是最为经典的案例之一。

3.1 VIT范式视觉表征和预训练

3.1.1 VIT:Transformer视觉表征

如图10,VIT将输入图片平铺成2D的Patch序列(16x16),并通过线性投影层将Patch转化成固定长度的特征向量序列,对应自然语言处理中的词向量输入。同时,每个Patch可以有自己的位置序号,同样通过一个Embedding层对应到位置向量。最终Patch向量序列和视觉位置向量相加作为Transfomer Encoder的模型输入,这点与BERT模型类似。

图10

同样,VIT通过一个可训练的CLS token得到整个图片的表征,并接入全链接层服务于下游的分类任务。当经过大量的数据上预训练,迁移到多个中等或小规模的图像识别基准(ImageNet, CIFAR-100, VTAB 等)时,ViT取得了比CNN系的模型更好的结果,同时在训练时需要的计算资源大大减少。按说,ViT的思路并不复杂,甚至一般人也不难想到,但是为什么真正有效的工作确没有很快出现?不卖关子,VIT成功的秘诀在于大量的数据做预训练,如果没有这个过程,在开源任务上直接训练,VIT网络仍会逊色于具有更强归纳偏置的CNN网络。

因此,在此之后的一大研究方向就是如何更加有效的对VIT结构的网络进行预训练。下面我们通过MAE和BEIT两个优秀的工作,来讨论这个方向上的两类主流方案。

3.1.2 MAE:激进的Mask自监督预训练

与自然语言理解类似,VIT模型能取得成功得益于预训练+微调的训练范式。前文提到,传统CNN视觉模型的预训练,仅仅是在大量的图像任务数据集上进行预先训练(如ImageNet分类任务等),然后使用训练后的权重进行初始化Backbone,在下游任务上继续微调完成相应任务。

早期的VIT的预训练和CNN预训练一样,都是通过大规模的有监督分类任务数据集进行训练,和BERT的自监督预训练仍有区别。而自监督预训练有着数据获取成本低、不需要标注、任务难度大模型学习充分等诸多好处,因此很多研究工作探索自监督视觉预训练,比较有代表性的实践工作如Masked AutoEncoder(MAE)。

图11

如图11,所示,MAE以VIT为基础模型,先对完整图片进行Patch掩码,接着使用一个Transformer Encoder对未Mask的Patch进行编码,然后通过相对小的Transformer Decoder模型还原被Masked Patch,从而实现模型的自监督预训练。

MAE取得成功的另一个核心原因是通过75%的高掩码率来对图像添加噪音,这样图像便很难通过周围的像素来对被掩码的像素进行重建,从而使编码器去学习图像中的语义信息。预训练之后,解码器被丢弃,编码器可以应用于未掩码的图像来进行识别任务。

相对于自然语言的自监督训练,MAE使用了更大的掩码比例。后人进一步分析,这么做动机是考虑自然语言和视觉特征的信息密度不同,简单来说:文本数据是经过人类高度抽象之后的一种信号,信息是密集的,可以仅仅预测文本中的少量被掩码掉的单词就能很好的捕捉文本的语义特征。而图像数据是一个信息密度非常小的矩阵,包含着大量的冗余信息,像素和它周围的像素存在较大的相似性,恢复被掩码的像素并不需要太多的语义信息。

3.1.3 BEIT:视觉“分词”表征预训练

另一类Transformer视觉模型预训练的代表范式是BEIT(BERT Pre-Training of Image Transformers)模型。为了与BERT的预训练框架对齐,BEIT通过辅助网络模块先对视觉Patch进行Tokenizer,得到整张图各部分的视觉Token ID。然后将视觉Patch视为自然语言中的单词进行掩码预测,完成预训练流程。

图12

具体的如图12,在预训练之前,BEIT先通过一个离散自回归编码器( discrete Variational AutoEncoder,dVAE)学习了一个“图像分词”器,最终可以将图像编码成离散的视觉Token集合。而在预训练阶段,输入的图片存在两个视角,一是图像Patch,另一个是视觉Token。BEIT随机对Patch进行掩码,并将掩码部分替换为特殊的Mask Embedding([M],图中的灰色部分),随后将掩码后的Patch序列输入到VIT结构的模型中。预训练的目标则是基于被掩码的图像输入向量序列,预测源图像对应的视觉Token ID。

BEIT需要单独的dVAE网络辅助,相对MAE更为复杂,效果也相对不足,但为视觉预训练提供了一个不错的范式,同样是一次十分有价值的探索。

3.2 VIT为基础的多模态对齐与预训练

以VIT为基础的视觉预训练可以通过Transformers对视觉进行有效表征,这种方法也逐渐成为目前视觉信息编码的主流手段。以此为延伸,基于此的多模态预训练工作也层出不穷,也为如今的多模态大模型的顺理成章打下了坚实基础。

如图13,梳理了以VIT为延伸的多模态对齐和预训练工作,各工作之间都或多或少的有所关联,可谓是一脉相承。下面我们分别介绍这个技术方向的经典工作,读完本小结下面的内容再来看图中的模型关系,可能会更有感觉。

图13

3.2.2 CLIP

CLIP模型是OpenAI 2021发布的多模态对齐方法。与OpenAI的许多工作类似,CLIP强调强大的通用性和Zero-Shot能力,也因此至今仍有很强的生命力,相关技术被广泛应用。

CLIP的核心思路是通过对比学习的方法进行视觉和自然语言表征的对齐。如图xx(1),CLIP首先分别对文本和图像进行特征抽取,文本的Encoder为预训练BERT,视觉侧的Encoder可以使用传统的CNN模型,也可是VIT系列模型。得到图文表征向量后,在对特征进行标准化(Normalize)后计算Batch内图文Pair对之间的余弦距离,通过Triple Loss或InfoNCELoss等目标函数拉近正样本对之间的距离,同时使负样本对的距离拉远。

图14

经过大量的图文Pair对进行预训练后,我们可以得到在同一表征空间下的文本Encoder和图像Encoder。下游应用通常也是两种方式,一是在下游任务上对模型进行微调,适应定制的图文匹配任务,或者仅使用文本或图像Encoder做单模态任务;另一种使用方式是直接使用预训练的图文表征Zero-Shot方式完成下游任务。

CLIP进行Zero-Shot的一种使用方式如图14(2)和(3),对于一个图像分类任务,可以首先将所有的候选类别分别填充“A photo of a {object}”的模板,其中object为候选类别,对于一张待预测类别的图像,通过图像Encoder的到视觉表征后,与所有类别的模板文本Encoder表征进行相似度计算,最后选择相似度最高的类别即可作为预测结果。

CLIP凭借其简洁的架构和出众的效果,被后来很多工作引用,并使用CLIP预训练的Backbone作为视觉表征模块的初始化参数。

3.2.3 VILT

CLIP方法简单有效,双塔的网络结构对于下游应用也十分友好。但是如同表示型语义匹配类似,双塔结构同样也有交互不足的问题,内积或余弦距离的模态融合方式匹配能力上限较低,对于一些需要细粒度跨模态匹配的任务(VQA等)有时力不从心。因此,交互式的多模态对齐和融合仍然极具价值,典型的如VILT模型。

VILT是VIT在图文多模态方向上的工作延续。我们了解了基于Transformer的自然语言模型和视觉模型的预训练范式后,进阶到多模态融合十分容易理解。如图15所示,与BERT文本对的输入方式类似,VILT将文本和视觉Patch的Embedding直接拼接作为Transformer编码器的输入,两种模态有各自可学习的位置编码和模态类型编码。

图15

通过深层的Transformer编码,文本与视觉的模态得到了充分的融合。ViLT使用常用的ITM(Image Text Matching)和MLM(Masked Language Modeling)作为预训练目标。

  • ITM(Image Text Matching):图文是否匹配的二分类目标,正样本为常用数据集中提供的语义一致的图文Pair对,负样本对以0.5的概率随机地用替换正图文对中的图片为其他图片;此外借鉴前人工作,匹配目标还增加了图文子区域的匹配目标Word Patch Alignment (WPA),该目标并不常用,我们也不作过多展开。
  • MLM(Masked Language Modeling):以0.15的概率对文本的Token进行掩码,并通过图文的整体上下文信息对预测被掩码的Token。

如图16,可以对比以CNN为基础的多模态预训练和以VIT为基础的预训练,在模型架构上的区别。

图16

而在ViLT之后,多模态预训练的一个较为明显的趋势,是进一步提升模态对齐与融合的效果以及模型结构的通用性,使用统一模型视角进行跨模态对齐和融合。在这个过程中,ALBEF(Align before Fuse)、BLIP(Bootstrapping Language-Image Pre-training)与BEIT-3系列等工作极具参考价值,下面我们简单对比其设计思路。

3.2.5 ALBEF与BLIP

ALBEF通过多任务联合训练将类似CLIP的对比学习和类ViLT的交互融合范式统一到一个训练框架中。如图17所示,模型结构包括一个图像Encoder(12层)、一个文本Encoder(6层)和一个多模态融合的Encoder(6层),各Encoder均沿用Transformer网络。ALBEF的训练任务包括图文对比ITC(Image-Text Contrastive Learning)、ITM(Image-Text Matching)、MLM(Masked Language Modeling)。

图17

  • ITC:在图文模态深层融合之前,在对图文的表征序列Pooling后,通过对比学习Loss对图文单模态表征进行对齐。这部分和CLIP模型的训练设置类似,不同的是文本的Encoder相对视觉Encoder层数更浅。
  • ITM:图文Encoder输出的表征序列深层交互后,判断输入图文对是否匹配,与VILT一样是二分类任务。不同的是负样本对的构造,使用对比学习模块进行了Batch内的难负样本挖掘。主要思路是,对比学习模块中一个Batch中,模型认为最为相似的负样本对可以作为难负样本。
  • MLM:与VILT类似,随机对输入文本token进行掩码,通过图文上下文的输入信息预测被掩码的Token。

最后,由于ALBEF的预训练数据多数为互联网中挖掘的图文对,天然存在较大的噪声数据。为了缓解这个问题,ALBEF在训练过程中通过一个动量自蒸馏的模块(一个移动平均版本的ALBEF模型),生成训练数据集的伪标签,用来辅助模型的训练。

ALBEF通过多任务训练机制将模态对比匹配和深度模态融合结合在一起,下游任务可以根据具体需求使用不同的模块进行微调。与之遥相呼应的的是BLIP模型,在ALBEF基础上,将MLM替换为LM( Language Modeling)Loss,的使得训练得到的模型同时可以支持图像描述文本的生成能力,如图18所示。使得多模态融合预训练有了多模态大模型即视感。

图18

经过大规模多模态数据的预训练,ALBEF和BLIP在下游任务微调中均取得了十分亮眼的效果,在工业界也被广泛应用。

3.2.8 VL-BEIT、VLMO与BEIT-3

ALBEF和BLIP之类的工作虽然能够同时兼顾对比和深度融合两种训练模式,但视觉和自然语言仍然需要单独的Encoder分别编码,这显然还不是我们所期望的真正的多模态统一模型框架。我们可以从Microsoft Research的VL-BEIT、VLMO与BEIT-3这一系列工作一窥这个方向的探索过程。

VL-BEIT可以看作是前文提到的BEIT在多模态对齐预训练工作的延续,同时借鉴了ViLT的网络结构。如图19,与ViLT的区别在于,VL-BEIT期望将单模态和多模态统一到一个模型中,在预训练任务设计上,同时考虑了纯文本、纯视觉以及图文多模态任务。纯文本任务为MLM(a);纯视觉特征的MIM,其中MIM的目标是BEIT工作中的Visual Token ID(b);图文多模态任务包括考虑文本特征的视觉Token预测,以及考虑视觉特征的文本Token预测(c)。

图19

VLMO是VL-BEIT的同期工作,如图20。VLMO相较于VL-BEIT的不同之处在于:1、舍弃了视觉侧的Visual Token ID预测,简化了整体的网络结构;2、增加了类似CLIP的图文对比学习任务,以及交互型的图文匹配任务;3、使用MoME Transformer结构,对不同的模态使用不同的Expert头。虽然VLMO相对于VL-BEIT在效果上并不出彩,但为后续BEIT-3的工作奠定了基础。

图20

与VLMO网络结构类似,BEIT-3将图像、文本和图文多模态输入统一到一个单独的Multiway Transformer网络。不同于经典的Transformer,BEIT-3使用一个多类型输入共享的多头自注意力模块(Multi-Head Self-Attention),不同类型的模态输入各有一个全连接专家模块单独学习。如图21,视觉模态使用V-FFN、文本模态对应L-FFN,图文多模态输入对应VL-FFN,模型会根据不同类型的模态输入选择不同的模块生效。

图21

在预训练任务上,如图22,BEIT-3相比之下也更加全面,不仅包括常用的图文对比学习、MLM和图像文本描述生成任务,还引进了文本和图像的单模态任务。这样的训练方式,使得BEIT-3真正统一了多模态的不同输入类型,同时更加全面和灵活的支持不同模态的下游任务。为了能够实现这样的能力,BEIT-3使用了更多的预训练数据,模型容量相对于之前的工作也有了显著的提高(达到1.9B),相应地最终也取得了在当时更好的效果。

如图22

BEIT-3将多模态对齐和预训练的研究推到了一个新的高度,验证了更多的数据+更大的模型取得更好的效果,在这个研究方向仍不失准。虽然开始饱受争议,但随着ChatGPT的问世,这个发展思路的正确性被进一步加深,也催生了后面多模态大模型的一众研究工作。

四、多模态与大模型

写到这里,经过大规模篇幅的铺垫,终于到了大家都关心的多模态大模型章节。打开前两天的笔记,原来的计划是这部分内容参考综述论文的梳理,选择一些有代表性的工作进行问题的串连。当我重新下载这篇综述论文,想截一张示意图时,却是目瞪狗呆。对比一下,图23是年前的截图,图24是年后的。

图23

图24

这个速度,属实有点跟不上了。调整情绪后,我告诉自己很多工作万变不离其宗,可以延续原来的思路继续写,不增加加新的内容。这样,应该也挺合理的吧。下面我们通过各时期的优秀工作,来系统看一下类似GPT-4的多模态大模型的主流思路。

4.1 Flamingo

如今GPT-4代表着多模态大模型的顶尖水平,但在此之前,甚至在ChatGPT之前就已有相关探索工作,其中谷歌的Flamingo最具当前主流技术雏形。事实上,Flamingo更像是图文多模态领域的GPT-3,不同的是它支持图文上下文的输入,通过In-Context Few-Shot方式完成任务。Flamingo同样支持视频帧序列作为输入,通过Prompt指令完成Video理解任务。

图25

做到这种功能,在模型侧和GPT-3类似,不同的是Flamingo在文本Transfomer网络中增加视觉输入特征,模型结构如图26,包括三个部分。

  • 视觉侧特征抽取使用预训练的ResNet和采样模块(Perceiver Resampler,将变长的视觉特征输入转成少量的视觉特征)模型;
  • 文本侧模型使用LLM(基座使用Chinchilla,同样是谷歌发布的对标GPT-3的大语言模型,并提供了1.4B、7B、和70B等版本,分别对应Flamingo-3B、Flamingo-9B和Flamingo-80B);
  • GATED XATTN-DENSE层,用于连接LLM 层与视觉特征,允许 LM 在处理文本时考虑视觉信息。通过交叉注意力,LM 可以关注与视觉特征相关的部分。预训练LLM和视觉ResNet参数训练过程中是冻结状态。

图26

相应的,在数据层面Flamingo也是使用了多样形式的训练语聊,包括:

  • 图文穿插形式:MultiModal MassiveWeb (M3W),43 Million;
  • 图文Pair对形式:LTIP(Long Text & Image Pairs),312 Million;
  • 带文本描述的短视频:VTP (Video & Text Pairs) ,27 Million 。

最后Flamingo在各种多模态任务上的效果也非常优秀,甚至在有些数据集上通过few-shot方式可以超过经典模型的SOTA。

图27

Flamingo凭借其出色的效果,吸引了许多研究者对于多模态大模型的注意,但当时这种规模的模型训练不是谁都能玩的起,因此并没有引起特别火热的跟风潮。直到ChatGPT的出现,让人逐渐接受了大模型这条道路的正确性,以前觉得自己玩不起的机构,砸锅卖铁拉投资也愿意投入,自此相关的开源研究开始如火如荼。

在众多开源工作中,BLIP-2以及与之一脉相承的InstructBLIP算是早期的探路者之一,我们可以从这两个工作开始讲起。

4.2 BLIP-2和InstructBLIP

BLIP-2的论文标题是Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models,核心思路是通过利用预训练好的视觉模型和语言模型来提升多模态效果和降低训练成本。

BLIP-2的网络结构如图28所示,从架构上来说,和Flamingo十分类似。包括视觉编码层、视觉与文本的Adapter(Q-Former)以及大语言模型层。

  • 视觉编码层:使用ViT模型,权重初始化通过CLIP预训练完成,并剔除最后一次提升输出特征的丰富性;训练过程中冻结权重,不更新;
  • 文本侧的大语言模型层:早期的BLIP-2使用OPT/FlanT5来实验Decoder based和Encoder-Decoder based LLM的效果;这部分同样在训练过程中冻结权重,不更新;
  • 图文Adapter层:Q-Former结构,类似BLIP网络(同样先进行了图文多模态预训练模块),通过Queries向量,提取视觉侧的关键信息输入到LLM;这部分是多模态大模型训练过程中的主要参数。

图28

和Flamingo相比,BLIP-2简化了视觉特征和大模型的交互,直接仅仅将视觉特征和文本特征一起作为大模型的输入,没有深层的交互模块(如GATED XATTN-DENSE层);另一方面在视觉和LLM的Adapter层做了更多的设计,即Q-Former结构,如图29。从Q-Former结构图,我们可以看到BLIP的影子,最大的不同在于一个Learned Queries模块,用于对ViT输出的视觉特征进行采样(Pooling),得到固定长度的视觉特征序列。

图29

上面提到,为了避免灾难遗忘,BLIP-2冻结了ViT和LLM的参数,只训练Q-Former模块。为了训练更加稳定,Q-Former模块的训练包括两个阶段。

  • Stage1: 将Q-Former与冻结的ViT拼接,借鉴BLIP,使用 ITC(图文对比学习)、ITG(图生成文本)和ITM(图文匹配)任务进行学习,对参数进行初始化,学习图文相关性特征。
  • Stage2:如图30,将Stage1得到的模型再拼接LLM,即Q-Former的输出可通过线性投影输入到LLM(冻结参数),进行视觉到自然语言的生成学习,目标是训练Q-Former使其输出的视觉特征和LLM的输入分布对齐。

图30

BLIP-2通过视觉和LLM的特征对齐,使得LLM具备了多模态理解能力,但其训练数据主要沿用BLIP(图文Pair对形式),和当下的多模态模型的主流技术方案仍存在一定GAP,是早期代表性探索之一。不过,随着指令微调成为大模型必备流程,后续BLIP-2也自然升级为InstructBLIP。

如图31,InstructBLIP的网络结构与BLIP-2几乎一致,同样也是2阶段训练,不同的是采样了指令微调范式,将文本模态的Instruction也作为输入同时给到Q-former和LLM进行学习。

图31

对应的,InstructBLIP的另一个不同是训练数据也使用指令形式,将各种类型任务的开源学术数据,使用模板构造成指令多模态数据。数据模板如图31。

图31

通过指令数据和指令微调,是的InstructBLIP可以像GPT-4一样通过指令提示词的方式完成任务,虽然效果上仍有差距。即使不是InstructBLIP的训练范式并不是开创性的,但是我们依然可以用InstructBLIP作为参考,来看对比后面要介绍的其他工作。

4.3 Qwen-VL

阿里巴巴的Qwen-VL是另一个比较经典的模型,十分值得作为案例介绍多模态大模型的训练要点。Qwen-VL使用Qwen-7B LLM作为语言模型基座,Openclip预训练的ViT-bigG作为视觉特征Encoder,随机初始化的单层Cross-Attention模块作为视觉和自然语言的的Adapter,总参数大小约9.6B。

图33

如图33,Qwen-VL的训练过程分为三个阶段:

  • Stage1 为预训练,目标是使用大量的图文Pair对数据对齐视觉模块和LLM的特征,这个阶段冻结LLM模块的参数;
  • Stage2 为多任务预训练,使用更高质量的图文多任务数据(主要来源自开源VL任务,部分自建数据集),更高的图片像素输入,全参数训练;
  • Stage3 为指令微调阶段,这个阶段冻结视觉Encoder模块,使用的数据主要来自大模型Self-Instruction方式自动生成,目标是提升模型的指令遵循和多轮对话能力。

图34

Qwen-VL的另一个启发是在Stage2和Stage3的训练过程中,不止使用VL数据,还使用了纯文本的训练数据,避免遗忘LLM的能力,这个策略的效果在其他的工作中也有所印证。此外,相比InstructBLIP,Qwen-VL模型视觉和LLM的Adapter模块简化很多,仅仅是一个浅层的Attention Pooling模块,通过更加细节的训练流程和更加丰富的训练数据,仍取得了比InstructBLIP更优的效果。

4.4 LLaVA1.5

同样,微软的LLaVA也是一个持续更新的系列工作,这里主要总结LLaVA和LLaVA1.5的核心思路。图34为LLaVA1.5的数据和模型概况。可以看到,和Qwen-VL相比,LLaVA1.5在预训练和指令微调数据上使用了更少的数据(将Qwen-VL的Stage2和Stage3都视作指令微调);在模型结构上,除了视觉Encoder和LLM均使用了不同的基座模型,视觉和自然语言的Adapter使用更简单的MLP层。

图35

LLaVA1.5模型的效果在一些评测数据集上相比Qwen-VL有更好的效果,说明通过一些优化工作,使用更少的数据,更简单的Adapter结构,也能使LLM具备不错的多模态理解能力。在数据层面,如图35,对比LLaVA1.5和LLaVA工作,通过增加高质量细粒度的VL数据、丰富指令、纯文本指令微调数据、提升图片输入像素、提升LLM参数规模等手段,可以有效提升模型效果。

图36

4.5 VILA

另一个与LLaVA比较类似,但有所补充的工作是英伟达的VILA(不是显卡)。VILA模型的网络结构和LLaVA十分类似,我们不做过多赘述。不同的是VILA通过实验,总结了多模态预训练的一些经验,其中有些经验在相关工作中也有所体现,主要为以下三点:

  • LLM参与训练更好:在预训练阶段冻结LLM参数,能做到不错的zero-shot的能力,但会损失in-context学习的能力,而LLM参数参与训练的话可以有效缓解;
  • 预训练数据使用图文交替数据更好:图文Pair对并不是最优的选择,图文交错的数据效果更好;

图37

  • SFT时纯文本数据图文数据混合更好:在图文指令微调训练数据中混入纯文本的指令数据,不仅可以缓解纯文本能力的遗忘,还能提升VL任务的能力。

具体的,如图37,VILA的训练分为3个阶段,视觉编码模块ViT参数均是冻结状态。Step 0 使用图文Pair数据对初始化Projector(图文Adapter)参数,LLM模块参数冻结;Step 1使用图文交替数据全参数预训练;Step 2使用指令微调数据进行全参数微调,其中微调数据混合了图文指令和纯文本指令;

图38

VILA是较新的工作,因此有更丰富的模型效果对比,如图38,相对各时期的SoTA,VILA在公开评测指标上有不错的效果。

图39

4.6 Gemini 1.0和Gemini 1.5

目光来到闭源世界,与VILA同阶段,谷歌公司发布了Gemini系列,又在近期发布了性能更强的Gemini 1.5,可惜被另一个热爱闭源的OpenAI的Sora抢了风头,属实悲催。由于Gemini系列并没有开源,我们只能通过技术报告中的简单介绍来了解其方法。

Gemini 1.0是一个多模态模型,这里模态除了图图像和文还包括音频、视频,符合谷歌多模态大模型一贯的ALL IN ONE的风格,这也是依赖积累丰富的数据资源和算力资源。Gemini 1.0提供Ultra、Pro和Nano版本,分别适应不同能力、参数大小和推理速度要求,最小的Nano甚至可以端上运行。

方法上,Gemini 1.0的网络结构同样是Transformer Decoders,支持32K上下文长度,使用了Multi-Query Attention等优化机制。如图39,模型输入可以是文本、音频、视觉输入,输入视觉可以是图片、图表、截图、PDFs或视频等,输出可以是图片和文本(没错,可以生成图片)。视觉的Encoder模块借鉴了谷歌自己的Flamingo、CoCa和PaLI,结合这些模型,可以输入多模态的同时,也可以通过离散的视觉Tokens生成图片或视频等视觉模态。

图40

对于音频模态,Gemini可以直接输入Universal Speech Model (USM)的16kHz特征,具体可以参考USM工作。对于视频理解,Gemini通过将视频编码为长上下文窗口中的一系列帧来实现。视频帧或图像可以与文本或音频自然交织在一起,作为模型输入的一部分。Gemini同时支持不同像素输入的视觉以满足不同粒度的理解任务。

在具体训练数据方面,技术报告同样并没有提过多细节,只是简单说了数据包括什么模态、经过了什么清洗步骤等,我们也不再深究。至于最近的Gemini 1.5,同样是技术报告的形式发布,没有特别多技术细节,主要介绍了模型是如何的强。区别要点包括:模型在Gemini 1.0基础上引入了sparse mixture-of-expert (MoE),同时强化了上下文长度(32K->10M)同时几乎没有损失上下文感知能力。在训练过程中,Gemini 1.5强化了指令微调过程,使用了用户偏好数据。

总体来说,虽然Gemini没有提供技术细节,但也体现了谷歌对于多模态大模型技术方向的判断,比如我们可以get到网络结构的MoE、一个模型更多模态、超长上下文、文本生成+多模态生成结合等。

4.7 LWM

最后,我们再介绍一篇和Gemini类似的开源工作《World Model on Million-Length Video And Language With RingAttention》,模型名LWM(Large World Model)。至于为什么叫World Model,意思可以通过视觉和视频的理解物理世界,,LWM是UC Berkeley最近发布的一篇工作,个人认为在开源方向上是一个优秀的工作,但好像也是由于Sora和Gemini 1.5的热度,没有引起太多关注。

LWM希望完成的任务和Gemini十分相似,核心是超长上下文理解的多模态大模型。凭借支持1M的token输入,LWM可以对超过一小时的视频进行理解,在Gemini 1.5之前几乎是多模态大模型中最长的上下文输入(之一)。LWM的主要工作要点包括:

  • 支持超长上下文,可处理超长的文本、图片序列或视频等;
  • 一些技术难点方案:Masked Sequence Packing方法混合的输入长度;通过loss weighting 平衡视觉和文本模态;模型自动生成长序列问答数据集用于模型训练;
  • 实现了高性能的RingAttention,Masked Sequence Packing等优化项,完成了百万级别长度的多模态序列的训练;
  • 开源7B参数规模的大模型,包括长上下文的文本模态模型(LWM-Text,LWM-Text-Chat),和多模态模型(LWM,LWM-Chat)。

具体方案上,LWM使用Transformer架构,在LLama2 7B基础上扩充上下文理解的长度上限,模型结构如图40:

图41

与之前大多数方法不同的是,视觉的编码器使用VQGAN,可以将256 × 256输入图片编码成16 × 16 离散Token。这使得LWM不仅可以生成文本,也可以基于文本生成Image Token还原成视频。对于多图或视频帧,可以分别做视觉特征抽取,和文本模态一起输入到LLM中。

在模型训练流程上,主要分为两个阶段的训练:

  • 阶段一,使用Books数据集,先扩充文本LLM上下文长度到1M;
  • 阶段二,长上下文的多模态训练,即混合图-文数据、视频-文本数据、以及纯文本的Books数据进行训练。

上面两个过程有两个核心问题需要解决:1、长文档的可扩展训练;2、如何稳定地扩展LLM的上下文。前者关注训练的效率和开销,后者则关注长上下文拓展的有效性。针对问题1,LWM主要实现了高效的RingAttention,同时结合了FlashAttention;针对问题2,一方面,两个训练阶段都是多轮训练方式,逐步提升上下文长度的方式,如图41。另一方面通过简单的调整了RoPE的 \theta\theta 参数,提升模型长文本的位置编码能力。

图42

总的来说,LWM是一篇不错的文章,最重要的是开源,技术方案基本没有保留,值得拉出来单独讨论。在效果上LWM和Gemini 1.0 Pro以及GPT4有一定的竞争力,更多的细节可以阅读原论文。

五、总结

写到这里,吐一口老血,但还是要总结一下。本文梳理了2019年之后视觉表征和多模态表征的一些变化,主要涉及视觉表征和视觉预训练、多模态表征对齐(或融合)和多模态预训练、多模态大模型技术的相关工作。各工作之间的简化关系如图42,脉络主要是结合笔者自己各阶段的实践经历和认识,会出现一些地方不严谨的地方,欢迎指正。

图43

关于未来畅想,从最近的工作上来看,多模态的呈现出以大模型为主线,逐步开始朝长上下文、混合模态、世界模型、多模态生成等方向发展。开始在自己工作的实践中得到的一个个人观点,是多模态大模型的惊艳能力主要来自于文本大模型中所蕴含的知识,以及超强的上下文理解能力,视觉特征只是从属的信息输入或感知源。但近期Gemini 1.5、LWM、甚至Sora等工作又开始尝试大模型理解物理世界(引出世界模型的概念),大模型好像开始从文本之外的模态强化输入信息的影响力。不管怎么说,持续的更新迭代让人耳目一新,相信也会不断刷新人们对人工智能边界的认知。

最后,感觉知乎长文确实耗时耗力,如果有收获欢迎关注本账号:菜人卷(​​https://www.zhihu.com/people/zico-53-18​​)。另外打算后面开一个小红书的坑,写一些日常学习和实践的短篇经验,提高一下更新频率,系统性内容也会周期性的搬到知乎上来,欢迎扫码关注支持。

图44

六、论文打包下载

图45

PS:引用文章可以细读,论文打包下载链接: ​​https://pan.baidu.com/s/18tkHDkDmGKvzEeGSEc52Jg​

提取码: hvkf

;