Huihui-Qwen3.8-27B-abliterated, NInfer v3 artifact
5
8 commits
2 linked in READMEs
updated Oct 6, 2026
A NInfer v3 artifact of huihui-ai/Huihui-Qwen3.8-27B-abliterated, the abliterated Qwen3.8-27B with the lowest reported divergence from the base checkpoint among the widely used releases (the first fifteen layers are untouched; independent KL divergence measurements sit around 0.008) and a working MTP head.
Built for NInfer-all, the master branch of
iamwavecut/ninfer-all: ashalliants' NInfer-3090
consolidated with the fixes and features of the other NInfer forks. It serves the RTX 3090, RTX
4090, RTX 5090 and RTX PRO 6000 Blackwell, each with its measured kernel route profile built in
(other GPUs calibrate once at first start).
| component | representation |
|---|---|
| text layers (64) | official qwen3_8_27b recipe: Q4/Q5 grouped projections, Q8 vocabulary embedding and output head |
| vision tower | as the recipe assigns it (the checkpoint's own model.visual.* weights) |
| MTP head | the checkpoint's own mtp.* weights, Q8 |
| DFlash2 adapter | z-lab/Qwen3.8-27B-DFlash2, trained on the vanilla model; applied unchanged (the target verifies every draft, so it only affects acceptance) |
| proposal head | the indexed 131,072-row draft head for --lm-head-draft |
| chat template | NInfer's pinned qwen3_8.jinja |
Conversion command (from the fork's tree, CUDA device):
python3 -m tools.convert \
--model Huihui-Qwen3.8-27B-abliterated \
--recipe qwen3_8_27b \
--source dflash2=Qwen3.8-27B-DFlash2 \
--components text,vision,mtp,dflash2 \
--resource chat_template.jinja=tools/chat_templates/qwen3_8.jinja \
--proposal \
--name qwen3.8-27b-abliterated \
--out Huihui-Qwen3.8-27B-abliterated-ninfer-v3.ninfer
SHA256SUMS lists the checksum of every file.
A single RTX 3090 serves a 198,400-token window with Vision and MTP. From the Docker image (an NVIDIA driver of the CUDA 13 branch, 580 or newer, and the NVIDIA Container Toolkit):
hf download WaveCut/Huihui-Qwen3.8-27B-abliterated-NInfer-v3 \
Huihui-Qwen3.8-27B-abliterated-ninfer-v3.ninfer --local-dir models
docker run --rm --gpus all -p 8080:8080 --ulimit memlock=-1 \
-v "$PWD/models:/models" -v ninfer-cache:/cache \
ghcr.io/iamwavecut/ninfer-all serve /models/Huihui-Qwen3.8-27B-abliterated-ninfer-v3.ninfer \
--model-id qwen3.8-27b --max-context 198400 --kv-capacity 198400 --kv-dtype rk8v4 \
--gdn-state-fp16 --spec mtp --draft-tokens 3 --lm-head-draft \
--vision --vision-residency overlay --vision-max-merged 12288
The server answers OpenAI and Anthropic requests on http://localhost:8080/v1. A build of master
(its README; CMAKE_CUDA_ARCHITECTURES is
86, 89 or 120a, and 120a needs CUDA 13.1 or newer) takes the same flags:
ninfer-serve models/Huihui-Qwen3.8-27B-abliterated-ninfer-v3.ninfer --model-id qwen3.8-27b \
--max-context 198400 --kv-capacity 198400 --kv-dtype rk8v4 --gdn-state-fp16 \
--spec mtp --draft-tokens 3 --lm-head-draft \
--vision --vision-residency overlay --vision-max-merged 12288
The file uses only upstream's qwen3_8_27b recipe, so NInfer-3090 builds from v0.11.0 on read it
as well.
The artifact also carries the DFlash2 adapter for --spec dflash2; only the MTP path was
measured on this artifact.
masterThe September 2026 reference measurements of master
(2172a598) cover the upstream
neroued/Qwen3.8-27B-NInfer artifact, built
with the same qwen3_8_27b recipe; this artifact was not measured again, and its drafts may be
accepted at other rates than the upstream model's. One request, greedy, thinking off, text only:
| RTX 3090 | RTX 4090 | RTX 5090 | RTX PRO 6000 | |
|---|---|---|---|---|
| short chat, no speculation | 48.2 tok/s | 54.8 tok/s | 92.0 tok/s | 89.6 tok/s |
| short chat, MTP, 3 drafts | 97.2 tok/s | 109.0 tok/s | 184.7 tok/s | 187.5 tok/s |
| short chat, DFlash2, 7 drafts | 117.5 tok/s | 148.8 tok/s | 236.2 tok/s | 237 tok/s |
| time to first token, 131K prompt | 116.4 s | 62.2 s | 42.1 s | 39.4 s |
largest window with rk8v4: no speculation / MTP 3 / DFlash2 5 | 286,720 / 249,856 / 176,128 | 278,528 / 241,664 / 167,936 | 598,016 / 544,768 / 491,520 | 1,048,576 on all three |
largest window with rk4v4: no speculation / MTP 3 / DFlash2 5 | 417,792 / 364,544 / 258,048 | 405,504 / 356,352 / 245,760 | 872,448 / 794,624 / 716,800 | 1,048,576 on all three |
Past 262,144 tokens the window runs with --rope-yarn. Filled to the largest rk4v4 window, the
upstream model returned all three codes planted in the document on the RTX 3090, 4090 and 5090; at
the RTX PRO 6000's 1,048,576 tokens it returned two of them. Every table is in
the reference measurements.
franken-v0.11)A Release build (sm_86, CUDA 13.1) of the fork's franken/v0.11 branch, now kept as the tag
franken-v0.11, with the command line above plus
--max-concurrency 4 --host-kv-mib 12288 --host-state-slots 8, greedy decoding, thinking off. The
reference is WaveCut/Qwen3.8-27B-MXFP8-CRACK-NInfer-v3
served by the previous NInfer line of the same fork with the same flags and the same client.
Memory with one active request: 16.7 GiB of weights and 5.54 GiB of runtime state at the
198,400-token rk8v4 window, which leaves 1.12 GiB free on a 24 GiB card.
| workload | decode tok/s | prefill tok/s | reference decode / prefill |
|---|---|---|---|
| short prompts | 131 | 126 | |
| 8k context | 111 | 1,433 | 108 / 1,222 |
| 32k context | 106 | 1,324 | 97 / 1,121 |
| 64k context | 98 | 1,116 | 86 / 965 |
| agent loop, 20k context with prefix reuse | 124 | 1,003 | 119 / 933 |
Decode speed is the median per request with MTP (three draft tokens, about 3.3 accepted per round on prose).
Quality over 1,179 items (GSM8K 200, MMLU-Pro 280, HumanEval 164, MGSM-ru 250, Global-MMLU-ru 285), the same items and client for every column:
| suite | this artifact | CRACK, same engine | CRACK, previous engine |
|---|---|---|---|
| GSM8K | 95.0 | 95.5 | 95.0 |
| MMLU-Pro | 80.0 | 79.6 | 78.6 |
| HumanEval | 94.5 | 92.1 | 92.1 |
| MGSM-ru | 91.2 | 92.0 | 91.2 |
| Global-MMLU-ru | 82.8 | 81.8 | 82.5 |
| all items | 87.6 | 87.2 | 86.9 |
Against the previous engine's CRACK run this artifact wins 46 items and loses 37 (exact McNemar p = 0.38); no suite differs significantly.
Perplexity on the quick corpus of ninfer-ppl-1m-v1 (261,167 scored tokens, 4,096-token window,
2,048-token stride, rk8v4 KV): 4.3750 for this artifact against 4.4685 for CRACK on the same
engine.
This is an abliterated model: refusals are removed at the checkpoint level, and the usual
hesitation before destructive actions goes with them. Put the guardrails in the tool layer, not in
the model. rk8v4 is a lossy KV format (about +0.08 % perplexity against bf16 on the vanilla
checkpoint) chosen for the context window; --kv-dtype int8 or bf16 trade window for fidelity.
Huihui-Qwen3.8-27B-abliterated, NInfer v3 artifact
5
8 commits
2 linked in READMEs
updated Oct 6, 2026
A NInfer v3 artifact of huihui-ai/Huihui-Qwen3.8-27B-abliterated, the abliterated Qwen3.8-27B with the lowest reported divergence from the base checkpoint among the widely used releases (the first fifteen layers are untouched; independent KL divergence measurements sit around 0.008) and a working MTP head.
Built for NInfer-all, the master branch of
iamwavecut/ninfer-all: ashalliants' NInfer-3090
consolidated with the fixes and features of the other NInfer forks. It serves the RTX 3090, RTX
4090, RTX 5090 and RTX PRO 6000 Blackwell, each with its measured kernel route profile built in
(other GPUs calibrate once at first start).
| component | representation |
|---|---|
| text layers (64) | official qwen3_8_27b recipe: Q4/Q5 grouped projections, Q8 vocabulary embedding and output head |
| vision tower | as the recipe assigns it (the checkpoint's own model.visual.* weights) |
| MTP head | the checkpoint's own mtp.* weights, Q8 |
| DFlash2 adapter | z-lab/Qwen3.8-27B-DFlash2, trained on the vanilla model; applied unchanged (the target verifies every draft, so it only affects acceptance) |
| proposal head | the indexed 131,072-row draft head for --lm-head-draft |
| chat template | NInfer's pinned qwen3_8.jinja |
Conversion command (from the fork's tree, CUDA device):
python3 -m tools.convert \
--model Huihui-Qwen3.8-27B-abliterated \
--recipe qwen3_8_27b \
--source dflash2=Qwen3.8-27B-DFlash2 \
--components text,vision,mtp,dflash2 \
--resource chat_template.jinja=tools/chat_templates/qwen3_8.jinja \
--proposal \
--name qwen3.8-27b-abliterated \
--out Huihui-Qwen3.8-27B-abliterated-ninfer-v3.ninfer
SHA256SUMS lists the checksum of every file.
A single RTX 3090 serves a 198,400-token window with Vision and MTP. From the Docker image (an NVIDIA driver of the CUDA 13 branch, 580 or newer, and the NVIDIA Container Toolkit):
hf download WaveCut/Huihui-Qwen3.8-27B-abliterated-NInfer-v3 \
Huihui-Qwen3.8-27B-abliterated-ninfer-v3.ninfer --local-dir models
docker run --rm --gpus all -p 8080:8080 --ulimit memlock=-1 \
-v "$PWD/models:/models" -v ninfer-cache:/cache \
ghcr.io/iamwavecut/ninfer-all serve /models/Huihui-Qwen3.8-27B-abliterated-ninfer-v3.ninfer \
--model-id qwen3.8-27b --max-context 198400 --kv-capacity 198400 --kv-dtype rk8v4 \
--gdn-state-fp16 --spec mtp --draft-tokens 3 --lm-head-draft \
--vision --vision-residency overlay --vision-max-merged 12288
The server answers OpenAI and Anthropic requests on http://localhost:8080/v1. A build of master
(its README; CMAKE_CUDA_ARCHITECTURES is
86, 89 or 120a, and 120a needs CUDA 13.1 or newer) takes the same flags:
ninfer-serve models/Huihui-Qwen3.8-27B-abliterated-ninfer-v3.ninfer --model-id qwen3.8-27b \
--max-context 198400 --kv-capacity 198400 --kv-dtype rk8v4 --gdn-state-fp16 \
--spec mtp --draft-tokens 3 --lm-head-draft \
--vision --vision-residency overlay --vision-max-merged 12288
The file uses only upstream's qwen3_8_27b recipe, so NInfer-3090 builds from v0.11.0 on read it
as well.
The artifact also carries the DFlash2 adapter for --spec dflash2; only the MTP path was
measured on this artifact.
masterThe September 2026 reference measurements of master
(2172a598) cover the upstream
neroued/Qwen3.8-27B-NInfer artifact, built
with the same qwen3_8_27b recipe; this artifact was not measured again, and its drafts may be
accepted at other rates than the upstream model's. One request, greedy, thinking off, text only:
| RTX 3090 | RTX 4090 | RTX 5090 | RTX PRO 6000 | |
|---|---|---|---|---|
| short chat, no speculation | 48.2 tok/s | 54.8 tok/s | 92.0 tok/s | 89.6 tok/s |
| short chat, MTP, 3 drafts | 97.2 tok/s | 109.0 tok/s | 184.7 tok/s | 187.5 tok/s |
| short chat, DFlash2, 7 drafts | 117.5 tok/s | 148.8 tok/s | 236.2 tok/s | 237 tok/s |
| time to first token, 131K prompt | 116.4 s | 62.2 s | 42.1 s | 39.4 s |
largest window with rk8v4: no speculation / MTP 3 / DFlash2 5 | 286,720 / 249,856 / 176,128 | 278,528 / 241,664 / 167,936 | 598,016 / 544,768 / 491,520 | 1,048,576 on all three |
largest window with rk4v4: no speculation / MTP 3 / DFlash2 5 | 417,792 / 364,544 / 258,048 | 405,504 / 356,352 / 245,760 | 872,448 / 794,624 / 716,800 | 1,048,576 on all three |
Past 262,144 tokens the window runs with --rope-yarn. Filled to the largest rk4v4 window, the
upstream model returned all three codes planted in the document on the RTX 3090, 4090 and 5090; at
the RTX PRO 6000's 1,048,576 tokens it returned two of them. Every table is in
the reference measurements.
franken-v0.11)A Release build (sm_86, CUDA 13.1) of the fork's franken/v0.11 branch, now kept as the tag
franken-v0.11, with the command line above plus
--max-concurrency 4 --host-kv-mib 12288 --host-state-slots 8, greedy decoding, thinking off. The
reference is WaveCut/Qwen3.8-27B-MXFP8-CRACK-NInfer-v3
served by the previous NInfer line of the same fork with the same flags and the same client.
Memory with one active request: 16.7 GiB of weights and 5.54 GiB of runtime state at the
198,400-token rk8v4 window, which leaves 1.12 GiB free on a 24 GiB card.
| workload | decode tok/s | prefill tok/s | reference decode / prefill |
|---|---|---|---|
| short prompts | 131 | 126 | |
| 8k context | 111 | 1,433 | 108 / 1,222 |
| 32k context | 106 | 1,324 | 97 / 1,121 |
| 64k context | 98 | 1,116 | 86 / 965 |
| agent loop, 20k context with prefix reuse | 124 | 1,003 | 119 / 933 |
Decode speed is the median per request with MTP (three draft tokens, about 3.3 accepted per round on prose).
Quality over 1,179 items (GSM8K 200, MMLU-Pro 280, HumanEval 164, MGSM-ru 250, Global-MMLU-ru 285), the same items and client for every column:
| suite | this artifact | CRACK, same engine | CRACK, previous engine |
|---|---|---|---|
| GSM8K | 95.0 | 95.5 | 95.0 |
| MMLU-Pro | 80.0 | 79.6 | 78.6 |
| HumanEval | 94.5 | 92.1 | 92.1 |
| MGSM-ru | 91.2 | 92.0 | 91.2 |
| Global-MMLU-ru | 82.8 | 81.8 | 82.5 |
| all items | 87.6 | 87.2 | 86.9 |
Against the previous engine's CRACK run this artifact wins 46 items and loses 37 (exact McNemar p = 0.38); no suite differs significantly.
Perplexity on the quick corpus of ninfer-ppl-1m-v1 (261,167 scored tokens, 4,096-token window,
2,048-token stride, rk8v4 KV): 4.3750 for this artifact against 4.4685 for CRACK on the same
engine.
This is an abliterated model: refusals are removed at the checkpoint level, and the usual
hesitation before destructive actions goes with them. Put the guardrails in the tool layer, not in
the model. rk8v4 is a lossy KV format (about +0.08 % perplexity against bf16 on the vanilla
checkpoint) chosen for the context window; --kv-dtype int8 or bf16 trade window for fidelity.