如何从大模型参数量估算显存占用

2026-08-11

引言

看到一个新模型发布,最常问的问题往往不是「它有多强」,而是:我这台机器的显存够不够跑。名字里的 7B70B236B 给出了规模量级,但真正决定显存的,是参数个数 × 每个参数占多少字节,再叠加推理时的上下文缓存与系统开销。

本文整理一条可复用的估算路径:先分清参数量含义,再看常见精度对应的字节数与格式差异,最后落到一个好记的公式,并说明为何实际占用通常高于「权重本身」。

先给一个直觉对照:

  • 7B × FP16(2 字节) → 约 14 GB
  • 70B × INT4(0.5 字节) → 约 35 GB

一、参数量到底指什么

模型名后缀里的 B 一般是 Billion(十亿)Llama 3 8BQwen2 72BDeepSeek 236B 等,都是在说内部大约有多少个 参数(parameter)

可以把参数想成模型里大量可调的「旋钮」。每个旋钮存一个数;推理时,模型靠这些数值的组合去算下一个 token。参数越多,表达能力的上限通常越高,但每个旋钮都要占一块存储——这就是显存压力的第一来源。

需要分清两件事:

  1. 参数量回答的是「有多少个旋钮」;
  2. 显存回答的是「这些旋钮按当前精度摊开来,要占多少字节」。

只看 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 同形态对照填写。


七、怎么用这套算法做判断

拿到一个新模型时,可以按固定三步走:

  1. 读参数量:名字或卡片上的 B 数字(十亿)。
  2. 读精度 / 量化档:FP16、BF16、FP8、INT8、INT4 / NVFP4,或 GGUF 的 Q4 / Q8 等,并换算成每参数字节数 $b$。
  3. 先算权重,再加余量,最后对照显卡:用口诀估权重,再用 $(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)。
  • 看到新模型时,不必先问「能不能跑」——用参数量与精度乘一遍,再对照显卡显存,量级通常立刻清楚。