S²VOPD-Qwen3.5-9B
Official model release for Self-Supervised Visual On-Policy Distillation.
Paper · Project page · Code
A fine-grained visual understanding model built on Qwen/Qwen3.5-9B and trained with on-policy self-distillation -- no reward model, no human annotation, and no larger teacher.
Results
Fine-grained perception
Greedy decoding, 4096 tokens, seed 42.
| Benchmark | Score |
|---|---|
| V* Bench | 90.58 |
| ZoomBench | 57.28 |
| HR-Bench 4K | 85.00 |
| HR-Bench 8K | 83.88 |
| MME-RealWorld | 76.56 |
| MME-RealWorld-CN | 73.55 |
| Mean | 77.81 |
Mathematical reasoning
24576 tokens, T=0.3, top-p 0.95, top-k 20, presence penalty 1.5, seed 42; judge = Qwen2.5-72B-Instruct.
| Benchmark | Score |
|---|---|
| MathVista | 82.10 |
| MathVerse | 75.23 |
| MathVision | 68.65 |
| WeMath | 88.62 |
| Mean | 78.65 |
The long generation budget is required for the math suite: at 16k, 8-11% of generations still hit the cap, so math numbers produced under a greedy/4096 protocol are not comparable to these.
Method
On-policy self-distillation. The student generates on a degraded view of an image while an EMA teacher scores the same prefix on the clean original. The disagreement between the two is the entire training signal -- it is large exactly on the tokens that depend on fine visual detail, and near zero elsewhere. The loss is a generalized JSD. No reward model, no human annotation, and no larger teacher.
| Hyperparameter | Value |
|---|---|
| Training steps | 65 |
| Batch / rollouts | 96 prompts x n=8 |
| Learning rate | 2e-6, 10 warmup steps |
| EMA teacher update rate | 0.05 |
| Distillation | generalized JSD, alpha=0.5, top-k=100 (renormalized inside the teacher's top-k), is_clip=2.0 |
| Lengths | prompt <= 8192, response <= 1024 |
Augmentation
Every training image receives exactly one degradation, drawn from three families at 30% each; the remaining 10% is left untouched.
| Degradation | Probability | What it does |
|---|---|---|
| Non-uniform resolution | 0.30 | The image is laid on a canvas shrunk to 50-70% of its size; the background is rendered at 20-35% resolution while a single region covering 15-35% of the canvas stays sharp |
| Zoom-out | 0.30 | The image is scaled to 40-80% and padded with black |
| Downscale + photometric jitter | 0.30 | Downscaled to 30-60% without being resized back, then brightness, contrast and saturation each perturbed with probability 0.5 |
| None | 0.10 | Unchanged |
One degradation per image is deliberate. Stacking them sequentially destroys the image, and once the student can no longer recover the content the teacher-student gap stops carrying information about visual detail.
Training data
Vision-OPD-6K -- 6,241 samples.
Usage
from transformers import AutoProcessor, AutoModelForImageTextToText
import torch
model = AutoModelForImageTextToText.from_pretrained(
"s2vopd/S2VOPD-Qwen3.5-9B", dtype=torch.bfloat16,
attn_implementation="flash_attention_2", device_map="cuda")
processor = AutoProcessor.from_pretrained("s2vopd/S2VOPD-Qwen3.5-9B")
Citation
@misc{li2026selfsupervisedvisualonpolicydistillation,
title={Self-Supervised Visual On-Policy Distillation},
author={Yijiang Li and Yijun Liang and Yunjie Tian and Bingyang Wang and Ke Zhang and Zhenfei Yin and Di Fu and Philip Torr and Nuno Vasconcelos},
year={2026},
eprint={2608.14144},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2608.14144},
}
- Downloads last month
- -