这是 nvidia/Gemma-4-31B-IT-NVFP4 的重新打包版本,与 基础模型 相比,GPU 内存占用减少 68%,速度提升 约 2.5 倍,同时保持 几乎相同的质量(性能损失 1-3%)。可在单张 RTX 5090 上运行(🎉)。
它充分利用 NVIDIA Blackwell FP4 张量核心(RTX 5090、RTX PRO 6000、B200 以及其他 SM 12.0+ 且显存 ≥20 GB 的 GPU),与 prithivMLmods/gemma-4-31B-it-NVFP4 或 cyankiwi/gemma-4-31B-it-AWQ-4bit 等其他量化版本相比,并发吞吐量 提高约 2 倍。
此变体为 纯文本版本,已移除视频/音频权重和编码器。如需视频/音频支持,请提交 issue 或 PR。

[!NOTE]
测试环境为 RTX PRO 6000,使用vllm bench,输入 1K tokens / 输出 200 tokens。详见 bench.sh。注:我们也在 RTX 5090 上运行了 ⚡Turbo 基准测试,性能表现完全一致,因为在 16k 上下文长度下,性能不受 GPU 内存限制。
| 指标 | 基础模型 | NVIDIA 量化版 | ⚡ Turbo(本模型) |
|---|---|---|---|
| GPU 内存 | 58.9 GiB | 31 GiB | 18.5 GiB (-68% 基础模型, -40% NVIDIA 版) |
| GPQA Diamond | 75.71% | 75.46% | 72.73% (-2.98% 基础模型, -2.73% NVIDIA 版) |
| MMLU Pro | 85.25% | 84.94% | 83.93% (-1.32% 基础模型, -1.01% NVIDIA 版) |
| 预填充速度 | 6352 tok/s | 11069 tok/s | 15359 tok/s (+142% 基础模型, +39% NVIDIA 版) |
| 解码速度(单轮) | 24.1 tok/s | 39.2 tok/s | 51 tok/s (+112% 基础模型, +30% NVIDIA 版) |
| 解码速度(批处理) | 494 tok/s | 913 tok/s | 1244 tok/s (+152% 基础模型, +36% NVIDIA 版) |
| 并发请求数 | 2.47 tok/s | 4.56 req/s | 6.22 req/s (+152% 基础模型, +36% NVIDIA 版) |
其他类似大小的量化版本使用的内核路径(compressed-tensors、Marlin)无法利用 Blackwell 的 FP4 张量核心,导致预填充和并发吞吐量显著降低:
| 指标 | prithivMLmods NVFP4 | cyankiwi AWQ | ⚡ Turbo(本模型) |
|---|---|---|---|
| GPU 内存 | 19.6 GiB | 19.6 GiB | 18.5 GiB |
| 预填充速度 | 6647 tok/s | 6626 tok/s | 15359 tok/s |
| 解码速度(单轮) | 64.3 tok/s | 64.4 tok/s | 51 tok/s |
| 解码速度(批处理) | 757 tok/s | 757 tok/s | 1244 tok/s |
| 并发请求数 | 3.79 req/s | 3.78 req/s | 6.22 req/s |
要求:
transformers >= 5.5.0vllm >= 0.19 且带有 CUDA 13.0
注意:
pip install vllm会安装 CUDA 12,而 CUDA 12 不支持 Blackwell FP4 张量核心。请使用以下方法之一。
我们建议使用 vllm/vllm-openai:cu130-nightly Docker 镜像,该镜像预装了 CUDA 13.0 并原生支持 Blackwell。
docker run --gpus all \
-v ~/.cache/huggingface:/root/.cache/huggingface \
-p 8000:8000 \
vllm/vllm-openai:cu130-nightly \
--model LilaRest/gemma-4-31B-it-NVFP4-turbo \
--quantization modelopt \
--max-model-len 16384 \
--max-num-seqs 128 \
--max-num-batched-tokens 8192 \
--gpu-memory-utilization 0.95 \
--kv-cache-dtype fp8 \
--enable-prefix-caching \
--trust-remote-code若遇到
model type gemma4 not recognized错误,请在容器内运行pip install transformers>=5.5.0。
pip install https://github.com/vllm-project/vllm/releases/download/v0.19.0/vllm-0.19.0+cu130-cp38-abi3-manylinux_2_35_x86_64.whl
pip install transformers>=5.5.0
vllm serve LilaRest/gemma-4-31B-it-NVFP4-turbo \
--quantization modelopt \
--max-model-len 16384 \
--max-num-seqs 128 \
--max-num-batched-tokens 8192 \
--gpu-memory-utilization 0.95 \
--kv-cache-dtype fp8 \
--enable-prefix-caching \
--trust-remote-code--quantization modelopt — 必需项,用于激活 NVIDIA 优化的 CUTLASS 内核--kv-cache-dtype fp8 — 在 Blackwell 架构上可将 KV 缓存内存减半--max-model-len 16384 — 每个请求的最大上下文长度。有关每个 GPU 的最大值,请参见兼容性部分。上述基准测试使用通用工作负载(1K 输入 / 200 输出 tokens)。您可以针对特定使用场景调整 vLLM 标志:
--max-model-len 并限制输出 tokens(API 请求中的 max_tokens)。KV 缓存压力越小,意味着可处理的并发请求越多。在 RTX 5090 上,分类工作负载(约 1K 输入,约 10 输出 tokens)预计可达到 14+ 请求/秒。--max-model-len(RTX 5090 上最高约 25K,PRO 6000 上约 180K)。以并发处理能力为代价换取更长的序列长度。--max-num-seqs 的值,并结合使用 --request-rate inf 和 --max-concurrency 以充分利用 GPU。在 1K/200 工作负载下,RTX PRO 6000 的峰值吞吐量约为 6.2 请求/秒。Blackwell(SM 12.0+)— 全面支持 FP4 张量核心:
| GPU | 显存 | 是否支持 | 最大上下文长度 | 说明 |
|---|---|---|---|---|
| RTX 5090 | 32 GB | ✅ | ~25k | 主要目标平台 |
| RTX PRO 6000 | 96 GB | ✅ | ~180K | 理想用于高并发或长上下文工作负载。 |
| B200 | 192 GB | ✅ | 262k(完整) | 数据中心级,未测试 |
| B100 | 192 GB | ✅ | 262k(完整) | 数据中心级,未测试 |
| RTX 5080 及更低版本 | ≤16 GB | ❌ | — | 显存不足 |
较旧的 GPU(H100、A100、RTX 4090 等)在不使用 --quantization modelopt 时可能可以运行,但它们缺乏 FP4 张量核心,因此会失去优化的内核路径,性能将显著下降。
主要进行了三项修改:
Gemma4ForCausalLM,并相应调整量化配置其他所有部分均保持不变——MLP层保留NVIDIA的校准FP4,embed_tokens保持BF16,所有归一化层均未改动,因此我们保留了nvidia/Gemma-4-31B-IT-NVFP4的所有优化。
RTN(最近舍入)是最简单的量化方法——无需校准数据,完全可复现。在此处奏效的原因如下:
embed_tokens保持BF16,可防止噪声在所有层中传播Apache 2.0——与基础模型相同。