ViRL39K 4B RL arms (Qwen3-VL-4B-Instruct, unfrozen vision tower)
Research checkpoints from a controlled multi-arm RL study, the Qwen3-VL generalization row of the Qwen2.5-VL-3B study. Each folder is a merged HF checkpoint at global_step_164 (2 epochs, seed 1, unfrozen vision tower).
| folder | arm | objective |
|---|---|---|
A1-4B-uvit/ |
A1 | GRPO, binary-accuracy reward |
A2-4B-uvit/ |
A2 | INTUITOR, self-certainty reward |
A3-4B-uvit/ |
A3 | VPPO (visual-dependency credit assignment) |
A4-4B-uvit/ |
A4 | PRPO + RVD |
A0 (base) is not here: it is unmodified Qwen/Qwen3-VL-4B-Instruct. Pull it from there.
Shared recipe: ViRL39K (Geo3K-deduped), 164 steps, rollout batch 384 x n8, lr 1e-6, DAPO clip 0.2/0.28, token-level loss, max response 2048, KL disabled, vision tower trained.
Known behaviour: A2 is collapsed
A2-4B-uvit is a degenerate checkpoint and is published as a negative result, not a
baseline. Under the study's \boxed{} format prompt it emits a malformed \boxed} on
essentially every response (measured 864/864 on a benchmark sample), so answer extraction fails and
it scores ~0 on accuracy-style metrics while looking perfectly invariant. The same collapse appears
for INTUITOR at Qwen2.5-VL-3B. Do not read its metrics as ungroundedness; it is a near-constant
output.
Evaluation notes
Two protocol constants that do not transfer from the Qwen2.5-VL studies, both measured:
max_new_tokens: Qwen3-VL writes a long "Internal Monologue" preamble. At the published cap of 512 the base model is truncated before it reaches an answer on ~56% of responses, against ~18% for the RL arms -- a length artefact that inflates every arm's apparent gain over base. Use 1024, and hold it fixed across arms.- Vision tower attention: on vLLM, Qwen3-VL's ViT (head_dim 128) selects a bundled FlashAttention
kernel that crashes with a PTX error on some GPUs; set
VLLM_VIT_FORCE_SDPA=1. The HF path is unaffected (it resolves to SDPA).
Fetch one arm:
from huggingface_hub import snapshot_download
snapshot_download("Ahsanz/virl39k-qwen3vl-4b-arms", allow_patterns="A1-4B-uvit/*",
local_dir="arms")