FP8 build of Qwen3.8-27B-MLA, the training-free Multi-head Latent Attention (MLA) retrofit of Qwen3.8-27B: 31.5 GB instead of 55.7 GB, with the same 2Γ smaller KV cache. On SWE-bench Verified it resolved 0.403 over 3 runs, against 0.395 for the bf16 base model and 0.399 for Qwen's own FP8 build.
Serving: this checkpoint uses a custom attention architecture. It runs in vLLM with the qwen-mla-vllm plugin (experimental; see Serving). It does not load in
transformersor stock vLLM. Includes the base model's vision tower and MTP head.
| Qwen3.8-27B (bf16) | Qwen/Qwen3.8-27B-FP8 | Qwen3.8-27B-MLA (bf16) | Qwen3.8-27B-MLA-FP8 | |
|---|---|---|---|---|
| Weights | 55.6 GB | 30.9 GB | 55.7 GB | 31.5 GB |
| KV cache per token, bf16 (TP=1) | 64 KiB | 64 KiB | 32 KiB | 32 KiB |
| SWE-bench Verified (runs) | 0.395 (4) | 0.399 (3) | 0.421 (3) | 0.403 (3) |
| vs bf16 base (paired, 95% CI) | β | +0.5 [β1.5, +2.5] | +2.6 [+0.8, +4.5] | +0.9 [β1.1, +2.9] |
| Output tokens on SWE-bench | 1.00Γ | 1.00Γ | 0.88Γ | 0.86Γ |
All four include the vision tower and the MTP head.
pip install "git+https://github.com/sootaugur/qwen-mla-vllm" # installs vllm==0.27.1
vllm serve TelperionAI/Qwen3.8-27B-MLA-FP8 --reasoning-parser qwen3 \
--speculative-config '{"method": "mtp", "num_speculative_tokens": 3}'
--speculative-config turns on MTP speculative decoding (optional*). Images work as with the
base model; for text-only serving add --limit-mm-per-prompt '{"image": 0, "video": 0}'.
The plugin is experimental. This version has been verified on RTX PRO 6000 (Blackwell) at
TP=1 and TP=2, with vLLM 0.27.1 only, and has seen little real-world use so far. It needs a GPU
that vLLM runs block-FP8 on (Hopper or Blackwell; only Blackwell has been verified). There vLLM selects
CutlassFp8BlockScaledMMKernel. The first start JIT-compiles the fast decode kernel, which needs
nvcc and ninja. Without them the plugin falls back to Triton kernels: correct, but slower.
See the plugin README for requirements, configuration and verification.
Speed (MLA-FP8, TP=1, RTX PRO 6000, default FP8 KV): 43 / 225 tok/s at 1 / 8 concurrent requests without MTP, 54 / 294 with MTP k=3*. A full benchmark has not been run yet. For bf16 numbers, see the parent model.
*MTP measurements are from one GPU type (RTX PRO 6000, very high memory bandwidth). The benefit depends on hardware: where weight reads dominate decode (lower-bandwidth GPUs) it is likely larger. With an FP8 KV cache on that GPU, k=3 gave 1.6x (bf16 build) and 1.3x (FP8 build) at 1 concurrent request; measure on your own hardware.
The model is Qwen3.8-27B-MLA: see its card for the method, calibration data and full results. Only the storage format of the weights changes here.
kv_a_proj, k_up_proj, v_up_proj, k_rope_proj,
and the kv_b_proj the plugin builds from them at load time), the linear-attention
in_proj_a / in_proj_b and norms, the embeddings and lm_head, the vision tower and the MTP head
(both the base model's, unchanged).mla_kv_cache_scales); --kv-cache-dtype bfloat16 switches to bf16. The SWE-bench results
below were measured with a bf16 KV cache; FP8 KV measured within run-to-run noise (see The family).How it was built. The retrofit differs from Qwen3.8-27B only in its 16 full-attention layers, so it was grafted onto TelperionAI/Qwen3.8-27B-FP8-block-AWQ, an FP8 block build of the base model with AWQ smoothing of the MLPs:
o_proj, embeddings and norms: taken unchanged from that build.
The AWQ smoothing touches only the MLP mappings, not the attention inputs, so no attention
tensor needed rescaling.q_proj (a fixed permutation of the base q_proj under partial RoPE): re-quantized from the
retrofit's bf16 weights with the recipe's own calibration-free FP8 step (block 128Γ128, amax/448).
Applied to the base weights, that step reproduces the published FP8 q_proj / k_proj / o_proj
bit for bit.All comparisons are paired: same prompts, same harness, same serving settings, against the same bf16 base-model runs as the parent card.
evalscope, BM25-retrieved context (princeton-nlp/SWE-bench_bm25_40K), thinking on,
temperature 1.0, 500 instances.
| runs | resolved | vs bf16 base (paired, 95% CI) | output tokens | |
|---|---|---|---|---|
| Qwen3.8-27B (bf16) | 4 | 0.395 | β | 1.00Γ |
| Qwen/Qwen3.8-27B-FP8 | 3 | 0.399 | +0.5 [β1.5, +2.5] | 1.00Γ |
| Qwen3.8-27B-MLA (bf16) | 3 | 0.421 | +2.6 [+0.8, +4.5] | 0.88Γ |
| Qwen3.8-27B-MLA-FP8 | 3 | 0.403 (206 / 202 / 197) | +0.9 [β1.1, +2.9] | 0.86Γ |
Against its own bf16 parent (paired, 3 runs each), the FP8 build differs by β1.7 [β3.8, +0.3] points, which is not significant. Results cover SWE-bench Verified only. HELMET was not re-run on the FP8 build. Vision spot check (100 ChartQA / 100 DocVQA items, with MTP on): 91.0 / 96.8; see the parent's card for the paired vision comparison.
Teacher-forced NLL on text the bf16 base model generated, excess over the bf16 base (lower is closer):
| agentic coding traces | SWE-bench Verified conversations | |
|---|---|---|
| Qwen/Qwen3.8-27B-FP8 | +0.003 | +0.006 |
| Qwen3.8-27B-MLA (bf16) | +0.019 | +0.023 |
| Qwen3.8-27B-MLA-FP8 | +0.022 | +0.028 |
FP8 adds about the same error to the retrofit (+0.004 to +0.006) as it adds to the base model. The two sources of error simply add.
Generation check: in thinking mode on SWE-bench prompts, all generations stopped normally, patches were present, and lengths were within sampling variation of the base model.
Identical to the parent; see its card. This model is meant for single-GPU (TP=1) serving.
Two retrofits of Qwen3.8-27B, each in four weight formats. All keep the vision tower and MTP head, and all ship calibrated FP8 KV-cache scales.
| weights | MLA (1 GPU) | GLA-g2 (2 GPUs) | size | KV cache default |
|---|---|---|---|---|
| bf16 | Qwen3.8-27B-MLA | Qwen3.8-27B-GLA-g2 | 55.7 GB | bf16 (FP8 opt-in) |
| FP8 | -MLA-FP8 | -GLA-g2-FP8 | 31.5 GB | FP8 |
| INT4 (AWQ+GPTQ) | -MLA-INT4 | -GLA-g2-INT4 | 22.9 GB | FP8 |
| EXL3 4.0 bpw | -MLA-EXL3-4.0bpw | -GLA-g2-EXL3-4.0bpw | 17.2 GB | FP8 |
Fidelity to the bf16 base model, teacher-forced on 562k held-out positions: top-1 disagreement where the base model is confident (top-1 vs top-2 logprob margin 2-5; lower is closer). Quantized builds measured with their default FP8 KV cache.
| bf16 | FP8 | INT4 | EXL3 4.0 bpw | |
|---|---|---|---|---|
| base model's own quantized builds | - | 0.76% | 0.59% | 0.59% |
| MLA | 1.09% | 1.15% | 1.26% | 1.56% |
| GLA-g2 | 2.47% | 3.16% | 2.86% | 3.62% |
FP8 KV on the bf16 retrofits measured identical (1.09% / 2.47%); its effect is within run-to-run noise.
Capacity, full 262k-token sequences that fit at once (RTX PRO 6000, 96 GB, default settings with vision on, no MTP). Base model, bf16: 1.9 on one GPU.
| bf16 | bf16 + FP8 KV | FP8 | INT4 | EXL3 | |
|---|---|---|---|---|---|
| MLA, 1 GPU | 3.7 | 7.3 | 12.7 | 14.5 | 15.6 |
| GLA-g2, 2 GPUs (TP=2) | 13.7 | 26.9 | 31.7 | 33.9 | 34.9 |
Released under Apache-2.0, the license of the base model. Derived from Qwen/Qwen3.8-27B by the Qwen team. This is an independent project, not affiliated with or endorsed by the Qwen team.
@misc{telperion2026qwen38mlafp8,
title = {Qwen3.8-27B-MLA-FP8: FP8 build of a training-free latent attention retrofit},
author = {TelperionAI},
year = {2026},
url = {https://huggingface.co/TelperionAI/Qwen3.8-27B-MLA-FP8}
}
FP8 build of Qwen3.8-27B-MLA, the training-free Multi-head Latent Attention (MLA) retrofit of Qwen3.8-27B: 31.5 GB instead of 55.7 GB, with the same 2Γ smaller KV cache. On SWE-bench Verified it resolved 0.403 over 3 runs, against 0.395 for the bf16 base model and 0.399 for Qwen's own FP8 build.
Serving: this checkpoint uses a custom attention architecture. It runs in vLLM with the qwen-mla-vllm plugin (experimental; see Serving). It does not load in
transformersor stock vLLM. Includes the base model's vision tower and MTP head.
| Qwen3.8-27B (bf16) | Qwen/Qwen3.8-27B-FP8 | Qwen3.8-27B-MLA (bf16) | Qwen3.8-27B-MLA-FP8 | |
|---|---|---|---|---|
| Weights | 55.6 GB | 30.9 GB | 55.7 GB | 31.5 GB |
| KV cache per token, bf16 (TP=1) | 64 KiB | 64 KiB | 32 KiB | 32 KiB |
| SWE-bench Verified (runs) | 0.395 (4) | 0.399 (3) | 0.421 (3) | 0.403 (3) |
| vs bf16 base (paired, 95% CI) | β | +0.5 [β1.5, +2.5] | +2.6 [+0.8, +4.5] | +0.9 [β1.1, +2.9] |
| Output tokens on SWE-bench | 1.00Γ | 1.00Γ | 0.88Γ | 0.86Γ |
All four include the vision tower and the MTP head.
pip install "git+https://github.com/sootaugur/qwen-mla-vllm" # installs vllm==0.27.1
vllm serve TelperionAI/Qwen3.8-27B-MLA-FP8 --reasoning-parser qwen3 \
--speculative-config '{"method": "mtp", "num_speculative_tokens": 3}'
--speculative-config turns on MTP speculative decoding (optional*). Images work as with the
base model; for text-only serving add --limit-mm-per-prompt '{"image": 0, "video": 0}'.
The plugin is experimental. This version has been verified on RTX PRO 6000 (Blackwell) at
TP=1 and TP=2, with vLLM 0.27.1 only, and has seen little real-world use so far. It needs a GPU
that vLLM runs block-FP8 on (Hopper or Blackwell; only Blackwell has been verified). There vLLM selects
CutlassFp8BlockScaledMMKernel. The first start JIT-compiles the fast decode kernel, which needs
nvcc and ninja. Without them the plugin falls back to Triton kernels: correct, but slower.
See the plugin README for requirements, configuration and verification.
Speed (MLA-FP8, TP=1, RTX PRO 6000, default FP8 KV): 43 / 225 tok/s at 1 / 8 concurrent requests without MTP, 54 / 294 with MTP k=3*. A full benchmark has not been run yet. For bf16 numbers, see the parent model.
*MTP measurements are from one GPU type (RTX PRO 6000, very high memory bandwidth). The benefit depends on hardware: where weight reads dominate decode (lower-bandwidth GPUs) it is likely larger. With an FP8 KV cache on that GPU, k=3 gave 1.6x (bf16 build) and 1.3x (FP8 build) at 1 concurrent request; measure on your own hardware.
The model is Qwen3.8-27B-MLA: see its card for the method, calibration data and full results. Only the storage format of the weights changes here.
kv_a_proj, k_up_proj, v_up_proj, k_rope_proj,
and the kv_b_proj the plugin builds from them at load time), the linear-attention
in_proj_a / in_proj_b and norms, the embeddings and lm_head, the vision tower and the MTP head
(both the base model's, unchanged).mla_kv_cache_scales); --kv-cache-dtype bfloat16 switches to bf16. The SWE-bench results
below were measured with a bf16 KV cache; FP8 KV measured within run-to-run noise (see The family).How it was built. The retrofit differs from Qwen3.8-27B only in its 16 full-attention layers, so it was grafted onto TelperionAI/Qwen3.8-27B-FP8-block-AWQ, an FP8 block build of the base model with AWQ smoothing of the MLPs:
o_proj, embeddings and norms: taken unchanged from that build.
The AWQ smoothing touches only the MLP mappings, not the attention inputs, so no attention
tensor needed rescaling.q_proj (a fixed permutation of the base q_proj under partial RoPE): re-quantized from the
retrofit's bf16 weights with the recipe's own calibration-free FP8 step (block 128Γ128, amax/448).
Applied to the base weights, that step reproduces the published FP8 q_proj / k_proj / o_proj
bit for bit.All comparisons are paired: same prompts, same harness, same serving settings, against the same bf16 base-model runs as the parent card.
evalscope, BM25-retrieved context (princeton-nlp/SWE-bench_bm25_40K), thinking on,
temperature 1.0, 500 instances.
| runs | resolved | vs bf16 base (paired, 95% CI) | output tokens | |
|---|---|---|---|---|
| Qwen3.8-27B (bf16) | 4 | 0.395 | β | 1.00Γ |
| Qwen/Qwen3.8-27B-FP8 | 3 | 0.399 | +0.5 [β1.5, +2.5] | 1.00Γ |
| Qwen3.8-27B-MLA (bf16) | 3 | 0.421 | +2.6 [+0.8, +4.5] | 0.88Γ |
| Qwen3.8-27B-MLA-FP8 | 3 | 0.403 (206 / 202 / 197) | +0.9 [β1.1, +2.9] | 0.86Γ |
Against its own bf16 parent (paired, 3 runs each), the FP8 build differs by β1.7 [β3.8, +0.3] points, which is not significant. Results cover SWE-bench Verified only. HELMET was not re-run on the FP8 build. Vision spot check (100 ChartQA / 100 DocVQA items, with MTP on): 91.0 / 96.8; see the parent's card for the paired vision comparison.
Teacher-forced NLL on text the bf16 base model generated, excess over the bf16 base (lower is closer):
| agentic coding traces | SWE-bench Verified conversations | |
|---|---|---|
| Qwen/Qwen3.8-27B-FP8 | +0.003 | +0.006 |
| Qwen3.8-27B-MLA (bf16) | +0.019 | +0.023 |
| Qwen3.8-27B-MLA-FP8 | +0.022 | +0.028 |
FP8 adds about the same error to the retrofit (+0.004 to +0.006) as it adds to the base model. The two sources of error simply add.
Generation check: in thinking mode on SWE-bench prompts, all generations stopped normally, patches were present, and lengths were within sampling variation of the base model.
Identical to the parent; see its card. This model is meant for single-GPU (TP=1) serving.
Two retrofits of Qwen3.8-27B, each in four weight formats. All keep the vision tower and MTP head, and all ship calibrated FP8 KV-cache scales.
| weights | MLA (1 GPU) | GLA-g2 (2 GPUs) | size | KV cache default |
|---|---|---|---|---|
| bf16 | Qwen3.8-27B-MLA | Qwen3.8-27B-GLA-g2 | 55.7 GB | bf16 (FP8 opt-in) |
| FP8 | -MLA-FP8 | -GLA-g2-FP8 | 31.5 GB | FP8 |
| INT4 (AWQ+GPTQ) | -MLA-INT4 | -GLA-g2-INT4 | 22.9 GB | FP8 |
| EXL3 4.0 bpw | -MLA-EXL3-4.0bpw | -GLA-g2-EXL3-4.0bpw | 17.2 GB | FP8 |
Fidelity to the bf16 base model, teacher-forced on 562k held-out positions: top-1 disagreement where the base model is confident (top-1 vs top-2 logprob margin 2-5; lower is closer). Quantized builds measured with their default FP8 KV cache.
| bf16 | FP8 | INT4 | EXL3 4.0 bpw | |
|---|---|---|---|---|
| base model's own quantized builds | - | 0.76% | 0.59% | 0.59% |
| MLA | 1.09% | 1.15% | 1.26% | 1.56% |
| GLA-g2 | 2.47% | 3.16% | 2.86% | 3.62% |
FP8 KV on the bf16 retrofits measured identical (1.09% / 2.47%); its effect is within run-to-run noise.
Capacity, full 262k-token sequences that fit at once (RTX PRO 6000, 96 GB, default settings with vision on, no MTP). Base model, bf16: 1.9 on one GPU.
| bf16 | bf16 + FP8 KV | FP8 | INT4 | EXL3 | |
|---|---|---|---|---|---|
| MLA, 1 GPU | 3.7 | 7.3 | 12.7 | 14.5 | 15.6 |
| GLA-g2, 2 GPUs (TP=2) | 13.7 | 26.9 | 31.7 | 33.9 | 34.9 |
Released under Apache-2.0, the license of the base model. Derived from Qwen/Qwen3.8-27B by the Qwen team. This is an independent project, not affiliated with or endorsed by the Qwen team.
@misc{telperion2026qwen38mlafp8,
title = {Qwen3.8-27B-MLA-FP8: FP8 build of a training-free latent attention retrofit},
author = {TelperionAI},
year = {2026},
url = {https://huggingface.co/TelperionAI/Qwen3.8-27B-MLA-FP8}
}