Draft · 16 Aug 2026

Qwen 3.6 vs 3.8

Same architecture, new weights. The only clean A/B in the field.

3.8 is clearly faster than 3.6 on both machines. It is not measurably more correct. Gemma4:26b remains the seat.

What this is

Head-to-head after the Qwen3.8:27b drop. Both 27Bs are dense (not MoE — that is the 35B-A3B sibling). Same qwen35 hybrid-attention stack, same quant, think off. Power rankings and the ruled-out list live on Local Lane.

Nothing here is UID-verified. It will move.

Speed

Desktop, cold load, n=4 each (three reps plus the 14 Aug baseline), num_ctx 16384:

Model mean tok/s range
qwen3.8:27b 44.6 43.5–45.7, sd 1.19
qwen3.6:27b 37.3 36.4–38.4, sd 0.98

+19.7% on the stock tag. No overlap: 3.8's slowest run beats 3.6's fastest. Welch t=9.53. That figure mixed a small weight gain with MTP already on at the wrong depth — see below.

z13, AC / performance, matched num_ctx 8192: 16.3 vs 13.0, +25%. Same direction on Vulkan / unified as on CUDA / discrete. 3.8 fits at 4096 (15.5) and 8192, and OOMs at 12288 / 16384 because of the CLIP projector. 3.6 runs at 16384 (12.0). Neither clears the ~20 tok/s interactive floor on the laptop. Machine specs are on Local Lane.

MTP — yes, this improves 3.8 on the 3090

The stock Ollama tag qwen3.8:27b already sets draft_num_predict 4. Embedded MTP tensors are in the GGUF. Ollama was speculating. A 3090 peaks at 2 draft tokens, not 4 — same shape as the llama.cpp community table. Measured 16 Aug 2026, same Q4_K_M blob, ctx 16384, temp 0.8, think off, 128-token gen, cold load, n=4, 100% GPU, 320 W:

Tag draft tok/s sd / range vs MTP off
qwen3.6:27b 37.5 0.55 · 36.5–37.8
qwen38-mtp-0 0 40.3 0.05 · 40.3–40.4 1.00
qwen3.8:27b stock 4 41.4 4.21 · 36.1–46.9 +3%
qwen38-mtp-4 4 42.5 3.68 · 37.8–46.5 +5%
qwen38-mtp-2 2 50.3 2.71 · 46.3–53.8 +25%

Split the old +20%: weights only are 40.3 vs 37.5 (~+8%). MTP at 2 is another +25% on 3.8. Prompt eval stayed ~90–106 tok/s. Load 10–13 s. vs 26b at 133 tok/s this is still 0.38×. Seat does not move. Interactive 3.8 does.

z13, same tags, ctx 8192 (16k OOMs), AC plugged in, governor was powersave/balanced — so these are conservative vs the 16.3 @ performance figure. n=3, 100% GPU:

Tag draft tok/s vs MTP off
qwen38-mtp-0 0 13.0 1.00
qwen38-mtp-4 (stock depth) 4 17.7 +36%
qwen38-mtp-2 2 21.4 +65%

Draft 2 is the z13 setting too. It is the first time 3.8 clears the ~20 tok/s “I’m watching this” floor on this laptop. Stock draft 4 is slower. Daily: ollama run qwen38-mtp-2 on both machines. Same layers as stock. Do not use the Ollama library :27b-mtp- tag — a same-weekend report had that path 2× slower.

Stub writeup — fix, gain, likely cause: Paper 1.44 · The Default Draft Is Too Deep.

Correctness — L2, same three fixtures

Pooled L2 field. 3.6 per-fixture rows use the E11 n=12 baseline; totals use the pooled /54.

Model Pass Rate
gemma4:26b / 31b 36/54 66.7%
qwen3.8:27b 34/54 63.0%
qwen3.6:27b 28/54 51.9%

34/54 vs 36/54 is p=0.84. 3.8 is the first Qwen in the Gemma band on this battery. That is not the same as beating 3.6 in a head-to-head you can defend.

3.8 vs 3.6 — the +3 cells

76/105 vs 73/105 is a slightly higher count. It is not a finding of improvement. Fisher p=0.76.

Pack 3.8 3.6 Read
Ladder, 3 fixtures 34/54 28/54 Most of the gap is strict-log-format (15/18 vs 2/12, p=0.0005)
strict-table-render 14/18 18/18 Replication failed; direction reversed. Zero contract violations from either model.
constant-and-callers 13/18 12/18 Mid-band fixture with headroom. p=1.000.
Comprehension probes 15/15 15/15 Saturated.
Total 76/105 73/105 p=0.761

The one significant contract win did not generalize. A run_command / verify difference (p=0.0455) died on retest (p=0.733). On bounded local-agent work these two revisions do not separate.

Vendor benches are a different claim and a different harness (think on, 256K, Claude Code harness on some rows). Qwen's card: SWE-bench Pro 53.5 → 61.7, Terminal-Bench 2.1 63.4 → 73.0, LiveCodeBench v6 83.9 → 90.3. Those numbers are not this ladder.

How they use tools

Pass rate is a wash. The traces are not. 3.6 is persistent after a patch miss (tool said the hunk did not apply; file unchanged). 3.8 can get a similar score by jumping in instead of reading first.

What qwen3.6 qwen3.8 Hold?
Reads the files first 13 read_file on the 5-edit fixture 2 across the same 18 cells Recorded. Same patch count (45/45). Cost nothing on that item.
Runs the checker 0/18 on the table fixture 5/18 (p=0.0455) Died on retest. 3.6 then verified 10/18 on the next fixture.
Recovers a failed patch 13/13 failed-call cells recovered 6/7; three cells barely engaged Direction only. p=0.104.
Works from a human prompt L1 7/18 vs 26b 14/18 Yes at p=0.04. 3.8 wants a numbered plan.

On the table fixture 3.6 went 18/18 without ever running the test; 3.8 went 14/18 while verifying in five cells. The gate stays the deterministic checker, not the trajectory.

The ceiling is still above the local field

csv-summarize-repair is the hard item: quoted currency, thousands separators, accounting negatives, empty amounts. Characteristic failure is a total that is wrong but plausible.

Frontier control, same three fixtures, n=1 Flash-class oneshot: logsum pass, limits pass, and this ceiling item pass. Single trial, not a ranking. Locals are bunched with each other. They are not bunched with frontier on that class of silent-wrong-total repair.

What this does not say