近期复现了mPLUG-Owl,效果提升了好几个点,特来精读一番:感谢大佬们的工作:
论文名称:mPLUG-Owl: Modularization Empowers Large Language Models with Multimodality
论文地址:https://arxiv.org/pdf/2304.14178.pdf
github地址:https://github.com/X-PLUG/mPLUG-Owl
1 introduction
大型语言模型(LLMs),如GPT-3 [Brown等,2020]、BLOOM [Scao等,2022]、LLaMA [Touvron等,2023],已经经历了快速发展,使得通用人工智能成为可能,展示了在各种语言应用中令人印象深刻的零-shot能力。然而,除了GPT-4 [OpenAI,2023]之外,当前的通用LLMs不能支持不同的输入模态并发展出令人印象深刻的多模态能力。虽然GPT-4 [OpenAI,2023]展示了出色的多模态能力,但其卓越能力背后的方法仍然是一个谜。最近,研究人员一直在扩展LLMs以理解两种不同范式的视觉输入:系统协作和端到端训练模型。然而,系统协作方法,包括Visual ChatGPT [Wu等,2023]、MM-REACT [Yang等,2023]和HuggingGPT [Shen等,2023],旨在促进各种视觉模型或工具的协调,以用文本描述表达视觉信息。然而,由于缺乏与不同模态的对齐,这些方法可能无法理解特定的多模态指令。此外,这些方法可能会遇到与推理效率和成本相关的挑战。端到端模型,如BLIP-2 [Li等,2023]、LLaVA [Liu等,2023]和MiniGPT-4 [Zhu等,2023a]旨在使用统一模型支持不同的模态。然而,这些模型有一些限制,因为它们采用了冻结的视觉模型,这可能会导致由于参数数量有限而对齐不足。此外,由于缺少单模态和多模态指令,它们无法解锁各种能力。
本文介绍了mPLUG-Owl,它是一种创新的模块化训练范式,用于支持同时支持多种模态的大型多模态语言模型,从模块化的概念中汲取灵感[Xu等,2023b,Li等,2022,Xu等,2021,Ye等,2022]。我们的方法利用预训练的LLM、视觉知识模块和连接的视觉抽象模块的力量,实现图像和文本之间的有效对齐,并利用两阶段训练方案来刺激令人印象深刻的单模态和多模态能力。我们的方法甚至通过模态协作增强了LLM的强大生成能力。在第一步中,我们通过训练视觉知识模块和抽象模块与冻结的LLM模块一起,对齐图像和文本以获取全面的视觉知识。随后,我们使用仅语言和多模态指令对mPLUG-Owl进行微调,以解锁一系列单模态和多模态能力。我们冻结视觉知识模块,并在LLM和视觉抽象模块上共同训练低秩适应(LoRA)[Hu等,2022]。这种方法允许有效地整合文本和视觉信息,促进多功能和强大的认知能力的发展。
我们在一个精心构建的视觉相关指令评估集OwlEval上进行的实验表明,mPLUG-Owl优于现有模型,如MiniGPT-4[Zhu等,2023a]和LLaVA[Liu等,2023]。我们分别验证了mPLUG-Owl在指令理解、视觉理解、知识转移和多轮对话方面的显着能力。丰富的消融研究表明了我们训练范式的有效性。此外,我们发现了一些意外的新能力,如多图像相关性、多语言对话和场景文本理解。
我们的主要贡献可以概括如下:
• 我们提出了mPLUG-Owl,一种通过模块化进行大型语言模型训练的新范式。
• 我们精心构建了一个指令评估集OwlEval,以评估不同模型在视觉相关任务背景下的能力。
• 实验结果表明,mPLUG-Owl在多模态指令理解和多轮对话方面表现出色,超过了现有模型的性能。
2 related word
2.1 Large Language Models
近年来,大型语言模型(LLMs)因其在各种自然语言处理(NLP)任务中出色的表现而受到越来越多的关注。最初,使用不同的预训练目标开发了变压器模型,例如BERT [Devlin等,2019],GPT [Radford和Narasimhan,2018]和T5 [Raffel等,2020]。然而,GPT-3 [Brown等,2020]的出现,它扩大了模型参数和数据规模的数量,展示了显著的零-shot泛化能力,使它们能够在以前未见过的任务上表现出色。因此,出现了许多LLMs,例如OPT [Zhang等,2022],BLOOM [Scao等,2022],PaLM [Chowdhery等,2022]和LLaMA [Touvron等,2023],引领了LLMs的成功。此外,Ouyang等人 [Ouyang等,2022]通过将人类指令和反馈与GPT-3对齐,提出了InstructGPT。此外,它已经应用于Chat-GPT [OpenAI,2022],通过回答各种不同和复杂的查询和指令,促进与人类的对话交互。
2.2 Multi-Modal Large Language Models
尽管LLMs在自然语言处理方面的应用取得了成功,但它们仍然难以感知其他形式的模态,例如视觉和音频。近年来,研究人员一直在将语言模型扩展到两种不同的范式中以理解视觉输入:系统化协作和端到端训练模型。系统化协作方法,例如Visual ChatGPT [Wu等人,2023],MM-REACT [Yang等人,2023]和HuggingGPT [Shen等人,2023],利用各种视觉专家或工具以文本描述的形式表达视觉信息。随后,大型语言模型(例如ChatGPT)可以充当代理,并被提示选择适当的专家和工具以进行视觉理解。最后,LLMs将总结这些专家的输出以回答用户查询。另一方面,一些方法[Liet al。,2023,Alayrac等人,2022,Liu等人,2023]利用预训练的大型语言模型构建多模式统一模型。例如,Flamingo [Alayrac等人,2022]冻结了预训练的视觉编码器和大型语言模型,并使用门控交叉注意力将视觉和语言模态融合,展示了令人印象深刻的少样本能力。此外,BLIP-2 [Liet al。,2023]设计了Q-Former,以Flan-T5 [Chunget al。,2022]和OPT [Zhanget al。,2022]为基础,将来自冻结视觉编码器和大型语言模型的视觉特征进行对齐。此外,PaLM-E [Driess等人,2023]直接使用来自传感器模态的特征输入PaLM [Chowdhery等人,2022],后者具有5200亿个参数,有助于实现在现实世界中的强大性能。此外,一些建立在开源基础模型LLaMA [Touvron等人,2023]之上的强大的指令调整语言模型,例如Alpaca [Taoriet al。,2023]和Vicuna [Vicuna,2023],展示了与ChatGPT [OpenAI,2022]和GPT-4 [OpenAI,2023]相当的性能。MiniGPT-4 [Zhuet al。,2023a]和LLaVA [Liu等人,2023]将这些微调模型与从冻结的视觉骨干提取的视觉特征进行对齐。相比之下,mPLUG-Owl不仅在知识获取和与现实世界的接地方面对视觉和语言基础模型(例如CLIP和LLaMA)进行了表示对齐,而且还能理解语言和多模式指令,展示了强大的零样本泛化和多轮对话能力。
3 mPLUG-Owl
3.1 Architecture Overview
如图1所示,存在主要三种类型的端到端多模态LLM:1)在预训练和指令调整期间利用有限参数和冻结的LLM和视觉模型的模型,例如MiniGPT4;2)结合可训练的LLM和冻结的视觉模型的模型,例如Kosmos-1;3)在指令调整期间涉及可训练的LLM和冻结的视觉模型,如LLaVA所示。然而,这些模型存在一定的限制,因为它们依赖于冻结的视觉模型,这可能会导致由于参数数量有限而导致不充分的对齐。此外,它们无法有效地刺激多样化的能力,因为它们缺乏单模态和多模态的指令。
为此,我们提出了mPLUG-Owl,一种多模态语言模型,能够感知各种模态,同时考虑视觉上下文和信息,并生成相应的输出。具体而言,如图2所示,mPLUG-Owl由视觉基础模型fV、语言基础模型fL和视觉抽象模块fK组成。我们首先从预训练的视觉基础模型fV中获取密集的图像表示。然而,这样的密集特征会破碎细粒度的图像信息,并由于长度较长的序列而带来大量计算,当输入到fL中时。为了缓解这个问题,我们采用视觉抽象模块fK来总结几个可学习的标记内的视觉信息,从而获得更高语义的视觉表示,并减少计算,如图2所示。将视觉表示与文本查询相结合,并输入到语言模型中生成响应。
3.2 Training Scheme
多模态预训练大规模语言模型,如GPT-3 [Brown等人,2020]和LLaMA [Touvron等人,2023],是在从互联网收集的广泛和多样化的数据上训练的,为它们提供了对世界的全面理解。这个庞大的知识库赋予了这些模型在各种任务上的卓越能力。然而,在这些模型中利用视觉信息仍未被充分探索。以往的方法[Zhu等人,2023a,Liu等人,2023]采用了有限数量的额外参数来学习视觉数据和语言模型之间的对齐,限制了它们理解复杂视觉信息的能力。为了增强大规模语言模型感知视觉信息的能力,并整合它们的内部能力,我们提出了一种新的训练范式,其中包括一个可训练的视觉骨干fV和一个额外的视觉抽象器fK,同时保持预训练的语言模型fL处于冻结状态。这种方法使模型能够有效地捕捉低级和更高语义的视觉信息,并将其与预训练的语言模型对齐,而不会影响其性能。
在完成前一阶段后,模型获得了保留大量知识并对人类查询提供合理答案的能力。然而,它仍然存在生成连贯语言响应的挑战。正如GPT-3 [Brown等人,2020]所提出的,通过指令调整来完善模型对用户意图的准确判断是必要的。以往的多模态学习尝试[Li等人,2022,Xu等人,2023b]已经证明,从单模态和多模态源进行联合学习可以通过不同模态之间的协作带来显著的改进。基于这一认识,我们提出了一种新颖的视觉-语言联合指令调整策略,以促进mPLUG-Owl与人类指令和意图之间更好的对齐。具体而言,鉴于模型可以通过视觉知识学习理解图像中描绘的视觉概念和知识,我们冻结整个模型,并采用低秩适应(即LoRA [Hu等人,2022])来通过训练多个低秩矩阵以有效对齐人类指令来调整fL。对于每个数据记录,我们将它们统一在Vicuna [Vicuna,2023]的一段对话片段中,并在响应上计算损失。在训练过程中,我们积累了纯文本指令数据和多模态指令数据的梯度,用于多个批次的更新参数。因此,通过同时训练语言和多模态指令,mPLUG-Owl可以更好地理解各种指令,并以更自然和可靠的输出进行响应。此外,我们的方法可以轻松处理各种文本和多模态指令,而无需像MiniGPT-4 [Zhu等人,2023a]和LLaVA [Liu等人,2023]方法所需的重新对齐视觉和语言模型。
模型使用语言建模任务进行训练,这涉及学习基于前文生成后续标记。训练过程的主要目标是最大化标记的对数似然。需要注意的是,只有离散标记,例如文本标记,在计算训练损失时才会考虑。最重要的是,在联合指令调整阶段由训练任务导致的多样化能力的出现,增强了mPLUG-Owl在下游应用中的性能。
4 Experiment
4.1 Experimental Setup
模型设置。我们选择ViT-L/14 [Dosovitskiy et al., 2021]作为视觉基础模型fV,它具有24层,隐藏维度设置为1024,补丁大小设置为14。为了更快地收敛,ViT是从通过对比学习预训练的CLIP ViT-L/14模型初始化的。与LLaVA [Liu et al., 2023]和MiniGPT-4 [Zhu et al., 2023a]不同,为了展示有效性和泛化能力,我们使用原始的LLaMA-7B [Touvron et al., 2023],而不是其指令调整变体,如Alpaca [Taori et al., 2023]和Vicuna [Vicuna, 2023]。mPLUG-Owl的总参数数量约为72亿。有关超参数的更多详细信息可以在附录中找到。
数据和训练细节。对于第一阶段,我们利用来自几个数据集的图像-字幕对,包括LAION-400M [Schuhmann et al., 2021],COYO-700M [Byeon et al., 2022],概念字幕[Sharma et al., 2018]和MSCOCO [Chen et al., 2015]。我们使用批量大小为210万个标记,并训练mPLUG-Owl进行50k步,相当于约1040亿个标记。我们采用AdamW优化器,β =(0.9;0.98),并将学习率和权重衰减分别设置为0.0001和0.1。我们使用2k个热身步骤进行训练,然后使用余弦计划表衰减学习率。输入图像随机调整大小为224×224。此外,我们使用SentencePiece [Kudo和Richardson,2018]分词器对文本输入进行分词。对于第二阶段,我们从三个不同的来源收集纯文本指令数据:来自Alpaca [Taori et al., 2023]的102k数据,来自Vicuna [Vicuna, 2023]的90k数据以及来自Baize [Xu et al.,2023a]的50k数据。此外,我们还利用LLaVA数据集[Liu et al.,2023]中的150k个多模态指令数据。我们使用批量大小256对mPLUG-Owl进行2k步的训练,并将学习率设置为0.00002。
我们将mPLUG-Owl与端到端模型和系统化协作方法进行比较,包括以下几个基准模型:
• OpenFlamingo [Zhu等人,2023b]是Flamingo [Alayrac等人,2022]模型的开源版本。我们使用OpenFlamingo-9B3的发布代码进行零样本生成。
• BLIP-2 [Li等人,2023]通过使用高效的预训练策略,从现成的冻结预训练图像模型和大型语言模型中进行引导式学习预训练。我们使用BLIP-2 ViT-G FlanT5XXL4的发布代码进行零样本生成。
• MiniGPT-4 [Zhu等人,2023a]使用单个投影层将来自预训练视觉编码器的视觉信息与LLM对齐。具体来说,他们使用与BLIP-2相同的视觉编码器,即ViT,配合他们预训练的Q-Former和Vicuna作为LLM。我们使用发布的演示5进行图像指令生成。
• LLaVA [Liu等人,2023]应用单个投影层将预训练的CLIP视觉编码器ViT-L/14的图像特征转换为Vicuna的语言嵌入空间。我们使用他们发布的演示6进行图像指令生成。
• MM-REACT [Yang等人,2023]将ChatGPT/GPT-4与各种专业视觉专家集成,以实现多模态推理和行动。我们使用他们发布的演示7获取图像指令生成的响应。
我们使用BLEU-4、METEOR和CIDEr这些标准指标,在COCO-Stuff数据集上比较mPLUG-Owl与这些基准模型的性能。
4.2 Quantitative analysis
为了全面评估各种模型,我们构建了一个视觉相关的评估集OwlEval,收集了82个人工构建的问题,基于50张图像,其中21个来自MiniGPT-4,13个来自MM-REACT,9个来自BLIP-2,3个来自GPT-4,还有4个由我们收集。部分图像有多轮问题,涉及多轮对话的情况。这些问题考察了各种模型能力,包括自然图像理解、图表和流程图理解、光学字符识别(OCR)、多模态创作、知识密集型问答和指代交互问答。由于问题是开放式的,我们采用手动评估指标,按照Self-Instruct [Wang等人,2022]提出的评分方法,将模型的响应评为A、B、C或D。
我们手动评分了mPLUG-Owl和基准模型给出的82个响应。比较结果如图3所示。首先,mPLUG-Owl获得了66个A和B,而最具竞争力的基准模型MiniGPT-4获得了54个。其次,mPLUG-Owl没有获得任何D分数,超过了所有模型。这些结果表明,mPLUG-Owl能够更好地理解指令和图像,从而在生成令人满意的响应方面具有更强的能力。为了公平比较,我们排除了MM-REACT未能进行预测的情况。结果在图15中单独显示,mPLUG-Owl仍然表现出卓越的性能。
4.2 Quantitative analysis
为了分别检查单轮和多轮对话能力,我们将82个问题重新组织成单轮对话集和多轮对话集。前者包含50个图像的第一个问题。后者包含来自多轮对话的52个问题。如图4所示,mPLUG-Owl在单轮和多轮对话中都取得了出色的表现。
4.3 Ablation Study
我们进行了两个实验:去除两阶段训练方案和指令调整的数据模态。我们定义了六个能力维度来完成与视觉相关的任务,如表1所示。对于每个问题,我们手动标记所需的能力,并注释哪些能力反映在模型的响应中。表2显示了不同变体的mPLUG-Owl的能力准确性。
训练策略消融。如表2所示,没有联合指令调整,模型不擅长指令理解,并且无法将预训练的能力推广到其他任务(r1与r5)。仅进行指令调整时,虽然模型可以更好地理解指令,但由于缺乏与视觉相关的知识预训练,模型无法在视觉知识相关任务中取得良好的性能(r2与r5)。通过进行多模态预训练和联合指令调整,模型实现了最佳性能,并展示了我们两阶段训练方案的有效性。
指令数据消融。通过比较r3和r4,我们发现仅使用文本指令调整可以更好地提高指令理解能力,而多模态指令调整可以实现更好的知识和推理能力。这是因为视觉问答主要需要视觉和语言知识的对齐,而这在仅使用文本指令调整时并没有得到优化。此外,我们还验证了在指令调整期间引入多模态数据可以进一步提高模型在仅文本任务上的性能,如表3所示(r5与r4)。具体而言,按照Vicuna [Vicuna,2023]的评估设置,对于每个问题,我们将每个模型的响应与ChatGPT给出的响应进行配对,并提示ChatGPT8分别为这两个响应给出两个分数。表3显示了总分和以ChatGPT分数为参考的分数比率。
4.4 定性分析
在本节中,我们展示了来自我们评估集OwlEval的定性结果。
知识密集型问答。如图5所示,指令要求模型识别图像中的电影角色。MM-REACT无法对指令提供有效的响应,而MiniGPT-4理解了指令但未能回答电影角色。相比之下,mPLUG-Owl回答了图像中五个角色中的四个。这表明mPLUG-Owl对图像中的知识有更好的理解。
多轮对话。图6中的指令要求模型根据参考信息识别图像的内容。当面对与问题中的空间定位、人类行为和目标属性相关的指代表达式时,基线模型经常会犯错误,而mPLUG-Owl提供了最准确的响应。这种能力源于mPLUG-Owl对图像的细粒度理解,使其能够根据指令中的参考信息定位图像的相应部分。
推理。图7展示了一个指令,要求模型基于视觉信息给出预测并解释原因。mPLUG-Owl从阵容和战术两个方面分析了两支队伍的特点,并用它们来推理比赛结果。虽然MiniGPT-4表现良好,但在推理的说服力方面略逊于mPLUG-Owl。
笑话理解。图8中的案例来自GPT-4[OpenAI, 2023],要求模型理解并解释一个与视觉相关的笑话。GPT-4不仅按照指令逐格分析,而且几乎完美地理解了充电方法的幽默。mPLUG-Owl也理解了这种不寻常的幽默,但它错误地将“VGA”识别为“USB”。这主要是由于我们的训练数据中视觉信息的限制。更多关于笑话理解的案例展示在图9中。
5.讨论和限制
在本节中,我们展示了mPLUG-Owl的一些新兴能力,这些能力尚未完全发展,并讨论了其限制。本节中的部分案例(没有分数)不在OwlEval中。
多图像相关性。在图10中,mPLUG-Owl展示了在多个图像之间出现但不强的视觉相关性能力。在左侧的案例中,模型可以在两个图像中识别出同一个人,并正确地告诉衣服颜色的差异。但在右侧的案例中,模型未能将4个图像联系起来,并产生了一些文本幻觉。
多语言对话。除了英语,我们进一步测试了模型的多语言能力。如图11所示,尽管在我们的两阶段训练过程中没有多语言数据,mPLUG-Owl展示了对中文、法语和日语的有希望的多语言理解能力。我们主要归因于LLaMa[Touvron et al., 2023]中的原始文本知识。然而,由于缺乏多语言训练,mPLUG-Owl可能无法用相应的语言进行响应。
场景文本理解。在图16中,mPLUG-Owl展示了其在一些简单场景中的OCR能力,但我们可以看到模型对图像中数字的感知仍然有限。然而,对于复杂场景的OCR,如图17-18所示,mPLUG-Owl的性能更加通用,主要是因为图像中数字的感知较弱,影响了后续的推理计算。
仅视觉文档理解。虽然我们没有使用任何文档注释数据进行训练,但模型展示了一些文本识别和文档理解能力。因此,我们深入探讨了文档理解和我们模型功能的结合,如图12所示,我们探索了电影评论撰写、代码生成、代码解释、聊天摘要和应用程序指导。模型在(a)和(b)中表现良好,但仍然存在一些错误。同时,它无法在(d)、(e)和(f)中提供可用的响应。因此,有进一步探索我们模型在文档理解和下游应用方面潜力的空间。
开放式创作。mPLUG-Owl在基于图像的诗歌、歌词、广告和其他作品的创作方面表现良好。其在某些情况下的表现如图13-14所示。然而,需要进一步探索更具功能性和实用性的创作。
我们提出了mPLUG-Owl,这是一种新颖的训练范式,可以增强大型语言模型(LLM)的多模态能力。我们的方法包括基础LLM、视觉知识模块和视觉抽象模块的模块化学习,可以支持多种模态,并通过模态协作促进多样的单模态和多模态能力。我们采用了两阶段的方法来对齐图像和文本,它可以在保持甚至提高LLM生成能力的同时,辅助学习视觉知识。实验结果表明,mPLUG-Owl具有令人印象深刻的能力,表明它在多模态生成的各种应用中具有潜力。