跳转到主要内容
每个本地 LLM 部署都有 2 个关键速度指标——它们对精度调节的响应方式不同。本页解释为何从 FP16 降至 INT4 可能会使生成速度提高三倍,但对提示词处理时间影响甚微,以及如何在自己的硬件上衡量这种权衡。

两个关键速度指标

解码吞吐量是指模型开始回答后生成令牌的速度,以每秒令牌数(tok/s)衡量。它决定了聊天回复或代码补全在屏幕上出现的速度。 预填充延迟是指模型在处理输入并生成第 1 个令牌之前所需的时间,以每令牌毫秒数(ms/token)衡量。它决定了按下回车键与看到输出开始流式传输之间的停顿时间。 不同的工作负载关注不同的速度:
首令牌时间(TTFT)结合了预填充延迟以及任何调度或队列延迟。对于本地硬件上的单个用户,TTFT 大致等于预填充时间。在并发负载下,排队会独立增加 TTFT。

精度对速度的影响

精度控制模型中每个权重所占用的位数。位数越少意味着权重越小,这会改变 2 件事:模型占用的内存量以及 GPU 每生成一个令牌所读取的数据量。
质量列的数据是近似值。经过量化感知训练(QAT)的新模型在较低精度下损失的质量更少。详见 QAT 概念。

精度如何不同地影响解码与预填充

这是关键见解:解码和预填充触及不同的硬件瓶颈,因此相同的精度变化对它们的影响不均等。

解码受内存带宽限制

在解码期间,模型每次生成 1 个令牌。对于每个令牌,它从内存中读取整个权重矩阵,并对每个权重执行少量计算。GPU 大部分时间都在等待数据从内存到达,而不是进行数学运算。 权重更小 = 读取的数据更少 = 解码更快。加速比大致与内存减少量成正比:
  • FP16 → FP8:解码速度提升约 1.8-2.0x
  • FP16 → INT4:解码速度提升约 2.5-3.5x
  • FP16 → NVFP4:解码速度提升约 2.5-3.0x

预填充受计算能力限制

在预填充期间,模型并行处理所有输入令牌。它只读取一次权重,但在所有提示词令牌上执行大型矩阵乘法。GPU 大部分时间都在进行数学运算,而不是等待内存。 量化对预填充的帮助较小,因为瓶颈在于数学运算,而非权重读取:
  • FP16 → FP8:预填充速度提升约 1.3-1.5x
  • FP16 → INT4:预填充速度提升约 1.2-1.5x
  • FP16 → NVFP4:预填充速度提升约 1.3-1.5x

实际影响

随着精度降低,解码的提升速度快于预填充。在 INT4 下,一个在 FP16 下感觉迟缓的模型可以快速生成文本,但在长提示词上仍会有明显的停顿。这种不对称性驱动了以下针对特定工作负载的建议。

不同精度下的功耗

较低精度通过 2 个原因降低功耗:更少的内存读取(内存访问主导能耗)和更简单的算术运算(INT4 乘法比 FP16 乘法成本更低)。

DGX Spark 功耗范围

DGX Spark 的 GB10 芯片在 Grace CPU 和 Blackwell GPU 之间共享约 40W 的 TDP。以下是推理期间观察到的功耗范围:

消费级 GPU 功耗预期

24/7 全天候服务的成本

对于持续以解码负载运行的 DGX Spark: 对于 RTX 4090 等每天运行 10 小时的消费级 GPU:

基准测试方法

在您自己的环境上运行这些测试,以查看精度如何影响您的特定模型和硬件。

测量解码吞吐量

从短提示词生成固定数量的输出令牌,并测量每秒令牌数。

测量预填充延迟

计时模型在不同提示词长度下生成第 1 个令牌所需的时间。
从输出中记录首令牌时间(TTFT)。在 512、1024、4096 和 8192 个输入令牌处重复测试。

测量功耗

报告内容

为您测试的每个精度级别填写此表:

实际决策表

选择与您主要工作负载匹配的行:
INT4 量化(GPTQ、AWQ、Q4_K_M)会明显降低较小模型和指令遵循任务的质量。在参数少于 13B 的模型上,FP16 和 INT4 之间的质量差距可能会降低输出质量。在 70B+ 模型上,差距缩小,因为模型有更多的容量来吸收量化噪声。在确定之前,请测试您的特定模型。
是的。FP8 KV 缓存(在 vLLM 中使用 --kv-cache-dtype fp8 设置)独立于权重量化,将 KV 缓存内存减半。它对解码速度影响最小,但可以让您容纳更长的上下文或更多并发用户。详见 DGX Spark 内存调优 中的尺寸表。
解码在每个令牌上读取整个 KV 缓存。较长的对话会构建更大的缓存,因此随着上下文增长,解码速度会减慢。在相同硬件上,一个在 4K 上下文下的模型可能以 40 tok/s 生成,但可能降至 25 tok/s(当上下文达到 32K 时)。详见 KV 缓存与上下文 中的机制。

快速基准测试命令

使用这些作为起点,以比较单个模型上的不同精度。

vLLM 基准测试套件

llama.cpp 基准测试

llama.cpp 会打印一个比较表,并排显示提示词处理(pp)和文本生成(tg)速度。

Ollama 内置评估

跨精度比较

在每个精度下运行相同的提示词,并将结果记录在表中:
为了获得最可复现的结果,请在测量前使用 1 个请求预热模型,关闭其他 GPU 工作负载,并至少运行 3 次重复。报告中位数值。

下一步

DGX Spark memory tuning

KV 缓存尺寸、批处理权衡以及 128GB 统一内存的调优参数。

vLLM on DGX Spark

安装、NVFP4 配置和最佳启动命令。

Benchmark a deployment

通过 Tokios 进行端到端测试——延迟、流式传输和客户端比较。

Quantization concepts

GPTQ、AWQ、GGUF 和量化权衡的更深入解释。