Flint NVFP4 (SafeTensors, ModelOpt layout, for vLLM and imp)

Recursive Flint (39.8 B parameters, about 2.5 B active per token) as NVFP4 SafeTensors. The quantized tensors are Recursive's own: this repo is a lossless repack of the official RecursiveSI/flint-nvfp4-gguf into the ModelOpt NVFP4 layout, so the checkpoint loads in vLLM and in imp without a GGUF reader. 74.1 GiB of BF16 is 21.7 GiB here and fits one 32 GB card.

Not affiliated with Recursive. Model details, benchmarks, chat conventions and limitations: the Flint model card.

What is in the files

Source of the quantized tensors flint-nvfp4.gguf from RecursiveSI/flint-nvfp4-gguf, 22 863 084 160 bytes
Repack vllm.models.flint.gguf_nvfp4 (vLLM 0.33.0): E2M1 codes, E4M3 block scales and the F32 tensor scale are copied, not recomputed
Layout per Linear <name>.weight (U8, two codes per byte), <name>.weight_scale (F8_E4M3, one per 16 columns), <name>.weight_scale_2 (F32)
Quantized 36 439 Linears: attention q/k/v/o, the two dense MLPs, shared experts, all 256 x 47 routed experts
Source precision (BF16) model.embed_tokens, the 47 routers mlp.gate, norms, attention sinks
lm_head NVFP4 in the GGUF; written here as BF16 = code x block scale x tensor scale (one rounding to BF16), the form vLLM and imp both load
Declaration config.json quantization_config (quant_method: modelopt, quant_algo: W4A16_NVFP4) and hf_quant_config.json
Tensors 109 612 in 15 shards

Use it

# vLLM >= 0.33.0 (the first release with FlintForCausalLM); verified on 0.33.0 with a local copy, RTX 5090
vllm serve kekzle/Flint-NVFP4 --served-model-name flint --max-model-len 8192 --gpu-memory-utilization 0.90
# imp (builds with Flint support, after v0.67.1)
docker run --rm --gpus all -p 8080:8080 -v /path/to/models:/models \
  ghcr.io/kekzl/imp:latest \
  imp-server --host 0.0.0.0 --model /models/Flint-NVFP4

Recommended sampling (Recursive): temperature 1.0, top-p 0.95, top-k 20. Use the shipped chat template and keep reasoning_content in the conversation history.

Measured

Perplexity on the same 4 095 rows (the first 4 096 tokens of imp's ppl_corpus_45k.txt, no BOS). The reference is a CPU FP32 forward written from Recursive's SGLang model code; it keeps activations at full precision (W4A16).

Weights Runtime PPL
BF16 (RecursiveSI/flint) CPU reference 12.717
this repo CPU reference, W4A16 12.861 (NLL +0.011 +- 0.016 against BF16)
this repo imp, RTX 5090 (prefill quantizes activations, W4A4) 13.841
  • Against BF16 the next-token argmax agrees on 82.2 % of the rows (KL 0.221 +- 0.014): the distribution moves, the mean loss does not.
  • vLLM 0.33.0 on an RTX 5090 (32 GB): loads, answers, 31 125 MiB at --gpu-memory-utilization 0.90. vLLM's Flint kernels target SM100 cards; on the 5090 it runs its stock FP4 Marlin path.
  • imp on the same card: chat, reasoning split, OpenAI and Anthropic tool calls; about 350 tokens/s for 600-1200 token answers, one stream.

License

Apache-2.0, as the source repos. The LICENSE file is Recursive's.

Downloads last month
-
Safetensors
Model size
40B params
Tensor type
F32
路
BF16
路
U8
路
Inference Providers NEW
This model isn't deployed by any Inference Provider. 馃檵 Ask for provider support

Model tree for kekzle/Flint-NVFP4

Quantized
(112)
this model