Results
Accuracy in percent, evaluated with lmms-eval at 100 frames per video under one setting for every
row. "In-domain" is the 1,000-question held-out Video-HopChain split.
Table with columns: Model, Video-MME, Perception-Comp, Video-MMMU, Video-Holmes, VCRBench, MMR-V, LongVideo-Reason, VRBench, mean, in-domain| Model | Video-MME | Perception-Comp | Video-MMMU | Video-Holmes | VCRBench | MMR-V | LongVideo-Reason | VRBench | mean | in-domain |
|---|
| Qwen3-VL-8B-Instruct | 64.0 | 28.1 | 63.5 | 40.7 | 32.0 | 42.7 | 72.6 | 74.7 | 52.3 | 13.4 |
| + standard RL | 65.8 | 34.3 | 63.0 | 47.4 | 35.9 | 43.4 | 76.1 | 77.6 | 55.4 | 13.4 |
| + standard RL + SWE | 67.9 | 34.4 | 62.5 | 48.5 | 35.1 | 46.4 | 78.8 | 79.5 | 56.6 | 16.4 |
| + standard RL + Video-HopChain | 68.6 | 36.2 | 64.7 | 48.6 | 42.1 | 45.9 | 77.8 | 79.4 | 57.9 | 21.2 |
| this model | 69.2 | 37.4 | 67.5 | 48.6 | 44.9 | 46.6 | 78.9 | 81.0 | 59.3 | 23.2 |
VCRBench is reported on its multiple-choice subset.
Usage
from transformers import AutoProcessor, Qwen3VLForConditionalGeneration
model = Qwen3VLForConditionalGeneration.from_pretrained(
"ngqtrung/video-hopchain-8b", dtype="auto", device_map="auto")
processor = AutoProcessor.from_pretrained("ngqtrung/video-hopchain-8b")
The weights are BF16. The model was trained to reason inside <think>...</think> and to put the final
answer in <answer>\boxed{...}</answer>, so use the same system prompt as training. It is in the
dataset rows and in the repository.
Training
Second-Wave Exploration addresses advantage collapse in GRPO. With 8 rollouts per question, SWE draws
the first 4 normally. If those 4 are all correct or all incorrect, the group carries no reward
variance and no gradient, so SWE draws the last 4 with the policy's top token masked wherever its
probability exceeds tau = 0.95, inside the reasoning span only. The masked positions are dropped
from the loss while all 8 rollouts enter the group advantage, so the method spends no extra rollouts.
Table | |
|---|
| Base model | Qwen3-VL-8B-Instruct |
| Stage 1 | GRPO on a 105,993-row general video QA mixture, 24 frames |
| Stage 2 | GRPO + SWE on Video-HopChain, 22,550 rows, 140 frames |
| Rollouts per question | 8, first wave 4 |
| Mask threshold | 0.95, reasoning span only |
| Reward | exact match on the integer sum, plus a format term |
| Hardware | 4 nodes of 8 H100 80GB, asynchronous verl trainer |
Appendix C of the paper gives every hyperparameter.
Limitations
Evaluated at one model scale only. The dataset is synthetic and verified against captions rather than
against the frames, so a caption error can reach a label. The paper reports both limitations, together
with the exploration settings that we did not ablate.
Citation
@article{videohopchain2026,
title = {Video-HopChain: Multi-Hop Questions and Second-Wave Exploration for Video Reasoning Models},
author = {Nguyen, Quang Trung and Dong, Yuhao and Sun, Shuo and Liu, Shuai and Tian, Shulin and Yap, Kim-Hui and Liu, Ziwei},
journal = {arXiv preprint},
year = {2026}
}