一、成本总览:大模型推理成本构成分析

大家好,我是你们的老朋友。今天咱们聊聊一个很现实的问题——钱。

做AI推理,尤其是大模型推理,说白了就是烧钱。GPU一开机,电表就开始转。我见过不少团队,模型训出来了,一上线发现推理成本比预期高了三倍,直接傻眼。所以,搞清楚成本到底花在哪,是控制成本的第一步。

1.1 四大成本支柱

大模型推理的成本,我习惯拆成四块:GPU算力、显存、带宽、电力。这四块就像桌子的四条腿,哪条短了都不行。

核心观点:推理成本 = 算力成本 + 显存成本 + 带宽成本 + 电力成本。缺一不可。

咱们一个一个说。

1.1.1 GPU算力成本

算力,就是GPU的计算能力。你想想看,模型每生成一个token,背后都是海量的矩阵乘法。这些计算全靠GPU的算力单元(比如NVIDIA的CUDA Core、Tensor Core)来完成。

算力成本怎么算?很简单:每秒浮点运算次数(FLOPS) × 时间。但实际中,我们更关心的是每token的算力消耗

举个例子。一个70B的模型,用FP16精度推理,生成一个token大概需要多少算力?我算给你看:

# 70B模型,FP16精度
# 每token的FLOPs ≈ 2 × 参数量 × 序列长度
# 对于自回归生成,序列长度=1
FLOPs_per_token = 2 * 70e9 * 1 = 140e9 FLOPs = 140 GFLOPs

嗯,这里要注意:这只是前向传播的算力。实际上,KV Cache的读写、注意力计算还会额外消耗算力。我在项目中遇到过,有些团队只算了前向传播的算力,结果上线后GPU利用率一直上不去,成本反而更高。

我的经验:算力成本不是越低越好。关键是算力利用率。一块H100跑30%利用率和跑90%利用率,每token的成本能差3倍。

1.1.2 显存成本

显存,说白了就是GPU的“内存”。大模型推理时,显存主要被三样东西占着:

  • 模型参数:70B模型,FP16精度,光参数就要140GB显存。
  • KV Cache:每个请求的Key和Value都要缓存。序列越长,占得越多。
  • 中间激活值:前向传播时产生的临时数据。

显存成本怎么算?每GB显存的价格 × 占用量。但更关键的是显存带宽——数据从显存搬到计算单元的速度。

我记得有一次,团队用A100跑一个130B的模型,显存占满了,但算力利用率只有20%。为什么?因为显存带宽成了瓶颈。数据搬不过来,GPU核心只能干等着。

避坑指南:我曾经见过有人为了省显存,把模型精度从FP16降到INT8。结果显存是省了,但模型精度掉了2个点,业务方直接炸了。降精度前,一定要做充分的精度验证。

1.1.3 带宽成本

带宽,这里主要指GPU间通信带宽GPU与CPU间通信带宽

你想想看,如果模型太大,一张GPU放不下,就得用多张GPU做张量并行流水线并行。这时候,GPU之间要频繁交换数据。NVLink、InfiniBand这些高速互联技术,就是干这个的。

带宽成本怎么算?每GB/s的带宽价格 × 使用量。但实际中,带宽成本往往被低估。

举个例子。8张A100做张量并行,每张卡之间通过NVLink通信。NVLink的带宽是600GB/s。如果通信模式设计不好,带宽利用率可能只有30%。那剩下的70%就是浪费的钱。

关键点:带宽成本不是买硬件的钱,而是带宽利用率。利用率低,就是白花钱。

1.1.4 电力成本

电力成本,这个最直观。GPU一开机,电表就开始转。H100的TDP是700W,A100是400W。你算算,一台8卡H100的服务器,满负荷运行一小时,光GPU就要5.6度电。

电力成本怎么算?功率 × 时间 × 电价。但实际中,还要考虑PUE(电能利用效率)。数据中心除了GPU,还有散热、照明、网络设备,这些都要耗电。

我见过一个案例:某公司把推理集群放在一个老旧数据中心,PUE高达2.0。也就是说,GPU每用1度电,基础设施也要用1度电。后来他们搬到新数据中心,PUE降到1.2,电力成本直接降了40%。

省钱小技巧:如果条件允许,尽量选PUE低的数据中心。另外,动态电压频率调整(DVFS)也能省电。GPU负载低的时候,降频降压,能省不少电。

1.2 成本构成全景图

说了这么多,咱们用一张图来总结一下。这张图是我自己画的,把四大成本的关系理清楚了。

大模型推理成本构成全景图 推理总成本 GPU算力成本 FLOPS × 时间 显存成本 容量 × 带宽 带宽成本 通信 × 利用率 电力成本 功率 × PUE • 模型参数量 • 精度(FP16/INT8) • 算力利用率 • KV Cache大小 • 序列长度 • 批处理大小 • 并行策略 • 互联技术 • 通信模式 • GPU功耗 • 数据中心PUE • 动态调频

1.3 成本之间的相互影响

这四大成本不是孤立的。它们之间会互相影响,甚至互相制约。

算力和显存:你想想看,如果显存不够,模型参数放不下,就得用更小的batch size。batch size小了,算力利用率就低。算力利用率低了,每token的算力成本就高了。

带宽和算力:多GPU并行时,如果带宽不够,GPU就得等数据。等的时间越长,算力浪费越多。我见过一个极端案例:8卡A100做张量并行,因为NVLink带宽被其他任务抢占,算力利用率从80%掉到15%。

电力和算力:算力利用率越高,单位算力的电力成本越低。但高利用率也意味着高功耗,散热压力大,PUE可能上升。这是个平衡问题。

核心结论:控制成本,不能只看单一指标。要全局优化,找到四大成本的平衡点。

1.4 实际案例:一个70B模型的成本估算

咱们来算一笔账。假设你要部署一个70B的模型,用8张H100,FP16精度,batch size=32,序列长度=4096。

成本项 计算方式 每小时成本(元)
GPU算力 8 × 1979 TFLOPS × 利用率60% 约120
显存 8 × 80GB HBM2e 约80
带宽 NVLink 600GB/s × 8卡 约40
电力 8 × 700W × PUE 1.3 约30
总计 约270元/小时

嗯,这个数字看着挺吓人。但实际中,通过优化,可以把成本降到200元/小时以下。怎么优化?后面的章节会详细讲。

我的建议:做成本估算时,一定要把隐性成本算进去。比如运维成本、模型更新成本、故障恢复成本。这些往往比硬件成本还高。

1.5 总结

好了,这一章咱们把大模型推理的成本构成理清楚了。说白了就是四块:算力、显存、带宽、电力。每块都有自己的计算方式和优化空间。

我个人习惯,做成本控制前,先画一张成本全景图,把每个环节的占比标出来。这样一眼就能看出哪里是瓶颈,哪里是省钱的空间。

下一章,咱们会深入讲算力成本控制,聊聊怎么用连续批处理KV Cache优化来省钱。到时候见。


公众号:蓝海资料掘金营,微信deep3321