查看原文
其他

MMBench:为你的多模态模型找到北极星

MMBench OpenMMLab 2024-04-23

最近几个月,伴随着大语言模型的发展,多模态大模型也取了长足的发展。一系列模型在短时间内如雨后春笋般涌现了出来,例如 BLIP2, MiniGPT-4, LLaVA, mPLUG-Owl。但是,如何来全面地评估一个多模态模型仍然是一个比较棘手的问题。当前模型测试的方式主要分为以下三类:


  1. Demo 展示:展示模型在某些特定问题上的回答

  2. 主观评测:通过人为构造一些 prompt,以人来比较各个模型在这些 prompt 上面的回答效果

  3. 传统客观评测集测试:在传统客观评测集上面进行评测,例如在 COCO Caption,VQAv2 上面的评测


以上的评测方式均存在一些固有问题。例如 Demo 展示这一评测方式受评测问题数量的限制,多样性不足,很容易导致对模型的评估不够全面。


而对于主观评测的方式,除了评测问题数量少和缺乏多样性的问题,由于人具有认知偏差,所以论文中的评测结果往往很难复现,同时也存在不能无法全方位评估的问题。


最后,传统客观评测集合对于模型的评估往往更侧重于模型在某项任务上面的能力评测,例如 VQA, image captioning 等。无法做到对模型细致能力的评估,进而无法提供有效的反馈。同时,受限于传统评测方式 exact matching 的缺陷,很容易产生假阳性的问题。例如标准答案为 bicycle,而模型的回答是 bike 时,当下的评测方式就会判定模型的回答是错误的。


鉴于现行评测方式所存在的问题,我们重新定义了一套针对当前多模态大模型的评测流程——MMBench。其主要包含两个方面:


  • 自上而下的能力维度设计,根据定义的能力维度构造了一个评测数据集

  • 引入 ChatGPT,以及提出了 CircularEval 的评测方式,使得评测的结果更加稳定


Paper 链接:

https://arxiv.org/pdf/2307.06281.pdf


Project 链接: 

https://opencompass.org.cn/MMBench


Leaderboard 链接:

https://opencompass.org.cn/omni-rank


我们还将在今晚 8 点进行的社区开放麦直播中,为大家详细介绍 MMBench,欢迎大家预约观看!




数据集


数据集构造


我们的主要目的是对模型的各种能力进行全方位的考察,所以我们自上而下定义了三级能力维度 (L1-L3),第一级维度(L1)包含感知与推理两项能力,第二级能力维度(L2) 在第一级的能力维度下进行拓展,包含 6 项能力,最后第三级能力维度(L3)进一步在第二级能力维度的基础上进行拓展,包含 20 个能力维度。各级能力维度的包含关系如下图所示:



针对每一项 L3 能力,我们进行了相关问题的收集,为了保证评估的结果更稳定全面,针对每一项 L3 能力我们都收集了超过 75 题,具体的数量分布如上图所示,括号里面显示了该项能力维度下有多少道题目。目前我们的评测集总共包含 2974 道题目。我们收集的数据集,问题,题目的来源分布十分广泛,下表列出了所有来源。



尽管,我们有些题目、图片来源于一些公开数据集,例如 COCO-Caption、ScienceQA,但是这些题目来源于 test 集合,并且这些题目的总数占总题目数的比例大概在 10% 左右,所以在我们这个数据集上的评测仍然可以看作是 held-out 评测。


题目展示


为了简化评测流程,我们将所有的题目都设计为单项选择形式,下图展示了我们评测数据集中的一些题目:



你可以参考我们的论文,以及数据集查看更多的数据样例。



评测方式


对于单项选择题,我们期待模型能够直接输出 A, B, ... 中的一个 label,但是由于现在开源模型的指令跟随性并不完善。在实验中我们发现,大部分情况下,模型的输出往往不直接是,甚至根本不包含选项的 label。这对我们的评测带来了很大的困扰。针对这个问题,我们提出了利用 ChatGPT 来辅助我们评测,针对某一题,具体的流程如下:


  1. 首先,如果可以从模型的输出中直接提取出选项的 label,那么我们就直接把提取出来的选项的 label 作为模型的回答

  2. 如果我们不能从模型的输出中提取出选项的 label,我们就会利用 ChatGPT 去找到选项中和模型输出最相似的选择,并输出该选项的 label 作为模型的回答

  3. 如果模型发现模型的输出无法和任何选项进行匹配,就直接输出一个 pseudo label 'X' 来表示模型无法回答此题 (该步骤仅为提升流程的完善性,事实上,评测过程中从未来到这一流程节点)


下图展示了我们提供给 ChatGPT 的 prompt:



同时,为了衡量 ChatGPT 来辅助打分的可靠性,我们做了进一步的实验。



上图比较了各种模型来辅助打分与人类打分的相似程度,可以发现 GPT-4 和 GPT-3.5 与人类打分具有较高的相似度,同时 GPT-4 和 GPT-3.5 的打分效果类似,所以考虑到成本,我们便选取了 GPT-3.5 作为了我们的打分器。


除此之外,为了尽可能消除随机性以及让评测结果更 robust,我们提出了 CircularEval。CircularEval 的主要思想就是将问题选项按环状进行重排,然后将每次重排之后的选项提供给多模态模型,当且仅当每次模型都回答正确了,我们才认为模型成功回答该题,具体流程如下:



同时我们也进一步比较了 CircularEval 和 常规评测 (VanillaEval) 在评测结果上面的区别:



可以发现 CircularEval 下模型的性能出现了显著的降低,更好地体现出了多模态模型的真实性能。



评测结果


我们对当下的主流模型进行了全面的评测,评测结果如下:



针对以上评测方式,有几个结论:


  1. 当前模型的指令跟随性还比较低

  2. 当前大部分模型的效果还不是特别好,大部分模型的 overall 精度低于 50%

  3. 与 多实例 (cross-instance) 感知推理 以及 逻辑推理 (logic reasoning) 相关的任务相较而言比较有难度,例如对于 logic reasoning 维度,没有一个模型的精度超过了 40%

  4. 通过引入物体的定位信息可能会进一步提升模型的性能,例如 Shikra


此外,MMBench 已经被 HuggingFace 收录于 HuggingFaceM4, 欢迎大家在 MMBench 上测试。


如果您还有其他问题,或对 MMBench 进一步的优化有什么建议, 欢迎加入群聊交流,或者发邮件到 opencompass@pjlab.org.cn 联系我们。


(欢迎扫码加入群聊)


使用 LMDeploy 轻松部署 Llama-2 系列模型!

2023-07-25

Llama-2 首个全方位评测,国内外开源模型大比拼

2023-07-24

不到 200 行代码就能微调 Llama-2!

2023-07-24

点击下方“阅读原文”直达 MMBench

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存