本地部署大模型实战:先算显存,再挑显卡

很多人本地跑大模型的第一步是「买张显卡」,第二步才发现模型加载不起来。顺序反了。真正决定能不能跑起来的,是显存预算:模型权重、KV 缓存、运行时开销三者相加,超一点就会 OOM(显存不足)或者被系统悄悄丢到内存里,速度掉到无法接受。

这篇文章给一套可以直接套用的估算方法,以及在不同预算下的硬件选型思路。

一、显存被谁吃掉了

一次推理请求的显存占用,大致由四块构成:

  • 权重(weights):模型参数本身,由参数量和量化精度决定,是最大的一块。
  • KV 缓存(KV cache):随上下文长度和并发数线性增长,是长文本场景的主要变量。
  • 运行时开销:框架、CUDA 上下文、算子临时缓冲,通常 0.5–1.5 GB 起步。
  • 批处理与碎片:并发提高后显存碎片会明显增加,需要预留余量。

先估权重,再估 KV 缓存,最后加固定开销和 15%–20% 的余量,这就是你的显存下限。

二、权重显存速算

权重的近似算法是「参数量 × 每参数字节数」:

def weights_gb(params_b, bytes_per_param):
    # params_b: 参数量,单位十亿(B)
    # bytes_per_param: FP16=2, INT8=1, INT4 约 0.5(另加约 5%-10% 缩放开销)
    return params_b * bytes_per_param * 1.08

for p in (7, 8, 13, 32, 70):
    print(p, "B  INT4 ≈", round(weights_gb(p, 0.5), 1), "GB",
          " FP16 ≈", round(weights_gb(p, 2), 1), "GB")

常见规模的结果大致如下(单精度粗算,仅作选型参考):

参数量 FP16 INT8 INT4 典型可跑设备
7B–8B 约 15 GB 约 8 GB 约 4.5 GB 12–16 GB 单卡
13B–14B 约 27 GB 约 14 GB 约 8 GB 16–24 GB 单卡
32B 约 65 GB 约 33 GB 约 18 GB 24 GB 单卡勉强、双卡更稳
70B 约 145 GB 约 73 GB 约 40 GB 多卡或大统一内存

结论很直接:想用单张 16 GB 显卡,就老老实实选 8B 级别的 INT4 量化模型,不要盯着 FP16 的 32B。

三、KV 缓存:长文本才是隐藏成本

KV 缓存的近似公式:

KV ≈ 2 × 层数 × KV头数 × 头维度 × 序列长度 × 批大小 × 每元素字节数

代入一个 8B 级别模型(32 层、8 个 KV 头、每头 128 维、FP16):

  • 单条 8K 上下文:约 1 GB 左右;
  • 单条 32K 上下文:约 4 GB 左右;
  • 4 条 32K 并发:约 16 GB,直接超过模型权重本身。

这解释了一个常见现象:短对话很流畅,一贴长文档就卡死——不是模型不行,是上下文把显存吃穿了。

四、量化格式怎么选

格式 适合场景 优点 代价
GGUF(Q4_K_M 等) 单机 CPU+GPU 混合、消费级显卡 门槛最低,CPU 也能跑 并发能力弱
AWQ / GPTQ(4bit) 单卡 GPU 服务 显存省、GPU 推理快 需要预先量化权重
FP8 较新架构的 GPU 精度损失小 硬件要求高
FP16 / BF16 有充足显存 精度最好 显存需求翻倍

一般建议:先跑 FP16 的量化版对比效果,确认能满足业务,再决定是否为了速度上更低比特。顺序反过来,很容易把「模型能力不足」误判成「任务本身做不到」。

五、按预算选硬件

  • 核显/轻薄本:8B 以下 INT4 + GGUF,CPU 或核显混合推理。可用,但只适合单轮问答,不做长上下文。
  • 单张 16 GB 消费卡:8B INT4 舒适,13B INT4 可行,长上下文要收着用。
  • 单张 24 GB 消费卡:13B–14B INT4 舒适,32B INT4 能装但要牺牲上下文和并发。
  • 大统一内存平台(如高内存容量工作站):能装 70B 级别的量化模型,代价是带宽有限、生成速度慢,适合离线批处理而非交互。
  • 多卡或服务器:才谈 FP16 与并发服务化。

六、落地前先跑通的检查清单

  1. 确认模型权重大小与你算出来的显存下限一致,别只看模型名。
  2. 明确业务真正的上下文长度,按 2 倍预留 KV 缓存。
  3. 先用最小可用框架跑通一次完整请求,再谈优化。
  4. 记录首字延迟与每秒生成 token 数两个指标,作为后续对比基线。
  5. 跑一轮压力测试,观察显存碎片与并发上限。
  6. 把量化版本与实际效果一起记录,避免只记住「跑通了」而忘了「效果如何」。

小结

本地部署的门槛不在显卡价格,而在是否先把显存账算清楚。权重决定下限,KV 缓存决定上限,量化决定你能在这两者之间换到多少空间。把这三件事按顺序算一遍,选型基本不会有惊喜。

原文来源:https://adyu.my-place.us/1980/