Skip to content
🔗 分享本题
查看我的学习进度 →

模型显存估算动漫知识图:权重显存约等于参数量乘每参数字节,实际推理还需 KV Cache、激活和框架开销,训练还需梯度与优化器状态

🧠 图解记忆:先算权重,再加 KV、激活与运行开销;点击图片可查看原图。

核心公式:显存(GB)≈ 参数量 × 每参数字节数

推理显存估算(面试必答)

精度每参数字节7B 模型权重显存
FP324 bytes28 GB
FP16/BF16(主流)2 bytes14 GB
INT8 量化1 byte7 GB
INT4 量化0.5 byte3.5 GB
python
# 推理权重显存
params_b = 7
for name, bytes_p in [("FP32", 4), ("FP16", 2), ("INT8", 1), ("INT4", 0.5)]:
    gb = params_b * 1e9 * bytes_p / 1024**3
    print(f"{name}: {gb:.1f} GB")
# FP32: 26.1 GB / FP16: 13.0 GB / INT8: 6.5 GB / INT4: 3.3 GB(按 1e9 换算)
# 更常见的近似说法:7B × 2B ≈ 14GB(按 1024³ 精算约 13GB)

注意:推理实际显存 = 权重 + KV Cache + 激活值(KV Cache 见 Q30,长上下文时可能超过权重本身)

训练显存估算(难度升级)

组件每参数字节7B 全参训练
权重2 bytes14 GB
梯度2 bytes14 GB
Adam 优化器状态12 bytes(2×动量 + 8×方差,FP32)84 GB
合计16 bytes≈ 112 GB(需 8×A100 80G)

如何用少量显存训练大模型?

  • LoRA:只训练 ~0.1% 参数(7B 只训约 830 万参数),显存需求从 112GB → ~16GB
  • QLoRA:4-bit 量化基座 + LoRA,24GB 消费级显卡即可微调 7B
  • ZeRO / 张量并行:多卡分摊(显存不够,卡数来凑)

面试话术:

"显存估算的核心是'参数×字节数':7B 模型 FP16 推理要 14GB,INT4 只要 3.5GB;但全参训练要 16 字节/参数,7B 就要 112GB,所以训练必须上 LoRA——只训 0.1% 的参数,24G 显卡就能微调 7B。面试官问'为什么下载的模型 14G 一跑起来显存超了',答案就是还有 KV Cache 和激活值。"


📚 参考:QLoRA(附录含 4/8/16-bit 显存换算表)