QR-GSM spatial checkpoints (VSI-Bench)
Trained geometry-fusion modules for Qwen3-VL-8B (frozen) on VSI-Bench spatial reasoning.
Code: https://github.com/quin210/spatial_hallu (experiments/qrmog/).
Full analysis + honest results: MOE_FUSION_SUMMARY.md in that repo.
These are sidecar / LoRA modules only — they load ON TOP of frozen Qwen3-VL-8B, not standalone.
Contents (curated — reproduces the key numbers)
| File | Method | VSI-Bench (our harness) | Notes |
|---|---|---|---|
qrmog_video_vggt16_best.pt |
single-VGGT injector, frozen | 46.04 @16fr (+1.24) | best overall; strong single-expert baseline |
qrmog_video_metric16_best.pt |
single-metric injector, frozen | 38.07 @8fr (+0.30) | metric-depth only |
qrmog_video_both_u16_best.pt |
2-expert uniform (naive fusion) | 37.01 @8fr (−0.76) | shows naive fusion hurts |
qrgsm_video_gi01_B5.pt + _lora/ |
QR-GSM 5-expert + LoRA + gate-init 0.1 | ON 39.76 @8fr (geo +1.23) | best fusion contribution |
qrgsm_video_fix_B5.pt + _lora/ |
QR-GSM 5-expert + LoRA (reader-fixed) | 39.37 @8fr (geo +0.22) | scale-norm fix |
qrgsm_video_fix_A5.pt |
QR-GSM 5-expert frozen (reader-fixed) | 37.53 @8fr (−0.24) | frozen MoE |
qrgsm_video_arkit_A5.pt |
QR-GSM frozen + arkit in-distribution | 38.33 @8fr (+0.56) | in-dist data helps frozen |
qrgsm_video_arkit_B5_16fr.pt + _lora/ |
QR-GSM 2-expert + LoRA + arkit, 16fr | ON 41.32 @16fr (500-item, confounded) | 16fr run (memory-limited to 2 experts) |
qrgsm_video_llfix.pt |
QR-GSM learned-injection-layers (reader-fixed) | 38.51 @8fr (+0.74) | data-picked layers (mid 10–16) |
*_lora/ are PEFT LoRA adapters for the paired sidecar .pt.
Loading
from huggingface_hub import hf_hub_download, snapshot_download
ckpt = hf_hub_download("quin210/qrgsm-spatial-checkpoints", "qrgsm_video_gi01_B5.pt")
lora = snapshot_download("quin210/qrgsm-spatial-checkpoints", allow_patterns="qrgsm_video_gi01_B5_lora/*")
# then eval with the repo code:
# python experiments/qrmog/eval_qrgsm_vsi.py --ckpt <ckpt> --lora-dir <lora> \
# --experts vggt,metric,normals,orientany,orient --k-mem 32 --frames 8
Each .pt stores experts, router, readers (+ learned_layers/read_layers/layer_gates for llfix).
--k-mem and --experts at eval must match training (see the code / summary).
Honest positioning
Not SOTA (GeoThinker 60.74, SpatioLM ~71.6 use full fine-tuning). These validate a frozen / parameter- efficient multi-expert fusion mechanism and its design principles; the main contribution is the diagnosis (4 reproducibility bugs, expert-redundancy, capacity↔transfer, representation gap).