完整文档索引见 llms.txt。 在任意 URL 后追加 `.md` 即可查看该页面的 Markdown 版本。
计算为 LLM 服务所需的 GPU 内存
如果你打算自托管一个 LLM,最先需要估算的事情之一,就是它需要多少 GPU 内存(VRAM)。
在 LLM 推理过程中,模型权重必须常驻 GPU 内存,模型提供服务期间都不能被 移出。这一固定基线主要取决于模型规模,以及权重采用的精度格式。
- 模型大小(参数量)。模型越大,需要的内存越多。拥有几十亿到几百亿 参数的模型,通常需要 NVIDIA H100、H200 这类高端 GPU。
- 位精度。所使用的精度(例如 FP16、FP8、INT8)会影响内存消耗。更低
精度的格式可以显著降低内存占用,但也可能影响精度。对于 Hugging Face 上的
模型,你通常可以在
config.json中找到权重数据类型。torch_dtype字段表示模型权重使用的精度。详情可见 LLM quantization。
权重内存并不是完整的服务需求。比如一个 7B 模型在 FP16 下,仅权重大约就要 14 GB,因此它也许能加载到 16 GB 的 GPU 上。但这并不意味着该 GPU 还有足够 余量支撑生产推理。单个较短请求也许能跑通,但更长的提示词、更大的批处理或 更高并发的用户,很快就会耗尽剩余内存。
KV cache 通常是运行时最大的 额外开销。它保存 attention 的 key 和 value,使模型在解码阶段能够复用之前的 token,而不是反复重算。缓存大小会随着序列长度和活跃请求数量增加而增长。 服务引擎还需要额外内存来存放临时激活值、workspace buffer、框架分配,以及 有时所需的 CUDA graph。如果权重之外只剩下很少的 GPU 内存余量,你就只能 支持较短上下文、较小批处理和较低并发。
一个粗略估算服务内存的公式如下:
Memory (GB) = P * (Q / 8) * (1 + Overhead)
- P:参数量(单位:十亿)
- Q:位精度(例如 16、32),除以 8 是把 bit 转换为 byte
- Overhead (%):权重之外的额外服务内存,例如 KV 缓存、激活值缓冲区、 workspace 内存以及框架/运行时预留
这种按百分比估算的 Overhead 只是快速 sizing 的捷径,并不是精确的容量模型。 KV 缓存内存取决于序列长度、批大小、并发数、层数和隐藏维度,因此长上下文 工作负载所需的余量,可能远高于简单的 10% 到 30% 估算。
使用下面的计算器来估算你的模型所需 GPU 内存:
GPU 内存计算器
估算加载并运行 LLM 所需的 GPU 内存(VRAM)
快速预设:
模型参数
参数量(P)
位精度(Q)
额外开销(%)
常见范围:10%–30%。包含 KV 缓存、激活值和框架缓冲区。
所需 VRAM:19.2 GB
按当前精度加载并运行该模型所需的估算 GPU 内存。
公式:
Memory (GB) = P × (Q / 8) × (1 + Overhead)
= 8 × (16 / 8) × (1 + 0.2) = 19.20 GB
示例 GPU 配置(具备足够 VRAM):
1×
NVIDIA L4 / A10G每张 24 GB VRAM
总计 24 GB说明:
该估算包含模型权重和指定的额外开销。实际占用会随批大小、序列长度 和推理框架而变化。请务必在目标硬件上做基准测试。