本页内容

要运行大语言模型,您需要足够的显存来容纳其权重(参数量乘以每个权重的字节数),再加上与上下文长度对应的 KV 缓存,外加 10% 至 20% 的余量。8B 模型的权重在 FP16 下约需
本指南将逐一解释这个总和的各个组成部分,给出常见模型规模的对照表,并将其与实际 GPU 对应起来:从
计算公式:权重、缓存与余量
1. 权重:参数量乘以每个权重的字节数
每个参数都以一个数值的形式存储,其占用的空间由精度决定。以 NVIDIA 自己举的例子来说:一个 7B 参数的模型以 16 位精度加载时,约占用
| 精度 | 每个权重的字节数 | 备注 |
|---|---|---|
| FP32 | 4 | 训练时的主权重;推理中很少使用 |
| FP16 或 BF16 | 2 | 推理中通常所说的“全精度” |
| 8 位(INT8、FP8、Q8) | 约 1 | 对大多数模型而言几乎无损 |
| 4 位(INT4、Q4、MXFP4) | 理论值 0.5,实际为 0.55 至 0.6 | 缩放因子和元数据会略微增加占用 |
实际文件印证了这条法则。在 llama.cpp 对
2. KV 缓存:上下文占用的显存
在生成过程中,模型会为每一层保存此前每个 token 的键和值。NVIDIA 给出的每 token 缓存大小为 2 × layers × (heads × head dimension) × bytes per value。现代模型采用分组查询注意力,因此关键在于键/值头的数量,它远少于注意力头的数量。例如,
2 × 32 layers × 8 KV heads × 128 × 2 bytes = 131,072 bytes (128 KiB) per token
| 模型 | 每 token 的 KV 缓存(FP16) | 8K 上下文 | 32K 上下文 | 128K 上下文 |
|---|---|---|---|---|
| 需要扩展上下文 | ||||
| 需要扩展上下文 | ||||
Qwen3 的数据采用官方公布的模型配置(14B:40 层;32B:64 层;两者均有 8 个 KV 头;默认配置支持 40,960 个位置,因此 128K 需要扩展上下文)。在实践中,有两点影响很重要。缓存是按序列计算的,因此十个各使用 8K 上下文的并发用户,需要上表数值的十倍。此外,长上下文所需的显存可能超过权重本身:一个 4 位精度的 8B 模型在跑满 128K 上下文时,缓存所需的显存比模型本身还多。一些推理引擎可以用 8 位精度存储缓存,只需付出少许质量代价,就能将其减半。
3. 为运行时预留余量
CUDA 上下文、激活值、临时缓冲区和显存碎片都会占用空间。在权重加缓存的基础上,请再预留 10% 至 20%。有些推理服务引擎一启动就会把大部分空闲显存预留给缓存,因此监控工具中显示的“已用”数值,并不能说明模型真正需要多少显存。
按模型规模估算显存
下表将权重、单用户 8K token 上下文和 10% 余量相加。请将这些数字视为规划参考:不同量化格式之间会相差几个百分点,上下文更长或用户更多时需要更多显存。
| 模型级别(示例) | FP16 或 BF16 | 8 位精度 | 4 位精度 |
|---|---|---|---|
| 7B 至 8B( | 约 | 约 | 约 |
| 13B 至 14B( | 约 | 约 | 约 |
| 32B( | 约 | 约 | 约 |
| 70B( | 约 | 约 | 约 |
| 120B 级稠密模型(Mistral Large 2,123B) | 约 | 约 | 约 |
| 120B 级混合专家模型( | 不适用 | 不适用 | 单块 |
混合专家(MoE)模型只在一个方向上打破了规模与显存之间的简单对应关系。
哪些 GPU 装得下
显存容量和带宽数据来自 NVIDIA 的产品规格:
| GPU | VRAM | 显存带宽 | 可从容运行(8K 上下文) | OffshoreServ 月费 |
|---|---|---|---|---|
| 8B(8 位)、14B(4 位) | $61.99 | |||
| 8B(FP16)、14B(8 位) | $84.99 | |||
| 32B(4 位)、14B(8 位,长上下文) | $134.99 | |||
| 32B(8 位)、14B(FP16) | $306.99 | |||
| L40S | 32B(8 位)、14B(FP16) | $418.99 | ||
| 1,935 至 | 70B(4 位)、 | $355.99 | ||
| 与 A100 可运行的模型相同,速度更快 | $581.99 | |||
| 共 | 每卡 | 70B(4 位),拆分到两块显卡上 | $558.99 | |
| 共 | 每卡 | 70B(8 位)、123B(8 位,较紧张) | $1,096.99 | |
| 共 | 每卡 | 70B 和 123B(FP16) | $2,348.99 |
有两个临界情况值得了解。4 位精度的 32B 模型约需
速度:显存带宽决定快慢
用 NVIDIA 的话说,生成 token 是一种内存受限的操作:起主导作用的是从显存中搬运权重和缓存的时间,而不是计算本身。对于只服务一个用户的稠密模型,每生成一个新 token 都要将全部权重读取一遍,由此得出一个硬性上限:
maximum tokens per second ≈ memory bandwidth ÷ size of the weights
| 模型与精度 | 权重 | GPU | 理论上限 |
|---|---|---|---|
| 8B(4 位) | 约 | ||
| 32B(4 位) | 约 | ||
| 70B 模型(4 位精度) | 约 | ||
| 70B 模型(4 位精度) | H100 SXM5 | 约 |
实际的单用户速度远低于这些上限,因为计算内核的效率永远不可能达到完美,而且还必须读取缓存。不过,排名顺序依然成立,这也解释了为什么
有三个因素会改变这一局面。混合专家模型每个 token 只读取被激活的专家,因此
将模型拆分到多块 GPU 上
当模型装不进一块显卡时,推理引擎可以对其进行拆分:按层分配到多块 GPU 上,或者将每一层切分到多块 GPU 上(张量并行)。两块显卡并不等于一块显存翻倍的显卡。每块 GPU 都有各自的运行时开销,而且显卡之间每一步都要交换数据。
因此,显卡之间的互联至关重要。根据 NVIDIA 的产品规格,
微调需要多得多的显存
以上讨论的都是推理。全参数微调则是另一个量级:使用混合精度 Adam 时,权重、梯度和优化器状态在不计激活值的情况下每个参数就要占用 16 字节,因此 8B 模型约需
如何在五分钟内核算某个模型
- 查看权重文件。您计划运行的那个量化版本的下载大小,就是对权重所占显存的最佳估计。
- 打开模型的
。记下config.json 、num_hidden_layers 和num_key_value_heads (或用隐藏层大小除以注意力头数)。head_dim - 用上面的公式计算每 token 的缓存,再乘以预计的最长上下文,以及需要同时服务的用户数。
- 再加上 10% 至 20%,然后与显卡的显存容量比较。如果结果与上限只差几个百分点,请选择更大一档的显卡,或位数更低的量化版本。
- 用真实的提示词测试。运行您预计要处理的最长文档,并在生成过程中观察显存占用。
快速选型
- 基于 8B 模型的聊天助手或编程助手:全精度用
RTX 4090 ,8 位精度用RTX A4000 。 - 处理长文档的 14B 模型:
RTX 5090 ,8 位精度。 - 32B 模型:
RTX 5090 ,4 位精度;如需更好的质量,可用48 GB 显卡运行 8 位精度。 - 70B 模型:A100 或 H100,4 位精度;或两块 H100,8 位精度。
- 120B 级:
gpt-oss-120b 用一块80 GB GPU;Mistral Large 2 等稠密模型用两到四块 H100。 - 大量并发用户:先估算 KV 缓存大小,再在预算范围内选择带宽最高的 GPU。
在 OffshoreServ 上运行您的模型
我们的 GPU 服务器配备独享 NVIDIA GPU,从
常见问题
70B 模型能在 24 GB 的 GPU 上运行吗?
无法以实用的速度运行。在 4 位精度下,70B 模型仅权重就约占
8B 模型需要多少显存?
权重在 16 位精度下约需
有了 GPU 之后,如何运行模型?
Ollama 上手最快,vLLM 则可在高负载下提供兼容 OpenAI 的 API。我们的在 GPU 服务器上自托管大语言模型指南详细介绍了这两种方式,包括如何让端点保持私密。
GPU 应该按月租还是按小时租?
如果 GPU 大多数日子都在忙,就按月租;如果只是做短期实验,就按小时租。用月付价格除以您在别处需要支付的小时费率,就能算出盈亏平衡点:我们在独享 GPU 与云 GPU 对比中做了具体计算。


