来源:CVPR2023 Tutorial Talk
演讲题目:Large Multimodal Models: Towards Building and Surpassing Multimodal GPT-4
主讲人:Chuanyuan Li
GPT-4现在很流行。今天我将试图帮助大家构建一个最小版本的多模态GPT-4。我将介绍不同的方式来利用大型语言模型(LLM)进行多模态任务。我将重点讲解端到端训练的模型,以便我们可以构建大型语言模型,保存图像并以合理的速率进行理解。
课件论文已经整理到网盘,需要的可以关注公粽号:AI技术星球 回复:211 获取
让我们从第一部分开始,现有的大型多模态模型。我认为大多数模型共享两个方面。一个是模型架构,另一个是训练目标。在模型架构方面,有三个部分,包括视觉编码器、语言模型、以及连接视觉部分和语言部分的一些可训练的连接模块。归根结底,这些模型的作用是输入图像并试图将其解码或转换为文本序列。在训练目标方面,大多数模型共享相同的训练目标,也就是语言输出的回归损失。
由于所有模型都是基于Transformer构建的,在Transformer的注意力映射方面。它们使用跨模态注意力,图像文本共享注意力。它们需要跨模态生成,意味着所有图像标记都要关注彼此。对于文本部分,要预测的标记将关注所有图像标记和之前的文本标记。
现在,让我们看一些例子,现有的工作是如何实现这两者的。第一个例子是用图像文本对训练的模型,我们使用了两个现有的模型,一个是 GIT,另一个是 BLIP2。我们可以看到它们都有三个模块的架构。对于 GIT ,其图像编码器基于 CLIP 的 Transformer 训练的 Florence 模型。它们从中初始化权重。它们还从头开始在视觉特征之上构建语言模型,将模型端到端训练。
另一方面,BLIP2是今年早些时候提出的,它们保持语言模型和 CLIP 编码器以及语言模型权重冻结。并添加了一个称为 Q-Former 的轻量级模块。结果表明,这两种下游方式在训练样本方面非常高效。
第二个例子是 Flamingo 模型。这是在图像文本交织数据上训练的多模态模型。类似地,Flamingo 模型使用了预训练的视觉编码器和语言编码器,保持这两个大模型冻结,并引入一个连接模块。连接模块中有两个重要的模块,一个是接收器重采样器(Perceiver Resampler),主要目的是减少计算复杂性;另一个是门控跨注意力层加上深度层(Gated Cross-attention + Dense),主要目标是在训练的初始阶段提高训练的效率。
Flamingo 在许多学术研究基准测试中达到了最先进的性能。我发现 Flamingo 最迷人的地方在于其在上下文中的学习能力。如果你有任何下游任务,你可以提供一对或几对图像文本示例,并输入它们以向模型展示你在推理阶段实际想要执行的任务类型。然后你提供输入图像。然后模型将基于你提供的示例学习完成任务。我认为 Flamingo 模型可以被认作是多模态领域的 GPT-3。
那么现在,今年3月初,我们看到 OpenAI 发布了多模态模型 GPT-4。尽管我们不知道模型细节。在论文和技术报告中,OpenAI 展示了几个视觉示例,关于理解和推理方面的能力。我们都对 GPT-4 即将做到的能力感到兴奋。例如,我认为这两个例子现在在社交媒体上很流行,该模型可以进行一些高级复杂的推理,即使我们对此很兴奋。有一段时间,开源社区对OpenAI实际如何训练此模型并实现这种能力毫无头绪。
在本次演讲中,我将尝试讲述我对我们如何实际取得这些结果的理解,以更好地说明现有模型和多模态 GPT-4 之间的差距。我使用 OpenAI GPT 系列模型的语言模型历史作为示例。这里,我展示了我个人认为每个版本模型最有趣的新出现的属性。对于 GPT-3,它是持续学习和思维链。对于 ChatGPT 和 InstructGPT,对我来说最重要的属性是遵循指令,但它仍然在语言领域。当涉及到 GPT-4 时,在多模态领域有一个额外的功能,那就是允许图像输入。
现在我们也有了多模态 GPT-4。那么现在距离理想目标还存在差距,这里的差距是什么,我们如何可能填补这一差距?对我来说,我认为这是遵循指令以及如何进行校准研究以填补这一差距。我们看到,指令调整或指令调整能力很重要。我将从语言领域开始解释,因为instruction tuning的概念首先是为此而设计的。
首先,让我们看一些例子。这些是 NLP 社区人们实际上如何表示他们的数据的方式。传统上,人们总是将数据表示为相同的同步输入和同步输出。这里有两个例子。第一个是一种翻译,第二个是摘要。我这里没有提供任何任务说明,但是如果你看数据,你已经明白每个任务的任务说明,这意味着在传统的 NLP 设置中,即使我们从未明确指定任务说明,而任务说明也是由数据隐式指定的。
人们所做的就是可能在每种类型的数据上训练单独的模型,有时他们会将数据合并在一起并试图进行多任务训练,即使使用多任务训练,他们也不会在训练中指定任务说明。这意味着在推理阶段,模型很难知道它将执行什么类型的任务。这使得这样训练的模型难以推广到未见过的新任务。
现在来看 Instruction Tuning。对于 Instruction Tuning,与隐式编码任务说明不同,Instruction Tuning 实际上扩展了原始数据,以前我们有输入输出数据对。现在,我们将任务提示扩展并将其非常明确地作为训练数据的一部分。例如,在第一个案例中,我会添加“翻译成简体中文”的提示。在第二个文本摘要的例子中,它将是“用10个词总结输入文本”,在这个过程中,我们会明确指定每个任务类型的训练提示,然后把它们都放在一起。模型学习它在训练中将执行哪个任务。
在推理阶段,我们也将指定模型要执行的任务。通过这种方式,它使预先训练的模型更容易推广到新任务。我在这里提供了另一个例子。让我们看看,在训练中,我们只有翻译任务和摘要任务。在推理阶段,我们向模型提供一个新的从未在训练中明确指定的任务,这是翻译和摘要的组合任务。因为神经网络可以在概括化方面做得非常出色。在这种情况下,它将是任务组合。
现在它来到新的任务,模型可以理解这个新的任务,并完成这个任务。我认为这就是Instruct Tuning 在 NLP 中工作的直觉,它已经非常成功地使模型更好地推广到未见过的新任务。我们已经看到了 Instruct Tuning 的力量,它如何使模型更好地适应未见过的新任务。那么问题是,我们看到关键实际上是如何获得 Instruct Tuning 数据,获取 Instruct Tuning 数据有两种不同的方法。第一个是人与人互动的方式,例如,如果你让一些标注者说“请为这样的数据提供这样的提示”。然后你可以花很多钱,然后你可以花很多时间来获取成千上万的高质量提示数据,这通常被认为是时间和劳力密集型的。另一种方法是我们可以以更可扩展的方式使用人机交互来获取数据。更具体地说,我将讲述自我指导框架,以帮助我们在 NLP 中获得高质量的 Instruction Tuning 数据。首先,记住我们自己编写提示数据的方式。一个是翻译示例,另一个是摘要示例,我们可以实际上将其用作愚蠢的例子。让我们试图利用 GPT-3 和 GPT-4中的上下文学习能力,因为我们已经提供了这些例子来说明。然后我们要求一个强大的语言模型生成一组不同的提示及其对应的响应。通过这种方式,我们可以相对轻松地连接大量提示的数据。
这就是 self-instruct 在 NLP 中的工作方式。这个想法在过去几个月在 NLP 中已经非常成功,你可能已经看到了 LLaMA 家族,从 Meta LLaMA 开始,它不是Instruction Tuning的,它只是一个强大的语言模型。在这个社区你已经看到了大量的 LLaMA,因为人们使用不同类型的提示数据并改变他们的模型,然后获得instruction tuning的大型模型。其中许多只是早期版本。
例如,PaLM 使用了 instructor 模型。在他们的工作中,instructor 模型是GPT-3.5 和著名的 Alpaca 的 Claude 模型。另一方面,GPT4-Alpaca使用 GPT-4 而不是 GPT-3 作为 instructor。
那么,我们怎样能利用开源的研究工具,在负担得起的情况下构建一个多模态 GPT 呢?今天我将使用 LLaVA 作为一个运行示例。我将跟你们讨论如何创建这样的调整数据和如何训练模型。模型的性能如何?我们发现 self-instruct 非常成功,这是因为我们有一个非常好的 instructor,这个 instructor 在输入和输出语言时是多模态的。我们还没有公开的多模态 GPT 模型,我们也没有好的 instructor,这是一个独特的挑战。
我们如何利用语言模型去构造一个多模态模型的指令数据呢?在 LLaVA 中,我们提供了一个初步的方法如何构造这样的数据并训练这个多模态模型。首先我们来谈谈数据。即使我们不能将原始图像放入 ChatGPT 或 GPT-4 中,因为这些语言模型不能理解图像。我们实际上可以使用符号文字表示法表达图像,比如考虑边框,考虑标题,考虑计算机视觉领域中我们已经有的对图像理解的结果。 我们最终实际上是将图像转换为某种文本表示或符号表示。在 LLaVA 中,我们特别使用标题和边框来表示图像。现在,我们可以将图片表示为文本。
以这种方式,我们仍然可以使用自我指令来构建高质量的指令跟踪数据。在未来,你可以构建任何你感兴趣的指令。在 LLaVA 中,我们从三种初步的指令开始。我们希望构建的首项指令是构建一个多模态聊天机器人,可以从给定的图像获取信息。第二种类型是详细描述,我们希望模型尽可能详细地描述图像。我们建造这款模型的目标之一,就是要让模型产生长序列,这就是为什么我们要构建这个详细描述指令。
我们构建的最后一系列指令是复杂推理指令。GPT-4 模型实际上已经用来理解图像。我们如何再现这些结果呢?
如果我们只使用前两种方法,对于模型来说,仅通过图像进行推理是非常困难的。所以我们经过若干次迭代和版本改进,发现复杂推理指令质量非常重要。
关于模型的话,架构类似于我之前提到的所有最近的语言模型。你有一个预先训练好的视觉编码器,有一种预训练的语言模型。我们在内部视觉编码器中使用了CC3M。在语言模型方面,我们使用了开源的 LLaMA。在连接模块方面,我们使用了新的投影层。这就是我们构建模型的方式。
我们的训练流程分为两个阶段。在第一阶段,我们只更新投影层,这个阶段的主要目标是对齐两种模态。换句话说,我们可以将投影层当做视觉的 token 化,你将图像转换为语言模型能理解的表述。
在第二阶段,我们将更新投影层和整个语言模型。在我们之前创建的指令部署数据上。这个阶段的主要目标是让模型理解不同的指令,很多不同的任务。所以在推理阶段,如果你提供了一个新任务,这个模型能完成这个新任务。
性能讲述方面,我们构建了一个小的评估数据集。主要结论是,与 GPT-4 相比,LLaVA 模型实现了85%的相对提升。但别把这个当作严肃的对比,因为它只是一个非常小的模型对非常简单的图像的实验结果。另一方面,我们还在科学问题理解数据集(Science QA)上进行了测试。我们用 LLaVA 在 Science QA 的训练集上进行了二阶段训练,我们结合了 GPT-4,为我们在这个数据集上创造了一个新的记录。
现在让我们来看一些例子。事实证明,我们能够用这极少一部分的训练数据复现多模态GPT的能力。在进行复杂推理方面,问题是,“这张图片有何不寻常之处?”模型表明了,车在行驶,男人在烫衣服,通常烫衣服在室内进行,但现在这是在行驶的车上完成的,这是不合理的。如果你感兴趣,你可以继续与 LLaVA 进行互动。
我之前展示的第二个例子中,除了推理,模型还可以理解图像中一些文本同步的含义。之前的模型(如 Flamingo)主要是试图描述图像内容,因为这是模型被训练去完成的单一任务,你不能期望模型能够做更深、不同的训练任务。
我们发布模型和演示后,我试图为这个模型创建一些有趣的例子。在这个例子中,我将 CVPR 2023 的 logo 上传到 LLaVA ,并询问这个图像内容对谁会感兴趣。模型说,可能有两类人会感兴趣。第一类是住在加拿大温哥华的人,另一类是那些正在从事AI及其应用的人,这意味着模型不仅能理解文本输入,还有一些内在知识。
在第二个例子中,我上传了我们工作间的logo,我们询问这个图像是关于什么的,结果模型得出的结论是这是关于计算机视觉的。
我们在过去三个月中看到了许多论文的发布,下图展示了多模态大模型的发展历程以及新出现的主题。
现在有不同的主题,例如,结合已建立的数据集。人们也尝试对语言和视觉以外的更多模态进行编码。我会尝试强调几个主题,例如,更多其他种类的模态。
ImageBind 是使用图像表示为中心的工作,他们试图引入视频,音频和其他模态。PandaGPT 是将工作扩展到更多模态的成果。我们也有 SpeechGPT,这个模型可以接受图像和语音的输入,并输出语音。 在 NLP 社区,当人们谈论指令训练时,可能有两组工作。第一是用户导向任务的指令工具,比如开放模型。另一组是针对学术研究基准的指令。即使人们正在进行指令训练,目标也是不同的。我们建立 LLaVA 时,主要目标是用户导向的任务。但在研究社区中,研究人员进行了大量的学术研究,他们都是关于早期建立的任务,例如标题赋值等。你也可以将这种数据集以指令形式重新编写,并加入到 Instruction Tuning 的趋势中。Instruct GPT是这种工作的一部分,它结合了这两种类型的 Instruction Tuning 数据。
在这种多模态空间中,有时我们需要考虑具有多个图像或视频输入的应用。在这种情况下,需要一个能够处理多重图像输入的模型。而在大学的实验室中,人们总是抱怨我们没有足够的 GPU 去训练这些大模型。
幸运的是,在研究社区,有许多关于参数有效训练,即只有一小部分可训练参数的研究,这样你就可以使用少量的GPU或者只用一台GPU来训练你的模型。
我们如何进行评估?我们有一些使用OCR能力进行基准测量的论文。我想强调的是,当我们进行训练的时候,训练数据中并没有OCR数据。但是,结果证明了模型可以自主进行 OCR 转换。然而,研究表明,大部分 LMM 的 OCR 性能都不如有监督训练 SOTA 模型在 OCR 主题上的表现。但是,有一个数据集不同,LMM 在这个数据集上的表现超过了有监督的研究,因为这个数据集更多的是基于这些结果的推理。
一个有趣的观察是,即使对于原始的 LLaVA 模型,模型也能够讨论医疗图像。但是它就像我一样,我知道这是一幅医疗图像,但我不能详细讨论具有领域特定知识的内容。如果你问我一些临床建议,我会告诉你我不知道。同样,LLaVA 也是这样。但是如果你在医疗领域的数据上训练模型,模型会尝试提供一些有关医疗问题的有用建议。我们有很多开源的努力试图构建或超越Multi-Modal GPT-4。
我会说,就新的能力而言,我们可能会看到开源力量有时会令人惊讶的超越 Multi-Modal GPT-4,因为 Multi-Modal GPT-4 无法做图像生成。并且有一项工作能够使用类似 GPT-4 的模型进行图像生成。但是我想说的是,开源努力与真正的Multi-Modal GPT-4之间仍然存在很大的差距。
在 Multi-Modal GPT-4 论文中,他们也展示了更复杂的推理结果。例如,给定一篇论文作为输入,要求模型对该论文进行总结。显然,这需要处理多个高分辨率的图像,处理长句子。有时候它的回应需要领域知识。所有这些都需要大量的训练和更多的计算,对大多数研究者来说,这是无法承受的。
那么接下来我们可以做什么呢?对于有资源的产业实验室,我会说请投入研究新的属性。对于大学实验室来说,也许我们应该考虑做一些像 LLaVA 这样的小型模型,考虑我们可以如何利用新的功能开启新的场景,或者进行一些评估。
白嫖上述视频课件论文+100G入门到进阶AI资源包+论文指导/kaggle竞赛/就业指导+技术问题答疑 关注微信公众H:AI技术星球,回复211 获取
还有资源包:1、超详细的人工智能学习路线
2、OpenCV、Pytorch、YOLO等教程(附源码课件数据)
3、人工智能快速入门视频教程合集(Python基础、数学基础、NLP)附源码课件数据
4、机器学习算法+深度学习神经网络基础教程
5、人工智能必看书籍(花书、西瓜书、蜥蜴书等)
6、上千篇CVPR、ICCV顶会论文 7、AI行业报告