CoolFace
Modelpublic

PiehSoft/DeepSeek-R1-Distill-Llama-70B-NVFP4-GGUF

sourceHugging Facemitupdated 5mo agoView on Hugging Face
0likes375downloads
Model Card

DeepSeek-R1-Distill-Llama-70B-NVFP4-GGUF

NVFP4 GGUF of DeepSeek-R1-Distill-Llama-70B, optimized for NVIDIA Blackwell GPUs (RTX 5090, RTX PRO 6000, B200).

Overview

PropertyValue
Base modeldeepseek-ai/DeepSeek-R1-Distill-Llama-70B
QuantizationNVFP4 (W4A4 — FP4 E2M1 weights, FP8 E4M3 block scales, FP32 global scales)
FormatGGUF (GGMLTYPENVFP4, type 40)
Size42.7 GB
BPW~4.84 bits per weight
RequiresNVIDIA Blackwell GPU (SM 120) for native FP4 tensor core acceleration
Speed33.6 tok/s generation on RTX PRO 6000 96GB (single GPU)

Quantization Pipeline

This model was quantized using a custom pipeline:

  1. 1.Quantization tool: vllm-project/llm-compressor v0.10.0.2
  2. 2.Calibration: 128 samples from ultrachat-200k (trainsft split), maxseq_length 2048
  3. 3.Recipe:
   QuantizationModifier:
     targets: [Linear]
     ignore: [lm_head]
     scheme: NVFP4
  1. 1.GGUF conversion: llama.cpp PR #21095 branch with two critical fixes:
  2. 2.Tensor renaming: weight_packed → weight, weight_global_scale → weight_scale_2, input_global_scale → input_scale
  3. 3.Scale inversion: llm-compressor stores weight_global_scale as a large divisor; ggml expects a small multiplier. Fix: store 1.0 / weight_global_scale in the GGUF .scale tensor.

Important: Scale Inversion Fix

If you're converting your own llm-compressor NVFP4 checkpoints to GGUF, you must invert the per-tensor global scale. llm-compressor stores scales like 4320.0 (divide by this to dequantize), while ggml's convention expects 0.000231 (multiply by this). Without this fix, the model loads and runs but produces garbage output.

In convert_hf_to_gguf.py, change:

python
self._write_scale_tensor(new_name.replace(".weight", ".scale"), scale2)

to:

python
self._write_scale_tensor(new_name.replace(".weight", ".scale"), 1.0 / scale2.float())

Provenance

ComponentSource
Original base modeldeepseek-ai/DeepSeek-R1-Distill-Llama-70B
NVFP4 checkpointPiehSoft/DeepSeek-R1-Distill-Llama-70B-NVFP4
GGUF conversion toolingllama.cpp (PR #21095)
Quantization hardwareNVIDIA RTX PRO 6000 Blackwell 96GB

Usage

llama-server

bash
./llama-server \
  -m DeepSeek-R1-Distill-Llama-70B-NVFP4.gguf \
  --host 0.0.0.0 \
  --port 8082 \
  -ngl 999

llama-cli

bash
./llama-cli \
  -m DeepSeek-R1-Distill-Llama-70B-NVFP4.gguf \
  -ngl 999 \
  -c 8192 \
  --jinja \
  -p "What is the meaning of life?"

Benchmarks

Tested on RTX PRO 6000 Blackwell 96GB, llama.cpp b9037:

MetricValue
Prompt eval196.5 tok/s
Generation33.6 tok/s
Context131072 (default)
Parallel slots4 (default)
VRAM usage~80 GiB (model + KV cache at 131K context)

Comparison

Backendtok/s
llama.cpp (this GGUF)33.6
vLLM 0.19.0 (compressed-tensors)25.0

Known Issues

  • —This is a community conversion, not an official upstream release.
  • —The NVFP4 GGUF ecosystem is still maturing. See llama.cpp Discussion #22042 for the ongoing discussion about NVFP4 scale handling.
  • —Blackwell-native tensor core dispatch (PR #22196) may improve performance further when merged.

Credits

Quantized and converted by PiehSoft (William Pieh). Built on work by the llama.cpp community, particularly PR #21095 for NVFP4 GGUF conversion support.