MIEB:前所未有地对图像-文本嵌入进行压力测试的基准
关键要点
- MIEB 通过从狭隘的、特定任务的基准转向全面统一的框架,重新定义了我们评估图像和图像-文本嵌入的方式。
- 快速轻松集成,2 行代码运行 MIEB!
你的图像嵌入模型到底有多好?
它可能在检索猫方面表现出色,或者能漂亮地聚类卫星图像。但它能理解文档吗?它能处理基于视觉的问题吗?38 种语言的表现又如何呢?
事实证明,没有人真正知道——*直到现在*。
介绍 MIEB:大规模图像嵌入基准(论文),这是迄今为止最雄心勃勃的尝试,旨在为评估视觉和多模态模型的混乱局面带来清晰。可以将其视为图像嵌入的 MTEB 时刻,涵盖 130 个多样化任务。
图像嵌入的碎片化世界
MIEB 解决的问题如下:
图像和图像-文本模型一直以来都使用特定任务、相互独立的基准进行评估——有些用于聚类,有些用于零样本分类,还有些用于多模态检索。以前没有标准化的方法来回答这个简单的问题:
“哪个模型总体上表现真的很好?”
缺乏一致性使得模型之间无法比较,无法跟踪进展,甚至无法了解在狭窄用例之外“好”意味着什么。
MIEB 实际衡量什么
MIEB 通过一个统一的、多语言、多模态基准填补了这一空白,该基准涵盖 8 个广泛类别,涵盖特定的**模型能力**,包括:
检索:检索是搜索、推荐和多模态助手的核心。MIEB 扩展了标准图像-图像和图像-文本匹配,包括多语言、交错输入和带指令的检索——这些领域被现有基准所忽视。
文档理解(OCR + 布局):视觉模型在面对真实世界的文档(例如收据、表格、密集 PDF)时常常崩溃。MIEB 评估模型是否能解释高分辨率、文本丰富的图像,弥合图像识别和文本理解之间的差距。典型的视觉基准几乎不涉及这一点,直到 Vidore (Faysse et. al, 2024)。
视觉 STS(渲染文本的语义相似度):您的模型能否理解文本在视觉上渲染时的含义?MIEB 调整了 NLP 中经典的 STS 基准,将其转换为视觉测试,通过将句子渲染为图像。这揭示了模型通过视觉输入处理文本理解的能力——这是大多数基准完全忽略的空白。
零样本分类:在实际应用中,模型经常面临没有标签的新类别。MIEB 测试无需训练的基于提示的识别——这一挑战揭示了模型在没有额外监督的情况下匹配语义和视觉的能力。
少量样本线性探测:评估嵌入了多少结构化知识以及可以用最少的数据提取多少。MIEB 不会对海量数据集进行微调,而是仅使用每类 16 个示例来探测嵌入,使其在模型之间高效且公平。
聚类:良好的嵌入应自然地将相似项分组——即使没有标签。MIEB 使用 NMI 等指标测试嵌入空间的形状,揭示模型捕获语义结构的程度。
组合性评估:这评估一组视觉和文本元素的组合是否具有有意义的一致性——捕捉对象、属性和空间配置之间的关系。MIEB 的组合性评估测试嵌入编码细粒度结构的能力,这种结构在聚类或检索等粗粒度任务中经常丢失。它挑战模型区分真实对齐和接近扰动的错配。
以视觉为中心的问题回答 (VCQA):我们需要能够基于图像而不仅仅是标题回答问题的模型。MIEB 将 VCQA 框定为检索问题,模型必须在给定视觉上下文的情况下选择正确答案。它超越了简单的“这是什么?”问题,测试计数、空间推理和真正的视觉理解。
所有这些跨越 130 项任务,涵盖 38 种语言。
对 50 个嵌入模型(包括多模态大型语言模型 (MLLM) 和 CLIP 风格模型)进行了 MIEB 任务评估。
剧透:还没有超模出现
MIEB 最重要的发现之一是什么?没有一个模型能独占鳌头。
CLIP 风格的模型在分类和检索等传统任务中占据主导地位。这些模型通过大量的网络图像-文本对进行大规模批量训练。
基于 MLLM 的模型(如 E5-V 和 Voyage)在文档理解、OCR 密集型任务和多语言环境中表现出色。这些模型能够利用其强大的 LLM 主干进行推理;在生成式训练阶段,LLM 主干被训练为利用视觉编码器提供的交错信息(例如通过 OCR 任务的训练)。这些能力通过轻量级对比学习激活。
但每个模型都有盲点——尤其是在推理、交错嵌入或混淆因素方面。通过在 MIEB 上对 50 多个模型进行基准测试,我们看到一个有前景的路径是取两者之长:融合 CLIP 风格模型的训练范式,并利用 MLLM 固有的基础推理能力和交错输入处理能力。
MIEB 为何现在如此重要
我们正处于基础模型的时代。但基础需要压力测试。MIEB 不仅仅是另一个基准——它是对下一代视觉模型的压力测试。它揭示了隐藏的优势,发现了脆弱的弱点,并提供了该领域急需的东西:清晰度。
GPU 资源不足?我们来帮你。
MIEB-lite 仅涵盖 51 个任务,可作为轻量级基准,并且仅需要 MIEB 18% 的 GPU 小时数,同时仍能保持模型排名。例如,在 NVIDIA H100 上运行 CLIP base-patch-32 的完整 MIEB 需要 16.6 小时,而运行 MIEB-lite 仅需 4.5 小时。MIEB-lite 的生成方式为:
- 从任务对相关性中剔除高度相关的任务,
- 平衡 UMAP+DBSCAN 任务簇中的选择,以及
- 只保留轻量级任务。
如何在你的工作中使用 MIEB
MIEB 已集成到 MTEB 库中。如果你已经熟悉 MTEB 的工作原理,那么可以以相同的方式运行任何任务和模型!
MIEB 也易于扩展,支持自定义任务和自定义模型实现。
🛠️ 通过 CLI 运行 MIEB(2 行代码)
您可以通过 MTEB CLI 运行 MIEB。
首先,安装 mteb
pip install mteb[image]
然后,使用所选模型运行基准测试
mteb run -b ‘MIEB(Multilingual)’ -m openai/clip-vit-base-patch16
🧪 在 Python 中运行 MIEB
同样,在 Python 中运行基准测试可通过 3 个主要步骤完成:1) 选择任务,加载模型,然后运行评估。
- 选择整个基准
import mteb
tasks = mteb.get_benchmarks("MIEB(Multilingual)")
或者,选择单个任务
tasks = mteb.get_tasks(tasks=["CIFAR10ZeroShot"])
或按类别选择任务
tasks = mteb.get_tasks(task_types=["Compositionality"])
- 加载模型
model_name = "laion/CLIP-ViT-L-14-laion2B-s32B-b82K"
model = mteb.get_model(model_name=model_name)
- 运行评估
evaluation = mteb.MTEB(tasks=tasks)
results = evaluation.run(model)
使用自定义任务和自定义模型扩展 MIEB
MIEB 从第一天起就设计为可扩展的。现有任务类别和现有模型的新实例可以轻松添加。添加新的任务类别或模型只需要几个额外的步骤。有关更多详细信息,请参阅文档中的示例。