显存 ≈ 模型权重 + KV Cache + 激活与临时缓冲 + 框架与并行开销,最后再留出余量;先算理论值,再用nvidia-smi和压测校准。 显存不够,再好的卡也跑不起来;显存买多了,预算浪费,下面按可落地的顺序拆。
推理场景下的显存容量到底该怎么估算?先拆成四笔账
大模型推理显存占用怎么计算?权重、KV Cache、激活和框架开销
权重:参数量乘精度字节
模型权重是显存占用的第一块,公式很简单:
- FP16/BF16:参数量 × 2字节
- INT8:参数量 × 1字节
- INT4:参数量 × 0.5字节左右
按这个口径,7B模型FP16权重约14GB,INT8约7GB,INT4约3.5GB;13B模型FP16约26GB,INT8约13GB,INT4约6.5GB;70B模型FP16约140GB,INT8约70GB,INT4约35GB,实际加载后,嵌入层、输出层和框架对齐会让数字略有浮动。
KV Cache:长上下文和并发的大头
KV Cache是推理场景最容易低估的部分,它跟层数、KV头数、head_dim、序列长度、batch size和精度都相关,近似公式:
KV Cache ≈ 2 × 层数 × KV头数 × head_dim × 序列长度 × batch_size × 精度字节
以7B模型为例,32层、32个KV头、head_dim 128、序列长度4096、batch 1、FP16,KV Cache大约2GB,序列长度翻到8192,KV Cache翻倍;batch开到8,再乘8,业内专家指出,KV Cache在长上下文和高并发下会迅速膨胀,经常超过权重本身。
激活、临时缓冲与框架开销
这部分没有统一公式,但必须留,包括:
- 前向激活值、CUDA kernel workspace
- PyTorch缓存分配器、CUDA context
- 多卡通信缓冲、NCCL缓冲
- vLLM、TensorRT-LLM等框架的预留显存

据NVIDIA开发者文档,CUDA context本身会占用一部分显存,多卡张量并行还会增加通信缓冲,行业共识认为,显存估算宁可留出余量,也不要贴着上限跑。
7B、13B、70B模型推理显存需求对比:本地部署大模型推理显卡显存多大够用
先看一张理论对比表,数字按常见开源模型估算,实际以模型卡和压测为准。
| 模型规模 | FP16权重 | INT8权重 | INT4权重 | 短上下文低并发推荐 | 长上下文高并发推荐 |
|---|---|---|---|---|---|
| 7B | 约14GB | 约7GB | 约3.5GB | 16GB勉强,24GB稳妥 | 24GB到48GB |
| 13B | 约26GB | 约13GB | 约6.5GB | 24GB勉强,48GB稳妥 | 48GB以上 |
| 70B | 约140GB | 约70GB | 约35GB | 多卡48GB×4或80GB×2 | 多卡80GB×4以上 |
本地部署大模型推理显卡显存多大够用?分场景看
- 个人开发、单轮问答:7B INT4在16GB卡上能跑;7B FP16建议24GB。
- 企业知识库、RAG:并发一起来,KV Cache猛涨,24GB可能不够,48GB或双卡更稳,代码补全:上下文拉到32K,KV Cache成倍增加,80GB显存更从容。
- 70B生产推理:单卡几乎不可行,通常用张量并行TP=2或TP=4,配80GB专业卡。
推理显卡显存容量价格对比:消费级卡与专业卡怎么选

消费级24GB卡价格相对低,适合7B、13B量化和中小并发,短板是显存带宽、互联和长时间稳定性,专业卡48GB、80GB价格高,但显存大、带宽高、支持NVLink,适合70B和多并发生产,选卡时别只看单价,要看每GB显存成本、整机功耗和运维成本。
北京AI推理服务器显存配置的落地思路
北京地区做私有化部署,常见思路是:先定模型规模和并发目标,再定单卡显存和卡数,7B服务可单机单卡24GB起步;13B高并发建议单机双卡48GB;70B至少双卡80GB或四卡48GB,采购时把机柜功耗、PCIe带宽和后续扩展一起算,避免后期加卡受限。
实操:三步估算与验证
第一步:用工具估算权重
Hugging Face Accelerate提供估算命令:
accelerate estimate-memory meta-llama/Llama-2-7b-hf --dtypes float16 int8 int4
也可以在Python里看模型内存足迹:
model.get_memory_footprint()
第二步:手算KV Cache
写一个小函数,把参数代进去:
def kv_cache_gb(num_layers, num_kv_heads, head_dim, seq_len, batch, dtype_bytes=2):
return 2 num_layers num_kv_heads head_dim seq_len batch dtype_bytes / 10243
kv_cache_gb(32, 32, 128, 4096, 1) 得到约2GB,把seq_len和batch换成你的业务值,就能看到KV Cache的真实压力。
第三步:启动服务并压测
用vLLM启动一个7B服务:
python -m vllm.entrypoints.openai.api_server \ --model /path/to/model \ --dtype half \ --max-model-len 4096 \ --gpu-memory-utilization 0.9

另开终端监控显存:
nvidia-smi --query-gpu=memory.total,memory.used,memory.free --format=csv -l 2
再逐步加并发、加序列长度,观察OOM前的水位,vLLM的--gpu-memory-utilization控制预留比例,--tensor-parallel-size控制多卡切分,--quantization awq或gptq启用权重量化,压测时记录torch.cuda.max_memory_allocated(),比只看nvidia-smi更准。
推理场景显存容量估算常见问题
为什么显存够大,推理还是OOM?
常见原因有四个:KV Cache随并发和序列长度增长;max-model-len设置过大;显存碎片和框架预留;多卡通信缓冲占用,解决路径是降max-model-len、限量并发、开量化、调gpu-memory-utilization,或者换更大显存卡。
量化能省多少显存?INT8和INT4怎么选?
量化主要省权重,FP16到INT8,权重约减半;到INT4,权重再减半,但KV Cache不一定按同样比例降,除非单独量化KV Cache,INT8精度损失小,适合多数生产;INT4省显存明显,适合显存紧张或对精度要求不极端的场景,AWQ、GPTQ是常见方案,加载后要用业务数据抽检效果。
多卡推理显存是简单相加吗?
不是,张量并行会把权重、KV Cache和激活切到多卡,但每卡仍有框架开销和通信缓冲,TP=2、TP=4是常见配置,消费级卡没有NVLink,走PCIe通信,显存够但速度可能受限,在vLLM中把--max-model-len从32768降到8192,7B FP16的KV Cache会从约16GB降到约4GB。