Views
No views yet
v2.2.1 — the reasoning abort is fixed in every tier (29 Aug 2026)
All tiers here are rebuilt from v2.2.1. Served with reasoning enabled, v2.2 could end its turn inside its own chain of thought instead of answering: its stop gate had been trained on sequences where the chat template opened a<think>block that the training data never closed, so the most heavily weighted signal in the set landed on a terminator inside the thinking block.v2.2.1 replaces the 64shared_expert_gatetensors — 0.66 MB, nothing else changed — with a gate trained on real chain-of-thought traces from the parent, where the block is closed by the teacher's own words. On a 24-prompt structural probe with reasoning on, turns that ended without ever emitting</think>fell from 21/24 to 3/24. Zeroing the gate entirely scores 11/24, so the new gate is doing real work rather than merely undoing the damage.What this does not fix. Measured like-for-like against v2.2 with reasoning off on 36 held-out counted prompts: turns that stop cleanly 32/36 → 34/36, distinct-item exact counts 20/36 → 24/36, mean overrun 1.69× → 1.14×. Mean repeated-4-gram is unchanged at 0.141, still above our 0.05 target. Long lists of 45+ items remain weak (4/12 → 5/12). Take v2.2.1 for the reasoning abort, not for the counting.Tiers
file size notes Q8_028.7 GB reference quality Q6_K23.1 GB DQ5_K_XL21.7 GB DQ recipe: q8_0 embeddings/head, q6_k attention and shared expert DQ4_K_XL20.1 GB DQ recipe Q4_K_M17.4 GB stock allocation DQ3_K_XL14.7 GB small, more attention bits than Q3_K_M Q3_K_M13.9 GB new — small, stock allocation, no DQ recipe Q8_0,Q6_K,Q4_K_M,DQ5_K_XLandDQ4_K_XLreproduce the v2.2 tensor allocation exactly, tensor for tensor.DQ3_K_XLdoes not: on this llama.cpp the 64 expert down-projections fall back toq5_1where the v2.2 build emittedq5_0, which is chosen by the quantiser for 192-wide rows and is not settable by a flag. It is a q3_k_l build rather than a byte-match of the old file.Q3_K_Mis new, added so there is a small tier without the DQ recipe.Theshared_expert_gateis stored at f32 in every tier, so the fix is carried at full precision regardless of the quantisation level.
shared_expert_gate tensors now
carry a trained stop signal (0.33M params changed, nothing else). Measured
against v2.1 on held-out prompts: list termination 18/36 -> 27/36, worst-window
list repetition 0.237 -> 0.048, conversation turns terminating 27/48 -> 41/48.
One honest regression: exact item counts dropped (8/36 -> 2/36) - it ends lists
reliably but not at the requested count; pin the v2.1 files (git history of this
repo) if exact-N lists are your use case. Full numbers and the root-cause story
are on the model card.d4b45cea of this repo if you need a v2.1 file.| file | size | fits | notes |
|---|---|---|---|
Q8_0 | 26.7 GB | 32 GB, or 24 GB with expert offload | best quality in practice |
Q6_K | 22.1 GB | 24 GB | flat quant |
DQ5_K_XL | 20.2 GB | 24 GB | dynamic, close to Q6 quality |
DQ4_K_XL | 18.8 GB | 20 to 24 GB | dynamic, the size and quality sweet spot |
Q4_K_M | 16.2 GB | 16 to 20 GB | flat quant, smallest standard build |
DQ3_K_XL | 13.9 GB | 15 to 16 GB, no offload needed | dynamic, smallest usable tier |
mmproj-qwen38.gguf | 0.9 GB | adds about 1 GB | optional vision projector, see below |
q5_1 for them at 6 bits per weight no matter which tier you ask for. That is why a naive Q3 build of this model lands heavier than Q4_K_M. The DQ3 build accounts for it.llama-server -m Whittle-MoE-27B-A18B-v2.2-DQ4_K_XL.gguf -ngl 99 -c 8192 -fa on --jinjallama-server -m <file>.gguf -ngl 99 --n-cpu-moe 32 -c 8192 -fa on --jinja--n-cpu-moe N moves the experts of N layers (of 64) out to RAM while attention, the GDN layers, the routers and the shared experts stay on the GPU. Raise N until it fits: 64 puts every routed expert in RAM and needs only about 5 GB of VRAM. Each token touches just 16 of 64 slivers, so it costs speed, not sanity. Older builds without that flag can use -ot '\.ffn_(gate|up|down)_exps\.=CPU'.ollama run Whittle/Qwen3.8-Whittle-MoE-27B-A17.8Bmmproj-qwen38.gguf is the parent's vision tower converted for llama.cpp:llama-server -m <file>.gguf --mmproj mmproj-qwen38.gguf -ngl 99 -c 8192 -fa on --jinja1curl -sLO https://huggingface.co/logic65/Qwen3.8-Whittle-MoE-27B-A17.8B-GGUF/resolve/main/loop_test.py
2python3 loop_test.py http://localhost:8080
3# ollama: python3 loop_test.py http://localhost:11434 Whittle/Qwen3.8-Whittle-MoE-27B-A17.8B
4# routers: pass the model name as the second argument or the server returns 400loop_test_results.json so you can inspect individual failures instead of trusting a summary. Standard library only.