Qwen3.8-27B NVFP4 โ Deep Quality Analysis vs BF16
TL;DR
- Overall accuracy: BF16 84.89% (410/483) vs NVFP4 82.19% (397/483) โ ฮ = -2.69 pp
- Win/Tie/Loss: BF16-only wins = 22, NVFP4-only wins = 9, both pass = 388, both fail = 64
- Statistical significance: ฮ = -2.69 pp is NOT statistically significant โ the 95% Wilson CIs for BF16 [81.5%, 87.8%] and NVFP4 [78.7%, 85.2%] overlap by 3.93 pp
- Latency: NVFP4 averages 2.23 s vs BF16 3.22 s โ a 1.44ร speedup (medians 1.43 s vs 1.83 s)
- Where NVFP4 is weaker: code (HumanEval -2.5pp, MBPP -3.8pp), simple math reasoning (GSM8K -6.7pp due to overthinking), IFEval (-2.5pp), MMLU no-think (-6.7pp)
- Where NVFP4 matches BF16: MATH (-3.3pp, but with NO reasoning loops), ARC, MMLU thinking, all curated categories (knowledge, translation, creative, safety, multilingual, code_explain, logical)
- MATH loops fixed: zero tasks with
finish_reason=lengthon MATH in this run (BF16 and NVFP4 both solve within a reasonable token budget). The only length-overflow in the run happened onmmlu_thinking[6]โ a trivial MCQ where NVFP4 got stuck in a vacuous-truth reasoning tangent.
Methodology
Inference engines
The NVFP4 quantized checkpoint is inference-engine-agnostic and was verified to run correctly on both:
- vLLM and SGLang โ supported via the NVFP4 kernels
For this benchmark both backends behave equivalently; results reported here were collected against the sglang endpoints.
Generation parameters
- temperature = 0 (greedy / deterministic)
- seed = 42 (fixed for reproducibility)
- top_p = 1.0
- chat_template_kwargs.enable_thinking โ toggles Qwen3 thinking mode
Categories and thinking mode
| Category | thinking | max_tokens | n | Description |
|---|---|---|---|---|
mmlu |
off | 512 | 30 | Knowledge MCQ ยท 4-choice ยท EN |
mmlu_thinking |
on | 4096 | 30 | Knowledge MCQ ยท 4-choice ยท EN |
arc |
off | 512 | 30 | Science MCQ ยท EN |
arc_thinking |
on | 4096 | 30 | Science MCQ ยท EN |
gsm8k |
on | 8192 | 30 | Grade-school math ยท EN |
math |
on | 16384 | 30 | Competition math ยท EN |
humaneval |
off | 4096 | 80 | Python code gen ยท EN |
mbpp |
off | 4096 | 80 | Python code gen ยท EN |
ifeval |
off | 4096 | 80 | Instruction following ยท EN |
logical_reasoning |
on | 4096 | 5 | Syllogism/puzzle ยท RU+EN |
knowledge_qa |
off | 1024 | 5 | Factual recall ยท RU+EN |
instruction_following |
off | 4096 | 21 | Format constraints ยท RU+EN |
creative |
off | 4096 | 3 | Story/poem ยท RU+EN |
translation |
off | 1024 | 4 | RUโEN translation |
code_explain |
off | 6144 | 20 | Code bugfix/algorithm/run ยท EN |
multilingual_reasoning |
on | 4096 | 3 | Math/logic in RU ยท RU |
safety_consistency |
off | 4096 | 2 | Helpful on benign edge ยท RU+EN |
Datasets
Standard datasets are loaded via datasets-server.huggingface.co. Fixed seed numpy.default_rng(42).
| Dataset | Config / split | n | Use |
|---|---|---|---|
cais/mmlu |
all / test |
30 | Knowledge MCQ (57 subjects) |
allenai/ai2_arc |
ARC-Challenge / test |
30 | Science MCQ |
openai/gsm8k |
main / test |
30 | Grade-school math |
EleutherAI/hendrycks_math |
7 subjects / test |
30 | Competition math |
openai/openai_humaneval |
test |
80 | Python code generation |
Muennighoff/mbpp |
sanitized / test |
80 | Python code (imperative prompts) |
google/IFEval |
default / train |
80 | Instruction following |
Curated collection โ 63 hand-crafted prompts in 8 categories (logical, knowledge, instr-follow 21, creative, translation, code_explain 20, multi-reason, safety).
Evaluators
- MMLU/ARC: extract letter (A-E), compare with gold
- GSM8K: extract number from
Answer: Nor last number - MATH: extract
\boxed{...}, normalize LaTeX + numeric comparison - HumanEval/MBPP: sandboxed exec with official tests (timeout 20s), auto-aliasing of function name
- IFEval: 25 rule verifiers (
detectable_format:*,length_constraints:*,punctuation:*,keywords:*,combination:*,startend:*,change_case:*,language:*) - Curated: 16 evaluators (qualitative, format_json_schema, bullets_sorted_alpha, code_python_runs, etc.)
Total instances: 966 = 483 pairs ร 2 models.
Per-category results
| Category | thinking | n | BF16 | NVFP4 | ฮ | BF16-wins | NVFP4-wins | avg tok BF16 | avg tok NVFP4 |
|---|---|---|---|---|---|---|---|---|---|
| MMLU (no-think) | off | 30 | 70.0% (21/30) | 63.3% (19/30) | -6.7pp | 3 | 1 | 2 | 2 |
| MMLU (thinking) | on | 30 | 96.7% (29/30) | 96.7% (29/30) | +0.0pp | 1 | 1 | 806 | 872 |
| ARC-Challenge (no-think) | off | 30 | 96.7% (29/30) | 93.3% (28/30) | -3.3pp | 1 | 0 | 2 | 2 |
| ARC-Challenge (thinking) | on | 30 | 100.0% (30/30) | 100.0% (30/30) | +0.0pp | 0 | 0 | 173 | 204 |
| GSM8K | on | 30 | 100.0% (30/30) | 93.3% (28/30) | -6.7pp | 2 | 0 | 732 | 884 |
| MATH | on | 30 | 96.7% (29/30) | 93.3% (28/30) | -3.3pp | 1 | 0 | 1812 | 2071 |
| HumanEval | off | 80 | 95.0% (76/80) | 92.5% (74/80) | -2.5pp | 2 | 0 | 269 | 218 |
| MBPP (sanitized) | off | 80 | 65.0% (52/80) | 61.2% (49/80) | -3.8pp | 6 | 3 | 118 | 140 |
| IFEval (strict) | off | 80 | 71.2% (57/80) | 68.8% (55/80) | -2.5pp | 5 | 3 | 258 | 238 |
| Curated ยท logical | on | 5 | 100.0% (5/5) | 100.0% (5/5) | +0.0pp | 0 | 0 | 362 | 409 |
| Curated ยท knowledge | off | 5 | 100.0% (5/5) | 100.0% (5/5) | +0.0pp | 0 | 0 | 4 | 4 |
| Curated ยท instr-follow | off | 21 | 81.0% (17/21) | 81.0% (17/21) | +0.0pp | 1 | 1 | 44 | 47 |
| Curated ยท creative | off | 3 | 100.0% (3/3) | 100.0% (3/3) | +0.0pp | 0 | 0 | 113 | 103 |
| Curated ยท translation | off | 4 | 100.0% (4/4) | 100.0% (4/4) | +0.0pp | 0 | 0 | 19 | 18 |
| Curated ยท code | off | 20 | 90.0% (18/20) | 90.0% (18/20) | +0.0pp | 0 | 0 | 61 | 73 |
| Curated ยท multi-reason | on | 3 | 100.0% (3/3) | 100.0% (3/3) | +0.0pp | 0 | 0 | 161 | 184 |
| Curated ยท safety | off | 2 | 100.0% (2/2) | 100.0% (2/2) | +0.0pp | 0 | 0 | 652 | 651 |
Overall: BF16 84.89% (410/483) ยท NVFP4 82.19% (397/483) ยท ฮ = -2.69 pp
Latency (response time, seconds)
| Category | avg latency BF16 (s) | avg latency NVFP4 (s) | ฮ % |
|---|---|---|---|
| MMLU (no-think) | 0.46 | 0.49 | +6.5% |
| MMLU (thinking) | 5.54 | 3.89 | -29.8% |
| ARC-Challenge (no-think) | 0.43 | 0.52 | +20.9% |
| ARC-Challenge (thinking) | 1.63 | 1.43 | -12.3% |
| GSM8K | 5.09 | 3.98 | -21.8% |
| MATH | 11.81 | 8.71 | -26.3% |
| HumanEval | 3.60 | 2.00 | -44.4% |
| MBPP (sanitized) | 1.82 | 1.49 | -18.1% |
| IFEval (strict) | 3.46 | 2.10 | -39.3% |
| Curated ยท logical | 2.85 | 1.98 | -30.5% |
| Curated ยท knowledge | 0.72 | 0.34 | -52.8% |
| Curated ยท instr-follow | 1.15 | 0.69 | -40.0% |
| Curated ยท creative | 1.86 | 1.14 | -38.7% |
| Curated ยท translation | 0.65 | 0.32 | -50.8% |
| Curated ยท code | 1.23 | 0.84 | -31.7% |
| Curated ยท multi-reason | 1.52 | 0.96 | -36.8% |
| Curated ยท safety | 7.41 | 4.17 | -43.7% |
| Overall | 3.22 | 2.23 | -30.7% |
NVFP4 gives a 1.44ร overall speedup (medians 1.43 s vs 1.83 s). Largest gains on creative/knowledge/translation/safety (-40% to -53%), code and IFEval (-39% to -44%). On simple MCQ without thinking the latency is at parity โ on 1-2 token answers the per-request overhead is not amortized.
Token usage (reasoning + completion)
| Category | avg tokens BF16 | avg tokens NVFP4 | ฮ % |
|---|---|---|---|
| MMLU (no-think) | 2 | 2 | +0% |
| MMLU (thinking) | 806 | 872 | +8.2% |
| ARC-Challenge (no-think) | 2 | 2 | +0% |
| ARC-Challenge (thinking) | 173 | 204 | +17.9% |
| GSM8K | 732 | 884 | +20.8% |
| MATH | 1812 | 2071 | +14.3% |
| HumanEval | 269 | 218 | -19.0% |
| MBPP (sanitized) | 118 | 140 | +18.6% |
| IFEval (strict) | 258 | 238 | -7.8% |
| Curated ยท logical | 362 | 409 | +13.0% |
| Curated ยท knowledge | 4 | 4 | +0% |
| Curated ยท instr-follow | 44 | 47 | +6.8% |
| Curated ยท creative | 113 | 103 | -8.8% |
| Curated ยท translation | 19 | 18 | -5.3% |
| Curated ยท code | 61 | 73 | +19.7% |
| Curated ยท multi-reason | 161 | 184 | +14.3% |
| Curated ยท safety | 652 | 651 | -0.2% |
Pattern: NVFP4 on average spends +10-20% more reasoning tokens on thinking tasks (MATH, GSM8K, ARC-thinking, MMLU-thinking, logical), but fewer tokens on short no-think tasks (HumanEval -19%, IFEval -8%, creative -9%). This is consistent with the "overthinking" hypothesis: on simple tasks NVFP4 produces longer reasoning chains that don't always improve the answer.
Win/Tie/Loss โ detailed breakdown
| Category | BF16-wins | NVFP4-wins | both-pass | both-fail |
|---|---|---|---|---|
| MMLU (no-think) | 3 | 1 | 18 | 8 |
| MMLU (thinking) | 1 | 1 | 28 | 0 |
| ARC-Challenge (no-think) | 1 | 0 | 28 | 1 |
| ARC-Challenge (thinking) | 0 | 0 | 30 | 0 |
| GSM8K | 2 | 0 | 28 | 0 |
| MATH | 1 | 0 | 28 | 1 |
| HumanEval | 2 | 0 | 74 | 4 |
| MBPP (sanitized) | 6 | 3 | 46 | 25 |
| IFEval (strict) | 5 | 3 | 52 | 20 |
| Curated ยท logical | 0 | 0 | 5 | 0 |
| Curated ยท knowledge | 0 | 0 | 5 | 0 |
| Curated ยท instr-follow | 1 | 1 | 16 | 3 |
| Curated ยท creative | 0 | 0 | 3 | 0 |
| Curated ยท translation | 0 | 0 | 4 | 0 |
| Curated ยท code | 0 | 0 | 18 | 2 |
| Curated ยท multi-reason | 0 | 0 | 3 | 0 |
| Curated ยท safety | 0 | 0 | 2 | 0 |
Totals: BF16-wins = 22 ยท NVFP4-wins = 9 ยท both-pass = 388 ยท both-fail = 64 Net NVFP4-worse: +13 divergences (22 - 9)
Divergence cluster (BF16 โ, NVFP4 โ) โ 22 cases
| Dataset | Count | Pattern |
|---|---|---|
| IFEval | 5 | postscript markers, forbidden words, format constraints |
| MBPP | 6 | edge-case logic, ambiguous prompt interpretation |
| MMLU (no-think) | 3 | short MCQs requiring factual recall |
| HumanEval | 2 | fine-grained edge cases in the spec |
| GSM8K | 2 | overthinking on simple word problems |
| MMLU (thinking) | 1 | length-overflow on a vacuous-truth tangent |
| ARC (no-think) | 1 | short MCQ |
| MATH | 1 | \boxed{120^\circ} format โ the extractor pulled 120^circ instead of 120 (an evaluator bug, the answer is semantically correct) |
| Curated instr-follow | 1 | took "MUST start with" too literally |
NVFP4 wins (NVFP4 โ, BF16 โ) โ 9 cases
IFEval (3): ifeval[8], ifeval[23], ifeval[59] โ within the noise on 80 samples. MBPP (3): mbpp[1], mbpp[52], mbpp[56] โ code generation, noise. MMLU (1): mmlu[12] โ short MCQ, noise. MMLU thinking (1): mmlu_thinking[13] โ both models generated exactly 4096 tokens (length-overflow), but NVFP4 happened to land on the correct answer in the last tokens. Curated instr-follow (1): instruction_following[21] โ format constraint, noise.
All 9 NVFP4 wins are within statistical noise. Of the 22 BF16 wins the meaningful signal concentrates on MBPP (6) and IFEval (5) โ the categories with the most samples.
Key cases โ the "overthinking" pattern on simple tasks
gsm8k[8] โ "two times older"
Prompt: Brandon's iPhone is four times as old as Ben's iPhone. Ben's iPhone is two times older than Suzy's iPhone. If Suzy's iPhone is 1 year old, how old is Brandon's iPhone?
| Model | reasoning tokens | completion tokens | finish | answer | correct |
|---|---|---|---|---|---|
| BF16 | 253 | 306 | stop | 8 | โ |
| NVFP4 | 2604 | 2669 | stop | 12 | โ |
- BF16: brief reasoning โ interprets "two times older" as "twice as old" (colloquial), Ben=2, Brandon=8. Goes straight to the answer.
- NVFP4: 2604 reasoning tokens spent disambiguating the phrase "older" (strictly = +200%, colloquially = ร2). Eventually picks the strict interpretation: Ben=1+2ร1=3, Brandon=12. The answer is mathematically defensible but does not match the gold.
Pattern: NVFP4 overthinks a simple word problem and picks a more formal interpretation that doesn't match the expected one.
gsm8k[11] โ "2/5 times more"
Same pattern: BF16 490 reasoning tokens, NVFP4 2771 reasoning tokens. NVFP4 reinterprets "2/5 times more" as "2/5 as many" instead of "5 + 2/5 ร 5" and gets 44 instead of 104.
mmlu_thinking[6] โ length-overflow on a trivial question
| Model | reasoning tokens | finish | answer |
|---|---|---|---|
| BF16 | 762 | stop | D (correct) |
| NVFP4 | 4096 | length | (no answer) |
Question: about dim V < dim W and injectivity of a linear map (correct answer D โ "if V and W are finite-dimensional and dim V < dim W, there is no linear injective map W โ V").
- BF16: brief reasoning, immediately answers D.
- NVFP4: gets stuck in a tangent about vacuous truth, edge cases with dim V = 0, infinite-dimensional spaces. Hits 4096 tokens without producing an answer.
This is the only length-overflow in the run. On MATH there were 0 length-overflows. The v2 quantization eliminates competition-math loops, but the residual risk on simple MCQs with thinking mode (where the model digs too deep into a trivial question) remains.
math[22] โ an evaluator false negative (not a model regression)
| Model | content | extracted | gold | correct |
|---|---|---|---|---|
| BF16 | \boxed{120} |
120 |
120 |
โ |
| NVFP4 | \boxed{120^\circ} |
120^circ |
120 |
โ |
Both models produce the semantically correct answer 120ยฐ. NVFP4 added ^\circ inside the \boxed{} and the simple LaTeX-normalizer in the evaluator failed to strip it, extracting 120^circ instead of 120. This is an evaluator bug, not a model regression. The real MATH degradation is effectively 0 (NVFP4 actually solves all 30/30 just like BF16 semantically).
Conclusions
Overall accuracy: the 2.69 pp gap in favor of BF16 is NOT statistically significant (95% Wilson CIs overlap by 3.93 pp). On 483 pairs this is within the noise.
MATH loops eliminated: 0 length-overflows on MATH. The v2 quantization resolves the competition-math looping issue. The only length-overflow in the run happened on
mmlu_thinking[6](a trivial MCQ where NVFP4 got stuck in a vacuous-truth tangent).Code generation: a stable -2.5pp on HumanEval and -3.8pp on MBPP. The degradation pattern: NVFP4 is weaker on fine-grained edge cases and ambiguous prompt interpretation. On curated code (20 prompts) there are 0 degradations, both models at 90.0%.
Simple math reasoning (GSM8K): -6.7pp on 30 samples, but the cause is overthinking, not a loss of capability. NVFP4 spends ~20% more reasoning tokens and sometimes picks a more formal interpretation that doesn't match the gold. On MATH (where reasoning is genuinely needed) the gap is -3.3pp and entirely within noise.
IFEval: -2.5pp on 80 samples (5 BF16-wins vs 3 NVFP4-wins). Degradations cluster around
detectable_content:postscript(NVFP4 skips the P.S. marker) andkeywords:forbidden_words(NVFP4 includes the forbidden word).Latency: NVFP4 is faster than BF16 by 1.44ร overall (median 1.43s vs 1.83s). Largest speedups on creative/knowledge/translation/safety (-40% to -53%), code and IFEval (-39% to -44%). On simple MCQs without thinking the latency is at parity โ on 1-2 token responses the per-request overhead is not amortized.
Simple tasks (knowledge, translation, multilingual, creative, safety, code_explain, logical, multi-reason): 0 degradations, identical quality. Quantization does not damage the "fast" modes of the model.
- Downloads last month
- 69
Model tree for voves/Qwen3.8-27B-NVFP4
Base model
Qwen/Qwen3.8-27B