miniGPT-4的热度至今未减,距离LLaVA的推出也不到半个月,而新的看图聊天模型已经问世了。今天要介绍的模型是一款类似于miniGPT-4和LLaVA的多模态对话生成模型,它的名字叫mPLUG-Owl。
- 论文链接:https://arxiv.org/abs/2304.14178
- 项目链接:https://github.com/X-PLUG/mPLUG-Owl
- 在线demo:https://modelscope.cn/studios/damo/mPLUG-Owl/summary
mPLUG-Owl展现出强大的图文理解能力:
以下是本文作者的试用结果:
本文贡献如下:
- 提出一种新的模块化的训练多模态大模型的方式
- 提出测评集OwlEval,以便测试多模态模型在视觉相关任务上的能力
- 开源模型代码,demo代码以及模型权重文件,方便研究者进行进一步的研究。
mPLUG-Owl
模型架构
本文提出了 mPLUG-Owl,其整体架构如图2所示。它由视觉基础模型 f V f_V fV、视觉抽象模块 f K f_K fK 以及预训练语言模型 f L f_L fL 组成。视觉抽象模块将较长的、细粒度的图像特征概括为少量可学习的 Token,从而实现对视觉信息的高效建模。生成的视觉 Token 与文本查询一起输入到语言模型中,以生成相应的回复。
训练策略
如图1所示,目前存在三种主要的训练策略来训练端到端的多模态LLM模型。这些策略分别是:
- 在预训练和指令微调阶段冻结视觉模块和语言模块,调整有限的参数,如MiniGPT4。
- 冻结视觉模块,训练语言模块,如Kosmos-1。
- 在指令微调阶段冻结视觉模块,训练语言模块,如LLaVA。
然而,这些模型都冻结了视觉模块的参数调整,从而限制了不同模态之间的对齐。此外,它们缺乏单模态和多模态数据的共同训练,难以有效地激发大型模型的各种潜能。
为了克服这些限制,mPLUG-Owl采用了一种不同的训练策略。首先,其使用多模态数据训练视觉模块,并冻结语言模块。这样可以让视觉特征贴合语言特征。然后,其使用多模态和单模态数据联合调整语言模块的LoRA参数,同时冻结视觉模块。这样,模型可以学习多样化的单模态和多模态指令,同时具备单模态和多模态多轮对话能力。
实验
定量分析
如图3所示,本文在构建的多模态测评集 OwlEval 上对 mPLUG-Owl 进行了人工评估。评价结果分为四个等级 A-D,代表对应的生成质量依次递减。从测评结果中可以看出,mPLUG-Owl 取得了最佳的结果。
为了分别探究 mPLUG-Owl 在单轮对话和多轮对话上的性能,本文还从 OwlEval 中单独抽出了一些单轮对话和一些多轮对话,分别进行人工评估。结果如图4所示。可以发现,mPLUG-Owl 具有较强的多轮对话能力。
消融实验
为了探究训练策略与指令数据的使用对模型结果的影响,本文还展示了消融实验的结果,如表2所示。
此外,本文还发现了一个有趣的现象:多模态数据的学习可以提高模型的文本单模态能力。正如表3所示,使用ChatGPT对生成结果进行评分发现,仅调整LoRA参数的mPLUG-Owl在纯文本生成能力上击败了全参数调整的Alpaca。
定性分析
从图6中可以发现,mPLUG-Owl有较强的多轮对话能力。
从图7中可以发现,mPLUG-Owl还具有很强的推理能力。
尽管mPLUG-Owl已具有较强的图文理解能力,但和GPT-4相比仍有一些差距。如图8所示,mPLUG-Owl虽然已经正确理解了笑点,但错误地将VGA插头识别为了USB插头。
图9展示了一些额外的笑话解释例子。
如图10所示,虽然在训练阶段并没有进行多图关联数据的训练。mPLUG-Owl展现出了一定的多图关连能力。
如图11所示,尽管mPLUG-Owl在训练阶段仅接触了英文数据,但其展现出了有趣的多语言能力。这可能是因为mPLUG-Owl中的语言模块采用了支持多语言的LLaMa,从而出现了这一现象。
尽管mPLUG-Owl没有在带有标注的文档数据上进行训练,但其仍然展现出了一定的文字识别和文档理解能力。测试结果如图12所示。
如图13、14所示,mPLUG-Owl在多模态的开放式结尾续写方面展现出了较强的能力。
以下是更多有趣的例子:
更多开源应用
智能通行团队模型、论文、博文、直播合集,点击此处浏览。
DamoFD人脸检测0.5G
RetinaFace人脸检测关键点模型
人脸活体检测模型-IR
人脸活体检测模型-RGB
FLCM人脸关键点置信度模型
人脸表情识别模型FER
人脸属性识别模型FairFace