InternVL CLIP Benchmark使用指南:一键跑通20+基准测试
【免费下载链接】InternVL[CVPR 2024 Oral] InternVL Family: A Pioneering Open-Source Alternative to GPT-4o. 接近GPT-4o表现的开源多模态对话模型项目地址: https://gitcode.com/GitHub_Trending/in/InternVL
InternVL CLIP Benchmark 是 InternVL 开源多模态模型内置的标准化评测套件,基于 clip_benchmark/ 目录实现,可一键完成 20+ 个数据集的零样本图像分类与零样本文本-图像检索测试,支持中、英、日、阿、意多语言评测。它对应 InternVL 1.0 论文 4.3 节的官方评测流程,是衡量"接近 GPT-4o"的开源视觉编码器性能的核心工具。本文带你从零环境到出分数,全程只需几条命令。
🧭 评测套件能测什么?
CLIP Benchmark 围绕两大核心任务构建:
| 任务 | 参数值 | 说明 | 典型数据集 |
|---|---|---|---|
| 零样本图像分类 | zeroshot_classification | 不给模型任何标注,直接对类别名打模板打分 | ImageNet 系列、CIFAR、Flowers、Cars |
| 零样本文本-图像检索 | zeroshot_retrieval | 计算图文匹配 Recall@1/5/10 | Flickr30K、COCO、多语言 XTD |
覆盖的数据集超过 20 个:ImageNet-1K/A/R/V2/Sketch、ObjectNet 6 大鲁棒性变体,加上 CIFAR-10/100、MNIST、STL-10、Caltech-101、SUN397、Food-101、Pets、DTD、EuroSAT、Country-211、VOC2007、VTAB(Flowers、Resisc45)等,全部测试命令都已封装在 test_internvl_c_classification.sh 脚本里,21 个数据集一次性异步跑完。
下图是 CLIP Benchmark 官方的各模型平均排名表(数字越小排名越好),评测结果就是汇入这张总表的:
⚙️ 三步完成环境安装
第 1 步:克隆仓库
git clone https://gitcode.com/GitHub_Trending/in/InternVL cd InternVL第 2 步:按照根目录的 INSTALLATION.md 完成 Python、PyTorch 等基础环境安装。
第 3 步:安装 CLIP Benchmark 专属依赖并注册包
cd clip_benchmark pip install -r requirements.txt python setup.py develop # 或者手动把当前目录加入 PYTHONPATH # export PYTHONPATH="${PYTHONPATH}:$(pwd)"依赖清单见 requirements.txt,其中tensorflow、task_adaptation、webdataset分别对应 TensorFlow 数据集、VTAB 数据集和 WebDataset 格式的支持,缺一不可。
📦 模型权重准备
评测需要 13B 视觉编码器权重,二选一下载到clip_benchmark/pretrained/目录:
| 权重文件 | 格式 | 大小 | 适用模型名 |
|---|---|---|---|
| internvl_c_13b_224px.pth | PyTorch | 25.4 GB | internvl_c_classification/internvl_c_retrieval |
| InternVL-14B-224px/ | HuggingFace | 27.7 GB | internvl_g_retrieval_hf等 HF 系列 |
目录结构如下:
pretrained ├── internvl_c_13b_224px.pth └── InternVL-14B-224px/模型加载逻辑集中在 clip_benchmark/models/internvl.py,按--model参数自动路由到 PyTorch 或 HuggingFace 版本,无需任何额外配置。
🚀 一键跑通 20+ 分类基准测试
单数据集评测只需一条命令,以 ImageNet-1K 零样本分类为例(入口为 clip_benchmark/clip_benchmark/cli.py):
CUDA_VISIBLE_DEVICES=0 python3 clip_benchmark/cli.py eval --model_type internvl --language "en" \ --task "zeroshot_classification" --dataset "imagenet1k" --dataset_root ./data/imagenet-1k/ \ --model internvl_c_classification --pretrained ./pretrained/internvl_c_13b_224px.pth --output result.json关键参数解读:
--task:选zeroshot_classification或zeroshot_retrieval--dataset:数据集名,20+ 个可选,如cifar10、sun397、vtab/flowers--language:en/cn/jp/ar/it,直接切换多语言评测--output:结果 JSON 文件,包含 acc1、acc5 等指标
想全部跑完?执行封装脚本即可,它会自动把 21 个数据集异步分发到 GPU 上(集群用户可修改PARTITION环境变量):
bash test_internvl_c_classification.sh评测所用的真实图像就是下面这种自然场景照片,模型仅凭类别名文本模板即可给出预测:
🔍 零样本图文检索与多语言 XTD 测试
检索评测的命令结构与分类完全一致,只改--task和--model:
CUDA_VISIBLE_DEVICES=0 python3 clip_benchmark/cli.py eval --model_type internvl --language "en" \ --task "zeroshot_retrieval" --dataset "flickr30k" --dataset_root ./data/flickr30k \ --model internvl_c_retrieval --pretrained ./pretrained/internvl_c_13b_224px.pth --output result.json一键脚本覆盖了四组场景:
| 脚本 | 内容 |
|---|---|
| test_internvl_c_retrieval.sh | Flickr30K、COCO 中英双语检索,共 4 项 |
| test_internvl_c_xtd.sh | XTD 多语言检索:EN/ES/FR/ZH/IT/KO/RU/JP 八种语言 |
| test_internvl_g_imagenet.sh | InternVL-G 权重的 ImageNet 系列评测 |
| test_internvl_g_retrieval.sh | InternVL-G 的 Flickr30K / COCO 检索 |
数据集会自动下载到--dataset_root指定目录;若下载失败,可参考 clip_benchmark/datasets/builder.py 手动放置。
📊 官方评测成绩一览
跑完测试后,你的结果可以对照 clip_benchmark/README.md 中记录的官方分数验证正确性:
ImageNet 系列零样本分类(平均 82.4):
| IN-1K | IN-A | IN-R | IN-V2 | IN-Sketch | ObjectNet |
|---|---|---|---|---|---|
| 83.2 | 83.8 | 95.5 | 77.3 | 73.9 | 80.6 |
Flickr30K / COCO 检索(平均 86.6 / 89.0):
| 模型 | Flickr30K 平均 | COCO 平均 |
|---|---|---|
| InternVL-C | 86.6 | 89.0 |
| InternVL-G | 88.8 | 90.9 |
XTD 八语言检索平均:InternVL-C 95.1,InternVL-G 96.6——其中英文高达 97.3~98.6,中文表现也非常接近。
📈 进阶:probe_benchmark 与结果可视化
除了跑测试,仓库还内置了科研向的 probe_benchmark/ 子目录,用于复现论文中的 scaling 实验图表:
- 运行
python probe_benchmark/scaling_experiments.py收集数据 - 运行
python probe_benchmark/generate_table.py生成论文表格 - 各实验原始数据见 scaling_experiment_data2.json
完整流程说明在 probe_benchmark/PROBES.md。所有历史评测结果汇总在 benchmark/README.md,可用 benchmark/results.ipynb 交互式查看各模型的完整排名表。
✅ 常见问题速查
- 测试中断后如何续跑?批量评测支持
--skip_existing参数,自动跳过已完成的数据集。 - 想同时评多个模型?把模型列表写入
benchmark/models.txt(每行model,pretrained格式),配合--pretrained_model文件参数即可批量评测,输出命名模板化:"{dataset}_{pretrained}_{model}_{language}_{task}.json"。 - 显存不够怎么办?13B 权重推理建议单卡显存 ≥ 24GB,用
CUDA_VISIBLE_DEVICES指定空闲 GPU;批量脚本本身已按数据集拆分为多进程,可分时段执行。
照着以上流程走,从克隆仓库到拿到 20+ 基准测试的完整分数表,整个过程就是"装依赖 → 放权重 → 跑脚本"三步,InternVL CLIP Benchmark 把论文级评测压缩成了几行命令的事。
【免费下载链接】InternVL[CVPR 2024 Oral] InternVL Family: A Pioneering Open-Source Alternative to GPT-4o. 接近GPT-4o表现的开源多模态对话模型项目地址: https://gitcode.com/GitHub_Trending/in/InternVL
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考