VideoReasonBench: Can MLLMs Perform Vision-Centric Complex Video Reasoning?
7
35 commits
2 linked in READMEs
updated Jun 5, 2025
![]() |
|---|
| Examples from VideoReasonBench and three existing VideoQA benchmarks. Responses are generated by Gemini-2.5-Flash in both "Thinking" and "No Thinking" modes. |
![]() |
|---|
| Performance of Gemini-2.5-Flash with varying thinking budgets on five benchmarks. |
Complex Reasoning
Thinking-Reliant
Vision-Centric Reasoning

Each video features a latent state and a sequence of operations. The latent state is revealed either at the beginning or the end of the video. Throughout the rest of the video, the latent state remains invisible while the operations drive state transitions. There are six types of video demonstrations:
The questions assess video reasoning skills across three levels:
Please clone our code repo git clone https://github.com/llyx97/video_reason_bench.git and follow the instructions for evaluation.
Installation
pip install google-genai==1.12.0
pip install openai==1.64.0
pip install transformers
Setup Keys
Set the environment variables GEMINI_API_KEY, OPENAI_API_KEY and OPENAI_API_BASE.
wget https://huggingface.co/datasets/lyx97/reasoning_videos/resolve/main/videos.zip
unzip videos.zip
bash eval_gemini.sh # evaluate gemini series models
bash eval_openai.sh # evaluate openai models
bash eval_qwen.sh # evaluate qwen2.5-vl models
An example of evaluation result can be found here.
Installation
cd vlmevalkit
pip install -e .
Setup Keys
Place the required keys in vlmevalkit/.env or directly set them as the environment variable.
Setup the model and dataset configuration in vlmevalkit/configs/{your_config}.json. For example:
{
"model": {
"Qwen2.5-VL-72B-Instruct": {
"class": "Qwen2VLChat",
"model_path": "Qwen/Qwen2.5-VL-72B-Instruct",
"min_pixels": 50176,
"max_pixels": 200704,
"max_new_tokens": 4096
}
},
"data": {
"VideoReasoningBench_64frame": {
"class": "VideoReasoningBench",
"dataset": "VideoReasoningBench",
"nframe": 64
}
}
}
torchrun --nproc-per-node=8 run.py --judge gpt-4o-1120 --config configs/video_reasoning_bench_qwen2.5-vl-7b.json --reuse # 7B-scale model
AUTO_SPLIT=1 torchrun --nproc-per-node=1 run.py --judge gpt-4o-1120 --config configs/video_reasoning_bench_qwen2.5-vl-72b.json # 72B-scale model
An example of evaluation result can be found here.


@article{liu2025videoreasonbench,
title = {VideoReasonBench: Can MLLMs Perform Vision-Centric Complex Video Reasoning?},
author = {Yuanxin Liu, Kun Ouyang, Haoning Wu, Yi Liu, Lin Sui, Xinhao Li, Yan Zhong, Y. Charles, Xinyu Zhou, Xu Sun},
year = {2025},
journal = {arXiv preprint arXiv: 2505.23359}
}
VideoReasonBench: Can MLLMs Perform Vision-Centric Complex Video Reasoning?
7
35 commits
2 linked in READMEs
updated Jun 5, 2025
![]() |
|---|
| Examples from VideoReasonBench and three existing VideoQA benchmarks. Responses are generated by Gemini-2.5-Flash in both "Thinking" and "No Thinking" modes. |
![]() |
|---|
| Performance of Gemini-2.5-Flash with varying thinking budgets on five benchmarks. |
Complex Reasoning
Thinking-Reliant
Vision-Centric Reasoning

Each video features a latent state and a sequence of operations. The latent state is revealed either at the beginning or the end of the video. Throughout the rest of the video, the latent state remains invisible while the operations drive state transitions. There are six types of video demonstrations:
The questions assess video reasoning skills across three levels:
Please clone our code repo git clone https://github.com/llyx97/video_reason_bench.git and follow the instructions for evaluation.
Installation
pip install google-genai==1.12.0
pip install openai==1.64.0
pip install transformers
Setup Keys
Set the environment variables GEMINI_API_KEY, OPENAI_API_KEY and OPENAI_API_BASE.
wget https://huggingface.co/datasets/lyx97/reasoning_videos/resolve/main/videos.zip
unzip videos.zip
bash eval_gemini.sh # evaluate gemini series models
bash eval_openai.sh # evaluate openai models
bash eval_qwen.sh # evaluate qwen2.5-vl models
An example of evaluation result can be found here.
Installation
cd vlmevalkit
pip install -e .
Setup Keys
Place the required keys in vlmevalkit/.env or directly set them as the environment variable.
Setup the model and dataset configuration in vlmevalkit/configs/{your_config}.json. For example:
{
"model": {
"Qwen2.5-VL-72B-Instruct": {
"class": "Qwen2VLChat",
"model_path": "Qwen/Qwen2.5-VL-72B-Instruct",
"min_pixels": 50176,
"max_pixels": 200704,
"max_new_tokens": 4096
}
},
"data": {
"VideoReasoningBench_64frame": {
"class": "VideoReasoningBench",
"dataset": "VideoReasoningBench",
"nframe": 64
}
}
}
torchrun --nproc-per-node=8 run.py --judge gpt-4o-1120 --config configs/video_reasoning_bench_qwen2.5-vl-7b.json --reuse # 7B-scale model
AUTO_SPLIT=1 torchrun --nproc-per-node=1 run.py --judge gpt-4o-1120 --config configs/video_reasoning_bench_qwen2.5-vl-72b.json # 72B-scale model
An example of evaluation result can be found here.


@article{liu2025videoreasonbench,
title = {VideoReasonBench: Can MLLMs Perform Vision-Centric Complex Video Reasoning?},
author = {Yuanxin Liu, Kun Ouyang, Haoning Wu, Yi Liu, Lin Sui, Xinhao Li, Yan Zhong, Y. Charles, Xinyu Zhou, Xu Sun},
year = {2025},
journal = {arXiv preprint arXiv: 2505.23359}
}