大模型显存需求怎么算:要多少显存?参数量、量化和上下文长度
核对说明:公式和 KV 缓存示例由架构参数计算得出(已标注假设),模型文件大小来自 Ollama 模型库(2026-10-30 读取),第三方估算来自 CanRun 与 PromptQuorum 的公开指南,已逐项标注。我们没有在实机上逐一实测各模型的显存占用,最终请以
ollama ps为准。
很多人下载模型之前最关心的问题是:大模型显存需求到底有多大?我的显卡跑得动吗?答案其实可以用一个简单的三项公式估出来:权重 + KV 缓存 + 运行开销。这篇文章把三项分别讲清楚,给出速查表和几个实例,帮你在下载几十 GB 文件之前先算一笔账。
大模型显存需求的三项构成
模型运行时,显存里主要放三样东西:
- 权重:模型文件本身,几乎整个都要放进显存。大小取决于参数量和量化精度。
- KV 缓存:保存上下文里每个 token 的键和值,随上下文长度线性增长。
- 运行开销:运行时的工作缓冲区,通常较小,但不能忽略。CanRun 的指南把这部分称为“compute buffer”。
另外要记住:显卡标称的显存并不能全部使用。CanRun 的指南举例,8GB 的 RTX 4060 可用显存约 7.4GB,系统和显示输出会占用一部分。
第一项:权重怎么算
权重大小约等于“参数量 × 每个参数的字节数”。量化精度决定每个参数占几个字节:
- FP16:每个参数 2 字节,约 2GB / 10 亿参数。
- Q8_0:约 1.1GB / 10 亿参数。
- Q4_K_M:约 0.6GB / 10 亿参数(PromptQuorum 的经验法则)。
按这个比例,我们用公式算出一张速查表,并与 Ollama 上的实际文件大小对照(实际文件会因架构和词表略有出入):
| 参数量 | Q4_K_M 估算 | Q8_0 估算 | FP16 估算 | Ollama 实际文件(对照) |
|---|---|---|---|---|
| 8B | 约 4.8GB | 约 8.8GB | 约 16GB | qwen3:8b Q4 为 5.2GB |
| 14B | 约 8.4GB | 约 15.4GB | 约 28GB | qwen3:14b Q4 为 9.3GB;deepseek-r1:14b 为 9.0GB(Q8 16GB,FP16 30GB) |
| 32B | 约 19GB | 约 35GB | 约 64GB | qwen3:32b Q4 为 20GB;deepseek-r1:32b 为 20GB(Q8 35GB,FP16 66GB) |
| 70B | 约 42GB | 约 77GB | 约 140GB | llama3.3:70b Q4_K_M 为 43GB;deepseek-r1:70b Q8 为 75GB |
可以看到,估算与实际文件相差不大。想进一步了解 Q4_K_M、Q8 各自的取舍,见《大模型量化是什么:Q4_K_M、Q8 怎么选》。

MoE 模型:激活参数少,不等于显存少
混合专家(MoE)模型例如 qwen3:30b-a3b 每次只激活约 3B 参数,推理速度更快,但整个模型文件都要放进内存:Ollama 上它的文件是 19GB,而不是 3B 对应的 2GB。所以 MoE 模型“跑得快,但吃显存”。DeepSeek 的 671B MoE 同理,见《DeepSeek 本地部署》。
第二项:KV 缓存怎么算
KV 缓存的大小与上下文长度成正比。对常见的 Transformer 架构,每个 token 的 KV 缓存约为:
2 × 层数 × KV 头数 × 每头维度 × 每个数值的字节数
以 Llama 3 系架构为例(8B:32 层、8 个 KV 头、每头维度 128;70B:80 层、8 个 KV 头、每头维度 128),FP16 精度下,8B 每个 token 约 128KB,70B 约 320KB。据此算出:
| 上下文长度 | 8B 的 KV 缓存 | 70B 的 KV 缓存 |
|---|---|---|
| 4K tokens | 约 0.5GB | 约 1.3GB |
| 8K tokens | 约 1.1GB | 约 2.7GB |
| 32K tokens | 约 4.3GB | 约 10.7GB |
| 128K tokens | 约 17.2GB | 约 42.9GB |
这是按公式算出的示例,不是实测。不同模型架构差别很大:有些新模型使用混合注意力等设计,KV 缓存明显更小(见下一节的 CanRun 数据)。但趋势是一致的:上下文越长,缓存越大,长上下文是显存的隐形大户。

两个压缩 KV 缓存的办法
根据 Ollama 官方 FAQ,设置环境变量 OLLAMA_KV_CACHE_TYPE 可以量化 K/V 缓存(需要开启 OLLAMA_FLASH_ATTENTION=1):
f16(默认):精度最高、占用最大。q8_0:约为 f16 一半的内存,精度损失很小,Ollama 文档称通常对质量没有明显影响。q4_0:约为 f16 的四分之一,精度损失为小到中等,在上下文很大时可能更明显。
另一个办法就是别把上下文开得过大。Ollama 官方默认值随显存而定:小于 24GiB 为 4k,24–48GiB 为 32k,48GiB 及以上为 256k;智能体和编程类工具建议至少 64000 tokens。
第三项:运行开销与实测对照
CanRun 的指南按“权重 + KV 缓存 + 缓冲区”给出了几个模型在 8k 上下文、Q4_K_M 量化、f16 KV 缓存下的估算,可以用来感受三项的比例:
| 模型 | 权重 | KV 缓存(8k) | 合计(含缓冲区) | 来源 |
|---|---|---|---|---|
| Llama 3.1 8B | — | — | 6.3GB | CanRun 估算 |
| Qwen3 14B | — | — | 10.5GB | CanRun 估算 |
| Qwen3.6 27B | 16.1GB | 0.5GB | 17.2GB | CanRun 估算 |
| Gemma 4 31B | 18.3GB | 0.7GB | 19.5GB | CanRun 估算 |
| Qwen3 30B-A3B(2507) | 18.4GB | 0.8GB | 19.8GB | CanRun 估算 |
| Qwen3.6 35B-A3B | 21.1GB | 0.2GB | 21.8GB | CanRun 估算 |
可以看到,对这些新模型,权重仍是显存占用的大头,8k 上下文时 KV 缓存只占零点几 GB;但把上下文拉长后,KV 缓存会成倍增长。我们没有逐个实测这些数字,它们是第三方估算。
实战:三步估算你的显卡能跑什么
第一步:确定可用显存
用标称显存乘以 0.92–0.95 作为“可用值”的粗略估计(CanRun 的数字:8GB 的 4060 约 7.4GB、12GB 的 3060 约 11.4GB,比例分别约 0.93 和 0.95)。Mac 的统一内存只有一部分可供 GPU 使用,估计约 70%,详见《Mac 跑大模型怎么选》。
第二步:看文件大小再加余量
模型文件大小加上 1–4GB 余量(上下文和缓冲)。例如想在 12GB 显卡上跑 qwen3:14b(9.3GB),CanRun 的估算是 8k 上下文需要 10.5GB,而 12GB 卡可用约 11.4GB,只剩不到 1GB,属于“能跑但很紧”。
第三步:装好后用 ollama ps 核对
加载模型后运行 ollama ps,PROCESSOR 列显示 100% GPU 就是完全放进显卡;出现 CPU 比例就是溢出,速度会明显下降。排查办法见《Ollama 常见报错:GPU 没用上怎么办》。
三个算账实例
下面三个例子都是假设性场景,用上文的速查数字演示怎么算,不是实测结果。
实例一:12GB 显卡(如 RTX 3060 12GB)想跑 qwen3:14b。 可用显存约 11.4GB;CanRun 估算 8k 上下文共需 10.5GB,余量不到 1GB。结论:可以跑,但上下文不宜超过 8k;如果想开 32k,就要考虑量化 KV 缓存或换成 8B 级模型。
实例二:24GB 显卡想跑 qwen3:32b。 文件 20GB,可用显存按 22–22.8GB 算,余量约 2–2.8GB,足够 8k 上下文,但长上下文会吃紧。可以选择更小的 qwen3.6:27b(17GB),或把 KV 缓存量化到 q8_0,换取更宽裕的上下文。
实例三:16GB 显卡想跑 gpt-oss:20b。 文件 14GB,可用显存约 14.7–15.2GB,按公式只剩不到 1GB,非常紧;但 CanRun 的指南把它列为 16GB 能放下的模型,所以建议实际加载后用 ollama ps 确认,并把上下文控制在 8k 左右。
这三个例子说明:同一个“放得下”,余量大小决定了你能开多长的上下文,以及稳定性。预算有限时,宁可选小一档的模型,留出余量,也不要卡着极限加载。
按显存档位的速查表
| 可用显存 | 推荐模型级别 | 例子(文件大小) | 备注 |
|---|---|---|---|
| 8GB 卡(约 7.4GB 可用) | 7B–8B | qwen3:8b(5.2GB) |
详见《8GB 显存能跑什么模型》 |
| 12GB 卡 | 12B–14B | qwen3:14b(9.3GB) |
余量约 1GB,上下文别开大 |
| 16GB 卡 | 约 20B | gpt-oss:20b(14GB) |
20B 级的舒适档 |
| 24GB 卡 | 27B–32B | qwen3.6:27b(17GB)、qwen3:32b(20GB) |
详见《24GB 显存能跑什么模型》 |
| 32GB 卡 | 35B 级、27B 高精度 | qwen3.6:35b-a3b(24GB) |
余量宽裕 |
| 48GB 以上 | 70B | llama3.3:70b(43GB) |
单卡 24GB 放不下,需多卡或大内存设备 |

放不下怎么办:五个办法
- 换更小的模型:一般比“硬塞”更划算。
- 换更低的量化:从 Q8 换成 Q4_K_M,体积大约减半以上,但质量会有下降。
- 缩短上下文:用
/set parameter num_ctx或OLLAMA_CONTEXT_LENGTH调整。 - 量化 KV 缓存:
OLLAMA_KV_CACHE_TYPE=q8_0(需开启 Flash Attention)。 - 接受部分落到内存:能跑,但慢,适合偶尔使用。
名词速查
| 名词 | 含义 | 对显存的影响 |
|---|---|---|
| 参数量(B) | 模型有多少十亿个参数 | 决定权重体积的基数 |
| 量化 | 用更少的位数存储权重,如 Q4、Q8 | 位数越少,权重越小,质量略降 |
| 上下文长度(ctx) | 模型一次能“看到”的 token 数 | 越长,KV 缓存越大 |
| KV 缓存 | 保存上下文键值的显存区域 | 随上下文线性增长 |
| 并发(NUM_PARALLEL) | 同时处理的请求数 | 每个并发请求都有自己的缓存,显存需求随之增加 |
| 卸载(offload) | 把放不下的层放到系统内存 | 能跑但变慢 |
常见误区
| 误区 | 事实 |
|---|---|
| “激活参数只有 3B,所以 8GB 显卡能跑 30B-A3B” | MoE 要整个文件放进内存,qwen3:30b-a3b 文件 19GB |
| “显存标称 8GB 就能用 8GB” | 系统会占用一部分,可用值约 7.4GB(CanRun 对 4060 的数字) |
| “文件大小等于显存占用” | 还要加上 KV 缓存和缓冲区,通常多 1–4GB 以上 |
| “上下文越长越好” | 长上下文会占大量显存,也会拖慢速度 |
| “FP16 一定比 Q4 好很多” | 在多数日常任务中差异有限,取舍见《大模型量化是什么》 |
常见问题(FAQ)
70B 模型需要多少显存?
Q4_K_M 约 43GB(llama3.3:70b),再加上上下文缓存。单张 24GB 显卡放不下,需要多卡、专业卡或大内存统一内存设备。
8GB 显存能跑 14B 吗?
文件 9GB 左右(qwen3:14b 9.3GB),已经超过 8GB 卡的可用值,会部分落到内存,速度明显下降。8GB 建议选 7B–8B。
上下文长度会占多少显存?
取决于模型架构。以 Llama 3 系的 8B 为例,FP16 的 KV 缓存约每 1K tokens 占 0.13GB,128K 时可达十几 GB。不同模型差别很大,用 ollama ps 实测最准。
显存不够可以用内存补吗?
可以,Ollama 会自动把放不下的层放到内存,但速度会明显下降。
Mac 怎么算?
Mac 使用统一内存,GPU 可用部分约为总内存的七成左右(不同来源估计在三分之二到四分之三之间),可用 ollama ps 核对。
有没有现成的计算器?
有第三方工具(如 CanRun),可作参考,但仍建议用 ollama ps 实测。
下一步与社区
如果你的显卡刚好卡在两档之间,不知道该选哪个模型,欢迎把型号和用途发到社区(加入社区),我们一起算一算。我们在深圳做本地大模型机器的选型、组装与实测,也可以按你想跑的模型倒推配置;先聊需求,不强制购买。
