1. 一笔算不清的账:从一张GPU账单说起
前阵子帮一个做AI应用的朋友看他们自建推理集群的成本结构,他给我看了一张单子:一张H100的整机月租报价,从年初的六万多一路滑到三万出头,他觉得自己捡了便宜,兴冲冲准备把训练任务从公有云搬回自建机房。我让他先别急,把"客户付的每一百块最后进了谁的口袋"这条链路完整画一遍,画完他自己都沉默了——原来那张报价单只是冰山露出水面的那一角,水面下还压着电费、折旧、网络、运维、闲置率、故障重跑这一大堆东西。
这篇东西就是想把这条链路拆开讲清楚。自建万卡AIDC(AI Data Center,人工智能数据中心)跑模型这件事,表面上是"买卡—插电—跑任务"三步,实际上是一道涉及资本开支、运营开支、利用率、折旧周期、故障率的复杂算术题。客户付的一百块钱,会被切成七八份,分别流向硬件供应商、电力公司、网络设备商、运维团队、机房房东、备件池,最后真正落到"算力提供方"口袋里的净利润,可能薄得让你怀疑人生。
我写这篇不是劝退,而是想让准备自建或者正在自建的人,心里有本明白账。适合三类人看:一是打算自建中小规模训练/推理集群的团队负责人;二是给自建集群做预算和成本核算的财务或技术管理者;三是单纯好奇"AI算力这门生意到底怎么赚钱"的从业者。下面我会把成本结构、利用率陷阱、故障经济学、以及那张"一百块流向图"一层层剥开,中间穿插我自己踩过的坑和算过的账。
2. 一百块的流向图:自建AIDC成本结构全拆解
2.1 先建立一个成本心智模型:CAPEX与OPEX的双层结构
任何自建集群的成本,都可以粗暴地分成两层:CAPEX(资本开支)和OPEX(运营开支)。CAPEX是你一次性砸下去的钱——GPU整机、交换机、光模块、机柜、UPS、配电、冷却系统、机房装修。OPEX是每个月持续流出的钱——电费、带宽、运维人力、备件、机房租金、软件授权。
很多人算账只算CAPEX,觉得"卡买回来就是我的资产",这是最大的认知陷阱。因为GPU不是房子,它贬值极快,而且只要一通电就在烧钱。一张H100整机按25万采购价算,三年折旧,光折旧就是每月约7000块;如果这张卡因为调度不当闲置一半时间,那实际有效算力的折旧成本直接翻倍到14000块/月。这就是为什么"利用率"这三个字在自建AIDC里比什么都重要。
我习惯用一个简化公式来建立直觉:
单卡每小时真实成本 = (月折旧 + 月电费 + 月网络分摊 + 月运维分摊 + 月机房分摊)÷ (30天 × 24小时 × 利用率)
这个公式里,分子是固定的,分母里的利用率是变量。利用率从80%掉到40%,单卡成本直接翻倍。客户付的一百块里,有多少是"有效算力",有多少是"闲置浪费",全看这个分母。
2.2 硬件采购:一百块里最先被切走的一大块
硬件是CAPEX的大头。以万卡规模为例,假设全部采用某型高端训练卡整机,单机8卡,需要1250台整机。按单台200万估算(含卡、CPU、内存、本地盘、网卡),光整机就是25亿。这还没算网络——万卡集群的RDMA网络(RoCE或InfiniBand)是另一个吞金兽,交换机、光模块、线缆加起来通常是整机成本的15%到25%,也就是4到6亿。
所以硬件采购这一刀,切走了客户那一百块里相当大的一块。但注意,这一块不是"一次性消失",而是通过折旧分摊到每个月。假设三年直线折旧,25亿整机加5亿网络,30亿总CAPEX,三年36个月,每月折旧约8333万。如果这个集群每月能卖出价值1.2亿的算力服务,那折旧就占了收入的约70%。这就是为什么自建AIDC的毛利看起来高,净利却可能很薄——钱都压在折旧里了。
这里有个实操心得:采购谈判时不要只盯单价,要盯"整机交付周期"和"备件比例"。我见过一个团队为了省5%的采购价,选了一家交付周期长两个月的供应商,结果集群晚上线两个月,按每月8000万折旧算,直接损失1.6亿的折旧沉没成本,省的那点采购价根本不够填。备件比例同理,GPU故障率在满载训练下并不低,备件池留少了,坏一张卡等一个月,整机8卡里7卡空转,损失的是整机的折旧。
2.3 电力:那只永远在后台扣费的隐形手
电费是OPEX里最容易被低估的一项。一张高端训练卡满载功耗约700W,整机8卡加CPU、内存、网卡,整机功耗约6.5kW到7kW。万卡就是1250台整机,满载功耗约8.5MW。这还只是IT设备,冷却系统(风冷PUE约1.3,液冷约1.1)还要再加一层。按PUE 1.25算,整个数据中心满载功耗约10.6MW。
按工业电价0.6元/度算,满载一小时就是6360元,一天15.3万,一个月458万。如果利用率80%,实际电费约366万/月。这笔钱在收入1.2亿的盘子里占约3%,看起来不多?但注意,这是按0.6元算的。很多一线城市工业电价加容量费、需量费,实际到0.8甚至1元以上,那电费就冲到600万/月以上。而且电价是刚性的,你利用率再低,只要机器开着,电费照付。
注意:谈机房选址时,电价和PUE要一起算。有些地方电价便宜但气候热,PUE高;有些地方气候冷PUE低但电价贵。我一般用"每IT千瓦每月综合电力成本 = 电价 × PUE × 720小时"来横向对比,这个数字比单纯看电价靠谱得多。
2.4 网络与存储:容易被忽略的"第二成本中心"
万卡集群的网络不是普通以太网能扛的。训练时All-Reduce通信量巨大,网络一旦成为瓶颈,GPU利用率直接掉。所以RDMA网络、无损以太网、光模块这些投入不能省。但省不省是一回事,怎么算账是另一回事。
网络成本分两块:一是CAPEX里的交换机和光模块采购,二是OPEX里的带宽费和运维。自建机房通常拉多条运营商专线做冗余,万卡集群对外带宽需求可能在几百G到T级,月带宽费几十万到上百万不等。存储同理,训练数据动辄PB级,高性能并行存储的采购和运维也是真金白银。
我见过一个团队,GPU采购花了20亿,网络只花了1.5亿,结果训练时网络拥塞,GPU利用率长期卡在50%,等于一半的GPU折旧在空转。后来补网络又花了2亿,还耽误了三个月。网络和存储的预算,宁可前期留足,不要后期补课,因为后期补课不仅要花钱,还要停机,停机的损失比设备本身贵。
2.5 运维人力与备件:看不见但跑不掉的固定支出
万卡集群的运维不是一两个人能搞定的。按行业常见配置,每500到1000张卡配一名运维工程师,万卡需要10到20人,加上网络、存储、电力、安全等专项,一个20到30人的运维团队是常态。按人均综合成本30万到50万一年算,一年人力成本600万到1500万,摊到每月50万到125万。
备件池更是个无底洞。GPU、网卡、光模块、电源、风扇,这些都有故障率。备件留多了占资金,留少了停机等件。我的经验是:关键备件按在网数量的3%到5%准备,非关键备件按1%到2%准备,同时和供应商签好RMA(退换货)时效条款,把等件时间压到72小时以内。
2.6 把一百块切完:一张流向表
把上面这些拼起来,假设一个万卡集群月收入1.2亿,我们可以粗略画出一百块的流向:
| 流向 | 占比 | 说明 |
|---|---|---|
| 硬件折旧 | 65-70元 | 整机+网络+存储,三年直线折旧 |
| 电费 | 3-5元 | 按PUE 1.25、电价0.6-0.8元估算 |
| 网络带宽 | 1-2元 | 运营商专线+运维 |
| 运维人力 | 1-2元 | 20-30人团队 |
| 备件与维修 | 1-2元 | 备件池+RMA |
| 机房租金与配套 | 2-4元 | 机柜租金、消防、安防 |
| 软件与授权 | 1-2元 | 调度平台、监控、安全 |
| 净利润 | 10-20元 | 理想情况,利用率高、故障少 |
这张表最扎心的地方在于:净利润那一栏,是在利用率80%以上、故障率可控、电价优惠、团队精干的前提下才有的。任何一个变量恶化,净利润就被吃掉。利用率掉到50%,折旧占比不变但有效算力减半,等于每单位有效算力的折旧成本翻倍,净利润可能直接归零甚至为负。
3. 利用率陷阱:为什么你的卡在"假装工作"
3.1 利用率不是"开机率",是"有效算力产出率"
很多人把利用率理解成"机器开着的时间比例",这是错的。真正的利用率应该是有效算力产出 ÷ 理论峰值算力。机器开着但GPU在等数据、等网络、等调度,那叫"开机但空转",不算有效利用率。
训练任务的利用率尤其难做高。一个千卡训练任务,从启动到稳定运行,中间有数据加载、模型初始化、通信建链、checkpoint保存这些环节,这些环节GPU利用率可能只有20%到40%。如果任务调度不好,任务之间切换有空窗,利用率再打折扣。我见过最夸张的集群,账面利用率70%,实际有效算力利用率只有35%,等于一半的折旧在打水漂。
3.2 调度策略决定利用率下限
提升利用率的核心在调度。几个实操层面的做法:
- 任务打包:把小任务合并成大任务批次,减少任务切换空窗。比如把多个小推理任务合并到一个大batch里跑,GPU利用率能从30%拉到70%以上。
- 混部训练与推理:训练任务对延迟不敏感,推理任务对延迟敏感,把两者混部,训练任务填推理的低谷,能显著提升整体利用率。但这需要调度平台支持优先级和抢占。
- 弹性checkpoint:训练任务定期保存checkpoint,遇到高优先级任务可以快速让出GPU,之后再恢复。这能把"独占式"利用率变成"共享式"利用率。
- 故障预迁移:监控到某张卡温度异常或ECC错误增多,提前把任务迁走,避免训练中途崩溃重跑。重跑一次千卡任务,损失的是几小时到几十小时的算力,按万卡集群算,一小时就是几十万的折旧。
实操心得:调度平台一定要自研或深度定制,别指望开源调度器直接扛万卡。开源调度器在小规模好用,到万卡级别,任务排队、资源碎片、故障处理这些细节会把你拖垮。我建议至少投入3到5个专职工程师做调度优化,这笔人力投入的回报,远高于多买几十张卡。
3.3 闲置率的隐性成本:一张卡闲着的代价
一张卡闲着,表面看只是"没赚钱",实际是"在亏钱"。因为折旧照提、电费照付(待机功耗虽低但非零)、机柜租金照付。按前面单卡月折旧7000块算,一张卡闲置一个月,就是7000块的净损失。万卡集群如果闲置率20%,就是2000张卡在空烧,每月损失1400万。
更隐蔽的是"半闲置"——卡在跑,但跑的是低优先级任务,产出价值低于其折旧成本。这种情况在自建集群里很常见,因为团队为了"让机器看起来忙",会塞一些低价值任务进去,结果账面利用率好看,实际经济账是亏的。判断标准很简单:这个任务带来的收入,能不能覆盖这张卡这段时间的折旧加电费?覆盖不了,不如让它闲着,至少省电费。
4. 故障经济学:坏一张卡,损失的不只是那张卡
4.1 故障的连锁反应:从单卡到整集群
GPU故障在万卡集群里不是小概率事件。满载训练下,GPU、网卡、光模块、电源的故障率都会上升。一张卡坏了,如果任务没有容错机制,整个训练任务可能崩溃,需要从最近的checkpoint重跑。千卡任务重跑一次,损失的是几小时到几十小时的算力,按万卡集群每小时几十万的成本算,一次重跑就是几百万。
更麻烦的是"慢卡"问题。有些卡没完全坏,但性能下降,比如ECC错误增多导致降频,或者网卡丢包导致通信变慢。这种卡不会触发告警,但会拖慢整个训练任务,因为分布式训练是同步的,最慢的卡决定整体速度。一张慢卡能让千卡任务慢20%,等于200张卡在陪它空转。
4.2 故障成本的计算:把"重跑损失"算进预算
很多团队做预算时不算故障成本,这是大坑。故障成本 = 故障率 × 重跑损失 × 任务规模。假设万卡集群月故障率2%(即每月200张卡出问题),其中10%导致任务重跑,每次重跑平均损失4小时,万卡每小时成本按折旧加电费算约12万,那每月故障成本就是200 × 10% × 4 × 12万 = 960万。这还没算运维人力处理故障的时间成本。
所以自建AIDC的预算里,必须留一笔"故障准备金",通常占总OPEX的5%到10%。这笔钱用来买备件、做容错开发、养运维团队。不留这笔钱,一次大规模故障就能把几个月的净利润吃掉。
4.3 容错设计:让故障从"灾难"变成"日常"
容错设计的核心是"快速检测、快速隔离、快速恢复"。几个实操要点:
- 健康检查要细:不光看卡在不在,还要看ECC错误率、温度、功耗、通信带宽。这些指标异常时提前干预,别等卡彻底坏了再处理。
- checkpoint要勤:训练任务每30分钟到1小时保存一次checkpoint,故障后从最近checkpoint恢复,把重跑损失压到最小。checkpoint存储要快,别让保存checkpoint本身成为瓶颈。
- 任务要能弹性伸缩:故障后能自动缩容继续跑,而不是整个任务崩溃。这需要训练框架支持弹性,或者调度平台做任务重组。
- 备件要热插拔:坏卡能快速换下,新卡能快速上线。这要求机房布局、供电、网络都支持热插拔操作,运维流程要标准化。
踩过的坑:早期我们做容错时只考虑了GPU故障,没考虑网络故障。结果一次交换机故障导致半个集群通信中断,训练任务全崩,因为没有网络层的容错设计。后来补了网络冗余和快速切换,才把这类故障的影响压下来。容错要覆盖GPU、网络、存储、电力全链路,缺一环都不行。
5. 折旧与更新:三年后你的卡还值多少钱
5.1 折旧周期怎么定:财务折旧与技术折旧的错位
财务上通常按三年或五年直线折旧,但技术上GPU的"有效寿命"可能更短。因为新卡出来,旧卡的性价比会迅速下降。一张三年前的卡,可能还能跑,但每单位算力的成本已经远高于新卡,客户不愿意为它付同样的钱。这就是技术折旧快于财务折旧。
自建AIDC的账要按"技术折旧"算,而不是财务折旧。也就是说,你要假设这张卡在两年内能收回成本并盈利,两年后即使还能跑,也只能按低价卖或者内部消化。按这个逻辑,单卡月折旧应该按两年算,而不是三年。前面按三年算的7000块/月,按两年算就是10500块/月,成本直接涨50%。
5.2 更新策略:什么时候该换卡
换卡决策不能只看"卡坏没坏",要看"经济性"。判断标准:旧卡的单位有效算力成本,是否高于新卡的单位有效算力成本加上换卡成本的分摊。如果旧卡每单位算力成本是新卡的1.5倍以上,就该考虑换了。
但换卡不是免费的。换卡意味着停机、重新部署、重新调优,这些都有成本。所以换卡通常分批进行,先换利用率最高、对成本最敏感的那部分,保留旧卡跑低优先级任务,逐步淘汰。
5.3 残值处理:别指望二手卡能卖好价
GPU二手市场流动性不如CPU,因为买家担心故障率和剩余寿命。三年后的高端训练卡,残值可能只有原价的20%到30%,而且越往后越难卖。所以做预算时,残值要按保守估计,最好按零算,把残值收入当成意外之喜,而不是预算的一部分。
6. 常见问题与排查技巧实录
6.1 成本核算类问题速查
| 问题 | 排查思路 | 解决方向 |
|---|---|---|
| 账面毛利高但现金流紧张 | 检查折旧是否按技术寿命算,检查应收账款周期 | 缩短账期,按两年折旧重算 |
| 电费超预算 | 核对PUE实际值、电价构成、利用率 | 优化冷却,谈电价,提升利用率 |
| 网络成本失控 | 检查带宽实际用量、专线冗余是否过度 | 按需调整带宽,优化通信 |
| 运维人力超支 | 检查人均管理卡数、自动化程度 | 提升自动化,优化排班 |
| 备件积压 | 检查备件周转率、故障率 | 按实际故障率调整备件池 |
6.2 利用率类问题速查
| 问题 | 排查思路 | 解决方向 |
|---|---|---|
| GPU利用率低 | 看是数据瓶颈、网络瓶颈还是调度瓶颈 | 分别优化数据管道、网络、调度 |
| 任务排队时间长 | 检查调度策略、资源碎片 | 优化调度,任务打包 |
| 训练速度慢 | 检查慢卡、网络拥塞、checkpoint频率 | 隔离慢卡,优化网络,调整checkpoint |
| 推理延迟高 | 检查batch size、模型并行策略 | 调batch,优化并行 |
6.3 故障处理类问题速查
| 问题 | 排查思路 | 解决方向 |
|---|---|---|
| 训练频繁崩溃 | 看日志定位是GPU、网络还是存储 | 针对性容错,加checkpoint |
| 慢卡拖慢训练 | 监控每卡性能,找异常卡 | 隔离慢卡,替换 |
| 网络丢包 | 检查光模块、交换机、线缆 | 替换故障件,加冗余 |
| 电力波动 | 检查UPS、配电、负载 | 加稳压,优化配电 |
6.4 独家避坑技巧
- 别在电价上省小钱:为了省几分钱电价选偏远机房,结果网络延迟高、运维不便,综合成本反而更高。电价要结合网络、人力、机房配套一起算。
- 别把利用率当KPI硬压:为了冲利用率塞低价值任务,账面好看实际亏钱。利用率要和经济账挂钩,不是越高越好。
- 别忽略"软成本":调度平台开发、容错开发、监控系统这些软件投入,在预算里容易被忽略,但它们是利用率和高可用的基础。我建议软件投入占总预算的5%到10%。
- 别一次性买满:万卡集群可以分批上线,先上2000卡跑通流程,再逐步扩。一次性买满,如果调度或容错没做好,闲置损失巨大。
- 别忽视"人"的因素:运维团队的稳定性和经验,直接决定故障处理速度。核心运维人员流失,比坏几张卡的损失大得多。
7. 把账算明白,比把卡买回来更重要
回到开头那个问题:客户付的每一百块,最后进了谁的口袋?答案取决于你怎么运营这个集群。运营得好,一百块里能有十五到二十块变成净利润;运营得差,一百块全填进折旧、电费、故障和闲置里,还要倒贴。
自建万卡AIDC不是买卡游戏,是运营游戏。硬件只是入场券,真正的竞争力在调度、容错、成本控制这些"软功夫"上。我见过太多团队把90%的精力花在采购谈判上,只留10%给运营,结果集群上线后利用率上不去、故障频发、成本失控,最后算总账还不如租公有云。
如果你正在规划自建集群,我的建议是:先把这篇文章里的成本结构表填一遍,把利用率、故障率、电价、折旧周期这些变量都设成保守值,算出来的净利润如果还能接受,再动手。如果算出来是负的,要么调整方案,要么重新考虑自建的必要性。这笔账算明白了,比多买几百张卡有价值得多。
最后分享一个我常用的"压力测试"方法:假设利用率只有50%、故障率翻倍、电价涨30%,这三个条件同时发生,你的集群还能不能活?如果答案是"能",那这个自建方案才算真正稳。如果答案是"悬",那就还有优化空间。自建AIDC的账,永远要按最坏情况算,按最好情况努力。