5.10 节回本计算器:按你的用量、显卡报价、电费和 API 价格,算买卡自托管几年回本
| 文件 / 目录 | 说明 | 大小 |
|---|---|---|
| 📁 ../ | 返回上级目录 | - |
| 📁 sample_output/ | 子目录 | - |
| 📄 README.md | 3.4 KB | |
| 📄 payback.py | 3.1 KB | |
| 📄 scenarios.py | 3.5 KB |
这份代码回答一个问题:买显卡自己跑开放权重模型,按你的用量、你拿到的显卡报价和你在付的 API 价格,几年能回本。
它算的是最简单的一笔账:每年替代掉的云端费用,减去电费,得到每年净省多少;硬件价格除以这个数,就是简单回本期。云端费用有三种算法,对应三种比较对象:
api:机器满载时一年能产出多少 token,这些 token 按云端 API 的标价值多少钱。可以设输入输出比和缓存命中率。subscription:拿订阅席位的年费来比。my_bill:直接拿你每月真实付的 API 账单来比。对大多数个人和小团队,这一行最接近现实。任何电脑。只用 Python 标准库,不用装包,也不调 API。
cd 5_10_payback
python3 payback.py # 文章里的六个场景,加上你的 MY_SETUP
python3 payback.py --load 0.25 # 把 api 场景的负载率改成 25%
前六个场景的数字取自文章《如果我买显卡自托管 GLM 和 DeepSeek,到底要几年才能回本?》(2026 年 7 月),计算器算出来和文章一致:
| 场景 | 24 小时满载 | 负载 25% |
|---|---|---|
| GLM-5.2,8×H200,$40 万,对标 API(不算缓存) | 1.15 年 | 4.62 年 |
| DeepSeek-V4-Flash,2×RTX PRO 6000,$3.25 万,对标 API(不算缓存) | 1.77 年 | 7.07 年 |
| GLM-5.2,8×B300,$40–50 万,对标 agent 负载 API(92% 命中缓存) | 0.19–0.24 年 | 0.78–0.97 年 |
| DeepSeek-V4-Flash,2×RTX PRO 6000,对标 agent 负载 API(92% 命中) | 0.88 年 | 3.51 年 |
| GLM-5.2,8×B300,对标 1 个订阅席位 | 回不了本 | 回不了本 |
| GLM-5.2,8×B300,对标同等用量的 29 个订阅席位 | 21.8–27.3 年 | (同左,席位数按满载折算) |
样例输出见 sample_output/(2026-10-23)。
看这张表有三点值得注意。同一台机器,比较对象换一下,回本期可以从两三个月变成二十多年。云端缓存价越便宜,自托管越难回本:GLM 的缓存价是 DeepSeek 的约 93 倍,同样是 92% 命中,GLM 那台不到 3 个月回本,DeepSeek 那台要 10 个月以上。最后,文章的数字都假设机器一年 365 天、每天 24 小时满载;负载降到 25%,回本期大约变成四倍。你的机器实际有多忙,往往比显卡价格更决定结论。
打开 scenarios.py,改最下面的 MY_SETUP:显卡或整机报价、整机功耗、电价、每天开机几小时、你现在每月为这部分工作付的 API 费用。如果你想按满载产能来算,把 compare 改成 'api',并填上吞吐(output_tok_per_s,用 5.7 的测速脚本在你的机器上测)、输入输出比、缓存命中率和 API 价格。也可以照着前面的场景复制一份,写进 SCENARIOS 列表。
几个容易漏的地方:吞吐要用你实际负载下的数字,不要用宣传的单流峰值;my_bill 只该填本地模型真能替代的那部分账单(本地小模型做不了的活,账单还在);负载率低于 1 时,电费按满载功耗乘开机时间估算,没算待机功耗。计算器只算硬件和电费,机柜、网络、运维人力、停机冗余、折旧和残值都没算,真实的回本期只会更长。