Instructions to use cometkim/Qwen3.8-27B-nvfp4full-NInfer with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- NInfer
How to use cometkim/Qwen3.8-27B-nvfp4full-NInfer with NInfer:
# No code snippets available yet for this library. # To use this model, check the repository files and the library's documentation. # Want to help? PRs adding snippets are welcome at: # https://github.com/huggingface/huggingface.js
- Notebooks
- Google Colab
- Kaggle
Considering to apply NVIDIA's official checkpoint
My published nvfp4full snapshot quantizes nearly every Text linear of Qwen3.8-27B to NVFP4: attention and GDN projections use a locally encoded max-abs profile (with a few BF16 exceptions), while MLP codes come word-for-word from the unsloth community export for layers 0β55 and from my local encoder for layers 56β63.
Now there is NVIDIA's official NVFP4 quantization checkpoint: https://huggingface.co/nvidia/Qwen3.8-27B-NVFP4
Therefore, I did several experiments taking into account a new snapshot of this artifact.
Experiment 1: weight-space fidelity
Relative Frobenius error versus the BF16 reference, 192 MLP matrices (64 layers Γ gate/up/down):
| Source | Min | Median | Mean | Max |
|---|---|---|---|---|
| NVIDIA ModelOpt (Local-Hessian/MSE, 2k samples) | 0.0833 | 0.0861 | 0.0864 | 0.1008 |
| QUASAR QAT (from a different snapshot) | 0.0838 | 0.0850 | 0.0854 | 0.1052 |
| nvfp4full local encoder (all layers) | 0.0942 | 0.0949 | 0.0949 | 0.0951 |
| unsloth export (layers 0β55) | 0.1040 | 0.1073 | 0.1082 | 0.1535 |
| published payload (mixed) | 0.0942 | 0.1070 | 0.1065 | 0.1535 |
NVIDIA codes win on 191 of the 192 tensors in the published payload, and NVIDIA's worst tensor is still below unsloth's best. Two side observations: my local max-abs encoder is noise-bounded and self-consistent, while unsloth's words have statistically identical block scales but a non-self-consistent code assignment (only ~50% agreement with an RNE reconstruction on the stored grid), which explains the much wider error spread. And loss-aware QAT training lands in the same error band as NVIDIA PTQ β though for a co-adapted checkpoint this metric cannot rank quality.
For lm_head, NVIDIA keeps it in FP4 (0.0848), a 15Γ weight-error increase over my int8 head (0.0055) in exchange for roughly 0.6 GiB. I have not adopted that yet.
Experiment 2: the candidate snapshot
I built a candidate with all 128 MLP parents (layers 0β63) swapped to NVIDIA words. Codes and E4M3 block scales are copied byte-exactly; only the two global scalars per site need conversion β ModelOpt stores multipliers (amax/2688), the reciprocal of the positive divisors my engine stores, so each site scalar is inverted with a single fp32 rounding. Every other object of the published snapshot is byte-identical in the new build (1,059 objects compared), so only the MLP payloads change. Notes for anyone else consuming this export: packed codes have the low nibble at even k, weight_scale is a natural [N, K/16] E4M3 layout, and the attention sites are per-tensor FP8 with scalar scales.
Experiment 3: end-to-end gates
Same binary, same workloads, deterministic metrics (greedy speculative acceptance, fixed-corpus perplexity):
| Metric | Published | NVIDIA MLP | NVIDIA MLP + old activation scales |
|---|---|---|---|
| MTP-3 acceptance | 41.76% | 34.57% | 34.57% |
| DFlash2-K7 acceptance | 12.74% | 12.05% | 8.61% |
| Perplexity (261k tokens) | 4.784 | 4.720 | 4.781 |
Three conclusions follow:
- The language-model function improves. Perplexity drops by 1.35%, with three of four domains better (Chinese 6.44 β 6.36, English reference 6.60 β 6.32, code 1.689 β 1.687). The better weight fidelity carries through to the function level.
- But MTP acceptance drops by 7.2 points (roughly β9% MTP decode). This is independent of the activation scales (the variant shows an identical acceptance). The improved target function has moved away from the MTP drafter's agreement surface. It is not a quality regression β perplexity confirms that β but it is a real speculative-throughput cost.
- Codes and activation scales are co-calibrated. Pairing the NVIDIA codes with the previous d_x scales collapses DFlash2 acceptance to 8.61%. The site system β codes, block scales, global scales β has to be imported whole, never partially mixed.
Status
I have not adopted it yet. The swap buys a clear perplexity improvement for free, at a throughput cost on whichever lane benefits from speculation. Benchmark scores (GPQA, LongBench) are the next check; this post deliberately sticks to deterministic metrics. Thanks to the NVIDIA team for preparing this checkpoint β measured here, it is clearly better than the community export.
End-to-End decoding perf on my machine:
(v3 is the NVIDIA sourced one)
| v2 (tok/s) | v3 (tok/s) | Pair gain | |
|---|---|---|---|
| MTP-0 (Control) | 88.03 / 88.07 | 88.02 / 88.21 | β0.00% / +0.15% |
| MTP-3 | 140.44 / 141.17 | 127.94 / 127.51 | β8.90% / β9.67% |
| DFlash2-K7 | 126.10 | 120.97 / 120.75 | β4.06% / β4.24% |
I'm conducting a fine-tuning campaign to improve the MTP acceptance rate.
Additionally, I'm considering a better version of the DFlash2 weights.
https://huggingface.co/maurienne-ai/Qwen3.8-27B-DFlash2-NVFP4-RTNcal