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).
|