Views
No views yet
render_view_tool
(camera teleport via coordinates), inspects the returned views, then answers.
Reward: LLM-judge accuracy (Qwen3-30B, CORRECT/INCORRECT) + format + small per-call tool
bonus + geometric grounding (final view must contain the answer object's 3D box,
occlusion-checked raycast). Max 6 assistant turns. No raw ScanNet data is included here.| folder | recipe | train step | acc, official val (n=256) | acc, tiny val (n=64) |
|---|---|---|---|---|
v9.1c-s120 | v9.1: coords tool + geometric grounding (reproduction of the reference recipe) | 120 | 0.195 | 0.266 |
v9.3-s32 | v9.1 + any-frame grounding + coverage bonus (0.2) + closer-final-view prompt | 32 | — | 0.234 |
v9.4b-s56 | v9.4 with UNGATED distinct bonus, lighter repeat penalty (0.02) | 56 | — | 0.188 |
v9.4-s16 | v9.3 + anti-repeat: distinct-viewpoint-only tool bonus + near-duplicate render penalty | 16 | — | 0.125 |
eval_official_val_v2 (n=256, held-out ScanQA-style, pure judge accuracy,
no bonuses). Historical bar to beat: 0.176 (best previous healthy run) — v9.1c-s120
clears it at 0.195.train_filtered_v9 (16,777 QA / 562 ScanNet scenes).1from transformers import AutoModelForVision2Seq, AutoProcessor
2m = AutoModelForVision2Seq.from_pretrained("Icey444/3d-ckpts-v3", subfolder="v9.1c-s120")
3p = AutoProcessor.from_pretrained("Icey444/3d-ckpts-v3", subfolder="v9.1c-s120")