"训练一个大模型要烧多少钱"是个被反复问、又很少被讲清楚的问题。作为工程师,与其记住某个传说中的天价数字,不如掌握一套能自己估算的方法:训练成本由 FLOPs、芯片算力、利用率 三者决定,推理成本则由 访存、并发与 KV Cache 主导。这篇把账拆开算。

训练成本:一个惊人简洁的公式

训练大模型的总计算量有一个广为人知的近似估计:

C6×N×DC \approx 6 \times N \times D

其中 CC 是总浮点运算次数(FLOPs),NN 是模型参数量,DD 是训练 token 数。这个 6 的来历值得理解:前向传播每个参数对每个 token 约做 2 次浮点运算(一次乘、一次加),反向传播约为前向的 2 倍(要算对权重和对激活两路梯度),合计约 2+4=62 + 4 = 6

代入数字感受一下量级:一个 70B 参数、训练 2T token 的模型:

C6×7×1010×2×1012=8.4×1023 FLOPsC \approx 6 \times 7\times10^{10} \times 2\times10^{12} = 8.4\times10^{23}\text{ FLOPs}

接下来把 FLOPs 换算成"芯片小时"。关键变量是实际算力利用率(MFU, Model FLOPs Utilization)——加速器标称峰值算力很高,但通信、访存、流水线气泡会让实际利用率通常落在 30%~50%。

T_{\text{芯片秒}} = \frac{C}{\text{峰值FLOPS} \times \text{MFU}}

假设单卡峰值 101510^{15} FLOPS(即 1 PFLOPS 量级的低精度算力),MFU 取 0.4:

T = \frac{8.4\times10^{23}}{10^{15}\times0.4} \approx 2.1\times10^{9}\text{ 芯片秒} \approx 58\text{ 万 芯片小时}

最后乘以每芯片小时的租赁/折旧成本,就得到训练成本。MFU 是这里最值钱也最被忽视的变量:从 30% 提到 50%,等于训练成本直接降三分之一。它取决于并行策略、通信拓扑、算子融合、是否被数据加载卡住等一系列工程细节。

训练里钱花在哪:不只是算力

1
2
3
4
5
训练总开销 ≈ 计算(GPU 小时)
+ 实验/失败的 run(探索阶段反复试错,常被低估)
+ 数据:采集、清洗、去重、标注、合成
+ 人力:研究员、工程师的时间
+ 存储与网络:checkpoint、数据集 I/O

一个常见误区是把"最终那次成功训练的 GPU 账单"当成全部成本。真实项目里,消融实验、超参搜索、失败重启消耗的算力往往与最终 run 相当甚至更多。数据工程(尤其去重和质量过滤)对最终效果的杠杆,常常比多堆 10% 算力更高。

显存也是硬约束。训练时单卡要装下:权重 + 梯度 + 优化器状态 + 激活。以混合精度 Adam 为例,每个参数的常驻状态约需十几字节量级(fp32 主权重、一阶/二阶动量等),所以大模型必须切分——数据并行、张量并行、流水线并行、ZeRO 分片,每种切法都在用通信换显存,又反过来压低 MFU。这是训练系统设计的核心张力。

推理成本:被低估的长尾

很多人以为训练贵、推理便宜。但模型一旦上线服务海量用户,推理的累计成本通常远超训练——训练是一次性的,推理是持续的。

推理成本要分两段算(这点和端侧一致,但云端关注吞吐而非单请求延迟):

  • Prefill(处理输入 prompt):并行处理所有输入 token,计算密集,成本近似正比于输入长度。
  • Decode(逐 token 生成输出):自回归,每步都要把全部权重过一遍,访存密集,成本正比于输出长度。

所以"长输出"比"长输入"贵得多,这也是为什么 API 普遍对 output token 定价高于 input token。

云端推理省钱的核心手段是 batching(批处理):把多个用户请求拼成一个 batch 一起算。因为 decode 是 memory-bound,权重只读一次就能服务整个 batch,单 token 边际成本随 batch 增大而摊薄,直到撞上算力或显存上限。这就引出吞吐量的核心公式:

\text{单 token 成本} \approx \frac{\text{机器每秒成本}}{\text{有效 tokens/s 吞吐}}

提升吞吐 = 降成本。关键技术包括:

1
2
3
4
Continuous batching : 请求随时插入/退出,避免等齐一批,GPU 不空转
PagedAttention : 像 OS 分页一样管理 KV Cache,消除显存碎片,能塞更多并发
量化推理 : int8/int4 权重,更小更快,单卡服务更多请求
投机解码 : 小模型起草、大模型验证,减少大模型前向次数

而 batch 能开多大,又被 KV Cache 显存卡住:并发越高、上下文越长,KV Cache 占用越大,留给 batch 的空间越小。所以"长上下文 + 高并发"是推理成本的乘数效应区,PagedAttention 和 KV 量化就是为了缓解它。

一个能落地的估算心法

下次有人甩给你一个 AI 成本数字,可以这样快速做合理性检查:

  1. 训练C6NDC \approx 6ND,除以(峰值算力 × MFU),再乘单位算力成本。MFU 没说就按 0.3~0.5 估。
  2. 推理:按 token 计价,分清 input/output;想压成本就看吞吐(batch、量化、KV 管理),而非单纯换更快的卡。
  3. 警惕被忽略的项:训练里的失败 run 和数据工程,推理里的长尾并发与长上下文。

小结

AI 算力经济学的两条主线很清晰:训练成本是 6ND6ND 除以利用率的一次性投入,瓶颈在 MFU 和显存切分;推理成本是 吞吐量倒数的持续性支出,瓶颈在 batching 和 KV Cache。把这两套公式记牢,你就能脱离"天价传说",对任何 AI 系统的成本做出数量级正确的判断。