VisuLogic: A Benchmark for Evaluating Visual Reasoning in Multi-modal Large Language Models

July 9, 2025 Β· View on GitHub

A Challenging Visual-centric Benchmark for Evaluating Multimodal Reasoning in MLLMs!

This is the Eval code repo of VisuLogic.

For more details, please refer to the project page for dataset exploration, code repos and visualization tools: https://visulogic-benchmark.github.io/VisuLogic/.

VisuLogic Resouces

🌐 Homepage | πŸ† Leaderboard | πŸ“– Paper | πŸ€— Benchmark | πŸ’» Eval Code | πŸ€— Train Data | πŸ’» Train Code

πŸ””News

  • πŸ”₯[2025-06-28] Release the SFT data! πŸš€
  • πŸ”₯[2025-04-26] VisuLogic has been merged into VLMEvalkit. You can evaluate your model on VisuLogic with it ! Usage see VLMEvalkit ! πŸš€
  • πŸ”₯[2025-04-22] Release the paper, training data and training code! πŸš€
  • πŸ”₯[2025-04-08] Release the benchmark and the code! πŸš€

βœ… To-do

  • Release the benchmark dataset and eval code
  • Release training code
  • Release the paper
  • Release the training dataset
  • Release model ckpts

πŸ“– Introduction

VisuLogic is a newly designed benchmark aimed at evaluating the visual reasoning capabilities of Multi-modal Large Language Models (MLLMs), independent of textual reasoning processes. It features carefully constructed visual reasoning tasks spanning multiple categories, divided into six types based on required reasoning skills (e.g., Quantitative Reasoning, which involves understanding and deducing changes in the quantity of elements in images). Unlike existing benchmarks, VisuLogic is a challenging visual reasoning benchmark that is inherently difficult to articulate using language, providing a more rigorous evaluation of the visual reasoning capabilities of MLLMs. Most models score below 30% accuracyβ€”only slightly above the 25% random baseline and far below the 51.4% achieved by humansβ€”revealing significant gaps in visual reasoning. Overview

🌟 Key Features

  • πŸš€ Visuo-Logical Challenge
    The first benchmark to integrate visual perception with logical reasoning, enabling authentic multimodal evaluation. Most models score below 30% accuracyβ€”only slightly above the 25% random baseline and far below the 51.4% achieved by humansβ€”revealing significant gaps in visual reasoning.

  • πŸ› οΈ Rigorous Design
    Includes 1,000 meticulously curated questions, spanning 6 domains and 23 subcategories, for comprehensive performance evaluation.

  • πŸ“ Anti-Linguistic Shortcut
    Designed to avoid linguistic reasoning, ensuring tasks rely on genuine visual reasoning rather than shortcuts.

  • πŸ’‘ RL Exploration
    We identify the RL technique as a promising direction for improving the visual reasoning capabilities of MLLMs. Through RL method, models reach SOTA in VisuLogic!

  • βœ… Fully Open-source
    We open-source all the evaluation code, training scripts, and datasets associated with this work to promote further research and innovation.

πŸ–ΌοΈ Examples of VisuLogic

Examples of VisuLogic

Installation & Preparation

πŸ› οΈ Default Installation

For InternVL series, QwenVL series, glm-4v, ovis2, mplug-om3, llava-onevision

pip install -r requirements.txt

πŸ› οΈ For Specific Models

minicpm-o Installation

pip install -r requirements.txt
pip install transformers==4.44.2

llava Installation

pip install -r requirements.txt
pip install transformers==4.37

sharegpt4v Installation

For more details, please refer to this link.

pip install -r requirements.txt
pip install transformers==4.37

πŸ“‚ Prepare Benchmark Data

  1. Download huggingface dataset in https://huggingface.co/datasets/VisuLogic/VisuLogic
  2. unzip images.zip
|- ...
|- data.jsonl
|- images/ (unzip from images.zip)
  |- 00000.png
  |- 00001.png

πŸš€ Evaluate Dedfault Models

For example, just find the corresponding model and execute its script.

sh scripts/eval_internvl.sh

πŸ”§ Evaluate Your Own Model

VisuLogic provides a clean and extensible framework to evaluate custom models. You only need to add & change 2 files

Steps to Add Your Model.

  1. add model/mymodel.py with template as following:
from models.base_model import BaseModel
class mymodel(BaseModel):
    def __init__(self, model_path: str, user_prompt: str = None):
      pass

    def predict(self, input_data: Any) -> Any:
      """
        Model prediction interface
        Args:
            input_data: 
              input_data['text'] # question text
              input_data['image_path'] # image path of question
      """
        pass
    
    @property
    def name(self) -> str:
        """Model name"""
        pass
  1. modified model/__init__.py
...
from models.mymodel import mymodel
def load_model(args):
  ...
  elif 'mymodel' in args.model_path.lower():
    model = mymodel(model_path = args.model_path,
                    user_prompt = args.user_prompt)
  ...
  return model
  1. run scripts
mkdir -p outputs/
python evaluation/eval_model.py \
    --input_file path/to/data.jsonl \
    --output_file outputs/output_file.jsonl \
    --model_path mymodel \
    --judge_api_key sk-xxx

πŸ› οΈ Pipeline of Evaluation

pipeline of response filter VisuLogic evaluates model accuracy by combining boxed, predefined, and LLM-based extraction methods to produce a single choice (a/b/c/d), then compares it with the ground-truth label to determine correctness.

πŸ“¦ Training

Please refer to VisuLogic-Train for training code.

πŸ“© Contact

πŸ“œ Citation

BibTeX:

@article{xu2025visulogic,
  title={VisuLogic: A Benchmark for Evaluating Visual Reasoning in Multi-modal Large Language Models},
  author={Xu, Weiye and Wang, Jiahao and Wang, Weiyun and Chen, Zhe and Zhou, Wengang and Yang, Aijun and Lu, Lewei and Li, Houqiang and Wang, Xiaohua and Zhu, Xizhou and Wang, Wenhai and Dai, Jifeng and Zhu, Jinguo},
  journal={arXiv preprint arXiv:2504.15279},
  year={2025},
  url={https://arxiv.org/abs/2504.15279}
}

πŸŽ‰ Thank you for your interest in VisuLogic! We hope this benchmark helps drive advancements in multimodal reasoning! πŸš€