Views
No views yet
main)| Folder | What | Size |
|---|---|---|
base_stage1_merged/ | Qwen3-VL-4B-Instruct with our stage-1 Charades-STA GRPO adapter merged in. The adapter below attaches to this, not to the stock release. | 8.3 GB |
adapter_stage2/ | The deployed model. Stage-2 LoRA adapter, step 600. Scored 0.5891353 (submission 577915). | 2.2 GB |
chenliforai/mars2-saucy-aet-grpo-requeued,
with the matching code on the alternate-if-requeued-counted branch.Qwen3-VL-4B-Instruct post-trained with Group Relative Policy Optimization on a pure temporal-IoU
reward, reading an Audio-Evidence Timeline: word-level ASR (faster-whisper large-v3,
rendered word-fine) and non-speech sound events (BEATs / AudioSet-Strong) as timestamped text
beside frames sampled at 2 fps under a whole-video budget of 14,680,064 pixels.r=64, alpha=16, dropout 0.05) is the only trainable component; the vision tower,
language model and merger are frozen. Two stages, both beta=0 (no KL), constant LR 2e-6,
batch 1 × gradient accumulation 8, 8 generations per prompt, bf16:base_stage1_merged/.total_tokens 17408 (9.1 h on one GPU). This is adapter_stage2/.1from transformers import Qwen3VLForConditionalGeneration
2from peft import PeftModel
3
4REPO = "chenliforai/mars2-saucy-aet-grpo"
5base = Qwen3VLForConditionalGeneration.from_pretrained(
6 REPO, subfolder="base_stage1_merged", dtype="bfloat16", device_map="cuda")
7model = PeftModel.from_pretrained(base, REPO, subfolder="adapter_stage2")
8model.eval() # do NOT call merge_and_unload()merge_and_unload() computes W + BA*scale and casts the result back to bf16. For this rank-64
adapter, 97.3% of the trained delta does not survive that cast — the elementwise update is
smaller than the bf16 ulp of the corresponding base weight. Keeping the adapter as a live
low-rank branch is worth +0.001 on the leaderboard over the merged copy of the same checkpoint.
Every number we reported was produced with --no-merge-adapter.target_modules includes embed_tokens and lm_head, which is why the adapter is
larger than a typical rank-64 LoRA.scripts/asr_mars2.py and scripts/sed_mars2.py from the code repository, then run
scripts/run_zeroshot_vtg.py --asr-format word-fine. The exact prompt construction lives in that
script; a mismatched prompt format costs several points, because the model was trained inside one.