1 Model, 3 Benchmark Scores: Evaluating DeepSWE & Coding RL | Uday Sonawane

A single 32B open coding model reports three different scores on the same benchmark. The video shows how best-of-N sampling, scaffolds and oracle selection explain the gap, and gives three questions to ask before trusting any coding-agent number.

3:31 video3 min readWatch on YouTube

Uday Sonawane starts from a puzzle. DeepSWE Preview, a 32 billion parameter open model trained with reinforcement learning, scores 42.2 on SWE-bench Verified. It also scores 59, and it also scores 71. These come from the same model, the same 500 problems and the same week. The video argues that they are three different measurements, and that only one of them is something you can ship.

Two levers for small coding models

The video frames the literature as offering two levers for making a small model good at coding: reinforcement learning, and the agent you wrap around the model. Published numbers tend to mix the two together, which is why a single model can appear with several scores.

Three questions for any coding agent score

The video offers three questions to ask of any claim:

  • Was it one run or best of N? Best of N is a different product.
  • Which scaffold was used, and how much context? The harness is not neutral.
  • Who picked the winner: a verifier you can actually run, or an oracle that already knows the answer?

The third question, the video says, is where most of the inflation lies.

What DeepSWE did

The base model is Qwen3-32B. Training used reinforcement learning only, with no distillation from a stronger model, which matters because most open coding models are fine-tuned on traces from something bigger. The algorithm is a modified GRPO, trained on 4,500 real software tasks, with every repository that appears in the benchmark filtered out of the training set first. The run took 64 H100 GPUs for 6 days.

Decoding the three numbers

  • 42.2 is pass at one, averaged over 16 runs. That is one attempt, which is what a user actually gets.
  • 57.9 is best of eight.
  • 59 is best of 16, with a verifier choosing between the attempts.
  • 71 is also best of 16, but chosen by an oracle that already knows which patch passes. The video calls this an upper bound on the method, not a result you can deploy.

The scaffold changes the number

On the second question, the video points to Devstral Small in the same table, which scores 46.6 on one attempt. That is four points above DeepSWE's 42.2 from a model 8 billion parameters smaller. The difference is not obviously the model. One runs on OpenHands, while the other runs on R2E-Gym with a 64,000 token window and 100 steps. Change the harness and the number moves.

The comparison table has 10 rows, four different scaffolds and three different test-time settings, with some rows at one attempt and some at best of eight. Ranking them top to bottom produces a leaderboard that does not exist. The video notes the authors do not hide this, since the scaffold is a column in their own table, but almost nobody quoting the 59 reads that column.

Reinforcement learning versus expert trajectories

As a second road for comparison, the video cites SWE-Smith, which generated 50,000 training tasks across 128 repositories and fine-tuned on expert trajectories instead of using reinforcement learning. Its model scores 40.2 on one attempt, so the two training methods sit about two points apart, while turning on best of 16 moved the same DeepSWE model by nearly 17. The video concludes that the training method is not where the big number came from.

Key takeaways

  • A 32B open model trained with reinforcement learning and no distillation does real work on real repositories.
  • Three of the four published DeepSWE numbers are best-of-N results.
  • A verifier-chosen score (59) and an oracle-chosen score (71) are not the same thing; only the oracle score is a non-deployable upper bound.
  • The scaffold, context window and step limit can move a score by several points.
  • Best of 16 means 16 times the inference cost.
  • Training method differences were small compared with the effect of best-of-N sampling.

Try it yourself

The next time a coding model posts a number, find three things before you believe it: the scaffold, the N, and who chose the winner. If the model card does not say, the video suggests, that is your answer.

Chapters

  1. 0:00Introduction: RL vs. Scaffolds for Small Coding Models
  2. 0:35Decoding DeepSWE's Multiple Benchmark Scores
  3. 1:203 Questions for Evaluating Coding Agent Claims
  4. 2:00DeepSWE Training: 32B Model, GRPO & Zero Distillation
  5. 2:50Pass@1 vs. Best-of-16 (Verifiers vs. Oracles)
Full transcript(auto-generated, with timestamps)

Introduction: RL vs. Scaffolds for Small Coding Models

[0:00]I'm Ude Sonowane. If you want to make a small model good at coding, the literature gives you two levers, reinforcement learning and the agent you wrap around it. The published numbers mix them together and one open model reports three different scores on the same benchmark. Here is the thing to look at. Deepswe preview is a 32 billion parameter open model trained with reinforcement learning. On SWE verified, it scores 42.2. It also scores 59. It also scores 71. Same model, same 500 problems, same week. Those are not three attempts at one measurement. They are three different measurements and only one of them is something you can ship.

Decoding DeepSWE's Multiple Benchmark Scores

[0:35]Three questions for any coding agent score. One, one run or best of end because best of end is a different product. Two, which scaffold and how much context the harness is not neutral. Three, who picked the winner, a verifier you can actually run or an oracle that already knows the answer. The third one is where most of the inflation lies. First, what was actually done? The base is QN3-32B. The training is reinforcement learning only, no distillation from a stronger model, which matters because most open coding models are fine-tuned on traces from something bigger. The algorithm is a modified GRPO 4500 real software tasks with every repository that appears in the benchmark filtered out of training first. 64H100 6 days. Now the three numbers 42.2 is pass at one averaged over 16 runs that

3 Questions for Evaluating Coding Agent Claims

[1:21]Is one attempt which is what a user gets. 57.9 is best of eight. 59 is best of 16 with a verifier choosing between them. And 71 is also best of 16, but chosen by an oracle that already knows which patch passes. That last one is an upper bound on the method. It is not a result you can deploy. Question two, the scaffold. In the same table, the authors published Devstral small scores 46.6 on one attempt. That is four points above deepsw's 42.2 from a model 8 billion parameters smaller. The difference is not obviously the model. One runs on open hands, the other on R2E gym with a 64,000 token window and 100 steps. Change the harness and the number moves.

DeepSWE Training: 32B Model, GRPO & Zero Distillation

[2:00]This is the part that breaks the usual reading. That comparison table has 10 rows and four different scaffolds in it and three different test time settings. Some rows are one attempt, some are best of eight. Ranking them top to bottom produces a leaderboard that does not exist. The authors are not hiding this. The scaffold is a column in their own table. Almost nobody quoting the 59 reads that column. There is a second road and it is worth the comparison. SWESmith generated 50,000 training tasks across 128 repositories and fine-tuned on expert trajectories rather than using reinforcement learning. Its model scores 40.2 on one attempt. Reinforcement learning scored 42.2 points apart. Meanwhile, turning on best of 16 moved the same model by nearly 17. The training method is not where the big number came from. scored one run or best

Pass@1 vs. Best-of-16 (Verifiers vs. Oracles)

[2:50]Of n. Three of the four published numbers are best of n which scaffold four of them in one table. Who picked the winner? A verifier for 59 and Oracle for 71. So be excited that a 32 billion parameter open model trained with reinforcement learning and no distillation does real work on real repositories. Be skeptical of any single number quoted without its scaffold in its n. And if you do want the 59, budget for it. Best of 16 means 16 times the inference. Your turn. Next time a coding model posts a number, find three things before you believe it. The scaffold, the N, and who chose the winner. If the model card does not say, that is your answer. One model, three numbers.

More from Humanitarians AI Fellows

Humanitarians AI Lyrical Literacy Project