摘要:
最近的 GPT-4 展示了非凡的多模式能力,例如直接从手写文本生成网站以及识别图像中的幽默元素。这些特征在以前的视觉语言模型中很少观察到。然而,GPT-4 背后的技术细节仍未公开。我们相信 GPT-4 增强的多模态生成能力源于复杂的大语言模型 (LLM) 的利用。为了研究这一现象,我们提出了 MiniGPT-4,它使用一个投影层将冻结的视觉编码器与冻结的高级 LLM、Vicuna 对齐。我们的工作首次发现,将视觉特征与高级大语言模型正确对齐可以拥有 GPT-4 所展示的许多高级多模态能力,例如详细的图像描述生成和从手绘草稿创建网站。此外,我们还观察到 MiniGPT-4 中的其他新兴功能,包括受给定图像启发编写故事和诗歌、教用户如何根据食物照片烹饪等等。在我们的实验中,我们发现在短图像标题对上训练的模型可能会产生不自然的语言输出(例如重复和碎片)。为了解决这个问题,我们在第二阶段策划了详细的图像描述数据集来微调模型,从而提高了模型的生成可靠性和整体可用性。我们的代码、预训练模型和收集的数据集可在 https://minigpt-4.github.io/ 上获取。
1 引言
近年来,大型语言模型(LLM)经历了快速发展(Ouyang et al., 2022; OpenAI, 2022; Brown et al., 2020; Scao et al., 2022a; Touvron et al., 2023; Chowdhery等人,2022;霍夫曼等人,2022)。凭借卓越的语言理解能力,这些模型可以以零样本的方式执行各种复杂的语言任务。值得注意的是,最近推出了大规模多模态模型 GPT-4,并展示了多种令人印象深刻的视觉语言理解和生成功能(OpenAI,2023)。例如,GPT-4可以产生详细而准确的图像描述,解释不寻常的视觉现象,甚至可以根据手写文本指令构建网站。
尽管 GPT-4 表现出了卓越的视觉语言能力,但其卓越能力背后的方法仍然是个谜(OpenAI,2023)。我们相信这些令人印象深刻的技能可能源于更先进的大语言模型(LLM)的使用。 GPT-3 的小样本提示设置(Brown 等人,2020)和 Wei 等人的研究结果证明了法学硕士已经展示了各种新兴能力。 (2022)(Wei 等人,2022)。在较小规模的模型中很难找到这样的新兴特性。据推测,这些新兴能力也适用于多模态模型,这可能是 GPT-4 令人印象深刻的视觉描述能力的基础。
为了证实我们的假设,我们提出了一种新颖的视觉语言模型,名为 MiniGPT-4。它采用先进的大语言模型 (LLM) Vicuna(Chiang 等人,2023),该模型建立在 LLaMA(Touvron 等人,2023)的基础上,据报道根据 GPT-4 的评估达到了 ChatGPT 90% 的质量,作为语言解码器。在视觉感知方面,我们采用与 BLIP-2 (Li et al., 2023) 相同的预训练视觉组件,其中包含来自 EVA-CLIP (Fang et al., 2022) 的 ViT-G/14 和 Q-前网络。 MiniGPT-4 添加了一个投影层,将编码的视觉特征与 Vicuna 语言模型对齐,并冻结所有其他视觉和语言组件。 MiniGPT-4 最初在 4 个 A100 GPU 上使用 256 的批量大小进行 20k 步骤的训练,利用组合图像字幕数据集,其中包括来自 LAION 的图像(Schuhmann 等人,2021 年)、概念字幕(Changpinyo 等人,2021 年; Sharma 等人,2018)和 SBU(Ordonez 等人,2011)将视觉特征与 Vicuna 语言模型保持一致。然而,仅仅将视觉特征与语言模型(LLM)结合起来不足以确保强大的视觉对话功能,类似于聊天机器人。原始图像-文本对中潜在噪声的存在可能会导致语言输出低于标准。因此,我们收集了另外 3,500 个详细的图像描述对,通过设计的对话模板进一步微调模型,以提高生成语言的自然度及其可用性。
在我们的实验中,我们发现 MiniGPT-4 拥有许多与 GPT-4 类似的功能。例如,MiniGPT-4 可以生成复杂的图像描述,根据手写文本指令创建网站,并解释不寻常的视觉现象。此外,我们的研究结果表明,MiniGPT-4 还具有 GPT-4 演示中未展示的各种其他有趣的功能。例如,MiniGPT-4可以直接从食物照片中生成详细的烹饪食谱,根据图像编写故事或诗歌,为图像中的产品撰写广告,识别照片中显示的问题并提供相应的解决方案,并检索有关人物、电影、或直接从图像进行艺术等功能。这些能力在之前的视觉语言模型中是不存在的,例如 Kosmos-1(Huang et al., 2023)和 BLIP-2(Li et al., 2023),它们使用的语言模型功能较弱。这进一步验证了将视觉特征与高级语言模型相结合是增强视觉语言模型的关键之一。
我们总结了我们的主要发现:.
• 我们的研究以令人信服的证据表明,通过将视觉特征与 Vicuna 等高级大型语言模型相结合,MiniGPT-4 可以实现与 GPT-4 演示中展示的高级视觉语言功能相当的功能。
• 我们的研究结果表明,仅训练一个投影层就可以有效地将预训练的视觉编码器与大型语言模型对齐。我们的 MiniGPT-4 只需要在 4 个 A100 GPU 上训练大约 10 个小时。
• 我们发现,简单地使用短图像标题对将视觉特征与大型语言模型对齐不足以开发性能良好的模型,并会导致不自然的语言生成。使用小而详细的图像描述对进行进一步微调可以解决此限制并显着提高其可用性。
2 相关工作
近年来,由于训练数据的扩大和参数数量的增加,大型语言模型取得了巨大的成功。早期的模型,如 BERT (Devlin et al., 2018)、GPT-2 (Radford et al., 2019) 和 T5 (Raffel et al., 2020),为这一进展奠定了基础。随后,引入了拥有 1750 亿个参数的大规模 GPT-3(Brown 等人,2020),在众多语言基准测试中展现了重大突破。这一发展启发了各种其他大型语言模型的创建,包括 MegatronTuring NLG (Smith et al., 2022)、Chinchilla (Hoffmann et al., 2022)、PaLM (Chowdhery et al., 2022)、OPT (Zhang et al., 2022)、OPT (Zhang et al., 2022)。 ,2022)、BLOOM(Scao 等人,2022b)和 LLaMA(Touvron 等人,2023)等。魏等人。 (Wei et al., 2022)进一步发现了几种仅出现在大型模型中的新兴能力。这些能力的出现强调了扩展大型语言模型开发的重要性。此外,通过将预先训练的大语言模型 GPT-3 与人类意图、指令和人类反馈结合起来,InstructGPT(Ouyang et al., 2022)和 ChatGPT(OpenAI, 2022)能够与人类进行对话交互,并可以回答广泛的问题。各种复杂的问题。最近,一些开源模型,例如 Alpaca (Taori et al., 2023) 和 Vicuna (Chiang et al., 2023),是基于 LLaMA (Touvron et al., 2023) 开发的,也表现出类似的性能。
在视觉语言任务中利用预先训练的LLM。近年来,在视觉语言任务中使用自回归语言模型作为解码器的趋势已获得显着关注(Chen et al., 2022; Huang et al., 2023; Yang et al., 2022; Tiong et al., 2022) ;Alayrac 等人,2022;Li 等人,2023;2022;Driess 等人,2023)。这种方法利用跨模式传输,允许在语言和多模式领域之间共享知识。 VisualGPT(Chen 等人,2022)和 Frozen(Tsimpoukelli 等人,2021)等开创性研究已经证明了采用预训练语言模型作为视觉语言模型解码器的好处。随后开发了 Flamingo(Alayrac 等人,2022),以使用门控交叉注意力来对齐预先训练的视觉编码器和语言模型,并接受数十亿图像文本对的训练,展示了令人印象深刻的上下文中的少量学习能力。随后,引入了 BLIP-2(Li et al., 2023),采用 Flan-T5(Chung et al., 2022)和 Q-Former 来有效地将视觉特征与语言模型对齐。最近,PaLM-E(Driess 等人,2023)具有 5620 亿个参数,已被开发用于将现实世界的连续传感器模式集成到LLM中,从而在现实世界的感知和人类语言之间建立联系。 GPT-4(OpenAI,2023)最近也发布了,在对大量对齐的图像文本数据进行预训练后,展示了更强大的视觉理解和推理能力。
LLM(例如 ChatGPT)已被证明是通过与其他专业模型协作来增强视觉语言任务性能的强大工具。例如,Visual ChatGPT(Wu 等人,2023)和 MM-REACT(Yang* 等人,2023)展示了 ChatGPT 如何充当协调员,与不同的视觉基础模型集成并促进他们的协作以应对更复杂的挑战。 ChatCaptioner (Zhu et al., 2023) 将 ChatGPT 视为提问者,提示 BLIP-2 回答各种问题。通过多轮对话,ChatGPT从BLIP-2中提取视觉信息并有效总结图像内容。 Video ChatCaptioner(Chen et al., 2023)扩展了这种方法,将其应用于视频时空理解。 ViperGPT(Surı ́s et al., 2023)展示了将LLM与不同视觉模型相结合,以编程方式解决复杂视觉查询的潜力。相比之下,MiniGPT-4 直接将视觉信息与语言模型对齐,以完成各种视觉语言任务,而无需使用外部视觉模型。
3 方法
MiniGPT-4 旨在将来自预训练视觉编码器的视觉信息与高级大语言模型 (LLM) 对齐。具体来说,我们利用 Vicuna (Chiang et al., 2023) 作为我们的语言解码器,它是在 LLaMA (Touvron et al., 2023) 的基础上构建的,可以执行各种复杂的语言任务。对于视觉感知,我们采用与 BLIP-2 (Li et al., 2023) 中使用的相同视觉编码器、ViT 主干网络 (Fang et al., 2022) 以及他们预先训练的 Q-Former。语言和视觉模型都是开源的。我们的目标是使用线性投影层来弥合视觉编码器和 LLM 之间的差距,我们的模型概述如图 1 所示。
图 1:MiniGPT-4 的架构。它由一个带有预训练 ViT 和 Q-Former 的视觉编码器、一个线性投影层和一个先进的 Vicuna 大语言模型组成。 MiniGPT-4 只需要训练线性投影层即可将视觉特征与 Vicuna 对齐。
为了实现有效的 MiniGPT-4,我们提出了一种两阶段训练方法。初始阶段涉及在大量对齐的图像文本对上对模型进行预训练,以获取视觉语言知识。在第二阶段,我们使用较小但高质量的图像文本数据集和设计的对话模板对预训练模型进行微调,以增强生成的可靠性和可用性。
3.1 第一预训练阶段
在最初的预训练阶段,该模型旨在从大量对齐的图像-文本对中获取视觉-语言知识。我们将注入投影层的输出视为 LLM 的软提示,提示其生成相应的真实文本。在整个预训练过程中,预训练的视觉编码器和LLM都保持冻结状态,只有线性投影层被预训练。我们使用 Conceptual Caption (Changpinyo et al., 2021; Sharma et al., 2018)、SBU (Ordonez et al., 2011) 和 LAION (Schuhmann et al., 2021) 的组合数据集来训练我们的模型。我们的模型经历了 20,000 个训练步骤,批量大小为 256,覆盖大约 500 万个图像文本对。整个过程需要大约 10 个小时才能完成,使用 4 个 A100 (80GB) GPU。
第一个预训练阶段的问题在第一个预训练阶段之后,我们的 MiniGPT-4 展示了拥有丰富知识并对人类查询提供合理响应的能力。然而,我们观察到它会产生不连贯的语言输出,例如重复的单词或句子、支离破碎的句子或不相关的内容。这些问题阻碍了 MiniGPT-4 与人类进行流畅的视觉对话的能力。
我们还观察到 GPT-3 中遇到了类似的挑战。尽管 GPT-3 在广泛的语言数据集上进行了预训练,但仍难以生成与用户意图准确一致的语言输出。通过根据人类反馈进行指令微调和强化学习的过程,GPT-3 演变成 GPT-3.5(Ouyang et al., 2022;OpenAI, 2022),并且能够产生更加人性化的输出。这种现象与 MiniGPT-4 在初始预训练阶段后的当前状态相似。因此,我们的模型在现阶段可能难以生成流畅且自然的人类语言输出也就不足为奇了
3.2 为视觉语言领域策划高质量的对齐数据集。
为了使生成的语言更加自然并增强模型的可用性,第二阶段的对齐过程至关重要。虽然在 NLP 领域,指令微调数据集(Taori 等人,2023)和对话(sha,2023)很容易访问,但视觉语言领域不存在等效的数据集。为了解决这一缺陷,我们精心策划了一个详细的图像描述数据集,专门为视觉语言对齐目的而定制。随后,该数据集用于在第二阶段对齐过程中微调我们的 MiniGPT-4。
初始对齐的图像文本生成在初始阶段,我们采用从第一个预训练阶段导出的模型来生成输入图像的全面描述。为了使我们的模型能够生成更详细的图像描述,我们设计了一个遵循 Vicuna (Chiang et al., 2023) 语言模型的对话格式的提示,如下所示。在此提示中,<ImageFeature>表示线性投影图层产生的视觉特征。
为了识别不完整的句子,我们检查生成的句子是否超过 80 个标记。如果没有,我们会添加一个额外的提示,###Human:Continue ###Assistant:,提示我们的 MiniGPT-4 扩展生成过程。通过连接两个步骤的输出,我们可以创建更全面的图像描述。这种方法使我们能够生成具有详细且信息丰富的图像描述的图像文本对。我们从 Conceptual Caption 数据集中随机选择 5,000 张图像(Changpinyo et al., 2021;Sharma et al., 2018),并使用预训练模型为每个图像生成相应的语言描述。
数据后处理上述自动生成的图像描述包含噪声或不连贯的描述,例如单词或句子的重复、句子碎片或不相关的内容。为了解决这些问题,我们使用 ChatGPT 来修改描述,并使用以下提示:修复给定段落中的错误。删除任何重复的句子、无意义的字符、非英语句子等。删除不必要的重复。重写所有不完整的句子。直接返回结果,不做解释。如果输入段落已经正确,则直接返回,无需解释。完成后处理阶段后,我们手动验证每个图像描述的正确性,以保证其高质量。具体来说,我们首先识别出几个经常出现的错误(“对不起,我犯了一个错误……”或“我为此道歉……”),然后硬编码规则来自动过滤掉它们。我们还通过消除 ChatGPT 无法检测到的冗余单词或句子来手动优化生成的标题。最后,5000 个图像文本对中只有大约 3500 个满足我们的要求,这些对随后用于第二阶段对齐过程。
3.3 第二阶段微调
在第二阶段,我们使用精心策划的高质量图像文本对来微调我们的预训练模型。在微调过程中,我们使用以下模板中的预定义提示:###Human:<Img><ImageFeature></Img><Instruction>###Assistant:在此提示中,<Instruction>表示从我们的预定义指令集包含不同形式的指令,例如“详细描述此图像”或“你能为我描述此图像的内容吗”。值得注意的是,我们不会计算此特定文本图像提示的回归损失。因此,MiniGPT-4 现在能够生成更自然、更可靠的语言输出。此外,我们观察到这种微调过程非常高效,仅需要 400 个训练步骤,批量大小为 12,使用单个 A100 GPU 大约需要 7 分钟。