This repo contains Nova-70B-Llama-3.3 quantized with NVFP4A16, a 4-bit compression suitable for max performance on all hardware with 8-bit-like accuracy.
This model requires ~40GiB of VRAM.
Make sure to set an appropriate context size --max-model-len in VLLM and/or quantize the KV cache and/or use multiple GPUs with for example tensor-parallelism.
The model was tested with vLLM + 1x or 2x RTX Pro 6000, here is a script suitable for such configuration with 131072 context length.
It is however recommended to use only 65K context to avoid significant degradation (
https://fiction.live/stories/Fiction-liveBench-Sept-29-2025/oQdzQvKHw8JyXbN87)
This model is recommended with "min-p" sampling, this sampling is available through
both the oldest Text completions API and the Chat completions API (and there is a new Response API),
however most LLM frontends only support modifying min-p when using Text completions.
You can however use --override-generation-config "${SAMPLER_JSONCONFIG}" to override the sampler (which is a merge of generation_config.json and vLLM defaults)
1# Model configuration (Mandatory)
2MODEL="mratsim/Nova-70B-NVFP4A16"
3MODELNAME="nova-70b"
4GPU_UTIL=0.45
5NUM_GPUS=2
6
7# Sampling configuration (Optional, if departing from `generation_config.json`)
8SAMPLER_OVERRIDE='{"temperature": 0.8, "min_p": 0.05, "repetition_penalty": 1.05}'
9
10# Prevent vLLM from using 100% CPU when idle (Very Recommended)
11export VLLM_SLEEP_WHEN_IDLE=1
12
13# Use FlashInfer backend (fastest, recommended, "instant" context reprocessing)
14export VLLM_ATTENTION_BACKEND=FLASHINFER
15
16vllm serve "${MODEL}" \
17 --served-model-name "${MODELNAME}" \
18 --tensor-parallel-size "${NUM_GPUS}" \
19 --gpu-memory-utilization ${GPU_UTIL} \
20 --override-generation-config "${SAMPLER_OVERRIDE}"
1default_stage:
2 default_modifiers:
3 QuantizationModifier:
4 targets: [Linear]
5 ignore: [lm_head]
6 scheme: NVFP4A16
NVFP4A16 doesn't require any calibration dataset.