rewardmap-eval
RewardMap: Tackling Sparse Rewards in Fine-grained Visual Reasoning via Multi-Stage Reinforcement Learning — Feng et al. (2025) (arXiv:2510.02240, 2025)
What this evaluates
Evaluates fine-grained visual reasoning and spatial understanding on structured domains like transit maps. It probes the model's ability to follow complex routes, count stops, and verify true/false statements about visual layouts, while also measuring generalization to broader spatial and chart reasoning benchmarks.
Datasets
- ReasonMap — total 696; splits: test (-1)
- ReasonMap-Plus — total 2570; splits: test (-1)
- SEED-Bench-2-Plus — total ?; splits: test (-1)
- SpatialEval — total ?; splits: test (-1)
- V*Bench — total ?; splits: test (-1)
- HRBench — total ?; splits: test (-1)
- ChartQA — total ?; splits: test (-1)
- MMStar — total ?; splits: test (-1)
Metrics
Weighted Acc. (primary) — range: percent
- Accuracy adjusted by a difficulty-aware weighting scheme applied to ReasonMap and ReasonMap-Plus test sets. Weights are assigned based on fine-grained difficulty annotations for each question.
Weighted Map Score — range: other
- A spatial reasoning metric scoring the correctness of route/path extraction on transit maps, adjusted by difficulty weights.
Accuracy — range: percent
- Standard exact-match or binary correctness percentage reported on SEED-Bench-2-Plus, SpatialEval, V*Bench, HRBench, ChartQA, and MMStar.
Input / output format
Input: An image (e.g., transit map, chart, or visual scene) paired with a natural language question or instruction.
Output: A natural language text response containing the answer, route description, or true/false verdict.
Scoring recipe
def compute_weighted_acc(predictions, golds, weights):
weighted_correct = sum(w for p, g, w in zip(predictions, golds, weights) if p.strip().lower() == g.strip().lower())
total_weight = sum(weights)
return (weighted_correct / total_weight) * 100
def compute_standard_acc(predictions, golds):
correct = sum(1 for p, g in zip(predictions, golds) if p.strip().lower() == g.strip().lower())
return (correct / len(golds)) * 100
Common pitfalls
- Greedy decoding (temperature=0) is used exclusively for all evaluations, which may disadvantage models that perform better with sampling.
- ReasonMap/Plus metrics use difficulty-aware weighting, so raw accuracy scores cannot be directly compared to the unweighted percentages on other benchmarks.
- Models frequently hallucinate routes or confuse stops on complex maps, which simple accuracy metrics may not fully capture without qualitative inspection.
Evidence (verbatim from paper)
Table 1: Evaluations of reference models and fine-tuned models on ReasonMap and ReasonMap-Plus. ... Weighted Acc. | Weighted Map Score ... We first evaluate on the test sets of ReasonMap and ReasonMap-Plus, and we report the metrics adjusted by the difficulty-aware weighting scheme... All evaluations use greedy decoding (temperature=0).
Citation
@misc{feng2025rewardmap,
title={RewardMap: Tackling Sparse Rewards in Fine-grained Visual Reasoning via Multi-Stage Reinforcement Learning},
author={Feng et al. (2025)},
year={2025},
note={arXiv:2510.02240}
}
1---2name: rewardmap-eval3description: Evaluates fine-grained visual reasoning and spatial understanding on structured domains like transit maps. It probes the model's ability to follow complex routes, count stops, and verify true/false statements about visual layouts, while also measuring generalization to broader spatial and chart reasoning benchmarks. Use when the user wants to benchmark on ReasonMap, ReasonMap-Plus, SEED-Bench-2-Plus, SpatialEval, V*Bench, HRBench, ChartQA, MMStar, or asks about evaluating this task. Reports Weighted Acc..4---56# rewardmap-eval78> RewardMap: Tackling Sparse Rewards in Fine-grained Visual Reasoning via Multi-Stage Reinforcement Learning — Feng et al. (2025) (arXiv:2510.02240, 2025)910## What this evaluates1112Evaluates fine-grained visual reasoning and spatial understanding on structured domains like transit maps. It probes the model's ability to follow complex routes, count stops, and verify true/false statements about visual layouts, while also measuring generalization to broader spatial and chart reasoning benchmarks.1314## Datasets1516- **ReasonMap** — total 696; splits: test (-1)17- **ReasonMap-Plus** — total 2570; splits: test (-1)18- **SEED-Bench-2-Plus** — total ?; splits: test (-1)19- **SpatialEval** — total ?; splits: test (-1)20- **V*Bench** — total ?; splits: test (-1)21- **HRBench** — total ?; splits: test (-1)22- **ChartQA** — total ?; splits: test (-1)23- **MMStar** — total ?; splits: test (-1)2425## Metrics2627- `Weighted Acc.` **(primary)** — range: percent28 - Accuracy adjusted by a difficulty-aware weighting scheme applied to ReasonMap and ReasonMap-Plus test sets. Weights are assigned based on fine-grained difficulty annotations for each question.29- `Weighted Map Score` — range: other30 - A spatial reasoning metric scoring the correctness of route/path extraction on transit maps, adjusted by difficulty weights.31- `Accuracy` — range: percent32 - Standard exact-match or binary correctness percentage reported on SEED-Bench-2-Plus, SpatialEval, V*Bench, HRBench, ChartQA, and MMStar.3334## Input / output format3536**Input**: An image (e.g., transit map, chart, or visual scene) paired with a natural language question or instruction.3738**Output**: A natural language text response containing the answer, route description, or true/false verdict.3940## Scoring recipe4142```python43def compute_weighted_acc(predictions, golds, weights):44 weighted_correct = sum(w for p, g, w in zip(predictions, golds, weights) if p.strip().lower() == g.strip().lower())45 total_weight = sum(weights)46 return (weighted_correct / total_weight) * 1004748def compute_standard_acc(predictions, golds):49 correct = sum(1 for p, g in zip(predictions, golds) if p.strip().lower() == g.strip().lower())50 return (correct / len(golds)) * 10051```5253## Common pitfalls5455- Greedy decoding (temperature=0) is used exclusively for all evaluations, which may disadvantage models that perform better with sampling.56- ReasonMap/Plus metrics use difficulty-aware weighting, so raw accuracy scores cannot be directly compared to the unweighted percentages on other benchmarks.57- Models frequently hallucinate routes or confuse stops on complex maps, which simple accuracy metrics may not fully capture without qualitative inspection.5859## Evidence (verbatim from paper)6061> Table 1: Evaluations of reference models and fine-tuned models on ReasonMap and ReasonMap-Plus. ... Weighted Acc. | Weighted Map Score ... We first evaluate on the test sets of ReasonMap and ReasonMap-Plus, and we report the metrics adjusted by the difficulty-aware weighting scheme... All evaluations use greedy decoding (temperature=0).6263## Citation6465```bibtex66@misc{feng2025rewardmap,67 title={RewardMap: Tackling Sparse Rewards in Fine-grained Visual Reasoning via Multi-Stage Reinforcement Learning},68 author={Feng et al. (2025)},69 year={2025},70 note={arXiv:2510.02240}71}72```7374- arXiv: 2510.02240