Technical report · 6 November 2026

What reinforcement learning adds to a vision-language model

Abstract When does reinforcement learning with a verifiable reward improve a vision-language model beyond supervised fine-tuning (SFT) on the same data? We train Qwen3-VL at 2B and 8B with SFT, with GRPO and a 0/1 correctness reward, and with SFT followed by GRPO, and score every model through one evaluation harness. The answer depends on what the task pays for. RL mostly sharpens what the model can already sample. Where reasoning pays, it wins: on ChartQA it raises accuracy from 69.7% to 80.1%, 11.3 points above SFT's best. Where reasoning does not pay, it changes the form of the answer and not the ability behind it: on VQAv2, reasoning answers shrink from 148 to 8 tokens and end at the level of short answers. Where the answer is out of reach, SFT has to go first, and RL after SFT is the best model. RL's gains also come from the image: at 8B on SLAKE, 10.4 of SFT's 19.1-point gain survives a black image, against 0.4 of RL's 10.3.

Highlights

69.7→80.1ChartQA, reasoning prompt, 2B

Where reasoning pays, RL wins and keeps it. GRPO ends 11.3 points above SFT's best on the same questions, with answers still 162 tokens long.

148→8VQAv2, tokens per answer, reasoning prompt

Where it doesn't, RL changes form, not ability. GRPO deletes the reasoning and lands where short answers already were (78.3% against 77.9%).

0.4vs10.4SLAKE 8B, points of gain that survive a black image, GRPO vs SFT

RL's gains come from the image. Of its 10.3-point gain, 0.4 survives without the image; of SFT's 19.1, 10.4 does.

InstructSFTGRPOSFT → GRPO
Test setInstructSFTGRPOSFT → GRPOOn the row's scale
ChartsChartQAreasoning prompt69.766.280.179.865–85
ChartsChartQA, audited judgereasoning prompt77.269.882.682.065–85
MedicalSLAKE, 2Bshort answer49.874.865.676.245–80
MedicalSLAKE, 8Bshort answer58.177.268.378.255–80
MedicalOmniMedVQA, held-out collections, 2Bshort answer, normalized74.685.079.185.670–90
UnseenPathVQA (trained on SLAKE, 2B)short answer33.531.732.532.630–40
UnseenTextVQA (trained on VQAv2 + GQA)short answer80.580.181.080.980–90
UnseenVizWiz (trained on VQAv2 + GQA)short answer42.542.543.643.040–50
Figure 1. Results at a glance. Accuracy (%), best value in each row in bold. Instruct is the released Qwen3-VL Instruct model. GRPO is trained with the prompt the row is scored under (step-by-step reasoning for ChartQA, short answers elsewhere); medical and unseen rows use models trained on SLAKE, OmniMedVQA or VQAv2 + GQA as named. OmniMedVQA uses the normalized scorer, every other row the dataset authors' scorer.

1The claim

RL with a verifiable reward trains a model on its own samples and pays it only when a program confirms the answer. For language models this step turns a fine-tuned model into a reasoning one. Vision-language models answer a different mix of questions: many are settled by looking rather than deriving, and a reward that checks only the final answer can just as well teach a model to stop thinking. The comparisons that would show when RL helps are rarely run under one recipe, one evaluation and matched data. We run them.

Whether RL beats SFT depends on what the task pays for. RL mostly sharpens what the model can already sample; where the answer is out of reach, SFT has to go first. The rest of this report hangs from that claim, and each branch links to the page with all of its evidence.

2Setup

All models start from Qwen3-VL-2B-Instruct or Qwen3-VL-8B-Instruct and train LoRA adapters of rank 16 on the language model's attention and MLP layers in bf16; the vision encoder stays frozen. Three methods are compared on the same training questions.

MethodSignalRecipe
SFTReference short answers, loss on answer tokensOne epoch; learning rate 1e-4 (2B), 5e-5 (8B)
GRPO1 if the tagged answer matches the reference after normalization, else 04 questions × 8 samples per update at temperature 1; group-relative advantages; token-level loss reduction as in DAPO; no KL term; learning rate 1e-5 decaying to 0; rollouts under a step-by-step or a short-answer prompt
SFT → GRPOBoth, in sequenceGRPO started from the SFT model, same updates

Rollouts come from vLLM serving the trained adapter unmerged, so the sampler is the policy being trained: in a controlled check the sampler–trainer gap falls from 0.132 to 0.008 nats per token. One RL epoch draws each training question once, the exposure SFT has.

DomainTraining dataTest data
PhotosVQAv2 + GQA: 39,458 SFT questions; RL draws 4,000 (1,000 updates) from a 55,438-question poolVQAv2 5,000; GQA 12,578; CLEVR counting 3,000
ChartsChartQA human-written questions: 7,376 (one epoch, 1,844 updates)ChartQA 1,250
MedicalSLAKE (English), one epoch (1,229 RL updates); OmniMedVQA with 17 source collections held out for testing: 62,678 SFT questions, RL draws 4,916SLAKE 1,061; OmniMedVQA held-out collections 1,156
Never trained onNoneTextVQA 5,000; VizWiz 8,000; PathVQA 2,240

Each candidate dataset passes a screen on 500 training questions before any training, with gates written before the candidates ran: a black or swapped image must cost at least 10 points, at least 25% of questions must give GRPO a gradient, answers must be parseable, and accuracy must not already sit at the ceiling (Table A1).

3Where reasoning pays, RL wins and keeps it

Trained with step-by-step rollouts for one epoch on ChartQA's human-written questions, GRPO raises accuracy from 69.7% to 80.1% (+10.4 [+8.2, +12.6] points) and keeps its reasoning (205 → 162 tokens). SFT on the same questions reaches 68.8% at best, so GRPO ends 11.3 points above it. The audited judge credits many of Instruct's misses that are right answers in the wrong form, such as "20%" for a label of 20; under it the gain is 5.4 points (77.2% → 82.6%).

InstructSFTGRPOSFT → GRPOAudited judge
606570758085Instruct69.777.2205 tokSFT66.269.876 tokGRPO, short-answer rollouts75.679.6177 tokGRPO, reasoning rollouts80.182.6162 tokSFT → GRPO, reasoning rollouts79.882.0197 tokAccuracy, reasoning prompt (%)
Figure 2. ChartQA, 2B. Accuracy under the reasoning prompt on the 1,250 human-written test questions. Filled marks: official relaxed accuracy; diamonds: audited LLM judge; right, mean response length. One epoch of training for every model.

The answers were already within reach. Sampled 32 times per question, GRPO raises pass@1 from 66.4% to 79.8% and ends level with Instruct at pass@32 (91.0% → 91.5%): it learns to choose what Instruct could already sample. With short-answer rollouts on the same data, it gains at pass@1 and gives up coverage at pass@32 (86.1% → 77.1%).

Reasoning prompt6070809010012481632samples per question, kSFT → GRPO 93.3GRPO 91.5Instruct 91.0Short-answer prompt6070809010012481632samples per question, kSFT 89.8Instruct 86.1GRPO 77.1
Figure 3. Coverage on ChartQA. pass@k (%) on all 1,250 test questions, 32 samples at temperature 1, official scorer, k on a log scale. Left: models trained with reasoning, scored under the reasoning prompt. Right: short-answer models, scored with short answers.

Scope: ChartQA is the one chart source in this study, and SFT in this comparison trains on its short reference answers. A second chart-and-document source and SFT on reasoning traces are the next tests.

4Where it doesn't, RL changes form, not ability

A 0/1 correctness reward keeps whatever raises the chance of a correct final answer. On photo questions, reasoning lowers it. On VQAv2 under the reasoning prompt, GRPO goes from 55.1% at 148 tokens to 78.3% at 8 tokens, the level of Instruct's short answers (77.9%). The harness separates the two readings: the exact-match gain of 23.2 points is 4.4 under the audited judge.

Short-prompt RL meets SFT on this data rather than passing it, 78.6% against 79.9% on VQAv2, and it narrows what the model can sample: pass@32 falls from 79.8% to 76.6% while SFT raises it to 82.4%.

5Where the answer is out of reach, SFT goes first

On medical images GRPO started from SFT is the best model in all three settings, and SFT beats RL from Instruct in domain. SFT teaches the domain's answers; RL then polishes them, adding 1.3 points on SLAKE at 2B.

Trained and tested onInstructSFTGRPOSFT → GRPOSFT → GRPO
minus SFT
PathVQA
Instruct · SFT · GRPO · SFT → GRPO
PathVQA
GRPO minus SFT
SLAKE, 2B49.874.865.676.2+1.3 [+0.0, +2.7]33.5 · 31.7 · 32.5 · 32.6+0.8 [+0.2, +1.5]
SLAKE, 8B58.177.268.378.2+1.0 [−0.3, +2.5]36.0 · 35.2 · 36.6 · 36.3+1.4 [+0.8, +2.0]
OmniMedVQA, held-out collections, 2B74.685.079.185.6+0.5 [+0.1, +1.0]33.5 · 29.4 · 31.7 · 29.5+2.3 [+1.2, +3.3]
Table 1. Medical images. Short-answer accuracy (%) on each training set's own test questions and on PathVQA, which no model trained on. Differences in points with paired 95% intervals. SLAKE and PathVQA use the official scorer; OmniMedVQA the normalized scorer, which credits the option text as well as its letter.

Reach separates the two methods. On SLAKE's open-answer questions Instruct's pass@8, the share of questions where one of GRPO's eight samples is right, is 53.7%. GRPO ends close to it at 56.1% and SFT passes it at 68.6%; 8B repeats this (56.7, 59.5, 72.1). Across 10 open-answer rows RL from Instruct ends at most 2.8 points above reach, and only on SLAKE does SFT pass it. The proposed mechanism, in the spirit of what Yue et al. (2025) report for text, is that RL can only reward answers the model samples while SFT can teach the others; the pattern is measured here per domain, and the mechanism itself is untested.

6What RL's gain is made of

Replacing each image with a black one shows what a model answers without looking. RL from Instruct answers as many questions blind as Instruct in 5 of 6 settings, every interval including zero, and +3.2 points in the other. SFT answers more without the image in every setting it trained in. At 8B, 10.4 of SFT's 19.1-point gain on SLAKE survives a black image, against 0.4 of RL's 10.3. RL improves the answers that depend on the image; SFT also learns which answers are likely for a question.

InstructSFTGRPO
010203040506070SLAKE, 2BSFT +3.7 · GRPO −0.3SLAKE, 8BSFT +10.4 · GRPO +0.4OmniMedVQA, held-outSFT +15.4 · GRPO +3.2VQAv2SFT +1.9 · GRPO +0.0ChartQASFT +1.0 · GRPO +0.5Accuracy with a black image (%)
Figure 4. Accuracy with a black image. Short-answer prompt, normalized scorer; right, the change from Instruct in points. SFT on OmniMedVQA and VQAv2 is trained on the same questions GRPO drew. Every GRPO change except OmniMedVQA's has a 95% interval that includes zero.

On medical data RL also moves the model far less: its forward KL from Instruct is 5 to 16 times smaller than SFT's. RL's Razor (Shenfeld et al., 2025) finds that forgetting tracks this distance, and GRPO loses less than SFT on PathVQA in every setting. On photos and short-answer charts, where SFT's labels are close to what Instruct already says, both distances are small and SFT's is the smaller.

SettingSFT (nats)GRPO (nats)SFT / GRPO
SLAKE, 2B10.852.145.1×
SLAKE, 8B8.681.406.2×
OmniMedVQA, held-out14.110.9015.7×
VQAv20.140.230.6×
ChartQA, short answer0.391.020.4×

On sets no model trained on, RL keeps a small edge over SFT: +0.9 [+0.2, +1.6] points on TextVQA and +1.0 [+0.5, +1.6] on VizWiz. SFT on exactly the 4,000 questions GRPO drew does not close it.

These measurements describe RL from Instruct; GRPO after SFT keeps SFT's priors, with a black-image score +24.0 points from Instruct's on OmniMedVQA's held-out collections. In short-answer settings RL is also more confident than it is accurate, with a calibration error of 12.1–23.7 points against SFT's 2.2–8.6.

7Why trust it: the harness

Nine layers, each answering one question about a result, each with its own measured number. Every difference reported here passes through all of them.

Inputs
L1
Data integrityDid the model see the test images?

Every dev and test image is checked against every training pool by a hash of its decoded pixels and dimensions, since the same image can carry different IDs in different sources.

0test images in training
L2
Fixed test setsIs every model asked the same questions?

Frozen, hashed test subsets; each model and protocol writes one record with per-question predictions, so every comparison is paired.

39,285questions in 9 test sets
L3
Two promptsIs a gain reasoning, or answer form?

Every model is scored with a short-answer prompt and a step-by-step prompt, so a reasoning gain can be told apart from a shortened answer.

2prompts per model
Scoring
L4
Official scorersDo the numbers match the benchmark?

Re-implementations of each dataset authors' evaluator, checked against the authors' code, beside a normalized matcher that also defines the training reward.

626,074predictions match the authors' code
L5
LLM judge with an image-aware auditAre exact-match misses really wrong?

Every answer exact match marks wrong goes to an LLM judge; a stronger model shown the image audits a stratified sample, and each acceptance is discounted by its stratum's confirmation rate.

54,060misses judged, 800 audited
Statistics and behavior
L6
Paired statisticsIs a difference larger than noise?

Paired bootstrap over the same test questions for every comparison. Three identical greedy runs span 0.4 points, the smallest difference claimed.

10,000resamples, 0.4-point floor
L7
Sampling coverageDoes RL add answers or sharpen existing ones?

pass@k from 32 samples per question at temperature 1, with the unbiased estimator, on held-out test questions.

32samples per question
L8
Image interventionsDoes the answer come from the image?

Each model is rescored with a black image and with another question's image; accuracy with a black image counts what a model answers without looking.

3image conditions
L9
Beyond accuracyHow far did training move the model?

Forward KL from the starting model on its own samples; calibration of the majority answer of 8 samples.

500 × 8questions × samples per model

Every table is regenerated from 1,268 saved evaluation records, and a test fails when a published table or a quoted number drifts from them. The judge and the audit cost $6.21 in API calls.

8Open: one model for photos and charts

Does one model learn when to reason? Trained on photos and charts together, a 2B model kept its chart reasoning until update 1,750, lost it by update 2,000, and ended at 65.9% on ChartQA against 80.1% for the chart-only model. The cause is mixing, not training length: a chart-only model trained for the same 2,844 updates keeps 179-token answers and its dev accuracy (75.8% → 75.8%). Routing prompts by domain is the next test.

9Next

  1. A strategy-by-category map. The same arms on a table grouped into general VQA, reasoning, document and chart, perception and hallucination benchmarks, with an image-gain column for each, plus one new training source each for reasoning and for documents. Predictions for the new sources are written before they train.
  2. Error analysis that names the errors. Rule-based checks on every evaluation and labeled samples at milestones, so each error type can be taken to the literature on reducing it.
  3. SFT on reasoning traces. The direct test of whether RL's chart gain comes from RL or from its reasoning targets.
  4. Medical imaging as its own milestone, from 2D medical questions to 3D abdominal CT.

Side note: do 3D CT benchmarks need the scan?

The same harness asks how much of two CT benchmarks is reachable without looking. On DeepTumorVQA a text-only rule scores 60.7% against 34.5% chance, and M3D-VQA's correct option is A in nearly half of its questions. A debiased DeepTumorVQA built here brings the rule to 35.2%, and on it GRPO and SFT reach the same accuracy. Full note.

Text-only ruleTrained without the imageSame recipe with the imagePublished fine-tuned model
4050607080RuleNo imageImagePublishedDeepTumorVQA, multiple choice60.759.061.464.6DeepTumorVQA, free form57.457.660.363.4M3D-VQA, multiple choice50.668.7—75.8Accuracy (%)
Figure 5. Accuracy without the image. 2B models trained on 40,000 questions for one epoch (8,000 for DeepTumorVQA multiple choice, scored there with black images). Published: Qwen3-VL-4B fine-tuned on DeepTumorVQA's training split; M3D-LaMed on M3D-VQA (mean of five question types).

AWhat did not work, and details

Each tried change, with what was expected and what it implies, is in the negatives checklist: on-policy distillation, filtered pools, refilling dead groups, a format reward, a perception loss, vision LoRA, upscaling, and 8 training settings on ChartQA that read −1.5 to +1.0 points against a same-seed repeat of 0.5.

CandidateShort-answer accuracyReasoning payoff, matched formatPoints lost, black / swapped imageLearnableScreen
ChartQA (human)69.0+0.0 [−3.2, +3.2]53 / 5441%passes
SLAKE (English)51.6−1.4 [−4.0, +1.2]29 / 2049%passes
OmniMedVQA (open access)71.4−2.6 [−5.6, +0.4]23 / 2953%passes
VQAv273.2−7.6 [−10.6, −4.6]45 / 4548%passes
GQA69.6−9.2 [−12.4, −6.0]36 / 3842%passes
CLEVR compositional88.4−5.6 [−9.2, −2.0]56 / 4762%fails · no training pool
Kvasir-VQA-x1 (atomic)28.4−5.8 [−8.4, −3.4]8 / 737%fails · image barely used
PathVQA31.8−2.1 [−4.8, +0.4]10 / 939%fails · image barely used
ReXVQA (frontal view)52.6−3.2 [−7.4, +1.2]−2 / 463%fails · image barely used
MedThinkVQA37.2−10.0 [−14.0, −6.0]−1 / −147%fails · image barely used
DeepTumorVQA (whole-volume montage)39.4+2.4 [−1.0, +5.8]−2 / 056%fails · image barely used
DeepTumorVQA (debiased options)33.2+0.0 [−3.4, +3.2]0 / −257%fails · image barely used
TextVQA79.8−3.3 [−6.1, −0.5]76 / 7742%fails · no training pool
CLEVR counting98.0−3.2 [−6.8, +0.2]98 / 8648%fails · near the ceiling
Table A1. Data screen. Qwen3-VL-2B-Instruct on 500 training questions per candidate. Reasoning payoff: step-by-step minus short-answer accuracy with the same tagged final answer, points with 95% interval. Learnable: share of questions with some but not all of 8 samples correct.

Scope

Reproducibility

Training uses TRL 1.8 with PEFT and colocated vLLM; evaluation runs through one protocol-hashed harness that stores per-question predictions for every model and protocol. Experiments are declared in experiments.toml before they run, and this page is rebuilt from the records with python -m scripts.report_page. About 279 GPU-hours in total, on cluster GPUs (RTX PRO 6000 96 GB, A100 80 GB, A30 24 GB) and one RTX 4090 24 GB; the 2B pipeline runs end to end on a single 24 GB GPU.

Terms

GRPO
Group Relative Policy Optimization: sample several responses per question and use each one's reward minus the group mean as its advantage, so no value network is needed.
Verifiable reward
A reward computed by a program, here 1 when the tagged answer matches the reference after normalization and 0 otherwise.
Audited judge
Exact-match hits plus LLM-judge acceptances, each acceptance weighted by the share of its stratum that an image-aware auditor confirmed.
pass@k
The probability that at least one of k samples is correct, estimated without bias from the samples drawn.
Reach
Instruct's pass@8 on open-answer questions: what the starting model can already sample within one GRPO group.
Forward KL
E[log p₀(y|x) − log p(y|x)] over responses y sampled from the starting model p₀: how much less likely the trained model p finds what the start would say.
Calibration error
The gap between confidence (share of samples giving the majority answer) and accuracy, averaged over 10 confidence bins.