31 Downloads Updated 5 hours ago
ollama run mannix/qwen3.6-27b-a3b-coderx:vision-Q2_K_L
~27B params · 184 experts (72 dropped/layer) · A3B active · top-8 routing · MTP head + vision tower
A second, harder-targeted code prune of Qwen3.6-35B-A3B. Same 256 → 184 expert budget as the Qwen3.6-27B-A3B-Coder sibling, but a different selection and an added redistribution step: our saliency map picks the keep-set, a REAP-style per-layer floor (p=24) protects the tail, and the evicted experts are folded DERN-style into the survivors instead of being discarded. Same router, attention, norms, MTP head and vision tower as the base — no fine-tuning, no distillation.
CoderX is not a strict upgrade over Coder. It is the long-horizon sibling: much stronger on multi-step competitive-programming work, a tie on short multi-language completion. Pick by workload — see the table.
Full model card & methodology: ManniX-ITA/Qwen3.6-27B-A3B-CoderX-MTP-GGUF on Hugging Face.
The 256-expert teacher is profiled per-expert on a balanced corpus plus targeted LiveCodeBench and MultiPL-E/HumanEval pass-response classes. That saliency ranking chooses which 184 experts survive; a REAP-style floor (p=24) keeps each layer from being stripped below a minimum, which is what the plain saliency cut over-prunes. The 72 evicted experts per layer are then folded into the survivors (DERN-style, survivor-anchored) rather than dropped, so their weight is redistributed instead of lost.
Serving is top-8 — the base model’s native routing, no override needed.
| Benchmark | CoderX | Coder (184e) | Qwen3.6-35B-A3B (256e) |
|---|---|---|---|
| LiveCodeBench v6 (77q, 24k think / 48k total) | 0.727 ▲ | 0.610 | 0.610 |
| HumanEval+ (164) | 0.970 ▲ | 0.951 | 0.939 |
| MultiPL-E-100 (rs+java+js, 300 completions) | 0.887 | 0.890 | 0.910 |
▲ = beats both the 256e teacher and the Coder sibling. Every cell is greedy (temperature 0.0 / top_p 1.0 / top_k 0), one serving geometry per bench, pinned in the eval template and read back out of the server log — not chosen at launch time. All three models were run on the same binary, the same quant recipe and the same basis.
Read the MultiPL-E row carefully. A same-basis repeat of that bench — identical weights, quant, sampler and geometry — moved 1.0 pp on batch-scheduling nondeterminism alone. The 0.33 pp CoderX↔Coder gap sits inside that band and should be read as a tie; the 2.33 pp gap to the teacher sits outside it and is real. Per language (CoderX / Coder / 256e): Rust 0.85 / 0.81 / 0.84 · Java 0.89 / 0.90 / 0.93 · JS 0.92 / 0.96 / 0.96. CoderX takes Rust and gives up JavaScript.
Routing ships top-8, and that was measured, not assumed: MBPP-full 0.784 / 0.790 at top-8 against 0.732 / 0.730 at top-10, with repeat spreads ≤ 0.3 pp on both arms. MultiPL-E was inside noise either way. This is the opposite call from the Coder sibling, which bakes top-10.
Non-code axes (GPQA, MATH-500, IFEval, ARC) were not re-measured on this greedy basis and are deliberately not tabled here. A separate sampled cohort put CoderX ahead of the published Coder on IFEval, but that gap decomposed into thinking-termination, not instruction-following — different sampler, different basis, so it does not belong in the table above.
One ladder, 19 tiers. Every K- and I-quant here is built with an importance matrix (calibration_datav5.txt, 510 entries, 128 chunks — the same recipe as the Coder GGUFs); Q8_0 carries none by rule. Append vision- to any tag for the multimodal tower (e.g. :vision-Q4_K_M).
| Tier | Size | Notes |
|---|---|---|
Q8_0 |
27.9 GB | near-lossless, no imatrix by rule |
Q6_K_L |
21.8 GB | — |
Q6_K |
21.6 GB | eval reference tier — every number above |
Q5_K_L |
19.0 GB | — |
Q5_K_M |
18.7 GB | — |
Q5_K_S |
18.2 GB | — |
Q4_K_L |
16.4 GB | — |
Q4_K_M |
16.1 GB | the :latest default tag |
Q4_K_S |
15.1 GB | — |
IQ4_NL |
15.0 GB | — |
IQ4_XS |
14.2 GB | — |
Q3_K_L |
13.7 GB | — |
Q3_K_XL |
13.2 GB | — |
Q3_K_M |
12.7 GB | — |
IQ3_M |
11.7 GB | — |
Q3_K_S |
11.5 GB | — |
Q2_K_L |
10.4 GB | — |
IQ2_M |
9.1 GB | — |
IQ2_XS |
8.2 GB | smallest shipped |
Sizes are the actual on-disk GGUF bytes, so the ladder is ordered by size rather than by name — Q3_K_L really is larger than Q3_K_XL on this architecture.
ollama run mannix/qwen3.6-27b-a3b-coderx # :latest = Q4_K_M, 16.1 GB
ollama run mannix/qwen3.6-27b-a3b-coderx:Q6_K # the tier every number above was measured on
ollama run mannix/qwen3.6-27b-a3b-coderx:vision-Q4_K_M # + vision tower (multimodal)
Every tag ships these sampling defaults baked in, matching the Coder release: temperature 1, top_p 0.95, top_k 20, min_p 0, repeat_penalty 1, presence_penalty 1.5, num_ctx 32768, with RENDERER qwen3.5 / PARSER qwen3.5.
The MTP block ships inside every GGUF, and every tag carries PARAMETER draft_num_predict 3, so ollama runs --spec-type draft-mtp --spec-draft-n-max 3 --spec-draft-backend-sampling without you configuring anything.
n=3 is a deliberate choice, not a default. On an RTX 5080 (Blackwell): 189.65 tok/s baseline → 251.94 at n=3 (+33%), falling to 145.37 at n=8 — worse than not speculating at all. On a 3090 the same grid peaks at n=8 instead. The optimum is hardware-dependent; n=3 is near-peak on both, so it is the safe shipped default. Raise it yourself if you’re on Ampere and measuring. Acceptance at n=3: mean accepted length 3.16, per-position (0.841, 0.730, 0.587).
num_ctx above the baked-in 32768.projection_dim 2048, matching this model’s embedding_length 2048).imatrix.dat is archived in the GGUF repo — every tier is reproducible and auditable.Apache-2.0 · research checkpoint.