一张长桌上摊开几页台账,一格格里填着设备、电力、人力与返工等栏目,旁边有人正把一摞混记的凭证分到各栏

一、账只记到两层,优化就只剩砍规模

据公开报道,有财经媒体报道了算力基础设施高度集中的地区,提到当地签约的数据中心项目数量与多家企业布局。地名、项目数量与企业名按公开报道处理,不作为本篇判据;本篇不推断电价、能耗指标与投资额,也不评论任何宏观政策与选址问题。

这类报道传递的有效信息其实很朴素:算力的钱开始被认真地算。但把镜头拉回企业内部,多数团队的算力账只记到两层:第一层是每月付出去的账单,第二层是账单里能直接看出的电力与机房租金。再往下就没有了。没有并不意味着不存在,只是被摊进了折旧、许可、人力与闲置,变成一句谁也反驳不了的”算力就是贵”。

贵的原因通常不是单价,而是归因粒度。归不到业务、任务与具体动作上的成本,无法被优化,只能被摊派;摊派久了,各方学会的不是省,而是把用量藏进别人的账。所以我们主张先解决记账,再谈降本。这里要划清与既有讨论的边界:先归因再降本这个原则本身值得单独讨论,本篇不重复那套论证,只把账本拆成能落地的科目、粒度与仪表字段,回答”每一栏谁填、周度会上拿它做什么决定”。

二、七个科目,各自的可优化空间完全不同

第一个科目是设备折旧。它由采购价格与摊销年限决定,可优化空间在于延长有效服役期和提高单位设备的产出,而不在于把折旧本身谈没。第二个科目是电力与制冷,它是唯一随负载连续变化的科目,也是唯一一个降下来不可逆的科目。第三个科目是机房与带宽,包括机柜、配电冗余、网络出口与互联。第四个科目是软件许可与支持,含虚拟化与容器平台、监控、存储协议栈、调度器与商业模型的调用许可,特点是账单分散、续约时点各异。第五个科目是运维人力,包括值守、故障处理、变更与容量沟通。第六个科目是闲置与预留,为峰值与容灾准备却长期不出工的那部分。第七个科目是失败与返工,失败任务重跑、无效实验、上线后回退的沉没投入。

第七个科目最常被漏记,因为它不出现在任何账单上,只出现在工时和交付延期里,而它的可优化空间往往大于前面几项之和。第一个与第三个科目的决策周期以年计,一旦定下就动不了;第二、四、六、七的决策周期以周计,才是周度例会能扳动的部分。把不可动的科目和可动的科目混在同一页,讨论必然失焦。

三、三档归因粒度,只到第一档时降本会伤到业务

第一档是按集群记账。这一档最容易实现,也几乎不产生价值,因为它只能回答哪个集群贵,无法回答贵得是否值得。第二档是按任务记账,成本落到一次训练、一次批量推理、一次评测上,能排优先级,但无法回答该不该做这件事。第三档是按业务动作记账,把任务继续摊到它服务的功能与业务动作上,这一档才能支撑一个判断:这件事值不值得花这么多。

只记到第一档的组织,降本动作会自然变成砍规模,因为那是唯一看得见的旋钮,而砍规模伤到的一定是当时还没被算进账的那部分业务。第三档不必一步到位,但要有明确推进顺序:先把任务标识强制带上发起方与用途,否则事后无法补标;再把网关与调度器的记录字段补齐,使每个任务有唯一归属;最后才谈成本分摊模型。任何在归属之前建立的分摊模型都会被当成惩罚机制。

科目 原始数据来源 归因键 计量频率 主要失真来源 周度决策
设备折旧 资产台账 集群、机型 月度分摊到周 摊销年限与实际服役不符 是否延长服役
电力与制冷 机房侧分项计量 机柜、任务 小时 公共负荷全摊到算力 高峰是否转移
机房与带宽 服务账单 集群、出口 月度 冗余按峰值长期计费 冗余是否过度
软件许可与支持 合同 使用它的功能 按续约周期 一项许可多项目共用 合并或退订
运维人力 工时与工单 事件、变更 周 值守与优化混记 是否自动化
闲置与预留 调度器分配记录 池、预留方 实时 持有不申报 是否收回
失败与返工 任务终态与重跑链 任务、发起方 每任务 返工不立项 失败率红线

表里最后一列是这张账本的价值所在:任何科目若对应不出一个具体决策,就不必进周会。

四、利用率口径的错误,比数字不准更麻烦

第一种错误是用均值掩盖峰值预留。池子平均利用率看着很高,但这份高是由少数高峰时段贡献的,容量却要按最坏时刻准备,均值口径下永远看不出预留的浪费。可用的口径是按时间累计的不可用秒数,或按高峰窗口的分位数。

第二种错误是把显存占满当算力用满。模型加载完,显存即接近饱和,但计算单元可能长期空转,真实产出与占用无关。至少要看两组:调度器视角的占用,与设备视角的有效计算时间占比。

第三种错误是忽略等待与启动时间。任务排队、镜像拉取、数据预热、权重加载都记在墙上时间却不产生输出,这部分在按任务统计时会被误记为计算消耗。要按状态切分墙上时间:排队、启动、计算、等待外部依赖、重试,五段分开计数。

第四种错误容易被忽略:重试与回退产生的消耗被记在最终成功的那次任务上,让成功任务的单位成本看起来正常,而真实成本被藏进历史。重跑链要按根因关联到同一个任务族,否则返工这个科目永远是零。

五、降本杠杆的执行顺序,顺序错了会互相抵消

推理侧四个杠杆要按顺序推。第一个是砍无效调用与重复内容,包括同一请求被链路上多个环节重复发起、上下文里反复携带相同内容、没人认领的定时任务;这一层不需要任何技术替换,收益直接且风险最低。第二个是调批量与缓存,把等待窗口和命中率拿满,同样不改变模型。第三个是换模型档位与采样参数,在质量可接受范围内下移,必须先建好质量对照基线。第四个才是换硬件或换供应商,周期最长、退出成本最高。顺序颠倒的典型后果是:先换了硬件,才发现省下来的开销被无效调用吃掉;或者先下了模型档位,之后又花钱把硬件升回去。

训练侧两个杠杆。一是数据与环境的等待时间,重点不在算力而在供给,先确认计算单元空转是被数据喂不上还是被外部依赖卡住,两者的处置完全不同。二是失败重跑比例,它藏在返工科目里,只有把失败按根因分类才能看见;长任务失败若多由可恢复检查点缺失造成,补检查点的收益往往高于任何硬件优化。

预留与抢占也要算账。保障型与弹性型的混配比例应由业务能接受的降级形态倒推,被打断任务的重放成本必须计入弹性侧,否则混配只体现省下的部分。抢占语义与作业权限是另一套治理问题,本篇只处理它的成本记账,不重复讨论谁能停谁的作业。

六、把账本做成周度例会的输入

仪表的最小字段集我们不追求完整,只追求能支撑决策:科目、归因键、当期数值、上期数值、口径变更说明、负责人、下期动作。口径变更说明最容易被省,但缺了它,两次会议之间任何数字变动都会先被怀疑成业务变化。

三条使用规则值得写进会议章程。第一,先跑两周只读版本,让各方核对自家数字再进决策,跳过这一步的账本会在第一次分摊会上被推翻。第二,任何降本动作必须回写预期值与验证时点,未达预期要归因,否则杠杆会一直停留在计划里。第三,返工科目允许被高估,不允许缺失。

洹拓在给做模型服务的客户搭这套账时,通常从两张表开始:科目表与墙上时间状态表。这两张齐了就能开始讨论;七科目归因表里的归因键,要等调度器与网关的字段补齐才填得满。要诚实说明一点:这套账不会让成本立刻下降,它只是把该由谁负责、该砍哪一笔这两个问题从争论变成读取。账记不清的时候,所有的降本会议最后都会开成规模听证会。