引言
看到一个新模型发布,最常问的问题往往不是「它有多强」,而是:我这台机器的显存够不够跑。名字里的 7B、70B、236B 给出了规模量级,但真正决定显存的,是参数个数 × 每个参数占多少字节,再叠加推理时的上下文缓存与系统开销。
本文整理一条可复用的估算路径:先分清参数量含义,再看常见精度对应的字节数与格式差异,最后落到一个好记的公式,并说明为何实际占用通常高于「权重本身」。
先给一个直觉对照:
- 7B × FP16(2 字节) → 约 14 GB
- 70B × INT4(0.5 字节) → 约 35 GB
一、参数量到底指什么
模型名后缀里的 B 一般是 Billion(十亿):Llama 3 8B、Qwen2 72B、DeepSeek 236B 等,都是在说内部大约有多少个 参数(parameter)。
可以把参数想成模型里大量可调的「旋钮」。每个旋钮存一个数;推理时,模型靠这些数值的组合去算下一个 token。参数越多,表达能力的上限通常越高,但每个旋钮都要占一块存储——这就是显存压力的第一来源。
需要分清两件事:
- 参数量回答的是「有多少个旋钮」;
- 显存回答的是「这些旋钮按当前精度摊开来,要占多少字节」。
只看 70B 而不看精度,无法判断能不能跑:同一套参数,FP16 与 INT4 的体积可以差到约 4 倍。
二、显存看的是「个数 × 每参数字节数」
每个参数占多少空间,取决于它用什么数值格式保存。常见精度大致如下:
| 精度 | 每参数字节数 | 说明 |
|---|---|---|
| FP32 | 4 | 早期训练常用;当前推理很少再原样加载 |
| FP16 / BF16 | 2 | 很常见的「原始」发布精度 |
| INT8 | 1 | 量化后的常见档位 |
| INT4 | 0.5 | 更激进的压缩,用精度换空间 |
因此:
\[V \approx N \times b\]其中 $V$ 为权重体积,$N$ 为参数个数,$b$ 为每参数字节数。
下载页上同一模型出现多个 GGUF 档位(如 Q4、Q8),本质通常是同一组参数、不同压缩精度,而不是另一套完全不同的模型。上表只是估算时最常用的几档;下面补一张更完整的精度图景,方便把名字对上字节数与用途。
NOTE:
「参数量」是规模标签;「精度」才决定每个参数落地后的字节密度。讨论能否本地部署时,二者必须同时出现,否则估算没有意义。
三、常见精度格式:从 FP64 到 NVFP4
精度标签决定两件事:每个参数占多少字节(直接影响显存),以及算得有多稳、多快(影响训练是否崩、推理质量与吞吐)。总趋势很清楚:位数往下走,显存与带宽压力下降,吞吐通常上升,但动态范围或数值分辨率会变紧,需要靠格式设计、混合精度或量化校准把误差压住。
一张表把常见格式收齐(估算显存时,重点看「每参数字节」这一列):
| 精度 | 大致位宽 | 每参数字节 $b$ | 和显存估算的关系 | 一句话定位 |
|---|---|---|---|---|
| FP64 | 64 | 4 的量级之上(AI 少用) | 几乎不拿来估本地 LLM 推理 | 科学计算用;对大模型是「杀鸡用牛刀」 |
| FP32 | 32 | 4 | $B \times 4$;70B 约 280 GB 量级 | 早期训练默认;权重文件仍常见 |
| TF32 | 19(计算用) | 按 FP32 张量入算时仍常按 4 估存储 | 更影响算力,不单独改「下载权重体积」口诀 | Ampere 起 Tensor Core 可自动加速 FP32 矩阵乘 |
| BF16 | 16 | 2 | 与 FP16 同档:$B \times 2$ | 指数范围接近 FP32,训练更抗溢出 |
| FP16 | 16 | 2 | 同上 | 尾数更细,但范围窄,训练常需 loss scaling |
| FP8 | 8 | 1 | $B \times 1$;相对 FP16 权重体积约减半 | Hopper / Blackwell 上训练与推理的常见加速档 |
| INT8 | 8 | 1 | 与 FP8 同档字节密度 | 整数量化;部署压缩常用 |
| INT4 / NF4 等 | 4 | 0.5 | $B \times 0.5$;相对 FP16 约 1/4 | 更激进;质量要按任务回归测 |
| NVFP4 | 4(加微块缩放开销) | 约 0.5~0.6 | 粗估可先按 $\approx 0.5$;细账略高于纯 INT4 | Blackwell 上的 4bit 浮点路线,带两级缩放 |
几个和「能不能跑」直接相关的判断:
- 同一 $B$,换精度就是换 $b$。 70B 在 FP32 / FP16 / FP8 / INT4 下,权重口诀分别大约是 280 / 140 / 70 / 35 GB,量级差会立刻决定单卡还是多卡、要不要量化。
- FP16 与 BF16 对显存同价,对训练风险不同。 二者都是 $b=2$;BF16 更像「卷尺」(范围大),FP16 更像「游标卡尺」(更细但易溢出)。只估推理显存时可以当成同一档;谈训练稳定性时不要混为一谈。
- FP8、INT8 都是 $b=1$,但不是同一种东西。 FP8 仍是浮点(常见 E4M3 / E5M2 分工);INT8/INT4 走整数量化。下载页上的 FP8 权重与 GGUF Q8,字节密度接近,来路不同。
- 更低精度不是自动「更差」,但也绝不能盲降。 许多通用对话场景里 FP8 相对 FP16 损失很小;代码、数学等任务对 INT4 / 4bit 更敏感。选型顺序宜「先能装下,再在目标评测集上回归」,而不是只看纸面 $b$。
- NVFP4 可以记进 4bit 账本,但别当成免费午餐。 它用微块缩放 + 张量缩放抬精度,平均存储常略高于「纯 4bit」;粗估显存仍可先按半字节量级筛硬件,落地前用 vLLM / SGLang 等在业务数据上对比 FP16、BF16、FP8、NVFP4。
NOTE:
口诀里的 $b$ 取的是权重存储密度。TF32 主要改计算路径;KV Cache、激活、框架工作区仍可能以更高精度存在,所以下一节的余量不能省。
四、好记的估算公式
把单位收成「十亿参数」后,有一句够用的口诀:
\[M \approx B \times b\]其中 $M$ 为所需显存(GB),$B$ 为参数量(以十亿计),$b$ 为每参数字节数。含义很直接:7B 且每参数 2 字节时,权重大约 $7 \times 2 = 14$ GB;换成 INT4 则是 $7 \times 0.5 = 3.5$ GB。
几个常用对照:
| 模型规模 | 精度 | 估算权重显存 |
|---|---|---|
| 7B | FP16 | $7 \times 2 \approx 14$ GB |
| 7B | INT4 | $7 \times 0.5 \approx 3.5$ GB |
| 70B | FP16 | $70 \times 2 \approx 140$ GB |
| 70B | INT4 | $70 \times 0.5 \approx 35$ GB |
可以看出:
- 小模型在半精度下,消费级大显存卡往往还能谈「能不能装下」;
- 70B 级若坚持 FP16,已经是多卡 / 专业卡量级;即便 INT4,也通常不是普通单卡能轻松吃下的。
NOTE:
上式估的是权重本身。它回答「参数按某精度摊开后大概多大」,不是完整的运行时账单。
五、为什么实际占用会更高
真正跑起来时,显存里通常不止权重,至少还有两类常见加项。
KV Cache(上下文缓存)。 自回归推理会缓存各层的 Key / Value,避免每生成一个 token 都重算整段历史。输入越长、对话轮次越多、batch 越大,这部分占得越多。经验上,在权重估算之上再留 约 10%~30% 余量,比「刚好卡着权重体积」更稳妥。
运行时与系统开销。 框架工作区、激活值临时缓冲、驱动与系统占用等,都会再吃一部分显存。桌面环境里,给系统和其他程序预留 约 1~2 GB 往往更接近真实可用上限。
综合起来,一个偏保守的写法是:
\[M_{\mathrm{safe}} \approx (B \times b) \times 1.2 + 2\]其中 $M_{\mathrm{safe}}$ 仍以 GB 计。例如 7B、FP16:
\[14 \times 1.2 + 2 \approx 18.8\]即约 $18.8$ GB。
也就是说:权重纸面约 14 GB 时,若机器标称 16 GB,长上下文或不干净的占用环境下仍可能紧张;按保守式看,更接近「需要接近 19 GB 量级的可用空间」这一判断。
NOTE:
口诀用来快速筛掉明显不够的配置;保守式用来避免「权重刚好塞进、一开长对话就 OOM」。二者用途不同,不必互相替代。
六、常见 GPU 显存与带宽一览
估完模型需求后,还要对照本机「标称显存」;若关心吞吐,再看显存带宽(单位时间内 GPU 与显存之间能搬多少数据)。容量决定「能不能装下」,带宽更影响「算得有多顺」——权重与 KV Cache 都要反复读,带宽不足时延迟与利用率会先顶上去。
下表按 NVIDIA 官网产品页 / 规格表 / 架构白皮书整理(数据中心卡取单卡 GPU Memory / Memory Bandwidth;专业卡同;GeForce 容量与 50 系带宽见 Compare GeForce Graphics Cards,4090 / 3090 带宽分别见 Ada / Ampere GA102 白皮书)。此处只列对照大模型时常看的几款。
| 类别 | 型号 | 标称显存 | 显存带宽 | 显存类型 |
|---|---|---|---|---|
| 数据中心 | NVIDIA H200 | 141 GB | 4.8 TB/s | HBM3e |
| 数据中心 | NVIDIA H800 | 80 GB / 94 GB(NVL) | 约 3.35 TB/s(SXM)/ 约 3.9 TB/s(NVL) | HBM3 |
| 数据中心 | NVIDIA H100 | 80 GB(SXM)/ 94 GB(NVL) | 3.35 TB/s(SXM)/ 3.9 TB/s(NVL) | HBM3 |
| 数据中心 | NVIDIA A100 | 40 GB / 80 GB | 1.555 TB/s(40GB);1.935~2.039 TB/s(80GB PCIe / SXM) | HBM2 / HBM2e |
| 专业卡 | NVIDIA RTX PRO 6000 Blackwell | 96 GB | 1792 GB/s | GDDR7(ECC) |
| 专业卡 | NVIDIA RTX PRO 5000 Blackwell | 48 GB / 72 GB | 1344 GB/s | GDDR7(ECC) |
| GeForce | GeForce RTX 5090 | 32 GB | 1792 GB/s | GDDR7 |
| GeForce | GeForce RTX 4090 | 24 GB | 1008 GB/s(约 1 TB/s) | GDDR6X |
| GeForce | GeForce RTX 3090 | 24 GB | 936 GB/s | GDDR6X |
结合前文口诀,可以很快建立量级直觉(仍要再留 KV Cache 与系统余量):
- 24 GB / ~0.9–1.0 TB/s(3090 / 4090):半精度约 7B~13B 较常见;INT4 下约 70B(口诀约 35 GB)单卡仍吃紧。两者容量相同,4090 带宽略高。
- 32 GB / 1.79 TB/s(5090):容量与带宽都比 4090 宽一档,仍远不够半精度 70B(约 140 GB)。
- 48~96 GB / 1.3–1.8 TB/s(RTX PRO 5000 / 6000):桌面专业卡容量更高;带宽与旗舰 GeForce 同量级,量化后的大模型或更长上下文更现实。
- 80~141 GB / 约 2–4.8 TB/s(A100 / H100 / H800 / H200):数据中心常见档位;HBM 带宽明显高于桌面 GDDR,更利于大模型吞吐。半精度 70B 仍要看是否多卡或量化,H200 的 141 GB + 4.8 TB/s 对单卡大模型更友好。
NOTE:
同型号常有多种形态(如 A100 40/80 GB、H100 SXM/NVL、RTX PRO 5000 的 48/72 GB)。表中「/」表示官网并列的配置;对照时以实际机器规格为准。H800 为面向特定市场的 Hopper 产品线,显存容量与常见带宽档位与同形态 H100 对齐(差异主要在 NVLink 等互联规格);上表 H800 带宽按与 H100 同形态对照填写。
七、怎么用这套算法做判断
拿到一个新模型时,可以按固定三步走:
- 读参数量:名字或卡片上的
B数字(十亿)。 - 读精度 / 量化档:FP16、BF16、FP8、INT8、INT4 / NVFP4,或 GGUF 的 Q4 / Q8 等,并换算成每参数字节数 $b$。
- 先算权重,再加余量,最后对照显卡:用口诀估权重,再用 $(B \times b) \times 1.2 + 2$ 看是否仍宽裕,并与上表或本机标称显存比对。
若结果已经接近或超过机器可用显存,优先考虑:换更低量化档、缩短上下文、减小 batch,或改用总参数更大但激活参数更少的 MoE(此时显存粗估仍常按总参数与加载精度看,不能只看「激活 10B」就当小模型)。更细的 MoE / 多卡切分问题,需要另按并行策略算,不在本文口诀范围内。
小结
- 参数量给出旋钮个数;精度给出每个旋钮的字节密度(FP16/BF16 为 2,FP8/INT8 为 1,INT4/NVFP4 约 0.5)。
- 权重显存可先记:$M \approx B \times b$($M$ 为 GB,$B$ 为十亿参数,$b$ 为每参数字节数)。
- 更低精度能换显存与吞吐,但不等于可以跳过业务评测;训练场景还要区分 FP16 / BF16 的数值范围风险。
- 运行时还要为 KV Cache 与系统开销留余量;更稳妥可用 $(B \times b) \times 1.2 + 2$。
- 对照显存与带宽时以 NVIDIA 官网规格为准;容量决定能否装下,带宽更影响吞吐。同型号可能有多种容量(如 A100 40/80 GB、H100 80/94 GB)。
- 看到新模型时,不必先问「能不能跑」——用参数量与精度乘一遍,再对照显卡显存,量级通常立刻清楚。