AGAnchorGPU
← 所有工程指南

GPU 工作负载指南

你实际需要多少 GPU VRAM?

适用于推理、微调、图像生成和视频工作负载的实用内存预算——从 24 GB 到 192 GB。

AnchorGPU · 更新于 · 6 分钟阅读

VRAM 是预算,而非型号标签

GPU 内存由多个独立类别消耗:模型权重、推理 KV 缓存、临时激活、框架工作区、分配器缓存,以及训练期间的梯度和优化器状态。模型在一种配置下能装入,并不证明它在更长的上下文、更大的批次、不同的精度或更多并发请求下也能装入。

应根据确切的模型版本和运行时配置进行规划。7B、13B 或 70B 等标签描述的是参数规模,而非总运行内存,因此绝不应将其普遍映射到某个 GPU。

先估算原始权重

作为一个明确的假设示例,假设一个模型恰好有 13 亿个参数,并且每个参数都以 16 位格式存储。原始权重存储为 13,000,000,000 × 2 字节 = 26,000,000,000 字节,约 24.2 GiB。该数字不包括任何其他分配,因此它是下限,而不是 GPU 建议。

量化可以减少权重存储,但实际占用还包括缩放因子、元数据、反量化缓冲区、重复张量和运行时工作区。请使用实际加载器生成的格式,而不是将参数数量除以标称位宽并将结果视为最终值。

推理会增加 KV 缓存和工作内存

自回归推理会为活跃序列保留键和值张量。KV 缓存需求取决于模型架构、缓存精度、并发序列数以及这些序列中的活跃令牌数量。即使权重加载成功,提高最大上下文或并发数也可能耗尽内存。

临时激活、注意力工作区、已编译内核、通信缓冲区以及框架分配器都会占用额外内存。vLLM 会报告其可用的 GPU KV 缓存容量,以及针对所配置序列长度的估算并发数;请将这些启动数据视为规划依据,并在提交生产工作负载前重放代表性提示。

训练具有不同的内存形态

微调会增加梯度、优化器状态、已保存的激活值,有时还会增加额外的全精度副本。其确切大小取决于优化器、精度策略、可训练参数集和分片策略,因此单一推理倍率具有误导性。

DistributedDataParallel 会复制每个工作进程所需的训练状态;它不会将多块 GPU 变成一个连续的内存池。Fully Sharded Data Parallel 可以在工作进程之间分片参数、梯度和优化器状态,而激活检查点则通过在反向传播期间重新计算选定的工作来减少已保存的激活内存。这两种技术都以简单性或计算量换取内存。

测量您将要运行的配置

使用确切的框架、精度、上下文、批处理和并行设置,测试模型加载以及一个完整的代表性推理请求或训练步骤,包括优化器更新。记录峰值已分配和已保留的显存,然后以现实的并发或梯度累积重复测试。应保留运行余量,而不是用尽最后可用字节。

当实测峰值无法安全降低时,请选择更大内存的 GPU。只有在软件明确对模型或工作负载进行分片,并且已了解实际交付的互连时,才增加 GPU。在模型、运行时、量化、上下文或批次发生任何变化后,都应重新进行测量。

来源与编辑方法

官方文档支持这些技术说明。硬件推荐是我们根据工作负载做出的解读,并非经过实测的性能保证。

vLLM — 并行性与扩展PyTorch — FullyShardedDataParallelPyTorch — 激活检查点