CLIP Benchmark#
本框架支持 CLIP Benchmark,其旨在为评测和分析 CLIP(Contrastive Language-Image Pretraining)及其变体提供一个统一的框架和基准,目前框架支持 43 个评测数据集,包括 zero-shot retrieval 任务(评价指标为 recall@k)和 zero-shot classification 任务(评价指标为 acc@k)。
环境准备#
安装依赖包:
pip install evalscope[rag] -U
快速开始#
以下示例展示如何用最小配置评测一个 CLIP 模型:
from evalscope.run import run_task
task_cfg = {
"work_dir": "outputs",
"eval_backend": "RAGEval",
"eval_config": {
"tool": "clip_benchmark",
"eval": {
"models": [
{
"model_name": "AI-ModelScope/chinese-clip-vit-large-patch14-336px",
}
],
"dataset_name": ["muge"],
"split": "test",
},
},
}
run_task(task_cfg=task_cfg)
输出评测结果如下:
{"dataset": "muge", "model": "AI-ModelScope/chinese-clip-vit-large-patch14-336px", "task": "zeroshot_retrieval", "metrics": {"image_retrieval_recall@5": 0.8935546875, "text_retrieval_recall@5": 0.876953125}}
关键参数说明:
参数 |
类型 |
说明 |
|---|---|---|
|
|
模型配置列表, |
|
|
数据集名称列表,参见支持的数据集 |
|
|
数据集的划分部分,默认 |
进阶:多模型/多数据集批量评测#
当需要同时评测多个模型或多个数据集时,可以扩展配置:
from evalscope.run import run_task
task_cfg = {
"work_dir": "outputs",
"eval_backend": "RAGEval",
"eval_config": {
"tool": "clip_benchmark",
"eval": {
"models": [
{
"model_name": "AI-ModelScope/chinese-clip-vit-large-patch14-336px",
}
],
"dataset_name": ["muge", "flickr8k"],
"split": "test",
"batch_size": 128,
"num_workers": 1,
"verbose": True,
"skip_existing": False,
"cache_dir": "cache",
"limit": 1000,
},
},
}
run_task(task_cfg=task_cfg)
额外参数说明:
参数 |
类型 |
默认值 |
说明 |
|---|---|---|---|
|
|
|
数据加载的批量大小 |
|
|
|
数据加载的工作线程数 |
|
|
|
是否启用详细日志记录 |
|
|
|
如果输出已存在,是否跳过处理 |
|
|
|
数据集缓存目录 |
|
|
|
限制处理样本的数量 |
支持的数据集#
数据集名称 |
任务类型 |
备注 |
|---|---|---|
zeroshot_retrieval |
中文多模态图文数据集 |
|
zeroshot_retrieval |
||
zeroshot_retrieval |
||
zeroshot_retrieval |
||
zeroshot_retrieval |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
||
zeroshot_classification |
完整参数参考#
eval_backend:默认值为RAGEval,表示使用 RAGEval 评测后端。eval_config:字典,包含以下字段:tool:评测工具,使用clip_benchmark。eval:评测配置,包含以下字段:
参数 |
类型 |
默认值 |
说明 |
|---|---|---|---|
|
|
|
模型配置列表, |
|
|
|
数据集名称列表,参见支持的数据集 |
|
|
|
数据集的划分部分 |
|
|
|
任务类型,默认自动推断 |
|
|
|
数据加载的批量大小 |
|
|
|
数据加载的工作线程数 |
|
|
|
是否启用详细日志记录 |
|
|
|
评测结果输出目录 |
|
|
|
数据集缓存目录 |
|
|
|
如果输出已存在,是否跳过处理 |
|
|
|
自定义数据目录 |
|
|
|
限制处理样本的数量 |
常见问题#
数据集下载失败#
如果 ModelScope 数据集下载失败,可尝试设置镜像或手动下载数据集,然后通过 data_dir 参数指定本地路径。
评测速度慢#
增大
batch_size(默认 128)提升吞吐量,注意 GPU 显存限制增大
num_workers(默认 1)加速数据加载使用
skip_existing: true跳过已完成的评测
结果指标含义#
zeroshot_classification: 报告
acc1(Top-1 准确率)和acc5(Top-5 准确率)zeroshot_retrieval: 报告
text_retrieval_recall@k和image_retrieval_recall@k
自定义评测数据集#
参见