♠ Tinghui, Yixu Huang, Zhu Muhao
We lifted 1 functions out of this paper's own repositories and ran 1 of them in a sandbox. "Ran" means the function executed on a synthesized input and returned a value. It is not a reproduction of the paper's results.
| Repository | Role | Ran |
|---|---|---|
| RunRiotComeOn/AVR | — | 1 of 1 |
| Function | Status | Where it lives |
|---|---|---|
| AdaptiveReward | Ran | RunRiotComeOn/AVR/reward_functions/adaptive_reward.py pointer only (licence: NONE) · get_code("b91a180474af9629") |
Some links come from the archived Papers with Code dataset (CC BY-SA 4.0): attribution and licence.
Visual reasoning models (VRMs) have recently shown strong cross-modal reasoning capabilities by integrating visual perception with language reasoning. However, they often suffer from overthinking, producing unnecessarily long reasoning chains for any tasks. We attribute this issue to Reasoning Path Redundancy in visual reasoning: many visual questions do not require the full reasoning process. To address this, we propose AVR, an adaptive visual reasoning framework that decomposes visual reasoning into three cognitive functions: visual perception, logical reasoning, and answer application. It further enables models to dynamically choose among three response formats: Full Format, Perception-Only Format, and Direct Answer. AVR is trained with FS-GRPO, an adaptation of Group Relative Policy Optimization that encourages the model to select the most efficient reasoning format while preserving correctness. Experiments on multiple vision-language benchmarks show that AVR reduces token usage by 50-90% while maintaining overall accuracy, especially in perceptionintensive tasks. These results demonstrate that adaptive visual reasoning can effectively mitigate overthinking in VRMs. Code and data are available at: https://github.com/RunRiotComeOn/AVR.
The same record, over MCP at https://syntology.ai/mcp:
get_harvested_code_for_paper("2604.14568")
get_code_for_paper("2604.14568")
have("2604.14568")
Connect an agent — have() is free.