license: other
license_name: qwen-community-1.0
license_link: LICENSE
base_model: local-inference-lab/Qwen3.8-Flash-Next-NVFP4
base_model_relation: finetune
pipeline_tag: image-text-to-text
tags:
- nvfp4
- mxfp8
- modelopt
- lossless-compression
- csf
- abliterated
- uncensored
Qwen3.8-Flash-Next-NVFP4-MXFP8-CSF-QAD-Abliterated
Reduced-refusal model. A refusal-direction edit was applied on purpose.
Read the Safety section before you deploy this.
An NVFP4-CSF container of an abliterated Qwen3.8-Flash-Next. The
routed-expert block-scale planes are stored in the compressed CSF form. Every
weight nibble and every other tensor is unchanged from the build described
below, and all tensor names, dtypes and shapes are preserved.
This repository replaces an earlier release. The same weights were first
published as huginnfork/Qwen3.8-Flash-Next-NVFP4-Abliterated tag v4, in the
plain uncompressed layout: 86 files, 40 safetensors shards, 106.41 GB. That tag
has been removed, and this repository is its sole successor. The weights are
bit-identical; only the scale encoding differs, which makes this container
3.58 GB smaller and readable by the NVFP4-CSF path. Every number reported below
was measured on that build, and the raw result files travel with this repository
under measurements/.
Provenance
| Step | Artefact |
|---|---|
| Base | Qwen/Qwen3.8-Flash-Next at de4b8e4d43b917e7706784d8bb445c9af86a3540 |
| QAD NVFP4 + MXFP8 quantisation | local-inference-lab/Qwen3.8-Flash-Next-NVFP4 at 6909a5bed089a48fa07e956d3915af2537de9368 |
| Abliteration (ours) | huginnfork/Qwen3.8-Flash-Next-NVFP4-Abliterated tag v4 |
| CSF encoding (ours) | this repository |
The container format is NVIDIA-ModelOpt mixed precision with CSF scale
encoding, designed and published by Local Inference Lab, Inc. We encoded these
planes ourselves from our own weights. No compressed bytes were copied from any
Local Inference Lab repository, and this repository is not a mirror of one.
What the abliteration did
Applied in place on the quantised grid — no dequantise, no re-quantise. A
rank-1 refusal direction, biprojected against the harmless mean, captured at
layer 46 and applied with alpha = 1.0. 25,188 tensors were edited:
| count | format | module class |
|---|---|---|
| 24,576 | NVFP4 | …layers.N.mlp.experts.E.down_proj.weight |
| 512 | NVFP4 | mtp.layers.0.mlp.experts.E.down_proj.weight |
| 48 | MXFP8 | …layers.N.mlp.shared_expert.down_proj.weight |
| 36 | MXFP8 | …layers.N.linear_attn.out_proj.weight |
| 12 | MXFP8 | …layers.N.self_attn.o_proj.weight |
| 4 | BF16 | embed_tokens, layers.1.ple.value_proj, 2 MTP |
No scale tensor was edited. No router, no gate_proj or up_proj, noq/k/v_proj, no vision tensor, no lm_head, no PLE table entry.
Editing a value that already sits exactly on the quantisation grid attenuates
the edit under plain round-to-nearest, so a constrained requantiser chooses codes
that both approximate the edited weight and hold v·W = 0 per column within a
±1 ULP budget. Measured residual leakage is about 3.5e-06 on NVFP4 modules
and 4.3e-07 on MXFP8 modules.
Measurements
Measured on the predecessor build, whose weights are bit-identical to the ones
here. Nothing was re-measured on this container. Raw result files are inmeasurements/.
Capability
| Profile | parent | this model |
|---|---|---|
lavd, n=30 |
28/30 | 27/30 |
estonia long-context retrieval, n=30 |
30/30 | 30/30 |
| GPQA-diamond, n=198, thinking off | 162/198 | 168/198 |
| MTP draft acceptance | 58–69 % | 59–67 % |
On lavd neither arm produced a wrong answer — every miss on both sides is a
40k-token cap hit. The GPQA difference is not significant (p = 0.286).
Refusal, held-out rows, and the regime matters enormously
A refusal number is a protocol and scorer pair, and the protocol dominates.
The same weights move by a factor of about 19 between the two regimes below. Do
not quote one cell on its own.
| protocol | bucket | parent | this model | McNemar p |
|---|---|---|---|---|
| A — model-forge gate, thinking off | harmful | 136/136 (100 %) | 0/136 (0 %) | 2.3e-41 |
| A — model-forge gate, thinking off | over-refusal | 4/59 (6.8 %) | 0/59 (0 %) | 0.125 |
| B — thinking on | harmful | 122/136 (89.7 %) | 19/136 (14.0 %) | 1.97e-31 |
| B — thinking on | over-refusal | 0/59 (0 %) | 0/59 (0 %) | 1 |
Counter-intuitively thinking-off is the harder regime: the unedited parent
refuses 100 % there against 89.7 % with thinking on. Protocol A is the
model-forge gate, which renders its prompts with enable_thinking=False and
scores them the same way. The direction used here was captured in that same
regime, which is why the two are self-consistent.
Over the full 200-row harmful set, protocol A gives 0/200 under the model-forge
scorer and 6/200 under our stricter 47-marker scorer. Swapping the scorer moves
the number a few points; swapping the thinking regime moves it ~70.
The CSF container
Only the main-decoder routed-expert block scales are compressed: 73,728
planes, which is 48 layers × 512 experts × 3 projections. Each logicalweight_scale becomes two ordinary safetensors tensors.
<name>.weight_scale.nvfp4_csf_fixed |
uint8, the row bases plus the packed 4-bit offset stream |
<name>.weight_scale.nvfp4_csf_exceptions |
uint32, flat_position | (value << 24) |
MTP experts, attention, shared experts, the PLE n-gram table, every global scale
and every activation scale keep a plain weight_scale. config.json declaresweight_scale_encoding: "csf" on the 48 routed-expert recipes and on nothing
else.
| Compressed planes | 73,728 |
| Original scale bytes | 7,549,747,200 |
| Compressed scale bytes | 3,965,911,336 (52.5 %) |
| Saved | 3,583,835,864 (3.584 GB) |
| Container tensor bytes | 102,710,160,676 |
| Tensors | 375,321 across 40 shards |
Verification
Built and checked with remote/csf_codec.py, remote/build_csf_container.py
and remote/verify_csf_container.py in our pipeline repository. Three checks,
all exhaustive rather than sampled:
- All 73,728 planes decode back to the source bytes exactly. Verified by
reading the written shards, not from build-time state. - All 227,865 other tensors are byte-identical to
v4, with dtype and
shape unchanged. The 149,093 FP32 tensors — which include the trained
normalisation parameters — are preserved verbatim. - The index maps every tensor, and
weight_scale_encodingappears on
routed-expert recipes only.
The encoder was additionally validated against a published CSF plane rather
than only against our own decoder. Encoding v4's plain…layers.0.mlp.experts.0.down_proj.weight_scale reproduces the correspondingnvfp4_csf_fixed and nvfp4_csf_exceptions tensors oflocal-inference-lab/Qwen3.8-Flash-Next-NVFP4-MXFP8-CSF-QAD byte for byte,
including all 226 exception words. Our independently computed totals also match
that container's own manifest exactly on compressed-plane count, bytes saved,
container byte size and tensor count.
Serving
Needs a vLLM build with the NVFP4-CSF reader and the b12x SM120 kernels.
VLLM_PLE_TABLE_MEMORY=disk vllm serve <path to this checkpoint> \
--quantization modelopt_mixed --load-format safetensors \
--tensor-parallel-size 1 --pipeline-parallel-size 1 --dtype bfloat16 \
--moe-backend b12x --linear-backend b12x \
--mm-encoder-tp-mode data --mamba-cache-mode align \
--enable-chunked-prefill --block-size 16
--quantization modelopt_mixed is auto-detected from config.json and may be
omitted. TP1, TP2 and TP4 all satisfy the scale-alignment requirement. Pipeline
parallelism must be 1. Expert parallelism, data parallelism and ubatching are
not supported on the CSF path.
Known dependency gap. The CSF scale loader imports b12x.loader._csf_blocks
and b12x.loader._csf_source. Those two modules are not in any released
package, so this path currently needs a source build oflocal-inference-lab/flashinfer. If that is impractical, decode the planes back
to plain weight_scale tensors with our remote/csf_codec.py and dropweight_scale_encoding from config.json — that yields a checkpoint which runs
on any ModelOpt NVFP4 build, at a cost of 3.58 GB.
These files cannot be loaded by Flare. Its runtime accepts only its own
prepared package format.
Differences from Local Inference Lab's CSF-QAD container
Do not treat the two as interchangeable.
- The vision tower here is BF16. Their
mainrevision additionally
converted 110 vision linears to MXFP8 and NVFP4. This container inherits the
unconverted vision weights of the6909a5bparent, because our abliteration
never touched vision and we did not reproduce their conversion. - 40 shards, keeping the parent's shard names, where their
mainrevision
reshards to 21. - No
manifest.json,build-contract.json,receipts/orverification.json.
Those are their build-provenance files and theirverifyandrestore
subcommands do not apply to this artefact.
Not verified
- GPU inference has not been run on this container. The weights are
bit-identical tov4, which was served and evaluated, and the compression is
verified lossless. But this exact container has not been loaded by a runtime. - No vision evaluation was run on any of our builds.
Safety
This model has had refusal behaviour deliberately reduced. It will answer
requests that the parent declines. Do not deploy it as a general-purpose
assistant without your own safeguards, and do not treat the refusal numbers
above as a safety property.
The refusal numbers above are reported for both thinking regimes on purpose,
because they differ by roughly a factor of 19 on the same weights. Compare them
only against the parent measured under the identical protocol and scorer.
Licence and credits
Qwen Community License 1.0, inherited from the parent. See LICENSE.
Condition 1 of that licence requires the notice to travel with every copy. If
you operate a Model-as-a-Service or AI-assistant business, condition 2 requires
a separate licence from Qwen before any commercial use.
Qwen/Qwen3.8-Flash-Next— base model, by Qwen.local-inference-lab/Qwen3.8-Flash-Next-NVFP4— the QAD NVFP4 and MXFP8
quantisation this builds on, by Local Inference Lab, Inc.- The NVFP4-CSF container format and the
b12xkernels — by Local Inference
Lab, Inc. Neither they nor Qwen endorse this model.