AgentionAI — Signal 3.8 27B

Signal 3.8 27B

This is Qwen3.8-27B that gets to the answer faster.

Recommended settings Temperature 0.6, top-p 0.95, top-k 20, min-p 0.05, presence_penalty 1.0, KV cache q8_0 or f16. Keep min-p and presence_penalty on: without them, long generations can run into repetition on some draws (a 4-bit value cache makes that deterministic). If you enable the MTP draft head on recent mainline llama.cpp, also pass --no-spec-draft-backend-sampling — the default backend draft sampling does not apply your sampler to accepted draft tokens, which can let repetition run away regardless of the settings above.

The tiers in this repository were rebuilt on 2026-09-13. The first release's tiers could, rarely, repeat an answer line when sampling without the draft head; the rebuilt tiers showed no loop or cap in 55 traces under the same conditions. If you downloaded before that date, re-download.

AgentionAI Signal is a minimally invasive fine-tune of Qwen3.8-27B designed for lower generation latency and better token efficiency. On our held-out general-prompt evaluation, Signal produces 25% fewer answer tokens and uses 41% fewer thinking tokens, while matching or improving the measured answer quality of the base model.

The result is faster end-to-end generation. On 40 chat prompts with the draft head on, same hardware and sampling, Signal finished the batch in 19% less total wall time and 28% less median wall time than the untouched Qwen3.8-27B, from fewer answer tokens and higher draft acceptance.

Signal gets there by being more direct rather than by truncating answers. It removes unnecessary preambles, excessive formatting, sign-offs, and explanatory narration while preserving the substance of the response. In thinking mode, it keeps the useful reasoning steps while spending fewer tokens describing the process.

Signal is trained by self-distillation: on Qwen3.8-27B's own answers, generated under an instruction to be direct that the released model no longer needs. No external data and no other model's outputs went into it, which is why it keeps the base model's knowledge and voice intact.

It is a drop-in GGUF replacement for llama.cpp setups that already run Qwen3.8-27B.

What changes, measured

We evaluated Signal against the untouched Qwen3.8-27B, both at Q8_0 in llama.cpp, using the same server, sampling settings and prompts: 60 general and 40 coding prompts with thinking off, 30 and 20 of them with thinking on, plus GSM8K. All prompts were held out from tuning. The numbers are for the tiers rebuilt on 2026-09-13.

base Q8_0 Signal change
general answers, median tokens 243 183 -25%
answers opening with a preamble ("Sure!", "Great question") 13% 3% -77%
answers with markdown headers 47% 37% -21%
answers with bold 85% 75% -12%
coding answers, median tokens 159 153 -4%
coding answers, p90 tokens 1026 963 -6%

Thinking mode, same prompts with reasoning on:

base Q8_0 Signal change
reasoning tokens, general prompts, median 153 91 -41%
reasoning tokens, coding prompts, median 225 158 -30%
reasoning tokens, GSM8K, median 119 90 -24%

Quality, exact match on GSM8K:

base Q8_0 Signal
thinking off, 60 problems 98.3% 100%
thinking on, 40 problems 92.5% 95.0%

Signal was also run on 100 problems in each mode: 98.0% with thinking off, 96.0% with thinking on. The table uses the problems the base model was run on.

Shorter is not cheaper: no answer in the 150-prompt style set was cut off early (0 answers ending on a header or a colon, 0 unclosed code blocks). With reasoning on at a 6,000-token budget, 6 of Signal's 250 traces ran to the budget against 3 of the base model's 90, the same rate. On a separate loop check of 55 thinking-mode traces (math, GSM8K, coding and general prompts, Q5_K_M on mainline llama.cpp with and without the draft head, q8_0 KV cache) no trace looped or hit the cap.

Faster with speculative decoding

Qwen3.8-27B carries a built-in multi-token-prediction draft head. Signal's answers are more predictable, so the drafter agrees with the model more often:

Draft acceptance and decode speed with --spec-type draft-mtp, both models Q8_0 on the same machine (Strix Halo, Vulkan), 200-token greedy runs for the fixed-draft rows:

prompt / draft length base acceptance Signal acceptance decode speed vs base
prose, draft 3 39% 45% +9%
prose, draft 4 35% 41% +14%
structured output (JSON), draft 3 72% 94% +20%
structured output (JSON), draft 4 66% 87% +24%
chat prompts, sampled at 0.7, adaptive draft ≤4 (40 prompts) 57% 56%

Combined with the shorter answers, the measured batch above finishes in about four fifths of the total wall time (and under three quarters of the median) of the base model on the same hardware, with the draft head on.

Why shorter is not worse

Chain-of-thought length is not mostly a function of problem difficulty. A recent study of reasoning models (Lotfi, Kirichenko, Li and Liu, Quantized Reasoning Models Think They Need to Think Longer, but They Do Not, arXiv:2606.00206) finds that a small set of hesitation and branching tokens ("Wait", "But", "Alternatively", "maybe") drives most of the excess: they are sampled at the positions where the model is least certain, each one opens a new line of reasoning, and in up to half of the failures the model had already reached the right answer before branching away from it. Suppressing those fifty tokens at decode time cut reasoning length by 12 to 23 percent across five models without hurting accuracy.

Signal reaches the same place from the opposite side. The penalty method tells the model what not to say, with a fixed bias on a fixed word list at every step. Signal was taught by example: it learned from the base model's own answers where it went straight to the point, so nothing is banned and nothing is penalised at decode time. The model still branches where a branch does work; it has simply stopped preferring the detour where the direct continuation was as good.

Using it as an agent

Signal works as a coding/agent model, and the terseness is an asset there: it spends fewer tokens per step, so tool-driven loops run faster and cost less. On Terminal-Bench 2.0 (real fix-a-repo and sysadmin tasks scored by each task's own test suite), Signal solved 8 of 10 tasks at AP-Q4_K_XL, finishing most shared tasks faster than the base model. Single trial per task, so treat that as "handles real agentic work and is terser/faster," not a precise pass rate. It is also strong on long-input, short-output work — reviewing or auditing a large codebase, where it reads the whole context and returns focused findings instead of a wall of prose.

One limitation to design around. Signal is tuned to be concise, so it is not the right tool for a single very long generation — asking it to emit one file of tens of thousands of tokens in one shot, where it can lapse into repeating itself. Two easy mitigations, both good agent practice anyway:

  • Structure work as multiple manageable files rather than one giant file. Each step stays in the length range where Signal is at its best.
  • For a genuinely large single artifact, use the base model (or Signal with a capped output length and an explicit "write it out in full" instruction).

Keeping presence_penalty 1.0 and min-p 0.05 (above) also suppresses the repetition on longer outputs; raising presence_penalty much higher is not recommended, as it can degrade very long generations.

Files

Nine tiers from IQ3_XXS to Q8_0, one folder each. AP = Agention Precision: tier names refer to the base ftype, the per-tensor types are chosen for accuracy per gigabyte using Agention Precision recipes. All built from Signal's BF16 (rebuilt 2026-09-13) using our custom imatrix; KLD and top-1 are against that BF16 on a held-out 2026 corpus and wikitext-2, -c 2048. VRAM is the file size: this is a dense model, nothing offloads.

tier size eff. bpw KLD held-out top-1 KLD wikitext what
Q8_0 27.05 GiB 8.26 0.0040 94.7% 0.0046 reference quality; every number below was measured on this file
AP-Q6_K 20.89 GiB 6.57 0.0055 94.5% 0.0075 Q6_K with imatrix
AP-Q5_K_M 18.19 GiB 5.72 0.0081 94.0% 0.0093 Q5_K_M with imatrix
AP-Q4_K_XL 16.35 GiB 5.14 0.0124 93.3% 0.0148 precision tier — matched unsloth's UD-Q4_K_XL on the base model at the same size
AP-Q4_K_M 15.83 GiB 4.98 0.0184 92.3% 0.0218 fast tier — +20% prefill over UD-Q4_K_M on the base model at the same size, some quality traded
AP-IQ4_XS 13.27 GiB 4.17 0.0287 90.9% 0.0327 UD-IQ4_XS per-tensor map with our imatrix — same size
AP-Q3_K_XL 14.05 GiB 4.41 0.0595 88.1% 0.0562 3-bit body, Q6_K output + Q5_K embeddings — the 16 GB slot with headroom
AP-IQ3_S 12.38 GiB 3.89 0.0661 87.9% 0.0655 i-quant 3-bit body, protected head — the value pick under 4-bit
AP-IQ3_XXS 11.39 GiB 3.58 0.1003 85.7% 0.1008 smallest tier, most aggressive; quality traded for a long context in 16 GB

Which one: AP-Q4_K_XL if 16.5 GiB fits, AP-IQ4_XS for the 13 GiB slot, AP-Q4_K_M when prefill speed matters more than the last bit of quality, AP-Q6_K or Q8_0 when memory is no object. For a 16 GB card, the three-bit tiers leave room for a long context plus the MTP draft head or the vision projector: AP-IQ3_XXS (11.4 GiB) fits 100K+ context with extras, AP-IQ3_S (12.4 GiB) is the value pick with a protected head, and AP-Q3_K_XL (14.1 GiB) trades context room for a little more margin.

Running

Thinking on and off both work; the chat template is the original Qwen3.8 template.

Sampling: temperature 0.6, top-p 0.95, top-k 20, min-p 0.05, presence_penalty 1.0, as in the commands below. The min-p cuts the low-probability tail that reasoning runaways are sampled from: on five prompts that had run away at temperature 0.7 without min-p, Signal answered 14 of 15 draws at this setting within an 8k budget, the base model 9 of 15 on the same prompts and settings. presence_penalty 1.0 further suppresses repetition on long outputs; keep it around 1.0 — much higher can degrade very long generations. Use sampling rather than greedy decoding (we saw a single loop at temperature 0), and do not raise the temperature to 1.0: on the smallest tier (AP-IQ3_XXS, 40 level-5 MATH-500 problems) 1.0 doubled the 90th-percentile reasoning length to the token cap and cost 12 points of accuracy against 0.7.

KV cache: keep the cache at q8_0 or f16 for both K and V. A 4-bit value cache (-ctv q4_1 or q4_0) makes long reasoning traces degenerate into a repeated phrase; we reproduced a user's loop report with exactly that setting, and the same prompt is clean at q8_0.

llama.cpp
llama-server -hf agentionai/Signal-3.8-27B-GGUF:AP-Q4_K_XL \
  --jinja -ngl 999 -fa on -c 65536 -ctk q8_0 -ctv q8_0 \
  --temp 0.6 --top-p 0.95 --top-k 20 --min-p 0.05 --presence-penalty 1.0

Add the built-in draft head for the throughput above (needs a build with --spec-type draft-mtp):

  --spec-type draft-mtp --spec-draft-n-max 4 --no-spec-draft-backend-sampling

On recent mainline llama.cpp, pass --no-spec-draft-backend-sampling whenever you enable the draft head. The default offloads draft sampling to the backend, which does not apply min-p (or the rest of the sampler) to accepted draft tokens — so a repetition can run away regardless of your sampling settings. This flag routes draft verification back through the sampler and keeps the MTP speedup. Builds without the flag are unaffected (they never had backend draft sampling).

Thinking is on by default. To turn it off per request, send "chat_template_kwargs": {"enable_thinking": false} with the chat completion.

vLLM (NVIDIA Blackwell)

A community NVFP4 (W4A16) build for vLLM, MTP included, is at Shockem/Signal-3.8-27B-NVFP4: 2x RTX 5060 Ti 16 GB, TP=2, 200k context, FP8 KV, ~50-70 tok/s, total solution wall time roughly half of the stock model. The BF16 source for your own quants is agentionai/Signal-3.8-27B.

Ollama / LM Studio

Import the GGUF as any Qwen3.8-27B file. Use the sampling settings above; the template is embedded in the file.

Method and tooling

Signal is trained by self-distillation on the base model's own answers; no external data. The tiers are built with our own Rust tooling, agention-infer: gguf-pack for byte-exact, content-addressed tier builds and validation, gguf-info for inspection, and a per-tensor distortion solver behind the Agention Precision recipes. Every tier is measured against Signal's own BF16 on a held-out 2026 corpus before it ships.

Vision

Signal keeps Qwen3.8-27B's image input. The vision encoder and projector are untouched by the tune, so the base model's own mmproj-BF16.gguf is at the repository root, 0.87 GiB. Download it alongside any tier:

Support AgentionAI

Signal3.8 is released freely. If it saves you compute or makes Qwen more useful, you can sponsor continued tuning, quantization and benchmarking on GitHub.

Downloads last month
17,069
GGUF
Model size
27B params
Architecture
qwen35
Hardware compatibility
Log In to add your hardware

3-bit

4-bit

5-bit

6-bit

8-bit

Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for agentionai/Signal-3.8-27B-GGUF

Base model

Qwen/Qwen3.8-27B
Finetuned
(350)
this model

Paper for agentionai/Signal-3.8-27B-GGUF