项目地址:https://next-gpt.github.io 代码地址:https://github.com/NExT-GPT/NExT-GPT 论文地址:https://arxiv.org/abs/2309.05519
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 的特定指令信号,并输出所对应的模型内容(如果需要生成的指令)。
文中作者指出,NExT-GPT 可能并不是实现任意模态输入到任意模态输出功能的首个工作。目前有两类前驱工作:
一类是不久前所发布的 CoDi 模型,其整合了各种模态的 diffusion 模型,可以同时处理和生成各种组合的模态内容。然而作者指出,CoDi 由于缺乏 LLMs 作为其核心部件,其仅限于成对(Parallel)内容的输入和生成,而无法实现复杂的内容推理和决策,根据用户输入的指令灵活响应。 另一类工作则试图将 LLMs 与现有的外部工具结合,以实现近似的「任意多模态」理解和生成,代表性的系统如 Visual-ChatGPT 和 HuggingGPT。但作者指出,由于这类系统在不同模块之间的信息传递完全依赖于 LLM 所生成的文本,其割裂、级联的架构容易不可避免地引入了噪音,降低不同模块之间的特征信息传递效用。并且其仅利用现有外部工作进行预测,缺乏一种整体的端到端训练,这对于充分理解用户的输入内容和指令是不利的。
关键点-1:低成本实现复杂推理 + 多模态 in 和多模态 out
关键点-2:高效率端到端训练和模态对齐学习
首先,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 数据集规模受限,这也会限制其与用户的交互表现。后续研究可以进一步提升模态切换指令微调学习策略以及数据集。