HuggingFace镜像/gemma-4-31B-it-NVFP4-turbo
模型介绍文件和版本分析
下载使用量0

⚡ Gemma 4 31B IT NVFP4 Turbo

这是 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 GiB31 GiB18.5 GiB (-68% 基础模型, -40% NVIDIA 版)
GPQA Diamond75.71%75.46%72.73% (-2.98% 基础模型, -2.73% NVIDIA 版)
MMLU Pro85.25%84.94%83.93% (-1.32% 基础模型, -1.01% NVIDIA 版)
预填充速度6352 tok/s11069 tok/s15359 tok/s (+142% 基础模型, +39% NVIDIA 版)
解码速度(单轮)24.1 tok/s39.2 tok/s51 tok/s (+112% 基础模型, +30% NVIDIA 版)
解码速度(批处理)494 tok/s913 tok/s1244 tok/s (+152% 基础模型, +36% NVIDIA 版)
并发请求数2.47 tok/s4.56 req/s6.22 req/s (+152% 基础模型, +36% NVIDIA 版)

其他类似大小的量化版本使用的内核路径(compressed-tensors、Marlin)无法利用 Blackwell 的 FP4 张量核心,导致预填充和并发吞吐量显著降低:

指标prithivMLmods NVFP4cyankiwi AWQ⚡ Turbo(本模型)
GPU 内存19.6 GiB19.6 GiB18.5 GiB
预填充速度6647 tok/s6626 tok/s15359 tok/s
解码速度(单轮)64.3 tok/s64.4 tok/s51 tok/s
解码速度(批处理)757 tok/s757 tok/s1244 tok/s
并发请求数3.79 req/s3.78 req/s6.22 req/s

使用方法

要求:

  • 一块 Blackwell GPU(参见兼容性)
  • transformers >= 5.5.0
  • vllm >= 0.19 且带有 CUDA 13.0

    注意: pip install vllm 会安装 CUDA 12,而 CUDA 12 不支持 Blackwell FP4 张量核心。请使用以下方法之一。

Docker(推荐)

我们建议使用 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(CUDA 13.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)。以并发处理能力为代价换取更长的序列长度。
  • 延迟敏感型 — 保持较低的并发度。单请求解码速度约为 51 tokens/秒,首 token 输出时间(TTFT)低于 70ms,足以满足交互式使用需求。
  • 批处理 — 提高 --max-num-seqs 的值,并结合使用 --request-rate inf 和 --max-concurrency 以充分利用 GPU。在 1K/200 工作负载下,RTX PRO 6000 的峰值吞吐量约为 6.2 请求/秒。

兼容性

Blackwell(SM 12.0+)— 全面支持 FP4 张量核心:

GPU显存是否支持最大上下文长度说明
RTX 509032 GB✅~25k主要目标平台
RTX PRO 600096 GB✅~180K理想用于高并发或长上下文工作负载。
B200192 GB✅262k(完整)数据中心级,未测试
B100192 GB✅262k(完整)数据中心级,未测试
RTX 5080 及更低版本≤16 GB❌—显存不足

较旧的 GPU(H100、A100、RTX 4090 等)在不使用 --quantization modelopt 时可能可以运行,但它们缺乏 FP4 张量核心,因此会失去优化的内核路径,性能将显著下降。

方法

主要进行了三项修改:

  1. 量化:将所有自注意力权重从BF16量化为FP4(采用RTN算法,分组大小=16,匹配modelopt NVFP4格式)
  2. 更新:将架构更新为Gemma4ForCausalLM,并相应调整量化配置
  3. 剥离:移除视觉和音频编码器

其他所有部分均保持不变——MLP层保留NVIDIA的校准FP4,embed_tokens保持BF16,所有归一化层均未改动,因此我们保留了nvidia/Gemma-4-31B-IT-NVFP4的所有优化。

为何RTN未影响质量

RTN(最近舍入)是最简单的量化方法——无需校准数据,完全可复现。在此处奏效的原因如下:

  • 采用分组大小=16和每组缩放的FP4能很好地保留权重的相对分布
  • 自注意力权重通常呈近零正态分布,而FP4在该区域的分辨率最高(0、0.5、1.0、1.5)
  • MLP层(对量化更敏感)保留了NVIDIA的校准FP4
  • embed_tokens保持BF16,可防止噪声在所有层中传播

许可证

Apache 2.0——与基础模型相同。

致谢

  • Google DeepMind 提供Gemma 4
  • NVIDIA 提供modelopt NVFP4检查点