CoolFace
Modelpublic

primitive-ai/Nex-N2.5-mini-NVFP4

sourceHugging Faceapache-2.0updated 15d agoView on Hugging Face
0likes1.5kdownloads
Model Card

<p align="center"> <img src="https://img.shields.io/badge/size-23.91%20GB-F98424?style=flat-square" alt="size 23.91 GB"> <img src="https://img.shields.io/badge/vs%20BF16-2.9×%20smaller-F98424?style=flat-square" alt="2.9x smaller than BF16"> <img src="https://img.shields.io/badge/accuracy-level%20with%20BF16-3DD13D?style=flat-square" alt="accuracy level with BF16"> <img src="https://img.shields.io/badge/throughput%20@32-1.53×%20BF16-3DD13D?style=flat-square" alt="1.53x BF16 throughput at concurrency 32"> <img src="https://img.shields.io/badge/KV%20pool-2.74M%20tokens-F98424?style=flat-square" alt="KV pool 2.74M tokens"> <img src="https://img.shields.io/badge/requires-Blackwell-lightgrey?style=flat-square" alt="requires Blackwell"> <a href="https://primitive.com"><img src="https://img.shields.io/badge/web-primitive.com-lightgrey?style=flat-square" alt="primitive.com"></a> </p>

<h3 align="center">A third of the size, 1.5× the throughput, and the eval cannot tell it from BF16.</h3>

<p align="center"> NVFP4 quantization of <a href="https://huggingface.co/nex-agi/Nex-N2.5-mini">nex-agi/Nex-N2.5-mini</a> to <b>23.91 GB</b>, on one 96 GB card.<br> All 40 layers of routed experts at 4 bits; attention, linear attention, shared experts, embeddings and the vision tower stay BF16. </p>

Three builds, one measurement. We quantized this model's experts three ways and measured all of them against the BF16 original under one protocol: this one, an FP8 build at 38.13 GB, and an mixed build at 26.04 GB. On accuracy the four are one band. They separate on size and on speed, and which one is fastest depends on your concurrency. This is the smallest, and the fastest under load.

Why this quant

  • —🗜️ 23.91 GB against 70.24 GB in BF16. The routed experts are 91.8% of this model's weight, so quantizing them alone gets almost the whole reduction.
  • —🎯 Nothing measurable is lost. 90.5 on the 1,170-item knowledge suite and 77.0 on the 200-item tool-calling suite, against the BF16 original's 89.6 and 75.3 on the same box. The original is at the bottom of the band, not the top.
  • —⚡ 1,019 tok/s at concurrency 32, 1.53× the BF16 original's 664. Single-stream it runs 145 tok/s against BF16's 141.
  • —🧠 A 2.74M-token KV pool at 32K context, three times what BF16 leaves room for on the same card, which is what lets one GPU hold 83 concurrent 32K sessions.
  • —🧩 Stock vLLM, no patches. compressed-tensors, nvfp4-pack-quantized, served by the released 0.28.0 image.

Serve it

bash
hf download primitive-ai/Nex-N2.5-mini-NVFP4 --local-dir ./Nex-N2.5-mini-NVFP4

docker run --gpus all --ipc=host -p 8000:8000 -v $PWD:/models \
  vllm/vllm-openai:v0.28.0 \
  --model /models/Nex-N2.5-mini-NVFP4 \
  --max-model-len 32768 --gpu-memory-utilization 0.92 \
  --enable-auto-tool-choice --tool-call-parser qwen3_coder \
  --reasoning-parser qwen3

Qwen3_5MoeForConditionalGeneration is in the 0.28.0 release, so no nightly is needed. The numbers on this page were measured on 0.28.1rc1.dev472, and 0.28.0 serves the same weights with the same kernels (FlashInfer CUTLASS for the NVFP4 experts). Boot takes about 210 s on an idle card.

Two things about this model's chat template are worth knowing before you wire it up. It emits an empty thinking block by default, so replies arrive with two leading newlines and the reasoning field holds only whitespace; a short correct answer looks like "\n\n4". And reasoning_effort (low / medium / xhigh) is a per-request field here, unlike some other reasoning models where it is fixed at server start.


Measured

One RTX PRO 6000 Blackwell, 96 GB, one card. The 1,170-item knowledge suite and the 200-item tool-calling suite, temperature 0.6 / top_p 0.95 / top_k 20, thinking on, a 16,384-token budget, concurrency 32, auto-scored with no LLM judge. Throughput is 8K in / 512 out, prefix-cache free, two seeds per cell. Every row below was run on the same box in the same sitting.

buildsizeknowledgetool-callingcallabstainfinishedtok/s @1tok/s @32
BF16 original70.24 GB89.675.379.758.799.7%141.0664
FP8 experts38.13 GB90.975.579.460.099.5%163.8901
mixed26.04 GB90.676.580.958.799.2%147.2990
this repo, NVFP423.91 GB90.577.081.957.599.3%145.31019

Tool-calling is the mean of two runs per build (three for BF16). Pooled within-build spread is 0.60 standard deviations over those nine runs, and the four build means span 1.7, so the column is one band. Read the ordering with that in mind: it runs opposite to precision, which no mechanism would predict, and is the clearest evidence that this suite cannot resolve the difference between 4-bit and 16-bit experts on this model.

Speed does separate, and it crosses over. FP8 experts decode 13% faster single-stream because the 4-bit path pays for activation quantization and group scales on every token, a cost that does not amortize at batch 1. At concurrency 32 the ranking inverts and NVFP4 wins by 13%, because there the bottleneck is weight bandwidth and 4-bit moves half the bytes. Pick by the concurrency you actually run.


Comparable with our other models

Accuracy numbers move for reasons that have nothing to do with the model: a shorter token budget, a different temperature, or whether the model was allowed to reason at all. So every number in this table, on this card and on our other cards, comes from the one fixed protocol described above, the same 1,370 items, auto-scored, no LLM judge.

modelshapesizeoverallknowledgecallabstainfinishedout/answer
Laguna-XS-2.131 B MoE19.3 GiB81.783.868.473.598.9%1097
Nemotron-3.5-Lightning-30B-A3B30 B MoE+Mamba19.2 GiB87.187.985.470.597.9%1429
Ornith-1.5-35B-A3B35 B MoE22.6 GiB88.791.774.460.099.3%760
Muse-Glimmer-30B30 B MoE20.4 GiB86.688.878.654.599.7%800
Qwen3.8-27B27 B dense20.7 GiB88.890.485.554.599.7%651
Granite-4.2-30B30 B dense18.1 GB85.586.285.860.898.5%1502
Nex-N2.5-mini NVFP4 (this repo)35 B MoE, 3 B active23.91 GB88.590.581.957.599.3%524
Nex-N2.5-mini mixed35 B MoE, 3 B active26.04 GB88.590.680.958.799.2%504
Nex-N2.5-mini FP835 B MoE, 3 B active38.13 GB88.790.979.460.099.5%545
K2-Horizon-MoVA-36B-A4B NVFP437 B MoE+MoVA, 4 B active36.7 GB84.186.571.860.495.6%1234
K2-Horizon-MoVA-36B-A4B mixed37 B MoE+MoVA, 4 B active44.5 GB84.987.373.558.996.3%1118
Laguna-S-2.1110 B MoE64.0 GiB84.387.164.681.097.3%995
Qwen3.8-Flash-Next180 B MoE, 6 B active183.7 GB90.392.284.856.799.5%686

overall pools the two suites as 1,370 items, weighted 85.4% knowledge and 14.6% tool calling by item count. Read it with `finished`: overall scores an answer that overran the token budget as wrong, and cannot say whether the model needed the room or failed to stop. A gap under 1.0 in overall is a tie. Sizes are as each card reports them, which mixes GB and GiB.


What's quantized to what

Nex-N2.5-mini is 35.11 B parameters, and they are distributed very unevenly:

paramsshare
routed experts, 40 layers × 256 × (gate+up+down)32.21 B91.8%
linear attention (Gated DeltaNet), 30 layers1.01 B2.9%
embed_tokens and lm_head, untied, vocab 2483201.02 B2.9%
vision tower, 27 blocks0.45 B1.3%
full attention, 10 layers0.27 B0.8%
shared experts, routers, norms0.15 B0.4%
tensorscountformat
routed experts on all 40 layers30,720 modulesNVFP4, group 16
everything else946 tensorsBF16, byte-identical to the source

compressed-tensors, format nvfp4-pack-quantized, one config group, W4A4 with group-16 weight scales and a per-module global scale. The source ships experts as two batched 3-D tensors per layer; they are unfolded into per-expert modules, which is the layout vLLM's loader consumes. gate and up share one weight_global_scale per expert. vLLM fuses those two halves and keeps a single scale, warning and taking the maximum when they disagree, which silently shrinks half the weights, so the build is audited for that before release: 20,480 fused groups checked, no mismatches.

Weights-only round-to-nearest, no calibration. Nothing in the quantization is fitted to data.


<p align="center"> <br> <img src="https://huggingface.co/primitive-ai/Qwen3.8-Flash-Next-mixed-NVFP4-FP8/resolve/main/assets/primitive-logo.png" alt="Primitive" width="34"><br> <sub> <a href="https://primitive.com"><b>primitive</b></a> · <a href="https://huggingface.co/primitive-ai">more models</a> · inference economics for production LLM systems </sub> </p>