
NInfer KV Cache 量化指南BF16、INT8、FP8、NVFP4 与 K8V4 五种格式怎么选【免费下载链接】ninferHigh-performance single-GPU inference for selected model checkpoints and GPUs.项目地址: https://gitcode.com/gh_mirrors/ni/ninferNInfer是一个面向单卡 GPU 的高性能 LLM 推理引擎支持 Qwen3.6 / Qwen3.8 系列模型。它最实用的特性之一是允许你用一条--kv-dtype参数在BF16、INT8、FP8、NVFP4、K8V4五种 KV Cache 存储格式之间切换——直接决定你的显存占用和可支持的上下文长度。本文是一份新手友好的选型指南。为什么要量化 KV Cache推理时模型每生成一个 token都要把之前所有 token 的 K/V 向量存进显存这就是KV Cache。它有两个痛点吃显存长上下文下 KV Cache 可能比权重还大限速每个 token 都要把整段 KV 读一遍存储字节数直接决定解码速度。NInfer 的 KV Cache 基于 Paged 分页存储按 64 token 一个 page 管理支持非对称的 K/V 编码。五种格式的每个 tokenD256 头维度物理开销对比如下格式K 编码V 编码单 token KV相对 BF16BF1616-bit16-bit1024 B1×INT8-G648-bit 组内缩放8-bit 组内缩放528 B≈51%FP8-E4M38-bit 行缩放8-bit 行缩放516 B≈50%NVFP4-G164-bit 组缩放4-bit 组缩放288 B≈28%K8V4FP8 KNVFP4 V402 B≈39% 直观理解换成 NVFP4同样一张 RTX 5090 能装下的上下文长度接近3.5 倍。五种格式逐个认识BF16 —— 无损基准K 按位原样存储V 以 FP16 落盘。精度最好显存最贵适合作为对照基准。INT8INT8-G64—— 通用性价比之选每 64 个连续值共享一个缩放因子。写入前对 K 做 256 维 Hadamard 归一化预处理让数值分布更均匀、量化误差更小。FP8E4M3 row-256—— 每行一个缩放整行 256 维共用一个 FP16 缩放因子存储开销比 INT8 还略低516 B vs 528 B是官方基准测试的常用格式。NVFP4-G16 —— 极限压缩每 16 个值一组4-bit E2M1 编码 一个 UE4M3 缩放字节。K、V 都做 Hadamard 预处理。压缩比最高适合显存吃紧、需要长上下文的场景。K8V4 —— 非对称折中它不是任意比特组合而是一个固定 profileK 用 FP8更稳V 用 NVFP4更省。K 的注意力数值通常对误差更敏感所以K 高精度、V 高压缩是兼顾质量与容量的折中方案。如何切换 KV Cache 格式切换非常简单三种入口都支持--kv-dtype默认bf16# CLI 单请求推理见 docs/cli.md ./build/apps/ninfer models/qwen3_8_27b.ninfer \ --kv-dtype fp8 \ --prompt Hello # 服务化启动见 docs/serving.md ./build/apps/ninfer-serve models/qwen3_8_27b.ninfer \ --kv-dtype fp8 --sampling stochastic --port 18080 # 困惑度离线评测见 docs/perplexity.md ./build/apps/ninfer-perplexity models/qwen3_8_27b_nvfp4.ninfer \ --corpus eval/corpora/perplexity-1m/manifest.json \ --kv-dtype fp8参数定义在 apps/cli/options.cpp选项契约完整列在 docs/cli.md各量化编解码内核位于 src/ops/kv_cache/K8V4 注意力内核在 src/ops/softmax_attention/dense/causal_cache/k8v4/。⚠️ 注意--kv-dtype只影响运行时 KV 存储不改变权重格式——你可以用 BF16 权重 FP8 KV组合完全自由。用困惑度验证精度损失量化是否影响输出质量NInfer 自带ninfer-perplexity评测工具加载同一模型分别跑不同--kv-dtype在固定的 1M 级多领域语料上比较困惑度PPL。官方推荐的长上下文对比协议见 docs/perplexity.md./build/apps/ninfer-perplexity models/qwen3_8_27b.ninfer \ --corpus eval/corpora/perplexity-1m/manifest.json \ --context 65536 --stride 32768 \ --kv-dtype k8v4对比时保持语料、context、stride 不变只改--kv-dtype就能得到干净的精度-容量权衡曲线。选型建议一图流决策场景推荐格式理由精度敏感 / 基线对比BF16无损容量最贵日常部署、均衡之选FP8约 50% 容量精度损失极小需要兼容 INT8 生态INT8与 FP8 容量相当组级缩放长上下文 / 显存告急NVFP4仅 28% 容量上下文翻数倍想要折中且 K 更稳K8V4K 用 FP8 保质量V 用 NVFP4 省容量快速上手口诀显存够就 BF16不够就 FP8再不够上 NVFP4纠结质量就 K8V4。更多细节可阅读 Paged KV 存储架构、CLI 文档 与 模型卡。【免费下载链接】ninferHigh-performance single-GPU inference for selected model checkpoints and GPUs.项目地址: https://gitcode.com/gh_mirrors/ni/ninfer创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考