File size: 6,521 Bytes
18104f9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# Dataset-level difficulty

How hard each split is for each model, once the split's own guessing floor is
taken out, and whether the models find the same items hard.

```
dataset_difficulty.ipynb    the analysis, 8 figures, executed with outputs
build_notebook.py           regenerates the notebook from source (nbformat)
analyze_dataset_level.py    the same numbers as CSVs, no notebook needed
figures/*.png               every figure, also written by the notebook
```

Run either entry point from the experiment root:

```bash
python analysis/dataset_level_analysis/analyze_dataset_level.py     # CSVs + terminal tables
/home/disheng/miniconda3/envs/Spatial_VLM/bin/python \
    analysis/dataset_level_analysis/build_notebook.py               # rebuild the .ipynb
```

## Why not just compare accuracy

The four splits do not share a scale. VSR is a two-way true/false question, so
guessing scores 0.500; the three Youtube levels are four-way, so guessing scores
0.250. Level 2's three distractors are drawn uniformly from the 23 wrong
orderings, so nothing in the option text helps and its floor is plain chance —
measured on the split, the strongest text-only heuristic scores 0.252.

Everything is therefore reported as **headroom captured**,
`(acc - floor) / (1 - floor)`: the share of the distance from guessing to
perfect that the model actually covers. It is negative when a model does worse
than free.

| split | n | choices | guessing | floor used |
|---|---|---|---|---|
| VSR | 2195 | 2 | 0.500 | 0.500 |
| YT level 1 | 821 | 4 | 0.250 | 0.250 |
| YT level 2 | 764 | 4 | 0.250 | 0.250 |
| YT level 3 | 836 | 4 | 0.250 | 0.250 |

## Results

Accuracy, mean over the six baselines:

| model | VSR | YT L1 | YT L2 | YT L3 |
|---|---|---|---|---|
| Qwen2.5-VL-3B | 0.759 | 0.405 | 0.374 | 0.255 |
| Qwen2.5-VL-7B | 0.805 | 0.452 | 0.392 | 0.278 |
| Qwen3.5-4B | 0.813 | 0.530 | 0.386 | 0.296 |
| Qwen3.5-4B-Base | 0.827 | 0.557 | 0.448 | 0.279 |

Headroom captured:

| model | VSR | YT L1 | YT L2 | YT L3 |
|---|---|---|---|---|
| Qwen2.5-VL-3B | 0.519 | 0.206 | 0.166 | 0.006 |
| Qwen2.5-VL-7B | 0.610 | 0.269 | 0.189 | 0.037 |
| Qwen3.5-4B | 0.627 | 0.373 | 0.181 | 0.061 |
| Qwen3.5-4B-Base | 0.655 | 0.409 | 0.264 | 0.038 |

1. **All four models now agree on the ordering**: VSR > L1 > L2 > L3, easiest to
   hardest, with Spearman 1.00 for all six model pairs. The earlier split — where
   Qwen2.5-VL found L3 hardest and Qwen3.5 found L2 hardest — was a property of
   the level-3 v1 annotations, and did not survive their rebuild (see the level-3
   caveat below).
2. **Only VSR is comfortably solved** (0.52-0.66 of headroom). It is also the
   easiest question type — a binary relation often inferable from object
   identity without metric depth.
3. **Level 3 is now at the floor for everyone**: 0.006-0.061 of headroom, a
   0.054 spread that is the narrowest of the four splits. With each path given
   its own start point the split no longer separates the models; it only shows
   that none of them can trace depth monotonicity along a path.
4. **Level 1 is the sharpest discriminator**, 0.206 to 0.409, a 0.203 spread.
   It is the only Youtube level where model strength still shows through.
5. **Level 2 sits at 0.17-0.26 for everyone**, a narrow band that tracks neither
   size nor family. Nothing in its option text helps, so this is what four-way
   depth ranking actually costs these models: clearly above guessing, nowhere
   near solved.
6. **The base model wins on three splits of four.** Qwen3.5-4B-Base (likelihood
   scoring) beats Qwen3.5-4B (generation) on VSR, L1 and L2, but not on L3
   (0.038 vs 0.061) — where both are close enough to the floor that the ordering
   carries little weight. 4B-Instruct is also the only model producing
   unparsable answers (up to 0.7% on L1), which are scored wrong.
7. **The stereo intervention barely moves the aggregate.** Accuracy ranges over
   the six baselines are 0.012-0.036 with no consistent sign. Whether the same
   *items* flip is a separate question — see `../intervention_analysis`.
8. **Agreement on item difficulty is highest on L1, lowest on L3.** Excess mass
   at "0 or 4 models correct" over the independent null: +0.358 (L1), +0.267
   (VSR), +0.234 (L2), +0.160 (L3). On L3 the failures are close to independent
   noise, which is what near-chance accuracy looks like.

## Caveat on the level-2 numbers

Level 2 was rebuilt three times before this run, because two option
constructions leaked and one of them also leaked through the letters:

| construction | strongest text-only heuristic |
|---|---|
| distractors at Kendall distance 1 / 2 / >=3 from the gold | 0.388 (pick the medoid) |
| all three at the same distance | 0.750 |
| prefix ladder, distractors assigned to letters in fixed order | 0.759 (run the ladder, avoid D) |
| prefix ladder, letters shuffled | 0.500 (run the ladder) |
| **random distractors (current)** | **0.252** |

Under the leaking constructions these same models scored 0.40-0.47 on level 2;
with random distractors they score 0.37-0.45 against a real 0.25 floor. The
0.02-0.10 drop is the part of the old score that came from the option text
rather than the picture. Any level-2 result from before `rerun_l2_v5.log` is
contaminated and has been deleted.

## Caveat on the level-3 numbers

Level 3 was rebuilt on 2026-08-31 (`rerun_l3_v2.log`), and unlike level 2 the
change was to the task, not to a leak:

| version | n | paths | these models scored |
|---|---|---|---|
| v1 | 795 | all four start at a shared reference point R | 0.27 - 0.50 |
| **v2 (current)** | **836** | **each path has its own start point** | **0.26 - 0.30** |

Removing the shared start removed whatever local cue the models were reading off
it, and every model fell to the floor. The v1 runs are kept under
`result/_archive_l3_v1/`; they are not comparable to anything current.

The v2 annotations check out — all 836 gold paths are monotone (`worst_step` >=
0), every distractor violates monotonicity (worst is -0.0007), and the median
margin between the gold and the strongest distractor is 0.069 — so the collapse
is difficulty, not a broken split. A little signal survives: accuracy over
quartiles of that margin rises by +0.088 (7B), +0.083 (3.5-4B) and +0.044
(Base), reaching 0.30-0.345 on the most separable quarter. Only 2.5-VL-3B is
flat (-0.005), i.e. reading nothing at all. Both subtypes are hard, with
`near_to_far` (0.280-0.334) consistently easier than `far_to_near`
(0.233-0.264).