大模型推理精度与显存估算指南

本地跑大模型最痛苦的是什么?不是模型不够强,而是OOM (Out Of Memory)——显存炸了。
如果你去HuggingFace/Modelscope上查看某个模型介绍,你肯定看到过 FP32、FP16、BF16、FP8、FP4这些所谓的张量类型,而张量类型是实现模型推理精度的底层数据格式的载体,例如张量类型为BF16的模型我们可以使用FP8的精度推理。


本文目标就是帮大家将这些概念捋清楚,顺便帮大家算算手里的显卡大概能跑什么参数的模型。
01. 精度:其实就是模型的“分辨率”
模型里的知识都是用数字存的。你可以把这些精度格式想象成图片的分辨率。
- FP32 (单精度):4K 原盘电影。
每个参数占 4字节。虽然精准,但体积巨大,推理时基本用不上,那是训练时候用的“母带”。 - FP16 / BF16 (半精度):1080P 高清。
每个参数占 2字节。这是目前推理的主流标准。显存占用直接砍半,效果几乎没区别。
灵魂发问:BF16 和 FP16 有啥区别?
这俩虽然体积一样,但技能点不同:
* FP16:刻度精细,但尺子短。数字稍微大一点(超过65504)就会溢出,导致程序报错(NaN)。
* BF16 (Brain Float):谷歌搞出来的“AI 专用尺”。它把精细度牺牲了一点点,但换来了极大的量程(和 FP32 一样)。
“不报错”比“过度精确”更重要
- FP8 / FP4 (量化):720P / 360P 压缩版。
- FP8:占 1字节。
- FP4:占 0.5字节。
这就是所谓的“量化”。通过降低精度,把几十 GB 的模型硬塞进家用显卡里。虽然画质(智商)略有下降,但对于 70B 这种巨型模型来说,用一点点智商换能跑起来,绝对血赚。
02. 算账:你的显存够用吗?
模型推理时的显存占用,可通过基础公式+经验系数快速估算:
显存占用 ≈ 模型参数量(B)× 单参数字节数 × 1.2
这里的 20% 增量,核心是预留 KV Cache 的空间。
以 Qwen3-8B(80亿参数)为例
| 精度 | 单参数字节数 | 基础显存计算 | 实际建议显存 | 部署可行性 |
|---|---|---|---|---|
| FP16 | 2 | 8 x 2 = 16 | 约 19.2 GB | 16GB 显存卡极限运行,极易 OOM(显存溢出) |
| FP8 | 1 | 8 x 1 = 8 | 约 9.6 GB | 轻松适配消费级显卡(如RTX4080/4090) |
| FP4 | 0.5 | 8 x 0.5 = 4 | 约 4.8 GB | 需Blackwell架构的卡原生支持FP4(如RTX50系列) |
再看大模型 Qwen3-32B(320亿参数)
| 精度 | 基础显存计算 | 实际建议显存 | 部署方案 |
|---|---|---|---|
| FP16 | 32 x 2 = 64 | 约 76.8 GB | 消费级单卡直接劝退,需依赖多卡集群或企业级 GPU(如 H20) |
| FP4 | 32 x 0.5 = 16 | 约 19.2 GB | 一张 32G 显存的消费级显卡(如 RTX 5090)足可胜任 |
补充说明
- KV Cache 影响因子:1.2 是通用经验值,若对话轮次多、上下文长度长,系数需上调至 1.3~1.5;
- 量化精度权衡:FP4/FP8 量化虽大幅降低显存,但会轻微损失模型生成精度,需根据业务场景取舍。
03. 硬件:老黄的刀法与你的显卡
并不是你把模型压成 FP8,显卡就能跑得飞快。这得看显卡硬件支不支持“原生加速”。
来看看你的显卡属于哪一代:
- Pascal (GTX 10系,如 1080Ti)
- 老当益壮,但跑大模型比较吃力。基本只能跑 FP32/FP16,缺乏专门的 Tensor Core 加速。
- Turing (RTX 20系)
- AI 推理的入门级。支持 FP16 和 INT8。
- Ampere (RTX 30系,如 3080/3090) —— 当前普通人性价比之王
- 支持:FP16、BF16 (部分支持)、INT8。
- 不支持:硬件级 FP8/FP4。
- 注意:你可以在 3090 上跑 FP8 格式的模型来省显存,但由于没有硬件加速,计算速度可能不会变快,甚至不如跑 FP16/INT8 快。
- Ada Lovelace (RTX 40系) & Hopper (H100)
- 支持:原生 FP8。这就是为啥 4090 跑量化模型那么快。
- Blackwell (GB200/B200)
- 支持:原生 NVFP4 精度,同时完美兼容 FP8、BF16 等前代高精度格式,通过硬件级量化实现极致显存优化与性能提升
04. 实战建议:手握8张3090怎么玩?
- 8张 3090 (192GB 总显存):你可以直接用 FP16 原生精度 跑
Llama-3-70B(约需168G显存),无需任何量化,享受“满血版”模型的快乐。或者尝试运行更大的量化版模型如Qwen3-235B-A22B-Instruct-2507-GPTQ-Int4-Int8Mix。 - 避坑指南:
在 30 系显卡上,优先选择 GPTQ-Int4 或 AWQ-Int4 这种量化格式,而不是纯粹的 FP8。因为 30 系对 Int8/Int4 的支持比 FP8 成熟得多,速度也更快。
总结一下:
显存不够,量化来凑;显卡够强,BF16 甚至 FP16 才是满血信仰。
觉得有用的话,欢迎“转发”、“收藏”,下次聊聊怎么用 vLLM 把你的多张显卡串起来。
