Varven

VRAM 计算器

填入你的 GPU 和一个模型。它会算出权重、KV cache 和额外开销,然后告诉你装不装得下——或者该改什么。

8192 token

各部分的 VRAM 占用估算
组成部分VRAM

这是怎么算出来的

在本地跑模型时,占用 VRAM(显存)的有三样东西。

权重等于参数量乘以每个参数的字节数。FP16 是两个字节;量化格式会把它压下去,而 GGUF k-quant 的实际占用略高于名义位宽,因为有些张量仍保持较高精度。

KV cache 保存上下文中每个 token 的注意力键和值,大小为 2 × layers × kv_heads × head_dim × context × 2 bytes。采用分组查询注意力的模型,KV 头数远少于注意力头数,所以现在的 8B 模型只用掉旧模型的一小部分缓存。

额外开销指 CUDA 上下文、激活值和各种缓冲区。它随运行时而变;这里按大约 0.8 GB 估算,也就是 llama.cpp 的典型值。

把结果当作接近的估算,而不是保证。预设里的架构参数是近似值,真实的分配器会产生碎片,各运行时也不一样。如果结果落在你显卡容量的 10% 以内,就当它装不下。

我们为什么做这个工具

Varven 会在你自己的机器上跑一个语言模型来整理和概括笔记,所以“这台机器到底能跑什么”是每次安装都得先回答的问题。它的失败方式很不友好:装不下的模型不会拒绝加载,只会溢出到系统内存,然后慢上十倍。Varven 在安装时会替你检查这一点——这里就是同一套算式,公开出来而已。

看看 Varven 能做什么 · 阅读文档

常见问题

跑一个 7B 模型需要多少显存(VRAM)?

用 Q4_K_M,权重大约 4.4 GB,再加上 KV cache 和约 0.8 GB 的额外开销。8 GB 的显卡在 8k 上下文下跑得很轻松。换成 FP16,同一个模型要约 14 GB,装不下。

模型装不下会怎样?

部分层会溢出到系统内存,改由 CPU 运行。它仍然能用,但吞吐往往会掉十倍以上。只要是交互式的场景,就换更小的模型,或者选一档能完全装进 VRAM 的更重量化。

上下文长度有影响吗?

有,而且比大多数人想的更大。KV cache 随上下文线性增长,从 8k 翻到 16k 就翻一倍。一个加载时好好的模型,仍然可能在长对话进行到后段时耗尽显存。

该选哪种量化?

Q4_K_M 是合理的默认值。显存有余量就用 Q5_K_M 或 Q6_K。低于 Q3,只要涉及推理,质量损失就很明显了。