Access requires acknowledging what this model is

This is a refusal-ablated ("abliterated") model. It complies with requests that the base model refuses. Access is granted automatically once you share your contact details and accept the terms below.

Terms of use

  1. This model has had its learned refusal direction removed. It will not reliably decline harmful requests. Any safety behaviour must be supplied by your own stack.
  2. You are solely responsible for how you deploy, serve, or redistribute it, and for complying with all laws and regulations that apply to you.
  3. If you expose it to third parties, you agree to place your own moderation and policy layer in front of it. The model will not do that job for you.
  4. It is provided as-is, without warranty of any kind. The authors accept no liability for any use or consequence.
  5. Licensed under the base model's license (see the license field above); attribution to the base model is expected in derivative work.

By requesting access you agree to share your Hugging Face username and email address with the repository owner.

Log in or Sign Up to review the conditions and access this model content.

Qwen3.8-Flash-Next-Abliterated — NVFP4 (W4A16)

v2 (2026-11-03): this checkpoint now loads and serves on vLLM 0.32.0 (v1 does not). The NVFP4 weight shards are byte-for-byte those of v1; what changed is the n-gram table and the config (below). Verified text-only on one H200 with vLLM's Marlin NVFP4-MoE kernel — see Running it. v1 remains available at revision 480e00b.

2026-11-06: faster speculative decoding. The best MTP draft length depends on the workload, and a retrained MTP head is now available: see Speculative decoding: which k and Qwen3.8-Flash-Next-Abliterated-NVFP4-TunedMTP (these weights with a faster MTP head).

NVFP4 build of windowsxp811203/Qwen3.8-Flash-Next-Abliterated, a refusal-removed Qwen3.8-Flash-Next. 335.3 GiB → 125.9 GiB.

This is weight-only NVFP4 (quant_algo: W4A16_NVFP4): activations stay in bf16, so there are no activation scales and no FP4 tensor-core compute is required. On Hopper the NVFP4 experts run as W4A16. Every v2 number on this card was measured on one H200 with vLLM's Marlin kernel; stock vLLM 0.32.0 prefers its HUMMING kernel on sm_90, which failed to JIT on our host, so that path has not been tested with this checkpoint.

What changed in v2

v1 v2
MoE experts, attention, DeltaNet, hyper-connections, embeddings, vision tower, MTP head NVFP4 / bf16 unchanged — all 9 weight shards byte-identical to v1 (LFS sha256 on the Hub)
PLE n-gram table (51.2 B params) one 102 GB bf16 tensor in model-00008-of-00009.safetensors; vLLM's loader cannot bind it the FP8 table from Qwen/Qwen3.8-Flash-Next-FP8 (revision 236dfdf2), copied byte-for-byte: 128 shards + scale in model-ple-0000{1-8}-of-00008.safetensors, declared by the new text_config.ple_embedding_dtype: float8_e4m3fn
text_config.layer_types 12 entries spelled qwen_sparse_attention (written by the modelopt export) full_attention, the base model's spelling. Earlier vLLM versions rejected the old spelling; vLLM 0.32.0 with transformers 5.19 reads both as indexed_attention, so on 0.32 this is consistency, not a load fix

Files: v1's model-00008-of-00009.safetensors (the bf16 table) and config.json.text-only are removed, so the -of-00009 shards skip 00008; that is expected — model.safetensors.index.json lists all 17 weight files.

Why the n-gram swap is safe. Abliteration never touched the n-gram table: its 131 tensors (128 table shards plus three small int64 tensors) are byte-identical between the base model and the abliterated parent (31 of the 33 shard files that hold them have the same LFS sha256 on the Hub; the 7 n-gram tensors in the other two were compared one by one), so v1's bf16 table is the base model's table, and Qwen's own FP8 release of that same table is its official low-precision form. vLLM 0.32 loads it through its dedicated FP8 PLE path (Qwen4ExpPLEFp8EmbeddingMethod, logged at start-up), and every check below ran through that path. v1 kept the table in bf16 because no runtime then existed to test an FP8 path.

Community variant — credit where due. gorbatjovy got here first: qwen3.8-flash-next-abliterated-NVFP4-plefp8 found both reasons v1 would not load in vLLM and fixed them the same way — the n-gram table re-laid-out into the sharded form vLLM's loader expects and cast to FP8 with a per-tensor scale bit-identical to Qwen's own, and layer_types renamed — and served it on 2× DGX Spark. Against a BF16-table build of v1, on the first-token distribution of 80 harmless prompts: top-1 agreement 100 %, mean KL 0.0018, median 0.0006, p90 0.0060. v2 copies the FP8 table from Qwen's release instead of casting it.

Verified here (v2)

Served with vLLM 0.32.0 on one H200 (sm_90; text-only; NVFP4 experts on the Marlin kernel, see Running it); greedy, non-thinking; the same prompts, chat format and first-400-character keyword rule as the parent card, on the first 100 AdvBench and GSM8K items. GSM8K answers were generated to 1024 tokens as in the parent, refusal answers to 256. Refusal markers: the in-file list of the parent's eval_full_flashnext.py plus Traditional-Chinese and curly-apostrophe forms, whereas the parent's own numbers were scored with a different 49-entry list that script imports when available — so the two refusal columns are close but not strictly comparable:

check v2 (this repo, vLLM) bf16 parent (transformers)
AdvBench, first 100 prompts — refused 0/100 5/520 (0.96 %)
Chinese harmful prompts (30) — refused 0/30 (checked by hand¹) 0/30
GSM8K, first 100 problems 97/100 97.0 % (200)

¹ The keyword heuristic flags 2 of the 30 answers in the scored run because they use 無法 ("cannot") descriptively, e.g. "網頁 JavaScript 無法直接讀取…" inside a full, compliant answer; the flagged answers were read by hand and none refuses.

The MTP head works. On a 155-prompt mix (MT-Bench en/zh, WildChat zh, HumanEval, GSM8K and MATH-500 with and without thinking, 8K-token agent prompts with tools), num_speculative_tokens=3 reaches a mean acceptance length of 3.01 tokens per verification step (2.01 of the 3 drafted tokens accepted, plus the bonus token) and cuts median time per output token from 7.84 ms to 3.35 ms (2.34×) at one request (output throughput 124 → 258 tok/s); 598 → 1051 tok/s at 8 concurrent requests (greedy, one H200). The MTP weights ship in this checkpoint; enabling it raises the weights on the GPU from 73.6 GiB to 78.7 GiB.

What is quantized

component treatment size
MoE experts (48 layers × 512) NVFP4, 4-bit, group 16, float8_e4m3 block scales + fp32 global scales 63.3 GiB
PLE n-gram table (51.2 B params) FP8 E4M3 (Qwen's release) 47.7 GiB
MTP draft head (its own 512-expert MoE included) bf16, grafted back after export 4.9 GiB
linear_attn (Gated DeltaNet) bf16 3.9 GiB
full attention, shared experts, routers, gates, hyper-connections, norms bf16 2.9 GiB
embed_tokens, lm_head bf16 2.4 GiB
vision tower (333 tensors) bf16, grafted back after export 0.8 GiB
PLE projections and norms bf16 0.06 GiB
total 125.9 GiB

222,747 tensors; nothing is missing relative to the bf16 parent (nvfp4_breakdown.py). The vision tower and the MTP head are excluded from quantization by the 294-entry ignore list in the shipped config.json; see v1's card (revision above) for why grafting them back and keeping them out of quantization mattered.

Running it

VLLM_USE_V2_MODEL_RUNNER=1 VLLM_USE_FLASHINFER_SAMPLER=0 \
vllm serve windowsxp811203/Qwen3.8-Flash-Next-Abliterated-NVFP4 \
  --language-model-only --max-model-len 32768 --reasoning-parser qwen3

Every v2 number on this card was measured with this setup (vLLM 0.32.0, one H200 per server; each run also set its own --max-model-len and --max-num-seqs and passed --enable-auto-tool-choice --tool-call-parser qwen3_coder) plus one local edit: on sm_90, vLLM 0.32.0 prefers its HUMMING NVFP4-MoE kernel, whose JIT failed on our host (NVRTC picked up the system CUDA 12.6), so we emptied _HUMMING_PREFERRED_CAPABILITIES in vllm/model_executor/layers/quantization/utils/humming/priority.py to use Marlin (--moe-backend marlin is not a substitute with MTP on: it also applies to the bf16 MTP-head experts, which vLLM rejects for Marlin; without MTP it was not tried). VLLM_USE_FLASHINFER_SAMPLER=0 avoided a FlashInfer sampler JIT failure on the same host, so that sampler never ran; the default model runner was not tried. --language-model-only skips the vision tower; image and video input were not exercised.

  • Memory. By default vLLM 0.32 keeps the 47.7 GiB FP8 n-gram table in pinned host RAM (logged as weight_device=cpu, pinned=True) and loads 73.6 GiB of weights onto the GPU (78.7 GiB with MTP). Plan for about 50 GiB of free host RAM per server. Smaller GPUs and tensor parallelism were not tested. Data parallelism on one host did not start in our two attempts (DP=3 fails vLLM's MoE intermediate_size % tp_size check; at DP=4 two of the four workers died during start-up, cause not logged), so we ran one independent server per GPU.
  • Long context. Also served at --max-model-len 262144 with agent prompts of 32K–128K tokens (with MTP k=3).
  • MTP. Add --speculative-config '{"method": "mtp", "num_speculative_tokens": 3}' (k=3 is what the numbers above used). Which k is best depends on the workload; k ≥ 5 needs a patch — see the next section.
  • Thinking is on by default; the quality checks above turned it off per request ("chat_template_kwargs": {"enable_thinking": false}).
  • Only vLLM was tested.

Speculative decoding: which k (updated 2026-11-06)

Re-measured later with this repo's own MTP head at k = 3 … 7: one H200, vLLM 0.32.0 set up as above plus the QSA ring patch below (the server also carried the FP8 draft LM head backport and patches from our DSpark experiments, all inactive for these stock-MTP runs), one benchmark server at a time, greedy, one request at a time. HumanEval, MATH-500 and Chinese thinking suites at medium effort (up to 2048 new tokens), the 8K agent suite at xhigh effort (up to 1024), the long-context cuts at xhigh effort (44 of 45 prompts; one medium; up to 512), non-thinking suites up to 512. A short GPU job of ours on the same host overlapped the first hour of this session. Cells: time per output token relative to k=3 (+ = faster), acceptance length in parentheses; rows with several suites take the geometric mean of the per-suite median TPOTs and of the per-suite acceptance lengths; the long-context row is the median over all 45 requests.

workload (prompts) k=3 k=4 k=5 k=6 k=7
Chinese chat: MT-Bench-zh, WildChat zh and zh-Hant, with and without thinking (460) 4.17 ms (2.63) 0 % (2.85) −3 % (3.02) −7 % (3.12) −12 % (3.18)
English chat: MT-Bench (20) 3.48 ms (3.03) +6 % (3.34) +7 % (3.62) +8 % (3.82) +4 % (3.96)
code: HumanEval, with and without thinking (25) 3.00 ms (3.73) +10 % (4.50) +17 % (5.15) +23 % (5.87) +25 % (6.32)
math: GSM8K, MATH-500 (35) 3.11 ms (3.60) +9 % (4.26) +13 % (4.82) +21 % (5.46) +19 % (5.84)
agent, 8K-token prompts with tools (15)¹ 3.35 ms (3.21) +9 % (3.44) +18 % (3.86) +2 % (3.92) +11 % (4.51)
agent, 32K–128K-token prompts with tools (45) 3.65 ms (3.03) +5 % (3.45) +8 % (3.76) −2 % (3.83) −4 % (3.99)

¹ Noisy: in later sessions with retrained MTP heads, this 15-request suite's median moved by 14–18 % between identical runs of one configuration.

  • Chinese chat: stay at k=3 or 4. Chinese drafts are accepted less often, so each extra draft token costs more than it returns; k=6 is 7 % slower than k=3 here.
  • Code, math, English chat: k=6 (+8 … +23 % vs k=3). Agent prompts with tools: k=5 (8K: +18 %, 32K–128K: +8 % vs k=3; k=6 only +2 % / −2 %). Mixed traffic on stock vLLM: k=4 (level with k=3 on Chinese, +5 … +10 % elsewhere).
  • k ≥ 5 needs a patch. Stock vLLM 0.32.0 stops at start-up with QSA ring capacity 12 must divide the attention block size … for 5 to 8 draft tokens on this model (larger k needs a larger ring; we ran up to 7); patches/qsa-ring-widen-PR54912.diff in the TunedMTP repo is a backport of the open vLLM PR #54912 that fixes it (k ≤ 4 needs nothing).
  • FP8 draft LM head. "draft_lm_head_quantization": "fp8" in the speculative config gives the drafter an FP8 copy of the LM head (vLLM PR #59973, released in v0.33.0; patches/patch_vllm_draft_lmhead.py in the TunedMTP repo backports it to 0.32.0, Model Runner V2 only). With this repo's head it made decoding 5.5 % faster at k=6 (geometric mean over 13 suites, +0.6 … +11.4 %; about 5 % less time per token) with about the same acceptance length (geometric mean −0.3 %), measured in an earlier session with the same sequential setup.
  • Fastest: the tuned head. Qwen3.8-Flash-Next-Abliterated-NVFP4-TunedMTP is this checkpoint with a retrained MTP head (built on doth4580's DotH head). With k=6 and the FP8 draft head it was faster than this repo's head at its best k on all 13 suites measured (+9.8 % geometric mean, worst +5.5 %), and against k=3 +10 % on Chinese chat and +32 % elsewhere; see its card for the method.

How it was built

v1: quantize_nvfp4_flashnext.py → graft_nvfp4.py → fix_nvfp4_config.py → verify_nvfp4.py (all in this repo).

v2: assemble_nvfp4_v2.py OURS_BODY_DIR QWEN_FP8_DIR BASE_BF16_DIR OUT_DIR (in this repo); no weight is re-quantized. OURS_BODY_DIR is this repo at 480e00b — its weight shards are hard-linked unchanged except model-00008, which is dropped. QWEN_FP8_DIR holds Qwen/Qwen3.8-Flash-Next-FP8 at 236dfdf2: its model.safetensors.index.json plus the 33 shards that contain n-gram tensors. BASE_BF16_DIR is Qwen/Qwen3.8-Flash-Next; only its config.json is read (for layer_types). The script writes the 128 FP8 n-gram shards and the scale into the eight model-ple-* files, restores layer_types, sets ple_embedding_dtype, and rewrites the index.

Parent model quality (bf16)

benchmark base Flash-Next abliterated parent
AdvBench (520) 517/520 · 99.42 % 5/520 · 0.96 %
HarmBench (400) 386/400 · 96.50 % 8/400 · 2.00 %
MMLU (1000, paired) 86.00 % 84.40 %
GSM8K (200) 96.00 % 97.00 %

Full method, the λ sweep, the paired McNemar test on MMLU and the byte-level verification are in the parent model card. The architecture write-up is ARCHITECTURE.md.

License

Qwen Community License 1.0 — not Apache-2.0 — inherited from the base model. Publishing and redistributing derivative weights is permitted. Running a Model-as-a-Service or AI Work Assistant business requires a separate license from Qwen before any commercial use; internal use is exempt provided the model, its outputs and its capabilities reach no third party.

Support / 打賞

If these models are useful to you, tips are appreciated — they pay for the GPU time. 如果這些模型對你有幫助,歡迎打賞,用於支應算力成本。

USDT (TRC20) · TPTo32r7vKazpTNaFqfFZ2ztoK1DG88888

Disclaimer

This model will not refuse. It is published for alignment and safety research. You are responsible for your use of it and for complying with applicable law.

Downloads last month
288
Safetensors
Model size
180B params
Tensor type
BF16
·
U8
·
I64
·
F8_E4M3
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for windowsxp811203/Qwen3.8-Flash-Next-Abliterated-NVFP4

Quantized
(3)
this model
Quantizations
1 model