SSD Nodes Learn Hosting plans →
指南 Matt Connor作者: Matt Connor

GPU VPS 与 API Token 计费何时回本?

GPU VPS 按小时租用只有达到特定月度用量才更省。本文提供盈亏平衡公式,并计算每月需要多少百万输出 token 才会超过 API 计费。

实际的盈亏平衡点

GPU VPS 只有在一种情况下比按 token 计费的 API 更划算:每月固定租金除以当月实际生成的输出 token 后,低于 API 对相同 token 收取的费用。租金不会变化。API 账单会随每次请求变化。因此,答案始终是一个月度用量,而不是简单的“是”或“否”。

以每小时 $0.50 的中端 GPU VPS 为例,730 小时的月份费用为 $365。与前沿模型 API 相比,达到盈亏平衡时,每月需要 24.3 百万个输出 token。与小型商业模型相比,需要 73 百万个。与同等规模的托管开放权重模型相比,永远无法达到盈亏平衡,因为一张卡每月无法生成足够多的 token,达到交叉点。

已发布的盈亏平衡研究无法回答这个问题。某供应商在 2026 年 7 月发布的分析认为,按每小时 $2.00 计算的专用 H100,与无服务器推理相比,交叉点接近 50% 的利用率。这类研究比较的是专用数据中心 GPU 与无服务器产品,并且按这里所用时价数倍的价格计算加速器成本。计算方法相同。下面将针对一张卡、一个规模为 7B 到 30B 的开放模型,以及普通的按量计费 API 重新计算。

下面的每个数字都是输入值,不是结果。请全部替换为您自己的数据。

该公式可用于代入您自己的数值

cost_per_million = (hourly_rate * 1000000) / (tokens_per_second * 3600 * duty_cycle)

breakeven_millions_per_month = (hourly_rate * hours_per_month) / api_price_per_million

capacity_millions_per_month = (tokens_per_second * 3600 * hours_per_month) / 1000000

required_duty_cycle = breakeven_millions_per_month / capacity_millions_per_month

需要4个输入值,均可通过测量或查询获得。

  • hourly_rate 是 GPU VPS 每小时的成本,包括空闲时段的费用。如果按月付费,请将月费除以 730。
  • tokens_per_second 是服务器在实际并发量下能够持续达到的总输出速率。它不是厂商图表中的单流速率。
  • duty_cycle 是 GPU 每月用于生成 token 的时间占比。整月租用实例、每天使用2小时,其占比为 8.3%。
  • api_price_per_million 是您用于比较的输出 token 计量价格。

示例只比较两边的输出 token 价格,因为对于聊天和 agent 工作负载,输出通常占账单的大部分。如果您的提示词较长,请在两边都加入输入 token。API 侧会在账单中单独列出输入 token。使用自有 GPU 时,prefill 会消耗 GPU 时间,因此它已经体现为测得的 tokens_per_second 较低。

在信任计算结果前,如何测量每秒生成的 token 数

以上计算都依赖一个实测值。这个值如果偏差达到3倍,结果也会偏差3倍。请在实际租用的显卡上,使用真正要运行的模型和量化版本进行测量。

Ollama 可通过一条命令给出单流性能:

ollama run qwen3:8b --verbose "Write 400 words about disk latency."

--verbose 会在回答后输出计时信息块。需要关注的行是 eval rate,单位为每秒生成的 token 数,只统计生成阶段。prompt eval rate 是预填充速度,通常高得多。你的数值会与以下结果不同:

eval count:       412 token(s)
eval duration:    9.612s
eval rate:        42.86 tokens/s

单流性能不适合用于成本模型,因为它只测量显卡一次处理一个请求时的速度,而实际显卡可以同时处理多个请求。要获取聚合性能,请使用 vLLM 提供模型服务,并读取服务器报告的吞吐量:

pip install vllm
vllm serve Qwen/Qwen3-8B --max-model-len 8192

请求处理期间,服务器会在每个报告间隔输出一行状态日志。具体字段会随 vLLM 版本变化,因此请读取你所安装版本的输出,而不要照抄我的示例:

Avg prompt throughput: 812.4 tokens/s, Avg generation throughput: 396.1 tokens/s, Running: 16 reqs, Waiting: 0 reqs, GPU KV cache usage: 21.7%

Avg generation throughput 是公式所需的数值。随着并发请求增加,该数值会持续上升,直到 KV cache(键值缓存,即 vLLM 保存在 VRAM 中、按请求维护的注意力状态)填满,然后停止上升。继续增加并发请求后,请求会进入队列,而不会变得更快;这会表现为 Waiting 数值持续上升。vLLM 还提供负载生成器 vllm bench serve。其参数会随版本变化,因此请在已安装的版本上运行 vllm bench serve --help,不要直接复制博客文章中的命令。

测试运行期间监控显卡:

nvidia-smi --query-gpu=utilization.gpu,memory.used,power.draw --format=csv -l 5

如果生成期间 utilization.gpu 接近100%,说明瓶颈在吞吐量上,你测得的数值就是实际上限。如果该数值持续较低,说明限制来自其他因素:并发请求太少、客户端速度较慢,或模型无法完全放入 VRAM,部分模型被卸载到系统 RAM。Ollama 和 vLLM 在这里采用了非常不同的权衡方式,同一张显卡上的性能差距可能足以让盈亏平衡点相差数倍。

一个月的账单情况

这个示例使用一台 24 GB GPU VPS,价格为每小时 $0.50,由 vLLM 提供一个 8B 开源模型服务。在 16 个并发请求下,实测总输出速率为每秒 400 个 token。无论是否使用 GPU,租用费用都固定不变。按该速率计算,每月可处理 1,051 million 个输出 token;这是 GPU 持续运行且从不停机时的产能。

图表Monthly cost by output volume: one GPU VPS at $0.50 per hour against metered APIs (USD)
此图表背后的数据
[
  {
    "output_tokens_millions": 5,
    "gpu_vps_usd": 365,
    "open_api_usd": 1,
    "small_api_usd": 25,
    "frontier_api_usd": 75
  },
  {
    "output_tokens_millions": 10,
    "gpu_vps_usd": 365,
    "open_api_usd": 2,
    "small_api_usd": 50,
    "frontier_api_usd": 150
  },
  {
    "output_tokens_millions": 25,
    "gpu_vps_usd": 365,
    "open_api_usd": 5,
    "small_api_usd": 125,
    "frontier_api_usd": 375
  },
  {
    "output_tokens_millions": 50,
    "gpu_vps_usd": 365,
    "open_api_usd": 10,
    "small_api_usd": 250,
    "frontier_api_usd": 750
  },
  {
    "output_tokens_millions": 100,
    "gpu_vps_usd": 365,
    "open_api_usd": 20,
    "small_api_usd": 500,
    "frontier_api_usd": 1500
  },
  {
    "output_tokens_millions": 250,
    "gpu_vps_usd": 365,
    "open_api_usd": 50,
    "small_api_usd": 1250,
    "frontier_api_usd": 3750
  },
  {
    "output_tokens_millions": 500,
    "gpu_vps_usd": 365,
    "open_api_usd": 100,
    "small_api_usd": 2500,
    "frontier_api_usd": 7500
  },
  {
    "output_tokens_millions": 1000,
    "gpu_vps_usd": 365,
    "open_api_usd": 200,
    "small_api_usd": 5000,
    "frontier_api_usd": 15000
  }
]

GPU 费用曲线固定为 365 美元,因为租金与 GPU 的使用方式无关。每条 API 费用曲线都是从零开始的直线。每一对曲线只会相交一次。

每月输出 25 million 个 token 时,前沿模型 API 的费用为 375 美元,因此两种方案的费用相差不到 10 美元。达到 50 million 个输出 token 时,小型商业模型的费用为 250 美元,仍然更便宜。达到 1000 million 个输出 token 时,需要让 GPU 持续忙碌整个月的 95%;托管开源权重 API 的费用为 200 美元,而 GPU VPS 的租金相同。在 GPU 工作负载最高的这个用量下,租用 GPU 的费用仍接近 API 方案的两倍。

最后这个结果常常出乎意料,但并非偶然。托管开源权重端点使用的是高利用率运行的 GPU 集群,因此其价格接近满负载 GPU 的成本。租用一张 GPU 并以低于满负载的利用率运行,无法击败满负载 GPU 集群的价格。租用 GPU 能击败的是前沿模型的定价,因为后者取决于模型能力,而不是 GPU 运行时间。

每种利用率下每百万输出 token 的成本

业务量和利用率是同一事实的两个方面。租用 GPU 是按小时付费。空闲时间不会产生任何输出,但仍会产生费用。

图表Cost per million output tokens at each duty cycle (USD, list prices August 2026)
此图表背后的数据
[
  {
    "label": "100% duty",
    "self_host_usd_per_million": "0.35",
    "open_api_usd_per_million": "0.20",
    "small_api_usd_per_million": "5.00",
    "frontier_api_usd_per_million": "15.00"
  },
  {
    "label": "50% duty",
    "self_host_usd_per_million": "0.69",
    "open_api_usd_per_million": "0.20",
    "small_api_usd_per_million": "5.00",
    "frontier_api_usd_per_million": "15.00"
  },
  {
    "label": "25% duty",
    "self_host_usd_per_million": "1.39",
    "open_api_usd_per_million": "0.20",
    "small_api_usd_per_million": "5.00",
    "frontier_api_usd_per_million": "15.00"
  },
  {
    "label": "10% duty",
    "self_host_usd_per_million": "3.47",
    "open_api_usd_per_million": "0.20",
    "small_api_usd_per_million": "5.00",
    "frontier_api_usd_per_million": "15.00"
  },
  {
    "label": "5% duty",
    "self_host_usd_per_million": "6.94",
    "open_api_usd_per_million": "0.20",
    "small_api_usd_per_million": "5.00",
    "frontier_api_usd_per_million": "15.00"
  },
  {
    "label": "2% duty",
    "self_host_usd_per_million": "17.36",
    "open_api_usd_per_million": "0.20",
    "small_api_usd_per_million": "5.00",
    "frontier_api_usd_per_million": "15.00"
  }
]

API 的 3 列采用截至 2026 年 8 月通常公布的标价:托管的 8B 开放权重模型每百万输出 token 收费 0.20 美元,小型商业模型收费 5.00 美元,前沿模型收费 15.00 美元。这些价格仅用于说明。做出决定前,请先查看当天的价格页面。如果您比较的是固定月费套餐,而不是按 token 计费,订阅费用的计算方式会有所不同,盈亏平衡点也会再次变化。

让这块卡满负荷运行时,每百万输出 token 的成本为 0.35 美元,确实很低。利用率为 10% 时,同样的每百万 token 成本为 3.47 美元。利用率为 2% 时,成本为 17.36 美元,与托管开放模型为相同输出收取的 0.20 美元并不在同一水平。

与托管开放权重模型相比,在图表所示的每种利用率下,租用 GPU 都是更昂贵的选择。利用率为 10% 时,您要为每百万 token 的输出支付 3.47 美元,而同样的输出在托管开放模型上只需 0.20 美元。差价购买的是隐私,以及不会随用量变化的账单。这些价值可能确实值得相应费用,但这并不构成价格优势,因此不要将其归类为价格优势。与商业模型层级相比,结论相反:利用率为 10% 时,这块卡的成本低于小型商业模型和前沿模型,并且在利用率降至约 2.3% 之前,成本始终低于前沿模型。

每个 API 层级的盈亏平衡用量

图表Break-even output volume per month, and the duty cycle it requires
此图表背后的数据
[
  {
    "label": "Hosted open 8B API",
    "breakeven_tokens_millions": 1825,
    "required_duty_pct": 174
  },
  {
    "label": "Small commercial model",
    "breakeven_tokens_millions": 73,
    "required_duty_pct": 6.9
  },
  {
    "label": "Frontier model",
    "breakeven_tokens_millions": 24.3,
    "required_duty_pct": 2.3
  }
]

与前沿层级相比,每月需要 24.3 百万个输出 token,只有该卡处理能力的 2.3%。门槛很低。一个在工作日运行编码代理的小团队就能达到这一用量。

与小型商业层级相比,每月需要 73 百万个 token,即 6.9% 的利用率。与托管式开放权重层级相比,所需利用率为 174%。超过 100% 的利用率按定义无法实现:该卡需要运行的小时数会超过一个月所包含的小时数。按这一小时费率,一张中端卡无法在这项比较中胜出。因此,能改变结果的只有更便宜的卡、更快的卡,或与价格无关的理由。

公式未涵盖的成本

公式只计算 GPU 时长和 token。许多实际成本不在其中。

冷启动。 采用 16-bit 权重的 8B 模型约占 16 GB。从本地磁盘将其加载到 VRAM 需要几十秒。为节省租用费用而在两次使用之间停止实例后,每次首个请求都要等待这段时间。为避免等待而让实例持续运行,又会导致利用率大幅下降,从而提高每个 token 的成本。这种权衡正是无服务器推理存在的根本原因。

存储和下载。 权重文件很大。采用 16-bit 的 8B 模型约占 16 GB,量化为 4-bit 的 30B 模型约占 18 GB,而采用 16-bit 的 30B 模型根本无法装入 24 GB 显存的显卡。模型规模越大,限制很快就会变得明显。此时,运行 Kimi K3 这类万亿参数开源模型意味着仅权重文件就超过任何按小时租用的单张显卡容量。每月都要为这些磁盘空间付费,每次重建环境也都要花时间。运行一周实验后执行 du -sh ~/.cache/huggingface/hub。缓存增长速度会超出预期,因为每种尝试过的量化版本仍会留在磁盘上。

你自己的时间。 驱动和 CUDA 版本、在昨天可用的上下文长度下出现的内存不足错误、改变聊天模板的模型更新。这些都不会出现在每个 token 的成本中,但都会消耗你的晚间时间。如果你以前没有为这类实例估算过资源,承诺租用一个月之前,值得先阅读GPU VPS 实际提供什么。

质量差距。 这是最大的隐藏成本,也是最难定价的成本。8B 开源模型不是前沿模型。如果前沿模型一次就能完成的任务,它需要尝试三次,那么每个有效答案的实际价格就是图表数值的三倍,而且仍可能无法完成任务。在比较价格之前,先使用自己的提示词进行效果对比。对于代理工作负载,通常的做法是按难度分流,并将廉价的本地 token 用于批量任务。这正是控制 VPS 上的代理成本的主要内容。

容易忽略的账单项目。 你停止按小时计费的 GPU 实例后,附加存储和预留 IP 地址通常仍会继续计费。请查看账单,而不是只看价格页面。

价格并非自托管的唯一优势

以下4种情况下,成本计算并不是决定因素。

  • 数据不能离开您的控制范围。如果合规规则禁止将文本发送给第三方,那么每个 token 的价格就不是要解决的问题。
  • 按计划持续处理大量数据。每晚运行6小时的批量分类任务,其占用率固定为25%,而且不会让您面对意外账单。
  • 速率限制。您自己的显卡只有一个队列,而且由您控制。
  • 没有 API 提供的模型。如果您需要特定的微调模型,就没有可比较的选项。

如果您想先测试低成本版本,在 VPS 上使用 Ollama 运行小型模型只需一个下午;根据您准备租用的显卡为开放模型选择规格可以告诉您实际需要哪种 GPU。先在那里测量,再决定是否租用一个月的 GPU。

FAQ

GPU VPS 每月达到多少 token 量后,成本会低于 API 定价?

将 GPU 的月租除以 API 每百万输出 token 的价格。一张每月租金为 $365 的显卡,对比每百万 15.00 美元的前沿 API 时,每月达到 24.3 百万输出 token 即可回本。对比每百万 5.00 美元的小型商用模型时,需要 73 百万。对比每百万 0.20 美元的托管开放权重模型时,一张中端显卡每月无法生成足够的 token 来实现回本。

为什么托管开放权重 API 比我自己的 GPU 更便宜?

因为它的定价接近满负载 GPU 的成本,而你的显卡并未满负载。为数千个并发请求提供服务的提供商可以让整个 GPU 集群长期接近饱和,因此能够以接近 token 生成边际成本的价格销售 token。你的显卡一天中的大部分时间都处于空闲状态,但空闲时段仍需付费。在 10% 利用率下,你每百万输出 token 的成本为 3.47 美元,而对方为 0.20 美元。

是否应同时计算输入 token 和输出 token?

如果提示词很长,就应计算输入 token。这里的比较只使用输出 token,因为在聊天和代理任务中,输出 token 通常占主要部分。加入输入 token 后,双方的计算方式都会变化。对 API 而言,输入 token 会在账单中单独列出,价格也更低。对你自己的显卡而言,prefill 会占用 GPU 时间,因此其成本已经包含在你测得的总 token 每秒数中。使用实际提示词长度进行测量,双方的数据才具有可比性。

如何测量公式所需的每秒 token 数?

按照实际使用方式运行模型,然后在真实并发条件下读取总生成速率。使用 Ollama 时,ollama run <model> --verbose 会输出每秒 token 数的 eval rate,但这只对应单个流,无法反映批处理服务器的实际性能。使用 vLLM 时,运行中的服务器会在请求处理期间记录 Avg generation throughput,应使用这个数值。同时监控 nvidia-smi。如果生成期间 GPU 利用率没有接近 100%,说明你还没有测到性能上限。

GPU 利用率低于 10% 时,租用 GPU VPS 是否划算?

这取决于你原本需要支付哪种 API 费用。在 10% 利用率下,每百万输出 token 的成本为 3.47 美元,低于小型商用层和前沿层,但远高于托管开放权重层。在 2% 利用率下,成本为 17.36 美元,高于本比较中的所有按量计费 API,包括前沿层。仅从价格看,显卡对小型商用层在约 6.9% 利用率时停止占优;对前沿层则在约 2.3% 利用率时停止占优;对托管开放权重模型则始终不占优。只有在你购买的是隐私保护或某个 API 不提供的模型时,才应在低于这些利用率阈值的情况下租用显卡。

这篇文章对您有帮助吗?