团队要上一个模型功能,有人说得调 API 快,有人说自部署长远便宜,两边都能讲出道理。真正卡住你的不是技术能不能做,而是这笔账怎么算、后面谁来运维。这篇不给结论,给一套按量算成本、按场景设门槛的判断顺序,让你在具体项目上能自己拍板,也知道什么情况下这套判断不成立。
团队要上一个模型功能,有人说得调 API 快,有人说自部署长远便宜,两边都能讲出道理。真正卡住你的不是技术能不能做,而是这笔账怎么算、后面谁来运维。API 的账单随调用量涨,自部署的账单先来一大笔、后面变成电费和人力,两种曲线形状完全不同,放在一张表上比才公平。
这篇不给结论,给一套按量算成本、按场景设门槛的判断顺序。你拿自己项目的数字往里套,就能拍板;同时也要知道什么情况下这套判断不成立——比如数据根本不能出内网,那成本再划算也没得选。
先把两边的成本口径对齐
最容易犯的错,是拿 API 的单价去比单卡的租金。这两个数不是一回事:API 单价是按实际用量走的边际成本,单卡租金是你为整块算力付的固定成本。要比就比满载成本——你的调用量到底能不能把卡吃满,吃不满的那部分就是纯浪费。
- API 侧口径
- 按 token 或按次计费,属于随用量变动的成本,去官方 API 页面看当时单价,再按你的日调用量折算成月成本
- 自部署侧口径
- 卡、机器、电费、带宽、运维人力,把一次性投入按使用周期摊到月,去算力成本相关页面看当时的行业口径
- 满载成本
- 自部署那张卡在满负荷下能处理多少请求,用它去除固定成本,才是可比的单位成本
- 闲置成本
- 负载低谷时那部分算力没有产出,但仍然在计费、在耗电、在占人
- 先到官方 API 页面把当时的计费方式抄下来,区分按输入、按输出还是按次
- 用站内的模型成本计算器和 token 价格计算器,把你的日调用量代进去折月账
- 自部署这边,按算力价格指数和 TCO 口径把一次性投入摊到月
- 两边都用同一个调用量假设,否则比出来的数没有意义
- 把人力成本单列一行,别藏进「其他」里
按调用量找你的分界点
成本对比的核心变量是量。低频场景下 API 几乎一定更划算,因为你不用为闲置算力付钱;高频稳定场景下自部署才有机会在单位成本上占优,前提是有持续负载把卡喂饱。中间那段模糊地带,取决于你的峰值形态。
| 调用形态 | 成本倾向 | 关键前提 |
|---|---|---|
| 每天几百次、内部工具 | API 更划算 | 不用为闲置算力付费 |
| 7x24 持续打满、对外产品 | 自部署可能占优 | 负载稳定,能把卡喂饱 |
| 峰谷差大、有明显浪涌 | 看峰值怎么扛 | 自部署要按峰值配卡,低谷期是净亏 |
| 调用量还在快速变化 | API 更灵活 | 按量走,不用提前押注容量 |
波动大的场景特别要小心:自部署是按峰值配卡的,你为最高那几分钟买了全天的机器。API 的按量弹性恰好是为这种形态准备的,代价是单价更高、上游限流和故障你要自己接住。
什么情况下这套量价判断不适用?涉及数据不能出内网、必须离线跑、或者供应商条款不允许你的业务类型,这时候成本再划算也得自部署,判断顺序要反过来:先过硬约束,再谈钱。
算完钱再算运维这笔账
自部署的真实成本大头不是硬件,是运维。模型更新、显存调优、并发限流、故障重启、监控告警,这些都要有人长期盯。硬件是一次性支出,运维是持续支出,而且很难在采购单上体现出来。
- 模型换了、精度要求变了,谁负责重新调优和压测
- 推理服务挂了,谁在半夜起来重启,有没有值班机制
- 并发上来之后限流和排队策略谁定,参考站内 API 限流调优和报错排查相关指南
- 显存不够时怎么降级,要不要做量化和批处理
- 监控告警谁来看,误报和漏报怎么收敛
判断标准很直接:团队里有没有人能长期负责推理服务。如果没有,自部署省下的那部分钱,最后大概率会以加班、线上事故和人员流失的形式还回去。调 API 把这些转移给了服务方,但你换来的是对上游的依赖,降级和重试逻辑得自己做。
还有一种混合做法:核心高频链路自部署,长尾和峰值溢出的流量走 API。代价是要维护两套接入逻辑和两套监控,适合已经有成熟运维班底的团队,小团队慎用。
一份可以直接拿去开会的判断清单
- 第一步:拉数据统计近一个月的调用量、峰值并发、平均上下文长度。没有这三个数,后面全是拍脑袋,先补数据再开会
- 第二步:两套模型算月账把同一组数据分别代进 API 计费折算和自部署摊销,算出各自月成本。注意 API 侧要看当时的单价,自部署侧要把人力和电费算进去
- 第三步:列硬约束数据合规、离线要求、延迟上限、供应商可接受性,任何一条不满足就直接排除一边,不用再比价
- 第四步:检查运维配人问清楚谁在长期负责推理服务。答不上来就选 API,这是最简单也最容易被忽略的一条
- 第五步:小范围验证先在一个非核心功能上跑一版,对比实际账单和当初的预测,别一上来就全量迁移
什么时候该重新算一遍
这个决定不是一次性的。用量、上游价格、模型能力这三样都在动,当初算出来的分界点会失效。建议设一个简单的复核触发条件,而不是等出了问题再回头看。
| 触发信号 | 要重看的东西 | 去哪看 |
|---|---|---|
| 调用量翻倍或腰斩 | 分界点是否已经跨过 | 站内成本计算工具 |
| 上游改价或出新套餐 | API 侧成本结构 | 价格追踪和官方 API 页面 |
| 模型换代、单卡能跑的东西变了 | 自部署侧的经济性 | 模型资料库和算力价格页面 |
| 连续两三个月账单偏离预测 | 整套假设是否需要推翻 | 自己的账单加站内 TCO 口径 |
如果实际账单和当初预测差得比较远,别急着换方案,先把差异归因:是用量估错了、单价变了,还是运维成本原来没算进去。归因清楚了再决定要不要动。
先把数字摆到桌上与其在会上争论哪种方式更划算,不如先花十分钟把当前的 API 价格和算力成本拉出来对齐口径,再去核对站内的 TCO 和价格追踪记录,一次会议就能有结论。→常见问题
我们调用量不算大,但数据敏感,只能自部署吗?
不一定。先确认合规要求到底是「数据不能出你的网络」还是「不能给第三方留存」。前者只能自部署或私有云;后者很多 API 供应商有企业条款可以谈。把要求写清楚再选,别用「敏感」两个字直接下结论。
自部署是不是就不用管并发和限流了?
不是。自部署只是把限流的位置从上游挪到了你自己的服务上,显存和算力上限一样会卡住请求,排队、退避、降级这些设计一样要做,只是阈值由你定。相关思路可以看 /guides/api-limit-tuning。
两边都跑会不会很麻烦?
会多一套接入和监控,但换来的是弹性。适合已经有稳定自部署底座、又经常遇到峰值溢出的团队。如果团队只有一两个人维护,先别上混合,把单条链路跑稳更实际。