ChatGPT 的诞生,引爆了 2023 年的基于大语言模型的 AI 浪潮,此后各类开源大语言模型陆续问世,包括 Flan-T5、Vicuna、 LLaMA、Alpaca 等。随后,社区继续发力,为模拟这个多模态的世界,研究者们将纯语言的大模型扩展到了处理语言之外的多模态大语言模型,诸如支持图像类的 MiniGPT-4、BLIP-2、Flamingo、InstructBLIP 等,支持视频类的 Video-LLaMA、PandaGPT 等,以及支持声音类的 SpeechGPT 等等。
但目前的多模态大语言模型,距离真正人类级别的 AGI,总感觉少了点「内味」。没错,人类的认知和沟通必须无缝地在任何信息模态之间进行转换。作为人类,我们不仅仅可以理解多模态内容,还能够以多模态的方式灵活输出信息。
对于现有的大语言模型,一方面,其大多局限于关注于某种单一模态信息的处理,而缺乏真正「任意模态」的理解;另一方面,其都关注于多模态内容在输入端的理解,而不能以任意多种模态的灵活形式输出内容。
正当大家都在期待 OpenAI 未来要发布的 GPT-5 是否能实现任意模态大一统功能时,几天前,来自于新加坡国立大学的 NExT++ 实验室的华人团队率先开源了一款「大一统」通用多模态大模型「NExT-GPT」,支持任意模态输入到任意模态输出。目前 NExT-GPT 的代码已经开源,并且上线了 Demo 系统。
- 项目地址:https://next-gpt.github.io
- 代码地址:https://github.com/NExT-GPT/NExT-GPT
- 论文地址:https://arxiv.org/abs/2309.05519
该实验室在多模态学习方向的研究有着多年的耕耘,具有深厚的积累,而 NExT-GPT 的取名也双关了实验室的名字以及 GPT of Next generation 的寓意。
NExT-GPT 一经发布便受到了 AI 社区的大量关注。有网友表示,NExT-GPT 标识着全能型 LLM 的到来:
也有网友赞叹,这才是未来的 LLM 大趋势(大一统任意模态输入输出的 LLM):
接下来,我们来看看 NExT-GPT 可以实现哪些功能:
- Text → Text + Image + Audio
- Text + Image → Text + Image + Video + Image
- Text + Video → Text + Image
- Text + Video → Text + Audio
- Text + Audio → Text + Image + Video
- Text → Text + Image + Audio + Video
- Text → Text + Image
- Text + Video → Text + Image + Audio
- Text → Text + Image + Audio + Video
- Text → Text + Image
可看到,NExT-GPT 能够准确理解用户所输入的各类组合模态下的内容,并准确灵活地返回用户所要求的甚至隐含的多模态内容,常见的图生文、图生视频、看图像 / 声音 / 视频说话、图像 / 声音 / 视频问答等问题统统不在话下,统一了跨模态领域的大部分常见任务,做到了真正意义上的任意到任意模态的通用理解能力。
作者在论文中还给出一些定量的实验结果验证,感兴趣的读者可以阅读论文内容。
技术细节
那 NExT-GPT 是如何实现任意模态输入到任意模态输出的?原理非常简单,作者甚至表示在技术层面上「没有显著的创新点」:通过有机地连接现有的开源 1) LLM, 2) 多模态编码器和 3) 各种模态扩散解码器,便构成了 NExT-GPT 的整体框架,实现任意模态的输入和输出,可谓大道至简。
NExT-GPT 整体呈现为一个「编码端 - 推理中枢 - 解码器」三层架构:
- 多模编码阶段:利用已开源的编码器对各种输入模态进行编码,然后通过一个投影层将这些特征投影为 LLM 所能够理解的「类似语言的」表征。作者采用了 MetaAI 的 ImageBind 统一多模态编码器。
- 推理中枢阶段:利用开源 LLM 作为核心大脑来处理输入信息,进行语义理解和推理。LLM 可以直接输出文本,同时其还将输出一种「模态信号」token,作为传递给后层解码端的指令,通知他们是否输出相应的模态信息,以及输出什么内容。作者目前采用了 Vicuna 作为其 LLM。
- 多模生成阶段:利用各类开源的图像扩散模型、声音扩散模型以及视频扩散模型,接收来自 LLM 的特定指令信号,并输出所对应的模型内容(如果需要生成的指令)。
模型在推理时,给定任意组合模态的用户输入,通过模态编码器编码后,投影器将其转换为特征传递给 LLM(文本部分的输入将会直接出入到 LLM)。然后 LLM 将决定所生成内容,一方面直接输出文本,另一方面输出模态信号 token。如果 LLM 确定要生成某种模态内容(除语言外),则会输出对应的模态信号 token,表示该模态被激活。技术示意图如下:
文中作者指出,NExT-GPT 可能并不是实现任意模态输入到任意模态输出功能的首个工作。目前有两类前驱工作:
- 一类是不久前所发布的 CoDi 模型,其整合了各种模态的 diffusion 模型,可以同时处理和生成各种组合的模态内容。然而作者指出,CoDi 由于缺乏 LLMs 作为其核心部件,其仅限于成对(Parallel)内容的输入和生成,而无法实现复杂的内容推理和决策,根据用户输入的指令灵活响应。
- 另一类工作则试图将 LLMs 与现有的外部工具结合,以实现近似的「任意多模态」理解和生成,代表性的系统如 Visual-ChatGPT 和 HuggingGPT。但作者指出,由于这类系统在不同模块之间的信息传递完全依赖于 LLM 所生成的文本,其割裂、级联的架构容易不可避免地引入了噪音,降低不同模块之间的特征信息传递效用。并且其仅利用现有外部工作进行预测,缺乏一种整体的端到端训练,这对于充分理解用户的输入内容和指令是不利的。
而 NExT-GPT 可以良好地解决如上所述的现有工作问题。那么 NExT-GPT 有哪些关键点呢?
- 关键点-1:低成本实现复杂推理 + 多模态 in 和多模态 out
如前文所述,不仅要继承 LLM 所具备的复杂内容理解和推理能力,还需要实现任意模态的输入和输出。若考虑从零开始构建整个系统,代价将会巨大(除非是大厂才能承担成本),也不利于开源和传播。考虑到现有的大模型已经基本实现了多模态的输入,为实现全能的大一统多模态能力,因此最关键的一点在于高性能的多模态输出。为此,NExT-GPT 完全基于现有开源的高性能模块(比如目前性能最强的扩散模型),充分站在巨人的肩膀上,以最低的成本实现大一统多模态大模型的构建目标(实验室可承担级别的成本)。
- 关键点-2:高效率端到端训练和模态对齐学习
妥当的、端到端的系统训练是 NExT-GPT 区别于现有其他组合型统一大模型系统最重要的一点,也是保证 NExT-GPT 具有优秀性能的前提。另一方面,还需要充分对齐系统中的所有模态的特征表征。为了既保证具有较好的学习成效,又全面降低、控制学习成本,本工作包含了以下的亮点。
首先,NExT-GPT 考虑分别在编码层 - LLM 之间以及 LLM - 解码层之间插入投影层(Projection Layers)。在冻结大规模参数的基座「编码层 - LLM - 解码层」情况下,仅去训练参数量极低的投影层部分(以及在指令微调时基于 LoRA 的 LLM 低代价更新),作者实现了仅仅 1% 参数量的训练代价。
具体通过 1)以 LLM 为中心的编码端多模态对齐学习,和 2)局部微调的解码端指令跟随增强学习实现。
另外,对于多模态大模型,为确保其能够充分忠于用户指令而响应,进一步的指令调整(IT)是非常有必要的。不同于现有的多模态大模型其输出端仅涉及到文本,我们的 NExT-GPT 系统,其输入和输出端同时覆盖了各类模态信息。
为此,作者提出了一种模态切换指令微调学习(Modality-switching Instruction Tuning,MosIT),技术内涵如下图所示。同时,由于现存的多模态指令微调数据集都无法满足任意多模态 LLM 场景(即 MosIT)的要求,我们因此构建了一套 MosIT 数据集。该数据涵盖了各种多模态输入和输出,提供了必要的复杂性和变异性,帮助提升 NExT-GPT 获得优越的多模态指令跟随和相应能力。
结论和未来展望
总体上,NExT-GPT 系统展示了构建一个通用大一统多模态的 AI 模型的美好景愿和喜人的可能性,这将为 AI 社区中后续的更「人类水平」的人工智能研究提供宝贵的借鉴。
基于 NExT-GPT,后续的研究工作可以考虑以下几个方面:
1. 模态与任务扩展:受限于现有资源,目前作者所开源的 NExT-GPT 系统仅支持四种模态:语言、图像、视频和音频。作者表示,后续会逐步扩展到更多的模态(例如,网页、3D 视觉、热图、表格和图表)和任务(例如,对象检测、分割、定位和跟踪),以扩大系统的普遍适用性。
2. 考虑更多基座 LLM:目前作者实现了基于 7B 版本的 Vicuna LLM,其表示下一步将整合不同大小的 LLM,以及其他 LLM 类型。
3. 多模态生成策略:目前版本的 NExT-GPT 系统仅考虑了基于扩散模型的纯输出方式的多模态输出。然而生成模式容易输出错误幻想内容(Hallucination),并且输出内容的质量往往容易受到扩散模型能力的限制。因此,进一步提升扩散模型的性能很关键,这能直接帮助提高多模态内容的输出质量。另外,实际上可以整合基于检索的方法来补充基于生成的过程的弊端,从而提升整体系统的输出可靠性。
4. 降低多模态支持成本:可以考虑进一步降低对更多模态的支持的成本。NExT-GPT 考虑了 ImageBind 来统一多种模态的编码,从而节省了在编码端的代价。而对于多模态输出端,作者简单地集成了多个不同模态的扩散模型。如何防止随着模态的增加而动态增加解码器是后续的重要研究方面。比如可以考虑将一些支持不同模态生成(但具有模态共性)的扩散模型进行复用。
5. MosIT 数据集扩展:目前 NExT-GPT 所使用的 MosIT 数据集规模受限,这也会限制其与用户的交互表现。后续研究可以进一步提升模态切换指令微调学习策略以及数据集。