显存需求的核心公式(快速估算​)

推理内存需求

推理阶段的内存需求主要由模型权重、KV缓存和激活内存组成。其中,模型权重是内存占用的主要部分。

计算公式

推理内存 ≈ 参数数量 × 精度(通常为 2 或 4 字节)

例如:10亿参数(1B)在16位精度下占用约2GB内存,100B参数则占用约200GB内存。

示例:70.6B模型,16位精度,约需130GB GPU内存,因此需要2张80GB的H100 GPU。

训练内存需求

训练阶段的内存需求通常是推理的4-6倍,因为需要额外存储梯度、优化器状态(如Adam优化器需要额外8字节/参数)等。

推理

执行推理需要资源来加载模型权重并存储 KV 缓存和激活内存。模型大小是最主要的参数,比其他参数要大得多。

总推理内存 = 模型大小 + KV 缓存 + 激活

显存需求的核心公式(精确计算)

​基础模型内存估算​

  • ​公式:总内存 ≈ 参数数量 × 精度(字节) × 额外开销系数
    • ​参数数量(P)​:如7B、13B、70B等。
    • ​精度(Q)​:16位(2字节)、8位(1字节)、4位(0.5字节)。
    • ​额外开销系数:通常为1.2(覆盖缓存、元数据等)。
    • 换算示例:
      • 13B参数 + 16位精度:(13B × 2 × 1.2) / 8 = 31.2 GB
      • 70B参数 + 16位精度:70B × 2 = 140 GB(未含额外开销)。

​推理场景

  • ​总内存 = 模型权重 + KV缓存 + 激活内存​
    • ​模型权重:参数数量 × 精度(如70B × 2字节 = 140 GB)。
    • ​KV缓存:2 × 批次大小 × 序列长度 × 层数 × 隐藏大小 × 精度。
    • ​激活内存:批次大小 × 序列长度 × 隐藏大小 × (34 + 5×序列长度×注意力头数/隐藏大小)。

训练与推理的差异

场景 内存需求 关键因素
推理 较低 模型权重、KV缓存、激活内存
训练 4-6倍推理需求 模型权重 + 梯度 + 优化器状态(如Adam需额外8字节/参数)

示例:

  • ​训练70B模型:需约924 GB显存(基于全精度、Adam优化器)。
  • ​微调优化:通过LoRA、QLoRA等技术减少可训练参数,显著降低内存需求。

量化技术的应用

通过降低精度减少显存占用,但可能影响模型效果:

​常见量化方案:

  • 16位(FP16):显存减半,性能接近全精度。
  • 8位(int8):显存为全精度的25%,轻微性能损失。
  • 4位(int4):显存为全精度的12.5%,需结合QLoRA等技术优化。

​示例:70B模型量化至4位后,显存需求从140 GB降至约35 GB。

GPU配置建议

单卡限制

NVIDIA A100(80GB)可支持:

  • 40B模型(16位)或更小模型。
  • 70B模型需2张A100或H100(80GB)。

​多卡扩展

  • 使用模型并行(如Tensor Parallelism)拆分模型到多卡。
  • 注意通信开销和框架支持(如DeepSpeed、vLLM)。

实例参考

模型规模 精度 显存需求(推理) 所需GPU配置
13B 16位 ~31 GB 1×A100(40GB)
70B 16位 ~140 GB 2×A100/H100
70B 4位+QLoRA ~35 GB 1×A100(40GB)

如果你还想挖掘更多宝藏内容,请关注公众号“智界元枢”。

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐