钱都花哪了 —— 自建、租卡、调 API 的三本账
先抛一个真实决策:同样是「每天 10 万次问答」,自建、云租卡、商业 API 三条路的月账单能差出两个数量级。选错的代价通常不是「贵了」,而是买回来一台 90% 时间在睡觉的机器——以及没人敢提的折旧。
三条路,三本账本结构
| 路径 | 账单构成 | 藏在水面下的成本 | 适合谁 |
|---|---|---|---|
| 自建(买卡) | 购机一次性投入 + 电费 + 机器折旧(3 年左右归零) | 运维人力、机房/噪音、闲置浪费、卡价跳水 | 7×24 满负载、数据不能出门、用满 3 年 |
| 云租卡(按小时) | 时价 × 卡数 × 730 小时/月;spot 可省 50~70% 但会被抢占 | 数据出境合规、镜像与环境维护、长期算比买贵 | 波峰波谷明显、快速验证、季节性业务 |
| 商业 API(按 token) | 输入价 × 输入量 + 输出价 × 输出量 | 供应商锁定、限速、隐私合规、账单随业务线性涨 | 低量、快速验证、流量不可预测的起步期 |
交互 D1 · TCO 三路对比器
拖动下面的业务参数,三条累计成本曲线会随时间画出来;自建曲线被某条租用曲线「追上」的那个月,就是回本点。显存与成本全部调用四页共享的 GPU_CALC 公式库(卡型规格、costPerMTok)。
自测:公司业务每天只有 3000 次请求(利用率约 8%),有人提议「买两张 H100,两年就回本了」。漏洞在哪?
GPU 档位速查 —— 一张表,一堆坑
打开购物车之前,先把这张表存下来。它是本手册全部硬件数字的唯一出处:下面这张表和三个交互组件的每一个显存、带宽、时价,都从四页共享的 GPU_CALC.GPUS 现场读出——a/b/c 页说你该信谁,d 页说你去哪查。
规格总表(数字截至 2026-09)
| 卡 | 显存 | 带宽 | BF16 算力 | TDP | 云租参考 | 一句话定位 |
|---|---|---|---|---|---|---|
| 正在从 calc.js 读取… | ||||||
云租为 on-demand 常见量级(社区云/市场价低档、大厂溢价高档)。查证 2026-09 的实拍区间:RTX 4090 $0.32~0.69/hr(Vast ~ RunPod)、RTX 5090 约 $0.5~0.9/hr(各平台差异大)、A100 80G $1.0~1.8/hr、H100 $2.1~4.0/hr(Vast 中位 ~$2.1、RunPod $2.7~3.2、Lambda $3.3~4.0)、H200 $3.1~4.4/hr、B200 $3.5~5.9/hr。GPU 价格波动剧烈,下单前务必看当日价目页(章 8 给了链接)。
避坑清单:三种最常见的「以为能跑」
- 游戏卡当数据中心卡用:RTX 4090/5090 没有 ECC、没有 NVLink(多卡走 PCIe,张量并行通信是心梗高发区)、驱动 EULA 不允许数据中心部署;FP8 精度与稳定性也不如数据中心卡。单人/小团队推理无妨,认真做多卡训练别选它。
- Mac 训练吞吐的坑:M4 Max 统一内存 128GB「装得下 70B」,但带宽 ≈546GB/s 且 MLX 训练生态吞吐远低于 CUDA——跑得动推理、微调 7B 勉强、更大就只是「能等」。拿它当推理终端可以,当训练机是煎熬。
- 「云上 4090」超售:市场价 $0.3/hr 档的 4090 常见超售与限功率(锁 300W 以下、显存被宿主分走)。跑批前先跑 10 分钟压力测试看吞吐是否对得上标称;低于预期立刻换实例。
- B200 显存的两种口径:官方标称 192GB HBM3e,部分云商标「180GB」是可用显存口径——量级一致,对比参数表时注意是标称还是可用。
交互 D2 · GPU 选型对比器
选一个任务,组件会用与 a/c 页完全一致的公式反推显存需求区间(推理走 inferenceGB,训练走 trainBreakdownGB),再从档位表里挑出装得下的最小卡,给理由和避坑提示。
每 100 万 token 的成本账 —— 自托管什么时候反超 API
「每月账单」会随业务量起伏,「每 100 万 token 多少钱」才是把自托管和 API 放上同一把尺子的口径。这一章只讲一条公式链和一个对照表。
三个变量各管一件事:卡时价是你付出多少钱(对应章 2 的表)、聚合吞吐是这张卡一小时能吐多少 token(对应 b 页的连续批处理——单流 decode 只有百来 tok/s,批起来才能翻几倍)、利用率是这些吞吐有多少真的在卖(对应章 1 的第一问)。
算例:14B 级模型,vLLM,利用率 50%(现算)
吞吐取公开实测的量级:2×RTX 4090 跑 Qwen2.5-14B 聚合吞吐 939 tok/s(databasemart 基准,查证 2026-09),按卡折算出下表的单卡口径。下表由页面调用 GPU_CALC.costPerMTok 现场计算。
| 卡 | 云时价 | 聚合吞吐(量级) | 利用率 50% | 利用率 20% |
|---|---|---|---|---|
| 正在计算… | ||||
读法:利用率从 50% 掉到 20%,每 token 成本直接 ×2.5——同一张卡,「值不值」完全由利用率决定。另注意:消费卡每 token 成本常常低于 H100,前提是你只需要 14B 量级的模型;模型再往上,单卡放不下,账就另算了。此口径只含卡钱,不含冗余副本、流量与运维。
对照:商业 API 定价(查证 2026-09,随时会变)
| 档位 | 输入 $/1M | 输出 $/1M | 备注 |
|---|---|---|---|
| OpenAI GPT-5 mini | $0.25 | $2.00 | 缓存命中输入 $0.025;Batch 再半价(官网) |
| DeepSeek V4 Flash | $0.14(缓存未命中) | $0.28 非高峰 ~ $1.32 高峰 | 2026-08 起分峰谷计价(官网) |
| Qwen-Flash(阿里云) | $0.05 ~ 0.15 | ≈$0.40 | 按时段/上下文分档(官网) |
容量规划:从峰值 QPS 到卡数的一条线
把 a/b 页的公式串起来就是一条链:峰值 QPS × 平均响应时长 ≈ 峰值并发(比如 0.16 QPS × 50s ≈ 8 路)→ 并发 × 上下文 × 每 token KV 字节 = KV 显存(a 页第 5~6 章的乘法,用 a 页显存估算器现场验一遍)→ 总显存需求 ÷ 单卡可用显存 = 卡数下限 → 再用日 token 量 ÷ (86400 × 利用率) ÷ 单卡聚合吞吐验一遍吞吐卡数,取两个下限的较大者。吞吐与排队的行为,见 b 页第 4 章并发模拟器。
14B 案例四幕收官 —— 从个人电脑到 50 人在线服务
四页书讲完,回到主角:Qwen2.5-14B。同一个模型,在公司里过完了一生——每一幕撞上的墙,恰好是每一页讲的知识点。这一章把四幕的状态快照摊在一张表里,然后给第四幕一个能落地的部署形态。
四幕状态快照
| 幕 | 精度 | 硬件 | 显存占用 | 成本量级 | 撞上的墙 |
|---|---|---|---|---|---|
| 序幕个人电脑跑起来 | BF16 装不下 → INT4 | RTX 4090 / M4 Max | 权重 ≈7.4GB,合计 ≈10GB | ≈$0(已有设备) | 28GB 权重 vs 24GB 显存 → 量化(a 页) |
| 第二幕变成代码助手 | Q4_K_M(GGUF) | 本机 Ollama | ≈10GB | 电费几块钱 | 8 个朋友同时用就崩 → KV×并发(b 页) |
| 第三幕微调成知识助手 | QLoRA(NF4 主干) | 1×RTX 4090 过夜 | ≈10~14GB | 一夜电费 ≈$0.5 | 全量要 224GB → LoRA/QLoRA(c 页) |
| 第四幕上线 50 人服务 | INT4 + vLLM | 2×24GB(云或自建) | 单副本 ≈13GB(下行现场算) | 云租 ≈$580/月 | 并发、冗余、监控、兜底(本页) |
第四幕:目标形态的账,现场算一遍
目标:50 人内部使用,每天约 5000 次请求,峰值并发 ~8 路,平均 4K 输入 / 500 输出。把数字交给公式(调用 GPU_CALC.inferenceGB,KV 字节按 14B 的 GQA 配置 48 层 × kvDim 1024):
结论:单张 24GB 就装得下峰值负载(KV 是大户但 8 路还咬不动 22.8GB 可用显存),但生产形态仍取 2×24GB(或 1×48GB 档):第二张卡不是为了显存,是为了冗余(一张卡挂了服务还在)和吞吐余量(聚合 ~940 tok/s,对照章 3 的公式,868 tok/s 的容量需求在 30% 利用率下刚好要两张)。流量入口加 least-loaded 路由,两副本互为热备——这就是下一章的 L2。
部署架构搭建器 —— 四级演进,亲手升级(压轴)
b/c 页的所有零件在这里拼成一台完整的「机器」。点「升级」,看架构图逐节点生长;每一级右侧都会告诉你:能力涨了多少、钱涨了多少、新引入了什么风险,以及「出现什么现象说明你该升级了」。每升一级用到的知识点,恰好是前面某一章——全手册在这里闭环。
—
—
能力
—
月成本量级
—
复杂度
—
新引入的风险
—
这一级用到的知识
L4 · 知道即可:再往上的两件事
生产级再往上还有两层,本手册不展开,你只需要在别人提起来时知道它们解决什么:prefill/decode 分离——b 页讲过 prefill 吃算力、decode 吃带宽,规模大到两种负载互相打架时,把两幕拆到不同的机器池、中间传 KV;多区容灾——同一个服务在两个可用区各跑一套,全局路由兜单区故障。
运维与降级 —— 监控什么、什么时候慌、怎么兜底
上线只是开始。这一章回答三个值班问题:盯哪几个数?什么数值该慌?慌了按什么顺序动手?全部内容围绕一个原则:与其全链路一起崩,不如主动拒绝一部分、降级一部分。
监控四件套与「该慌阈值」
vLLM 自带 Prometheus 指标端点(/metrics),四个关键旋钮的官方默认值:`gpu_memory_utilization` 默认 0.9(模型 + KV + 激活的显存上限),`max_num_seqs` 默认 256(并发上限,不是实际并发——实际批量由 KV 剩余空间动态决定)。查证 2026-09,出处见章 8。
| 指标 | 看什么 | 该慌阈值(14B 级参考) | 慌了先查 |
|---|---|---|---|
| TTFT p95 | 用户体验的下限 | > 5s,或持续 30 分钟上涨 | 队列是否堆积(并发 > 单副本容量)、前缀缓存命中率是否下跌 |
| tokens/s(吞吐/TPOT) | 产能是否缩水 | 单流 decode < 10 tok/s | 是否被超售/限功率、批处理是否退化、卡温是否降频 |
| 显存水位 | 容量余量 | > 90%(vLLM 0.9 上限附近) | KV 占比:该限流、缩 max_model_len,还是加卡 |
| 错误率 | 健康底线 | 5xx/OOM > 1% | 最近一次变更、OOM 日志、上游依赖 |
告警分级
| 级别 | 触发 | 动作 |
|---|---|---|
| P1 | 服务不可用:错误率 > 10% 或全部超时 | 电话叫醒;先执行降级链(下方),再查根因 |
| P2 | 体验劣化:TTFT p95 超阈值 30 分钟 / 显存水位 > 90% | 工作时间告警;限流或扩一个副本 |
| P3 | 趋势预警:利用率/账单/缓存命中率周环比异常 | 日报里出现,排期处理 |
三个故障剧本 · 处置卡
剧本 1 · 拔卡(GPU 掉线)
剧本 2 · OOM
剧本 3 · 流量洪峰
降级决策树:五步,从限流到 API
并发上限 / 排队 + 超时 / 按用户配额。先保证「已接入的人被服务好」,拒绝是止损不是失败(b 页章 5)。
长输入直接拒或引导截断——KV 显存最大的杠杆,往往一步就缓过来(a 页章 5)。
FP8/INT8 副本顶上:权重减半,KV 字节也减,吞吐与容量同时改善(b 页章 2)。
14B → 7B:质量降级但服务活着;用户侧通常对「慢」比对「略笨」敏感得多。
最后防线。提前接好、提前测过,并给兜底账单设独立预算告警——别让救火动作烧出第二场火灾。
反面案例集 · 把钱烧成显卡烟花
自测:显存水位 93%、TTFT p95 缓慢上涨、错误率 0%。按本章的顺序,第一个动作是什么?
决策速查卡 + 终极测验
整部手册压缩成五问。以后每一次「要不要买卡 / 租卡 / 上线」,都从这张表开始。
五问速查卡
| 问题 | 看什么 | 公式 / 阈值 | 出处 |
|---|---|---|---|
| 能不能跑? | 显存三件套 vs 可用显存 | 权重 + KV + 开销 ≤ 标称 × 0.9(再留 10~20% 余量) | A 页章 3~6 |
| 快不快? | 带宽 vs 权重量 | tokens/s ≈ 带宽 ÷ 权重 GB(打 5~7 折);TTFT 看 prefill 算力 | A 页章 7 · B 页章 1 |
| 训得动吗? | 方法 × 字节账单 | 全量 16 B/参数;LoRA 主干 2 B;QLoRA 主干 0.5 B + 激活 | C 页章 2~5 |
| 值不值? | 利用率与 $/1M tok | 卡时价 ÷(聚合吞吐 × 3600 × 利用率)× 1e6,对照 API 价 | 本页章 1~3 |
| 稳不稳? | 限流 + 监控 + 降级链 | 四件套阈值;限流→缩上下文→降精度→小模型→API | B 页章 5 · 本页章 5~6 |
终极测验 · 5 题
全手册毕业考。答对 4 题以上,你已经有资格在采购会上拍桌子了。
参考资料 · References
价格与规格的时效性最强,全部原始出处集中在这里。每条都标注了核对日期;引用数字前先点开看现价。
云 GPU 时价(查证 2026-09,波动剧烈)
- RunPod · GPU Cloud Pricing —— 4090 ~$0.69、A100 80G ~$1.09~1.76、H100 ~$2.69~3.20、H200 ~$3.14~4.39、B200 ~$5.87/hr
- Lambda · GPU Cloud Pricing —— H100 on-demand $3.29~3.99/hr
- Vast.ai · Live Pricing —— 市场价:4090 $0.32~0.44、H100 SXM 中位 ~$2.08、B200 $3.50~5.50/hr(超售风险自担)
- AWS · EC2 On-Demand Pricing(P5/H100 类大厂溢价档,另见 GCP/CoreWeave 同类页)
推理引擎与部署文档(查证 2026-09)
- vLLM · 官方文档;Metrics(Prometheus/Grafana);引擎参数默认值:gpu_memory_utilization=0.9、max_num_seqs=256
- SGLang · 官方文档(RadixAttention 前缀缓存复用)
- Qwen2.5 · 官方速度基准(vLLM 吞吐与显存口径)
- vLLM GPU Benchmark · 2×RTX 4090 —— Qwen2.5-14B 聚合吞吐 939.54 tok/s(本页吞吐量级的实测依据)
硬件规格与 API 定价(查证 2026-09)
- NVIDIA H100 · Blackwell / B200 —— datasheet 口径(B200 标称 192GB,部分云商标可用 180GB)
- OpenAI · Pricing —— GPT-5 mini $0.25 / $2.00 per 1M
- DeepSeek · Models & Pricing —— V4 Flash 峰谷计价
- Alibaba Cloud Model Studio · Model Pricing —— Qwen-Flash / Qwen3.5 系列
系列回顾
四页书到此收线:A 页回答「能不能跑」——显存里的住户与三档判定;B 页回答「快不快、多人用崩不崩」——两幕戏、量化与并发;C 页回答「训得动吗」——16 字节账单与并行切法;本页回答「值不值、稳不稳」——三条路的账本与降级链。
如果只带走一句话:所有部署决策的第一问都是利用率,所有崩溃的第一现场都是显存,所有兜底的第一动作都是限流。建议隔段时间回 A 页再走一遍——带着这次上线踩过的坑重读,公式会变成直觉。