vision-language-models-are-bows
揭示视觉-语言模型词袋本质的ICLR 2023 Oral研究,附带ARO基准评测集与NegCLIP改进方案
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
揭示视觉-语言模型词袋本质的ICLR 2023 Oral研究,附带ARO基准评测集与NegCLIP改进方案
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你是否有这样的困惑? 当你问AI「红色的大象站在蓝色的小船上」,它能准确理解这个场景吗?一项来自MIT、Yann LeCun联合推荐的研究告诉我们:当前最强大的多模态AI模型,可能根本理解不了这种「组合关系」——它们只是在玩一场高级的「词袋游戏」。
视觉-语言模型(Vision-Language Models,VLM)是近年来AI领域最炙手可热的研究方向之一。OpenAI的CLIP、Salesforce的BLIP、Meta的FLAVA……这些名字几乎统治了多模态研究的半壁江山。它们在ImageNet、COCO等标准基准上刷分刷得飞起,让人不禁觉得「AI看懂图片」已经是个 solved problem。
然而,VLM真的理解图像中物体之间的关系吗? 当我们改变描述中词语的顺序,或者要求模型理解「谁对谁做了什么」的 Attribution 关系时,模型还能正确回答吗?
来自UC Berkeley的研究者(论文被ICLR 2023录用为Oral,Top 5%)决定对这一问题展开系统性实验。他们的发现令人震惊:大多数VLM在组合推理(Compositional Reasoning)任务上表现极差,其本质更像是一个「词袋」(Bag-of-Words),而非真正理解视觉场景的语义结构。
该论文获得了Yann LeCun的转发推荐,被公认为VLM可解释性研究的重要里程碑。
研究者提出了 ARO(Attribution, Relation, and Order)基准,包含4个数据集:
| 数据集 | 测试能力 | 示例 |
|---|---|---|
| VG-Relation | 空间/动作关系 | 「猫坐在桌子上」vs「桌子坐在猫上」 |
| VG-Attribution | 属性归属 | 「红色的车」vs「蓝色的车」 |
| COCO-Order | 描述顺序理解 | 「男孩追女孩」vs「女孩追男孩」 |
| Flickr30k-Order | 图像-描述匹配顺序敏感性 | 句子主客体交换 |
实验覆盖了BLIP、CLIP(ViT-B/32、ViT-L/14)、FLAVA、OpenCLIP、XVLM等多个主流模型,结果显示:
作者提出了一种轻量级的改进方案:在标准CLIP对比学习基础上,额外引入乱序负样本(permuted captions),强迫模型学会区分词语的顺序信息:
CUDA_VISIBLE_DEVICES=0 python -m training.main \
--train-data="./mscoco_with_negatives_training.csv" \
--batch-size=256 \
--epochs=5 \
--lr=1e-6 \
--pretrained="openai" \
--model="ViT-B-32"
仅需单GPU训练5个epoch,即可在VG-Relation上获得显著提升。
本项目代码采用高度模块化设计,分为三个核心模块:
1. model_zoo(模型接入层)
封装了BLIP、CLIP、FLAVA、XVLM、NegCLIP、OpenCLIP等主流VLM的统一接口。核心入口为get_model(name)函数,支持通过字符串别名(如openai-clip:ViT-B/32)加载任意模型,返回模型实例和图像预处理函数。
from model_zoo import get_model
model, image_preprocess = get_model("openai-clip:ViT-B/32", device="cuda")
2. dataset_zoo(数据集层)
实现了ARO基准中所有4个数据集的标准化加载接口。每个数据集返回的Item格式统一为{"image_options": [image], "caption_options": [false_caption, true_caption]},便于与不同模型对接。
from dataset_zoo import VG_Relation, VG_Attribution
vgr_dataset = VG_Relation(image_preprocess=preprocess, download=True, root_dir=root_dir)
3. main_aro.py / main_retrieval.py(评测入口)
两个主程序分别对应组合推理(ARO)和图文检索两种评测范式,均支持命令行参数配置设备、数据集、batch_size、随机种子等。
python main_aro.py --model-name="openai-clip:ViT-B/32" --dataset=VG_Relation --download
需要正视的是,这是一个学术研究代码库,而非生产级项目:
| 维度 | 评分 | 说明 |
|---|---|---|
| 架构设计 | ⭐⭐⭐⭐ | 模块化清晰,model_zoo/dataset_zoo分离良好 |
| 代码可读性 | ⭐⭐⭐⭐ | 注释详细,示例丰富(Jupyter Notebook) |
| 测试覆盖 | ⭐⭐⭐ | 有可运行的notebook,但无单元测试套件 |
| 文档质量 | ⭐⭐⭐⭐ | README详尽,提供了Colab直接运行链接 |
| 生产就绪度 | ⭐⭐ | 纯研究代码,无容器化,生产环境需大量适配 |
技术栈:Python 3.8+ / PyTorch ≥1.13 / transformers ≥4.26 / open-clip-torch / torchvision
使用的AI模型:CLIP (OpenAI)、BLIP (Salesforce)、FLAVA (Meta)、XVLM、NegCLIP
「Vision-Language Models Are (Becoming) Bags-of-Words」这项研究,不仅仅是发表一篇顶会论文——它实际上为整个多模态AI社区敲响了警钟:当我们在ImageNet、COCO上刷出95%+准确率时,模型可能只是在「背答案」,而非真正「理解」视觉语义。
该项目为研究者提供了完整的评测基准(ARO)+ 改进方案(NegCLIP)+ 可复现代码,是VLM可解释性和组合推理方向不可多得的入门级研究资产。
适合人群:AI研究者、多模态方向研究生、VLM评估工程师
不适合人群:希望一键部署的生产团队、需要Web界面的非技术用户
图1:ARO基准测试框架——揭示VLM在组合推理上的系统性缺陷
图2:不同VLM在顺序扰动下的表现——词袋本质一览无遗
图3:ICLR 2023 Oral 论文项目主页
项目Star趋势:自2022年发布以来持续稳定增长,被大量VLM研究论文引用,已成为该方向的基准数据集之一。