大模型显存计算器:输入模型、量化和上下文,估算大模型显存需求(在线工具) - 大模型显存需求

大模型显存计算器:输入模型、量化和上下文,估算大模型显存需求(在线工具)

买显卡之前、下载模型之前,最常问的问题就是:这个模型需要多少显存?大模型显存需求可以拆成三块:权重、KV 缓存和运行开销。下面的在线计算器就是按这三块相加:选一个模型预设(或手动填写参数量和每 token 的 KV 缓存大小),选择量化和上下文长度,立刻得到估算的显存总量,以及 8GB 到 80GB 各档显卡是否放得下。页面下方还有公式说明、速查表和几个算例,你不用计算器也能心算。

核对说明:计算器是估算工具,不是测量结果。权重按“参数量 × 每参数字节数”估算(FP16 约 2.0、Q8_0 约 1.1、Q4_K_M 约 0.6),KV 缓存按模型层数、KV 头数和头维度推算,开销取 1 到 2GB 的经验值,可用显存取标称的 0.92 到 0.95 倍。我们没有对这些组合做实测,不同软件、版本和驱动会有出入;混合专家模型、多模态模型和多卡拆分不在这个简化公式里。

要点速览(更新于 2026-11-04)

  • 公式:总显存 ≈ 权重(参数量 × 每参数字节数)+ KV 缓存(每 token 字节数 × 上下文长度)+ 开销(约 1 到 2GB);再除以可用比例(约 0.92 到 0.95)得到建议的标称显存。
  • 每 token 的 KV 缓存(f16):Qwen2.5-7B 约 56KiB,Llama 3.1 8B 约 128KiB,Qwen2.5-14B 约 192KiB,Qwen2.5-32B 约 256KiB,Llama 3.1 70B 约 320KiB。

  • 例:Llama 3.1 8B、Q4_K_M、上下文 8K,合计约 7.3GB,建议标称显存约 7.8GB,8GB 显卡偏紧;32B、Q4_K_M、8K 约 22.7GB,24GB 显卡偏紧。

  • Ollama 官方文档说明默认上下文随显存变化:低于 24GiB 为 4K,24 到 48GiB 为 32K,48GiB 及以上为 256K。

在线计算器:估算大模型显存需求

在下方选择模型预设,或者选“自定义”后手动填写参数量和每 token 的 KV 缓存。所有计算都在你的浏览器里完成,不会上传任何数据。

显存估算器(在本页内运行,不会上传任何数据;结果为估算值)

怎么读结果:“合计需要”是权重、KV 缓存和开销的总和;“建议标称显存”是合计再除以可用比例;各档显存的判断是:合计不超过可用显存的 85% 为“宽裕”,不超过 100% 为“偏紧”,超过为“放不下”。偏紧的情况下,上下文长度一变长就可能溢出。

公式是怎么来的

显存估算公式:权重加 KV 缓存加运行开销,再除以可用比例
图 1:本页计算器使用的公式(团队整理,估算值)

1. 权重 = 参数量(十亿)× 每参数字节数。FP16 每参数 2 字节,Q8_0 约 1.1 字节,Q4_K_M 约 0.6 字节(本站其他文章按每十亿参数 0.61GB 估算,差别很小)。量化的含义见量化 Q4_K_M 解读。

2. KV 缓存 = 每 token 字节数 × 上下文长度。每 token 的字节数 = 2 × 层数 × KV 头数 × 头维度 × 每元素字节数(f16 为 2)。这个公式里的 2 是“键”和“值”各一份。

3. 运行开销:推理框架、CUDA 上下文、临时缓冲区等,我们取 1 到 2GB 的经验值,计算器默认 1.5GB。

4. 可用比例:显卡的标称容量不会全部可用,系统和显示输出也会占用一部分,我们取 0.93 作为默认值(经验范围 0.92 到 0.95)。

5 个模型在 FP16、Q8_0、Q4_K_M 下的权重体积估算
图 2:权重体积估算(参数量 × 每参数字节数,FP16 约 2.0、Q8_0 约 1.1、Q4_K_M 约 0.6),为估算值

速查表一:权重体积

模型 FP16(约 2.0) Q8_0(约 1.1) Q4_K_M(约 0.6)
7B 约 14.0GB 约 7.7GB 约 4.2GB
8B 约 16.0GB 约 8.8GB 约 4.8GB
14B 约 28.0GB 约 15.4GB 约 8.4GB
32B 约 64.0GB 约 35.2GB 约 19.2GB
70B 约 140.0GB 约 77.0GB 约 42.0GB

表中参数量取整数(7、8、14、32、70),实际模型的参数量略有差异,所以这里的数字与 Ollama 页面标注的文件体积不会完全相同。

速查表二:KV 缓存体积(f16)

每 token 的 KV 缓存与模型结构有关,下表是我们按层数、KV 头数和头维度推算的结果(f16),再乘以上下文长度:

模型 每 token 4K 上下文 8K 32K 128K
Qwen2.5-7B 56KiB 约 0.22GB 约 0.44GB 约 1.75GB 约 7.0GB
Llama 3.1 8B 128KiB 约 0.5GB 约 1.0GB 约 4.0GB 约 16.0GB
Qwen2.5-14B 192KiB 约 0.75GB 约 1.5GB 约 6.0GB 约 24.0GB
Qwen2.5-32B 256KiB 约 1.0GB 约 2.0GB 约 8.0GB 约 32.0GB
Llama 3.1 70B 320KiB 约 1.25GB 约 2.5GB 约 10.0GB 约 40.0GB
5 个模型每 token 的 KV 缓存大小对比(f16)
图 3:按模型结构推算的每 token KV 缓存(f16),单位 KiB;来自层数、KV 头数和头维度的公式

KV 缓存的精度也可以降低:q8_0 约为 f16 的一半,q4_0 约为四分之一。Ollama 常见问题说明,q8_0 的精度损失很小,通常没有明显影响,q4_0 则是“小到中等”的损失,在更长上下文下可能更明显,而且 GQA 数较高的模型(例如 Qwen2)受影响可能更大。这些是官方说明,我们没有对质量损失做实测。更详细的上下文与显存关系见上下文长度与 KV 缓存显存。

几个算例(开销 1.5GB,可用比例 0.93)

场景 权重 KV 缓存 合计 建议标称显存
8B,Q4_K_M,8K 上下文 4.8GB 1.0GB 约 7.3GB 约 7.8GB
14B,Q4_K_M,8K 8.4GB 1.5GB 约 11.4GB 约 12.3GB
32B,Q4_K_M,8K 19.2GB 2.0GB 约 22.7GB 约 24.4GB
32B,Q4_K_M,32K,f16 19.2GB 8.0GB 约 28.7GB 约 30.9GB
32B,Q4_K_M,32K,q8_0 KV 19.2GB 4.0GB 约 24.7GB 约 26.6GB
70B,Q4_K_M,8K 42.0GB 2.5GB 约 46.0GB 约 49.5GB
8B,Q8_0,8K 8.8GB 1.0GB 约 11.3GB 约 12.2GB
8B,FP16,8K 16.0GB 1.0GB 约 18.5GB 约 19.9GB
8B,Q4_K_M,128K 4.8GB 16.0GB 约 22.3GB 约 24.0GB

从表里可以得到几个有用的结论:

  • 8GB 显卡跑 8B 的 Q4_K_M 和 8K 上下文,只是刚好够,想要更长上下文就会超。
  • 32B 在 24GB 显卡上,8K 上下文已经偏紧;想要 32K,需要把 KV 缓存降到 q8_0,还要接受它会带来的取舍。
  • 上下文拉到 128K 时,KV 缓存可以比权重还大:8B 的权重只有 4.8GB,128K 的 KV 却要 16GB。
  • 70B 即使量化到 Q4,也需要接近 50GB 的显存,单张 24GB 显卡放不下,需要多卡或更大的显存,见双显卡装机。

为什么 Ollama 默认上下文会随显存变化

根据 Ollama 官方文档,默认上下文长度取决于显存:低于 24GiB 时默认 4K,24 到 48GiB 为 32K,48GiB 及以上为 256K。这意味着同一个模型,换一张显存更大的卡,Ollama 默认就会分配更大的 KV 缓存,占用的显存自然更多。如果你发现换卡后显存占用变高,多半是这个原因,不是出了问题。可以手动指定上下文长度来控制,具体设置见显存不足怎么办。

在 Ollama 里怎么把计算结果落地

算出来之后,还需要把设置真正生效。以 Ollama 为例(以官方文档为准):

  • 上下文长度:通过环境变量 OLLAMA_CONTEXT_LENGTH 设置默认上下文,或在应用的设置里用滑块调整;ollama run 里可以用 /set parameter num_ctx,接口里用 num_ctx 参数。调大上下文会增加所需显存,所以先用计算器估算再设置。
  • KV 缓存精度:通过 OLLAMA_KV_CACHE_TYPE 设置 f16、q8_0 或 q4_0,官方说明需要启用 Flash Attention 才能量化 KV 缓存(OLLAMA_FLASH_ATTENTION=1),并且这是全局选项,所有模型共用。
  • 并发请求:官方说明,同一个模型的并行请求会按并行数放大上下文,所需内存按 OLLAMA_NUM_PARALLEL 与 OLLAMA_CONTEXT_LENGTH 的乘积增长。所以多人共用时,要把计算器里的 KV 缓存乘以并发数,团队共用的思路见小团队共享本地大模型。
  • 确认真实占用:用 ollama ps 查看模型的实际占用,以及“PROCESSOR”一列显示的是 100% GPU,还是已经有一部分落在 CPU 上。如果有一部分在 CPU,说明显存不够,速度会明显下降,应当降低上下文或换小一档的模型。

算例:把 32B 放进 24GB 显卡。 按计算器,32B 的 Q4_K_M 在 8K 上下文下约需 22.7GB,24GB 显卡可用约 22.3GB,已经放不下。办法有三个:一是把上下文降到 4K(KV 缓存约 1.0GB,合计约 21.7GB,偏紧但勉强可行);二是把 KV 缓存改为 q8_0,8K 时 KV 约 1.0GB,合计也约 21.7GB;三是换成 14B 或 Q3 级别的量化。请注意,这些组合我们都没有实测,只是按公式推算。

这个计算器没有考虑什么

  • 混合专家模型(MoE):权重要全部放入显存或内存,所以参数量应当填“总参数”而不是“激活参数”。KV 缓存则取决于模型的注意力结构,需要查具体模型。
  • 多模态模型:图像编码器还会额外占用显存。
  • 批量与并发:多个用户同时使用时,每个会话各有一份 KV 缓存,要把它乘以并发数。
  • 部分卸载到内存:如果允许一部分层放在内存,显存需求会下降,但速度会明显变慢。
  • 多卡拆分:多卡之间有通信与重复开销,不是简单相加,见双显卡装机。
  • 苹果等统一内存设备:可用比例和系统占用与独立显卡不同,见Mac 跑本地大模型。
  • 不同软件的差异:llama.cpp、Ollama、vLLM 的开销与缓存策略都不同。

常见误区

  • 只看权重:很多人用“文件大小”当作显存需求,忽略了 KV 缓存和开销,长上下文时会严重低估。
  • 把激活参数当成显存需求:混合专家模型的显存取决于总参数。
  • 忽略可用比例:24GB 的卡实际可用约 22 到 22.8GB。
  • 以为量化后质量没有损失:Q4 会有损失,我们没有对质量做量化声明。
  • 把计算结果当成保证:这是估算,请留出余量,本页计算器的“偏紧”档就是在提醒这一点。

我们怎么核对,没做什么

每 token 的 KV 缓存来自模型配置里的层数、KV 头数和头维度,按公式推算(Llama 3.1 8B:2 × 32 × 8 × 128 × 2 字节 = 128KiB);Ollama 默认上下文来自其官方文档;量化字节数是经验值。我们没有在显卡上实测这些组合,也没有测试不同软件的实际占用。若你的实际占用与计算结果相差较大,请以实际为准,并欢迎反馈。

常见问题

大模型显存需求怎么估算?

总显存约等于权重加 KV 缓存加运行开销:权重 = 参数量 × 每参数字节数,KV 缓存 = 每 token 字节数 × 上下文长度,开销约 1 到 2GB。

8GB 显卡能跑多大的模型?

按 Q4_K_M 估算,8B 模型在 8K 上下文下合计约 7.3GB,8GB 显卡偏紧;更大的模型需要降低上下文或使用部分内存卸载。

24GB 显卡能跑 32B 吗?

32B 的 Q4_K_M 在 8K 上下文下合计约 22.7GB,而 24GB 显卡的可用显存约 22.3GB,已经偏紧甚至放不下;想要更长上下文需要降低 KV 缓存精度,并接受取舍。

为什么上下文变长,显存涨得这么快?

因为 KV 缓存与上下文长度成正比。Llama 3.1 8B 每 token 约 128KiB,128K 上下文就是约 16GB,比 4.8GB 的 Q4 权重还大。

混合专家模型怎么填参数量?

填总参数量,因为全部专家的权重都要放进显存或内存;激活参数只影响速度。

计算结果准确吗?

这是估算,不同软件、驱动和上下文策略会有出入,建议留出余量,实际占用请以运行时的数值为准。

想让我们帮你算?

欢迎到社区交流,或发邮件到 admin@microaione.com,告诉我们你的模型、量化、上下文长度和显卡。我们的深圳团队会帮你核对,并如实标明估算部分。更多显存对照可以看显存速查表。

参考资料:Ollama:上下文长度文档、Ollama 常见问题(KV 缓存类型)、Qwen2.5-7B 模型页(配置)、Qwen2.5-32B 模型页(配置)、Llama 3.1 8B 模型页、llama.cpp 量化文档。

类似文章