5
stars
90
commits
1
linked in READMEs
Aug 6, 2026
updated
π Website | GitHub | π Leaderboard | π MMEB-V3 Paper | π MMEB-V2 Paper | π MMEB-V1 Paper | π€ Models
MMEB-V3 is a comprehensive benchmark for evaluating omni-modality embedding models across text, image, video, audio, visual-document, and agent-centric retrieval scenarios.
Building upon MMEB-V1 and MMEB-V2, MMEB-V3 adds 111 new tasks, resulting in 190 evaluation tasks in total.
MMEB-V3 introduces three major evaluation categories:
MMEB-V3 also introduces OmniSET (Omni-modality Semantic Equivalence Tuples), a diagnostic evaluation set containing semantically equivalent instances across text, image, video, and audio. OmniSET enables controlled analysis of modality effects and instruction-conditioned cross-modal retrieval behavior.
The benchmark is designed to measure whether embedding models can reliably follow modality-specific instructions, such as retrieving an image, video, audio clip, visual document, tool, GUI element, or memory item under explicit task constraints.
This Hugging Face repository contains the compressed assets and metadata required to prepare the MMEB-V3 evaluation data.
dataset_setup_v3.py.| Category | Example task families |
|---|---|
| Image | Image retrieval, image classification, and visual question answering |
| Video | Video retrieval, moment retrieval, video classification, and video question answering |
| Audio | Audio classification, audio retrieval, and audio temporal grounding |
| Visual Document | Visual document retrieval |
| Text | General, reasoning, long-context, instruction-following, and multi-condition retrieval |
| Tool | Tool retrieval |
| GUI | GUI element retrieval and control |
| Memory | Agent memory retrieval |
| OmniSET | Cross-modal semantic-equivalence retrieval across text, image, video, and audio |
Please review this section before running evaluation.
video_tasks and audio_tasks.video-tasks and audio-tasks.
Install the Hugging Face CLI if needed:
pip install -U "huggingface_hub[cli]"
Download MMEB-V3:
export MMEB_V3_ROOT=/path/to/MMEB-V3
hf download VLM2Vec/MMEB-V3 \
--repo-type dataset \
--local-dir "$MMEB_V3_ROOT"
The downloaded dataset contains compressed assets and lightweight metadata.
Clone the VLM2Vec repository:
git clone https://github.com/TIGER-AI-Lab/VLM2Vec.git
cd VLM2Vec
Run the MMEB-V3 setup script:
python experiments/public/data/dataset_setup_v3.py \
--root "$MMEB_V3_ROOT"
Verify that the expected files and directories were prepared correctly:
python experiments/public/data/dataset_setup_v3.py \
--root "$MMEB_V3_ROOT" \
--check-only
The setup script is idempotent:
.done.If image-query is not included in the local dataset download, provide an existing copy explicitly:
python experiments/public/data/dataset_setup_v3.py \
--root "$MMEB_V3_ROOT" \
--image-query-source /path/to/image-query
No additional argument is required when image-query is already available under the MMEB-V3 root.
Before running the setup script, the downloaded repository is organized approximately as follows:
MMEB-V3/
βββ image_tasks/
β βββ mmeb_v1.tar.gz
β βββ MCMR.tar.gz
βββ audio_tasks/
β βββ *.tar
βββ video_tasks/
β βββ data/
β βββ frames/
β βββ video_cls.tar.gz
β βββ video_ret.tar.gz
β βββ video_mret.tar.gz-*
β βββ video_qa.tar.gz-*
βββ visdoc_tasks/
β βββ visdoc-tasks.data.tar.gz
β βββ visdoc-tasks.images.tar.gz
βββ text_tasks/
βββ tool_tasks/
βββ memory_tasks/
βββ gui_tasks/
βββ omniset.tar.gz
Directories ending in _tasks contain the downloaded compressed assets. The setup script converts them into the corresponding evaluation-ready -tasks directories.
After running dataset_setup_v3.py, the expected local directory structure is:
MMEB-V3/
βββ image-tasks/
β βββ MMEB/
β βββ MCMR/
βββ image-query/
βββ audio-tasks/
βββ video-tasks/
β βββ data/
β βββ frames/
β βββ video_cls/
β βββ video_ret/
β βββ video_mret/
β βββ video_qa/
βββ visdoc-tasks/
β βββ data/
β βββ images/
βββ text-tasks/
βββ tool-tasks/
βββ memory-tasks/
βββ gui-tasks/
βββ omniset/
βββ omniset.jsonl
βββ catalog.jsonl
βββ val2014/
βββ videos/
βββ audios/
βββ frames_omni/
The same root directory can then be passed to the evaluation scripts using --data_basedir.
Evaluation code and task configuration files are available in the VLM2Vec repository.
The following example evaluates an image-task configuration:
CUDA_VISIBLE_DEVICES=0 python eval.py \
--pooling mean \
--normalize true \
--per_device_eval_batch_size 8 \
--dataloader_num_workers 1 \
--model_backbone nvomniembed \
--model_name /path/to/model \
--dataset_config experiments/public/eval/image.yaml \
--encode_output_path exps/vlm2vec/model/image \
--data_basedir "$MMEB_V3_ROOT"
Replace the model backbone, model path, dataset configuration, output path, and batch size according to your evaluation setup.
The important data argument is:
--data_basedir "$MMEB_V3_ROOT"
Run OmniSET evaluation with:
CUDA_VISIBLE_DEVICES=0 \
MODEL_PATH=/path/to/model \
MODEL_BACKBONE=nvomniembed \
DATA_BASEDIR="$MMEB_V3_ROOT/omniset" \
OUTPUT_PATH=exps/vlm2vec/model/omniset \
PER_DEVICE_EVAL_BATCH_SIZE=8 \
bash experiments/public/eval/eval_omniset.sh
Model results on MMEB can be found on the official leaderboard:
Please follow the submission instructions on the leaderboard page when submitting a new model result.
If you find MMEB-V3 useful in your research, please cite:
@article{huang2026mmeb,
title={MMEB-V3: Measuring the Performance Gaps of Omni-Modality Embedding Models},
author={Huang, Haohang and Lu, Xuan and Su, Mingyi and Zhang, Xuan and Jiang, Ziyan and Nie, Ping and Zou, Kai and Pfister, Tomas and Chen, Wenhu and Zhang, Wei and others},
journal={arXiv preprint arXiv:2604.23321},
year={2026}
}
The MMEB-V3 dataset repository is released under the MIT License.
Individual source datasets included or referenced by MMEB-V3 may be subject to their own licenses and terms of use. Users are responsible for complying with the licenses of the corresponding source datasets.
5
stars
90
commits
1
linked in READMEs
Aug 6, 2026
updated
π Website | GitHub | π Leaderboard | π MMEB-V3 Paper | π MMEB-V2 Paper | π MMEB-V1 Paper | π€ Models
MMEB-V3 is a comprehensive benchmark for evaluating omni-modality embedding models across text, image, video, audio, visual-document, and agent-centric retrieval scenarios.
Building upon MMEB-V1 and MMEB-V2, MMEB-V3 adds 111 new tasks, resulting in 190 evaluation tasks in total.
MMEB-V3 introduces three major evaluation categories:
MMEB-V3 also introduces OmniSET (Omni-modality Semantic Equivalence Tuples), a diagnostic evaluation set containing semantically equivalent instances across text, image, video, and audio. OmniSET enables controlled analysis of modality effects and instruction-conditioned cross-modal retrieval behavior.
The benchmark is designed to measure whether embedding models can reliably follow modality-specific instructions, such as retrieving an image, video, audio clip, visual document, tool, GUI element, or memory item under explicit task constraints.
This Hugging Face repository contains the compressed assets and metadata required to prepare the MMEB-V3 evaluation data.
dataset_setup_v3.py.| Category | Example task families |
|---|---|
| Image | Image retrieval, image classification, and visual question answering |
| Video | Video retrieval, moment retrieval, video classification, and video question answering |
| Audio | Audio classification, audio retrieval, and audio temporal grounding |
| Visual Document | Visual document retrieval |
| Text | General, reasoning, long-context, instruction-following, and multi-condition retrieval |
| Tool | Tool retrieval |
| GUI | GUI element retrieval and control |
| Memory | Agent memory retrieval |
| OmniSET | Cross-modal semantic-equivalence retrieval across text, image, video, and audio |
Please review this section before running evaluation.
video_tasks and audio_tasks.video-tasks and audio-tasks.
Install the Hugging Face CLI if needed:
pip install -U "huggingface_hub[cli]"
Download MMEB-V3:
export MMEB_V3_ROOT=/path/to/MMEB-V3
hf download VLM2Vec/MMEB-V3 \
--repo-type dataset \
--local-dir "$MMEB_V3_ROOT"
The downloaded dataset contains compressed assets and lightweight metadata.
Clone the VLM2Vec repository:
git clone https://github.com/TIGER-AI-Lab/VLM2Vec.git
cd VLM2Vec
Run the MMEB-V3 setup script:
python experiments/public/data/dataset_setup_v3.py \
--root "$MMEB_V3_ROOT"
Verify that the expected files and directories were prepared correctly:
python experiments/public/data/dataset_setup_v3.py \
--root "$MMEB_V3_ROOT" \
--check-only
The setup script is idempotent:
.done.If image-query is not included in the local dataset download, provide an existing copy explicitly:
python experiments/public/data/dataset_setup_v3.py \
--root "$MMEB_V3_ROOT" \
--image-query-source /path/to/image-query
No additional argument is required when image-query is already available under the MMEB-V3 root.
Before running the setup script, the downloaded repository is organized approximately as follows:
MMEB-V3/
βββ image_tasks/
β βββ mmeb_v1.tar.gz
β βββ MCMR.tar.gz
βββ audio_tasks/
β βββ *.tar
βββ video_tasks/
β βββ data/
β βββ frames/
β βββ video_cls.tar.gz
β βββ video_ret.tar.gz
β βββ video_mret.tar.gz-*
β βββ video_qa.tar.gz-*
βββ visdoc_tasks/
β βββ visdoc-tasks.data.tar.gz
β βββ visdoc-tasks.images.tar.gz
βββ text_tasks/
βββ tool_tasks/
βββ memory_tasks/
βββ gui_tasks/
βββ omniset.tar.gz
Directories ending in _tasks contain the downloaded compressed assets. The setup script converts them into the corresponding evaluation-ready -tasks directories.
After running dataset_setup_v3.py, the expected local directory structure is:
MMEB-V3/
βββ image-tasks/
β βββ MMEB/
β βββ MCMR/
βββ image-query/
βββ audio-tasks/
βββ video-tasks/
β βββ data/
β βββ frames/
β βββ video_cls/
β βββ video_ret/
β βββ video_mret/
β βββ video_qa/
βββ visdoc-tasks/
β βββ data/
β βββ images/
βββ text-tasks/
βββ tool-tasks/
βββ memory-tasks/
βββ gui-tasks/
βββ omniset/
βββ omniset.jsonl
βββ catalog.jsonl
βββ val2014/
βββ videos/
βββ audios/
βββ frames_omni/
The same root directory can then be passed to the evaluation scripts using --data_basedir.
Evaluation code and task configuration files are available in the VLM2Vec repository.
The following example evaluates an image-task configuration:
CUDA_VISIBLE_DEVICES=0 python eval.py \
--pooling mean \
--normalize true \
--per_device_eval_batch_size 8 \
--dataloader_num_workers 1 \
--model_backbone nvomniembed \
--model_name /path/to/model \
--dataset_config experiments/public/eval/image.yaml \
--encode_output_path exps/vlm2vec/model/image \
--data_basedir "$MMEB_V3_ROOT"
Replace the model backbone, model path, dataset configuration, output path, and batch size according to your evaluation setup.
The important data argument is:
--data_basedir "$MMEB_V3_ROOT"
Run OmniSET evaluation with:
CUDA_VISIBLE_DEVICES=0 \
MODEL_PATH=/path/to/model \
MODEL_BACKBONE=nvomniembed \
DATA_BASEDIR="$MMEB_V3_ROOT/omniset" \
OUTPUT_PATH=exps/vlm2vec/model/omniset \
PER_DEVICE_EVAL_BATCH_SIZE=8 \
bash experiments/public/eval/eval_omniset.sh
Model results on MMEB can be found on the official leaderboard:
Please follow the submission instructions on the leaderboard page when submitting a new model result.
If you find MMEB-V3 useful in your research, please cite:
@article{huang2026mmeb,
title={MMEB-V3: Measuring the Performance Gaps of Omni-Modality Embedding Models},
author={Huang, Haohang and Lu, Xuan and Su, Mingyi and Zhang, Xuan and Jiang, Ziyan and Nie, Ping and Zou, Kai and Pfister, Tomas and Chen, Wenhu and Zhang, Wei and others},
journal={arXiv preprint arXiv:2604.23321},
year={2026}
}
The MMEB-V3 dataset repository is released under the MIT License.
Individual source datasets included or referenced by MMEB-V3 may be subject to their own licenses and terms of use. Users are responsible for complying with the licenses of the corresponding source datasets.