explaingit

zju-real/perceive-to-reason

Analysis updated 2026-05-18

30PythonAudience · researcherComplexity · 5/5Setup · hard

TLDR

A research project that splits AI image understanding into a separate perceiving model and reasoning model, trained together to improve detailed visual question answering.

Mindmap

mindmap
  root((Perceive to Reason))
    What it does
      Splits perception and reasoning
      Two cooperating models
      Fine grained visual QA
    Training method
      PRA GRPO
      Alternating roles
      Verifier reward service
    Tech stack
      Python
      veRL framework
      Conda environment
    Use cases
      Benchmark evaluation
      Research reproduction
      Hosted demo

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Reproduce the paper's training pipeline for a two-stage perception and reasoning vision model.

USE CASE 2

Evaluate a vision language model on fine-grained visual reasoning benchmarks like V-Star and HR-Bench.

USE CASE 3

Study the PRA-GRPO reinforcement learning method for alternating multi-role model training.

USE CASE 4

Try the pretrained P2R model through the hosted demo or download it from Hugging Face.

What is it built with?

PythonPyTorchveRLConda

How does it compare?

zju-real/perceive-to-reasonchandar-lab/semantic-wmdjlougen/hive
Stars303030
LanguagePythonPythonPython
Setup difficultyhardhardeasy
Complexity5/55/53/5
Audienceresearcherresearcherdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1day+

Requires GPUs, running multiple coordinated training services, and downloading large datasets and model checkpoints.

In plain English

Perceive-to-Reason, also called P2R, is a research project from Zhejiang University that tackles how AI vision models answer detailed questions about images. Many current vision language models handle both looking at an image and reasoning about it in a single tangled step, which makes them worse at tasks that need close visual attention, like spotting a tiny detail in a high resolution photo. This project splits that process into two separate roles: one model that focuses purely on carefully perceiving the image, and a second model that focuses on reasoning through the answer using what the first model reported. The two models are trained together using a method the authors call PRA-GRPO, which is a reinforcement learning strategy that alternates training between the two roles. While one model is being trained, the other is frozen and used only as a fixed reference service, and a third verifier service checks whether the final answers are correct so that reward signals can be sent back to whichever model is currently training. According to the README, this approach performs better than standard vision language model baselines on both benchmarks built around high resolution fine grained detail and more general multimodal reasoning tests. The repository includes the training code, along with scripts to install the environment through conda, download training and evaluation datasets from Hugging Face, and start the reasoner, perceiver, and verifier as separate networked services before launching either training stage. There is also a batch evaluation script for running the trained model against several benchmark datasets. The authors have also released a trained model, a training dataset, a paper, and an interactive demo, all linked from the README. The project builds on an existing training framework called veRL and draws its training data from a few other open research projects. The README does not state a license for this code.

Copy-paste prompts

Prompt 1
Explain how PRA-GRPO alternates training between the perceiver and reasoner models.
Prompt 2
Help me set up the conda environment and install script for this project.
Prompt 3
Walk me through configuring the reasoner, perceiver, and verifier server ports for training.
Prompt 4
How do I run the evaluation batch script against the HR-Bench dataset?

Frequently asked questions

What is perceive-to-reason?

A research project that splits AI image understanding into a separate perceiving model and reasoning model, trained together to improve detailed visual question answering.

What language is perceive-to-reason written in?

Mainly Python. The stack also includes Python, PyTorch, veRL.

How hard is perceive-to-reason to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is perceive-to-reason for?

Mainly researcher.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.