指南

大语言模型需要多少显存?

一套为任意模型估算显存的实用方法:从权重和 KV 缓存,到额外开销和训练状态,附 Llama 3.1 的实际计算,并把结果对应到真实的 GPU。

阅读约 8 分钟

大语言模型(LLM)需要多少显存?粗略地说:模型权重,加上随上下文长度和同时处理的请求数而增长的 KV 缓存,再加上 10–30%,用于激活值和运行时开销。训练还要在此基础上加上梯度和优化器状态。本指南给出计算公式,以 Llama 3.1 8B 和 70B 为例算出真实数字,并把结果对应到 32 GB 至 288 GB 的各款 GPU。如果您不想自己动手算,显存计算器可以替您完成。

LLM 需要多少显存:计算公式

对推理而言,显存占用可以分为三部分:

VRAM     ≈ weights + KV cache + overhead
weights  = parameters × bytes per parameter
KV cache = 2 × layers × KV heads × head dim × bytes per value × tokens in flight
overhead = activations, CUDA context, engine buffers (plan 10-30%)

每个参数的字节数:BF16 或 FP16 为 2,FP8 或 INT8 为 1,4 位格式为 0.5。公式中的“tokens in flight”(在途 token 数)指上下文长度乘以同时处理的序列数。本文中的所有容量均以十进制 GB(即 10 亿字节)为单位,并且有意只做粗略估算:实际的检查点会把部分层保留为更高精度,推理引擎也是按块分配显存的。

不同精度下的模型权重

权重是显存需求的下限。如果连权重都装不下,其他一切都无从谈起。用参数量乘以每个参数的字节数即可:

参数量BF16 / FP16FP8 / INT84 位
8B16 GB8 GB4 GB
14B28 GB14 GB7 GB
32B64 GB32 GB16 GB
70B140 GB70 GB35 GB
120B240 GB120 GB60 GB
405B810 GB405 GB203 GB

FP8 和 4 位这两列应视为下限。量化格式会在权重旁边存储缩放因子,量化检查点通常还会把嵌入层和输出层保留为 16 位。这两层在小模型中占比更大:在 Llama 3.1 8B 中,这两个矩阵约有 10.5 亿个参数,BF16 精度下约 2.1 GB,超过模型其余部分在 4 位精度下所占空间的一半。精度还会影响质量,4 位的影响比 FP8 更大;我们关于 FP8 与 FP4 精度的解读文章介绍了其中的权衡。

KV 缓存:随上下文增长的显存

在生成过程中,对于它所处理的每个序列,模型会在每一层为每个 token 保存一个键向量和一个值向量。这就是 KV 缓存。在长上下文或大量并发用户的情况下,它占用的显存可能超过权重。

KV bytes per token = 2 × layers × KV heads × head dim × bytes per value
KV cache           = KV bytes per token × context length × concurrent sequences

现代架构正是在 KV 头数这一项上节省显存。Llama 3.1 采用分组查询注意力:70B 模型有 64 个查询头,但只有 8 个键值头,因此它的缓存只有完整多头注意力所需的八分之一。按官方公布的架构参数、采用 16 位缓存计算:

  • Llama 3.1 8B(32 层,8 个 KV 头,头维度 128):2 × 32 × 8 × 128 × 2 字节 = 131,072 字节,即每个 token 约 0.13 MB。
  • Llama 3.1 70B(80 层,8 个 KV 头,头维度 128):2 × 80 × 8 × 128 × 2 字节 = 327,680 字节,即每个 token 约 0.33 MB。
上下文长度 × 并发序列数在途 token 数Llama 3.1 8BLlama 3.1 70B
8,192 × 18,1921.1 GB2.7 GB
8,192 × 16131,07217.2 GB42.9 GB
32,768 × 132,7684.3 GB10.7 GB
32,768 × 8262,14434.4 GB85.9 GB
131,072 × 1131,07217.2 GB42.9 GB
131,072 × 4524,28868.7 GB171.8 GB

由此可以得出三点结论。第一,在 70B 模型上,单个 128K token 的对话就需要约 43 GB 缓存,超过一张 H100 显存的一半。第二,16 个用户各用 8K token,所需缓存与这一个长对话完全相同,因为真正起作用的是在途 token 的总数。第三,FP8 缓存能让表中的每个数字减半,这正是 vLLM 等推理引擎把它作为可选项提供的原因。

这张表反映的是最坏情况。采用分页 KV 缓存的引擎会随着 token 的生成逐块分配显存,因此提前结束的请求不会占满它的全部上下文。请按在途 token 数的实际峰值来规划容量,而不是假设所有用户同时用满上限;但要确保至少能装下一个最大长度的请求。

额外开销与余量

权重和缓存还不是全部开销。在模型加载之前,CUDA 上下文和各种库就已在每张 GPU 上占用显存,通常从几百 MB 到一两 GB 不等。前向传播期间,激活值需要工作空间,并在处理长提示词时达到峰值。推理引擎还会为 CUDA Graph 和采样缓冲区预留显存,多 GPU 任务则会额外占用通信缓冲区。

实用的经验法则是:在权重加 KV 缓存的基础上预留 10–30% 的余量。单张 GPU 运行行为已知的成熟引擎时取下限,多 GPU 部署、超长提示词或训练则取上限。vLLM 对此有明确的处理:它会占用每张 GPU 显存的固定比例(默认 90%,通过 --gpu-memory-utilization 设置),加载权重,用一次试运行测出激活值的峰值显存,然后把剩余的全部显存分配给 KV 缓存。我们关于使用 vLLM 自托管 LLM 推理的指南介绍了如何调整这一设置。

计算示例:部署 Llama 3.1 70B 推理服务

假设您要用 Llama 3.1 70B 为 16 个并发用户提供推理服务,每个用户最多 8,192 个 token。

  • FP8 权重:约 70 GB,实际略多一些。
  • BF16 KV 缓存:16 × 8,192 个 token × 0.33 MB ≈ 43 GB。
  • 加上 15% 余量后的总量:(70 + 43) × 1.15 ≈ 130 GB。

这在单张 141 GB 的 H200 上装得下,在单张 80 GB 的 H100 上却装不下:权重几乎占满整张卡,只给缓存留下几 GB,同一时间只够处理一两个 8K 请求,而不是 16 个。用 FP8 把缓存减半后,总量约为 105 GB,仍然需要不止一张 H100。

在 BF16 精度下,仅权重就约有 140 GB。这实际上排除了单张 H200,因为缓存将无处容身。180 GB 的 B200 装下权重并扣除额外开销后,还剩约 20 GB,大约够 6 个用满 8K token 的请求使用,采用 FP8 缓存则约为 12 个。288 GB 的 B300 能服务全部 16 个用户,且仍有余量。

微调所需显存:全参数微调、LoRA 与 QLoRA

训练时每个参数所需的显存远多于推理,因为 GPU 还要存放梯度和优化器状态。下表数字不含激活值;激活值取决于序列长度和微批次大小,通常借助激活检查点(梯度检查点)加以控制。

方法显存中存放的内容8B 模型70B 模型
全参数微调(AdamW,混合精度)BF16 权重和梯度、FP32 主权重、两个 FP32 Adam 矩:每个参数 16–20 字节128–160 GB1.12–1.4 TB
BF16 基座模型上的 LoRA冻结的 16 位权重,外加小型适配器及其优化器状态约 17 GB约 145 GB
4 位基座模型上的 QLoRA冻结的 4 位权重、16 位嵌入层和输出层、适配器约 7 GB约 40–45 GB

实际上,对 8B 模型做 LoRA,32 GB 的 RTX 5090 或 48 GB 的 L40S 就能装下,还能为激活值留出空间。对同一模型做全参数微调,则需要 180 GB 的 B200 或 288 GB 的 B300,或者使用多张 80 GB GPU 并对优化器状态进行分片。到了 70B,QLoRA 单张 H100 或 H200 即可装下;LoRA 需要两张 80 GB GPU,或者一张 B200 或 B300;全参数微调则需要一台 8 卡 B300 服务器、采用精简配置的 8× B200,或者把优化器状态卸载到 CPU 内存的 8× H200。我们的 70B 模型微调指南逐一分析了每种情况。

MoE 模型:所有专家都必须装入显存

混合专家(MoE)模型会把每个 token 路由到众多专家中的少数几个。这降低的是每个 token 的计算量,而不是显存:所有专家都必须常驻显存,因为下一个 token 可能用到其中任何一个。请按总参数量估算 MoE 模型的显存,激活参数量只作为计算量的参考。

  • Mixtral 8x7B 总参数量为 46.7B,但每个 token 只用到约 12.9B。在 BF16 精度下,它的权重仍需约 93 GB,超过单张 H100 的容量。
  • Qwen3-235B-A22B 总参数量为 235B,激活参数量为 22B:BF16 精度下约 470 GB,可以装入 8× H100(640 GB);FP8 精度下约 235 GB。
  • DeepSeek-V3 总参数量为 671B,激活参数量为 37B。即使在 FP8 精度下,它的权重也约占 670 GB:超过 8× H100 服务器的 640 GB,但 8× H200(1,128 GB)或 8× B200(1,440 GB)都能宽裕地装下。

缓存大小仍取决于注意力机制的设计。DeepSeek 的模型采用多头潜在注意力,存储的是压缩后的缓存,因此上面的公式会高估它们的缓存。关于这一系列模型,请参阅我们的 DeepSeek 硬件要求指南。

哪款 GPU 装得下您的模型

下表把这些数字对应到实际的推理硬件上,假设上下文长度和并发量都处于中等水平。“勉强装下”表示权重装得下,但留给缓存的空间很少。

GPU显存宽裕装下勉强装下
RTX 509032 GB8B(BF16)、14B(FP8)、32B(4 位)14B(BF16)
L40S48 GB14B(BF16)、32B(FP8)70B(4 位)
H10080 GB32B(BF16)、70B(4 位)70B(FP8)
RTX PRO 600096 GB32B(BF16)、120B(4 位)70B(FP8)
H200141 GB70B(FP8),可承载真实并发120B(FP8)
B200180 GB120B(FP8);70B(BF16),中等并发70B(BF16),长上下文
B300 或 MI355X288 GB70B(BF16),大批次;120B(FP8),长上下文120B(BF16)、405B(4 位)
8× H100640 GB405B(FP8)、235B MoE(BF16)—
8× RTX PRO 6000768 GB405B(FP8),经 PCIe 互联DeepSeek-V3(FP8)
8× H2001,128 GB405B(BF16)、DeepSeek-V3(FP8)—
8× B2001,440 GB405B(BF16),长上下文—
8× B300 或 8× MI355X2,304 GBDeepSeek-V3(BF16,约 1.34 TB)—

关于多 GPU 部署,有两点需要注意。第一,用张量并行拆分模型时,KV 缓存也会随之拆分,因此缓存容量会随 GPU 数量增长。第二,互联很重要:HGX 服务器上的 GPU 通过 NVLink 互联,而 RTX PRO 6000 和 L40S 显卡之间通过 PCIe 通信,这用来运行模型的多个独立副本没有问题,但把一个模型拆分到多张卡上时就会慢一些。如需按工作负载排序的推荐,请参阅我们的大语言模型推理最佳 GPU 选型指南。

以上所有内容都假设您拿到的是整张卡。我们出租的每张 GPU 都是一整张物理 GPU,因此表中的全部显存都归您使用,无需扣除 vGPU 配置文件或 MIG 分区。如果您的目标是以 FP8 运行 70B 模型并承载真实并发,NVIDIA H200 页面列出了单卡和 8 卡两种配置。

常见问题

运行 70B 模型需要多少显存?

权重在 BF16 精度下约需 140 GB,FP8 约需 70 GB,4 位约需 35–40 GB,另需 KV 缓存和 10–30% 的额外开销。实际上,这意味着 BF16 要用 B200 或 B300,承载真实并发的 FP8 部署要用 H200,4 位则用一张 80 GB 的 GPU 即可。

8B 模型需要多少显存?

权重在 BF16 精度下约需 16 GB,FP8 约需 8 GB,4 位约需 4–6 GB。另外还要加上 KV 缓存:对于 Llama 3.1 8B,BF16 缓存每个 token 约 0.13 MB,即每 8,000 个 token 约 1 GB。

上下文长度真的会影响显存占用吗?

会。KV 缓存随上下文长度和并发序列数线性增长。在 Llama 3.1 70B 上,单个 128K token 的请求在 BF16 精度下需要约 43 GB 缓存,超过一张 H100 显存的一半。

可以把多张 GPU 的显存合起来用吗?

可以。推理引擎和训练框架可以通过张量并行或流水线并行把模型拆分到多张 GPU 上,KV 缓存也会随之拆分。这在 NVLink 上效果最好,例如 8 卡 HGX 服务器;通过 PCIe 也能运行,但通信开销更大。

GPU 标称的显存都能用上吗?

不完全能:CUDA 上下文、各种库和框架缓冲区会在每张 GPU 上占用一部分显存,推理服务器还会为激活值预留工作空间。在共享或分区的 GPU 上,您可能只能拿到其中一个切片,因此请确认您租用的是整张卡。

独享 GPU,按月计费

整卡 GPU US$449/月起,含 root 权限和流量,支持加密货币支付。

查看 GPU 与价格 用显存计算器估算所需 GPU

部署 GPU 服务器

本月即可用上您的 GPU 服务器。

选择配置,在同一表单中创建账户,并用余额支付首月费用。承诺交付日期会在您付款前显示,未能按期交付即全额退款。

  • 付款前显示承诺交付日期
  • 任何月份均可取消
  • 加密货币支付,最高加赠 50%

登录 FullGPU

管理您的 GPU 服务器、余额和账单。

首次使用 FullGPU? 创建账户