从第一性原理理解 LLM 推理经济学:中文导读与总结

LLM 推理成本、吞吐量与单位 Token 经济性的中文导读,整理 prefill、decode、KV cache、批处理和硬件成本。

从第一性原理理解 LLM 推理经济学:中文导读与总结

说明:本文是对原文论点的中文转述、归纳和关键数据整理,不是全文逐句翻译。原文发表于 2025 年 5 月 14 日,讨论以 Llama 3.3 70B 为例,解释大语言模型推理的硬件成本、吞吐量与单位 token 经济性。

  • 原文标题:LLM Inference Economics from First Principles
  • 作者:Piotr Mazurek、Felix Gabriel
  • 原文链接:Tensor Economics

一句话总结

LLM 推理的经济性,关键不只是“GPU 算得有多快”,还在于每个 token 生成时要从显存读取多少数据、这些读取成本能否由批处理中多个请求共同分摊。预填充(prefill)通常是算力受限,逐 token 解码(decode)通常是显存带宽受限;提高批大小能摊薄模型权重读取成本、提升总吞吐量,但会占用更多 KV cache,并可能降低单个用户的响应速度。

文章的论证脉络

1. 推理成本从哪里来

模型服务商需要为 GPU 的购置或租用付费。GPU 的小时成本相对固定,而每小时能产出的 token 数有限,因此单位 token 成本可粗略理解为:

单位 token 成本 ≈ GPU 运行成本 ÷ token 吞吐量

若同一套硬件能以更高吞吐服务更多请求,固定的硬件成本就能由更多 token 分摊,单位成本随之下降。

2. 为什么以 Llama 3.3 70B 为例

作者从模型参数量推导硬件需求。Llama 3.3 70B 约有 705.5 亿个参数。若以 BF16 存储,每个参数占 2 字节,光模型权重就约需 141 GB 显存。单张 80 GB 的 H100 无法容纳完整权重,因此要使用多张 GPU;多 GPU 又会带来并行和通信开销。

文章列出的主要模型结构因素包括:

  • 嵌入层和输出语言模型头(LM head);
  • 多个 Transformer 层,每层含自注意力和 MLP;
  • Llama 使用 Group Query Attention,因此 K、V 投影规模小于 Q 投影;
  • MLP 中间维度约为隐藏维度的 3.5 倍。

参数量公式的目的,是说明“70B”如何转化成显存需求,并非只看模型名称就能忽略数据精度、缓存等资源占用。

3. GPU 的两种关键能力:算力与显存带宽

文章区分了:

  • 计算吞吐量:每秒可执行多少浮点运算(FLOPS);
  • 显存带宽:每秒可从高带宽显存(HBM)读取多少数据。

程序需要的计算量与数据搬运量之比称为算术强度。算术强度高时更容易受计算能力限制;算术强度低时,瓶颈更可能是数据从显存传到计算单元的速度。

LLM 推理的两个阶段正好呈现不同瓶颈:

阶段 做什么 主要瓶颈 直观后果
Prefill(预填充) 一次处理输入提示词,计算首个新 token 通常是计算吞吐量 影响首 token 延迟(TTFT)
Decode(解码) 每次生成一个新 token 通常是显存带宽 影响持续生成速度(tokens/s)

4. Prefill:输入越长,注意力计算越重

预填充阶段需要处理整个输入序列。注意力中的矩阵运算随序列长度增加而变重;朴素注意力的主要计算量包含与 序列长度平方 成正比的项。因此,输入提示越长,首 token 等待时间通常越长,预填充在整次请求耗时中的占比也会升高。

以文章的简化计算为例,Llama 3.3 70B 处理 2,048 个输入 token,估算约需 291 TFLOPs。按文中采用的 H100 理论算力约 989 TFLOPs/s 估算,计算部分约需 0.29 秒;而读取约 141 GB 模型权重、按 3,350 GB/s 显存带宽计算,理论上约需 0.04 秒。由此作者判断:prefill 更偏向算力受限。

这只是理想化估算,实际时间还受内核实现、利用率和调度等因素影响。

5. Decode:KV cache 节省重算,却增加显存读取

如果每生成一个 token 都重新计算此前全部 token 的注意力,会产生大量重复工作。KV cache 会保存先前 token 的 Key、Value 中间结果,使新 token 只需计算与既有上下文的关系,从而避免重复计算。

这会显著减少每步计算量,但并不意味着解码就很轻松:每个生成步骤仍需读取模型权重,同时还要读取历史 KV cache。文章以 2,048 token 的上下文为例:

  • 单步解码的计算量约为 291 TFLOPs ÷ 2,048,即 0.14 TFLOPs;
  • 在文章采用的 H100 理论参数下,这些计算约需 0.00014 秒;
  • 但读取权重本身约需 0.04 秒,远长于计算时间。

所以在该简化模型中,decode 主要是显存带宽受限,GPU 的计算单元会在等待数据时无法充分利用。

KV cache 会随上下文长度和批大小线性增加。Llama 3.3 70B、BF16、单条 2,048 token 序列的 KV cache 约为 671 MB;在约 128K token 的上下文下,单条序列可能达到约 40 GB。上下文很长或批量很大时,KV cache 可能从次要开销变成主要开销。

6. 多 GPU:容量和带宽增加,也有通信税

将模型分到多张 GPU 上有两种常见方式:

  • 流水线并行(Pipeline Parallelism):按层拆分模型。设备间通信相对少,可让不同批次在不同 GPU 阶段重叠执行;但单个请求经过各阶段时,延迟可能较高,调度也更复杂。
  • 张量并行(Tensor Parallelism):把单层矩阵运算切分到多张 GPU 同时完成,可缩短单层计算时间并合并显存带宽;代价是需要频繁同步和跨卡通信。

更多 GPU 不只是为了“装下模型”:它们还增加可用显存带宽,并为 KV cache 留出空间,从而允许更大的批次。但跨卡通信、同步等待以及实际实现中的开销会让真实性能低于理论峰值。

7. 批处理是单位成本优化的关键

在 decode 阶段,生成一个 token 的主要成本之一是读取模型权重。批处理中可以一次读取权重,并用这份已载入的权重同时处理多个请求。于是:

  • 批大小增加,计算工作量和生成 token 数近似随之增加;
  • 模型权重不必为每个请求重复读取,读取成本可以由多个请求共同分担;
  • 总吞吐量通常会随批大小提高,单位 token 成本因此下降。

这就是文章强调的规模经济:足够稳定的需求、持续形成的大批次,是推理服务获得较好单位经济性的关键条件。

不过,批次并非越大越好。批次越大,KV cache 占用越多,单个用户的生成速度可能下降;在极长上下文或很大批次下,KV cache 的读取成本会逐渐抵消吞吐收益。服务商因此需要在总吞吐/成本与单用户延迟/体验之间取舍。低时效要求的 Batch API 更容易以更大的批次运行,所以往往能提供更低价格。

8. 理论吞吐与真实吞吐有差距

作者将理论模型与 4 张 H100 上运行 vLLM 的 Llama 3.3 70B 测试进行比较。该实验中,小批次实际性能约为理论估算的 60%,批次增大后约降到 40% 左右。这些比例是文章特定硬件、软件、负载和测试设置的结果,不应视为普遍常数。

差距来源包括:

  • 理论峰值利用率无法在真实程序中持续达到;
  • GPU 内核启动、内存访问模式、同步和跨卡通信开销;
  • Flash Attention、Paged Attention、服务引擎和框架实现细节;
  • 批次调度、上下文长度及缓存布局带来的额外复杂度。

作者指出,简化模型可建立直觉,但在不同模型、批次、输入输出长度下可能出现明显偏差。要得到可靠吞吐数据,通常应在目标硬件和实际服务栈上做基准测试。

9. 从吞吐量估算 token 价格

文章给出一种简化的成本分摊办法:先测量一组请求的运行时间和 GPU 小时成本,再假设输入 token 与输出 token 的单位成本比例 γ,据此估算单位 token 价格:

1
β = GPU运行成本 ÷ (γ × 输入token数 + 输出token数)

其中 γ 是人为选定的简化参数,并非普适规律。文章示例使用 4 张 H100、每张每小时 2.5 美元、运行 8.96 秒、每个请求约 2,035 个输入 token 和 300 个输出 token、批大小 16,并取 γ = 0.3,估算约为:

  • 输出:1.72 美元 / 百万 token
  • 输入:0.51 美元 / 百万 token

这些数值是基于特定租赁价格、负载、批次与假设计算的成本示例,并非市场报价或通用价格。输入/输出比例、GPU 利用率、实际延迟和服务开销改变时,结果会变化。文中还指出,现实中的批次未必是所有请求具有相同长度,因而更稳妥的方式是针对多个真实负载进行测量,并用多组样本估算。

关键结论

  1. 模型权重大小决定基本显存门槛;但部署成本还取决于精度、KV cache、批次和服务实现。
  2. Prefill 通常偏计算受限,输入上下文越长,首 token 延迟越容易上升。
  3. Decode 通常偏显存带宽受限,每步读取模型权重和历史 KV cache 是重要开销。
  4. 批处理通过共享权重读取成本提升吞吐、降低单位 token 成本,但会占用更多 KV cache,并可能牺牲单请求速度。
  5. 显存容量和带宽都重要:容量关系到能否装下模型与缓存,带宽关系到每秒能喂给计算单元多少数据。
  6. 多 GPU 带来带宽与缓存容量的同时,也引入通信和同步成本;GPU 数量更多并不自动保证真实吞吐线性提升。
  7. 第一性原理模型适合建立判断框架,不能替代实测。部署决策应使用目标模型、硬件、软件栈和实际流量形态做 benchmark。
  8. 对边缘设备而言,通常难以像云服务那样聚合大量并发请求形成大批次,因而不容易享受同等的规模经济;设备折旧、耗电和相对较低的内存带宽也会影响每 token 成本。

术语速查

术语 中文解释
Inference 推理:使用已训练模型生成结果
Token 模型处理文本的基本单元,不等同于一个汉字或一个单词
Prefill 预填充:处理输入上下文并生成首个新 token 的阶段
TTFT Time to First Token,首 token 延迟
Decode 解码:逐 token 生成输出的阶段
KV cache 键值缓存:保存历史 token 的 Key/Value 中间状态,避免重复计算
HBM 高带宽显存,GPU 主要权重和缓存驻留的内存
FLOPs / FLOPS FLOPs 是浮点运算次数;FLOPS 是每秒浮点运算次数
Batch size 批大小:同一轮同时处理的请求数或样本数
Tensor parallelism 张量并行:把单层张量运算拆到多张 GPU 上协同完成
Pipeline parallelism 流水线并行:将模型不同层分配到不同 GPU 阶段

阅读时的边界提醒

原文的重点是建立推理成本的直觉,而不是提供可直接套用的商业报价模型。其吞吐估算包含理想化假设,输入/输出 token 定价还依赖人为设定的成本比例。文中的模型规模、硬件参数、租赁价格和实测结果也对应其写作及实验时的具体环境;将这些结论用于今天的部署或预算时,应重新核对目标硬件规格和实际基准测试数据。