SSD Nodes Learn 🎉 VPS $4.99/月起
指南 Matt Connor作者: Matt Connor · 更新于 2026-08-07

GPU VPS 与 API Token 计费何时打平?

以每小时 0.50 美元的 GPU VPS 为例,月租 365 美元。本文提供盈亏平衡公式,并计算何时按 token 付费会更贵。

实际的盈亏平衡点

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

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

已发布的盈亏平衡研究无法回答这个问题。2026 年早些时候发布的其中两项研究显示,在 H200 上,与其服务器无服务器产品相比,交叉点接近 72% 的持续利用率;在 MI300X 上,则处于 22% 到 48% 的工作负载占空比之间。两项研究都以同一厂商自己的 serverless 产品作为对比,并且采用的加速器每小时成本高于这里大多数读者每月的支出。计算方法相同。下面将按一张卡、一个 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 计价,因为在聊天和代理任务中,输出通常占主要成本。如果提示词较长,请在两边都加入输入成本。在 API 侧,输入成本会单独列在账单中。在您自己的 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 在这里采用了非常不同的权衡方式,而且同一张显卡上的两者差距足以使盈亏平衡点相差数倍。

一个月的账单构成

这个示例使用一台每小时 $0.50 的 24 GB GPU VPS,通过 vLLM 提供一个 8B 开源模型。在 16 个并发请求下,实测总输出速度为每秒 400 个 token。无论是否使用 GPU,租金都固定不变。按此速率计算,每月容量为 1,051 million 个输出 token,也就是 GPU 持续运行时能够生成的数量。

ChartMonthly cost by output volume: one GPU VPS at $0.50 per hour against metered APIs (USD)
The data behind this chart
[
  {
    "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 的租金相同。在 GPU 工作最繁忙的这个确切用量下,租用 GPU 反而贵了近一倍。

最后这个结果让人意外,但并非偶然。托管开源权重端点依托高利用率运行的 GPU 集群,因此价格接近满负载 GPU 的成本。租用一张 GPU 并让它低于满负载运行,不可能击败满负载集群的价格。能够击败的是前沿模型的定价,因为它根据模型能力而不是 GPU 运行时间制定。

各占用率下每百万输出 token 的成本

使用量和占用率是从两个角度描述同一事实。租用资源按小时计费。空闲时间不会产生输出,但仍会产生费用。

ChartCost per million output tokens at each duty cycle (USD, list prices August 2026)
The data behind this chart
[
  {
    "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 美元不在同一水平。

占用率低于约 10% 时,租用 GPU 是更昂贵的选择。您为每百万 token 的输出支付 3.47 美元,而托管开放模型只收取 0.20 美元。价差换来的是隐私,以及不会波动的账单。这些价值可能确实值得付费。但它们并不意味着价格更低,因此不要将其归类为价格优势。

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

ChartBreak-even output volume per month, and the duty cycle it requires
The data behind this chart
[
  {
    "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 开源模型不是前沿模型。如果它需要尝试3次才能完成前沿模型1次完成的工作,那么每个有用答案的实际价格就是图表数值的3倍,而且它仍可能无法完成任务。在比较价格之前,先使用您自己的提示词进行效果对比。对于智能体工作负载,通常的做法是按难度进行路由,并将低价的本地 token 用于批量工作;控制 VPS 上的智能体支出主要就是这一点。

您忘记的费用。 停止按小时计费的 GPU 实例后,其附加存储和保留的 IP 地址通常仍会继续计费。请查看账单,不要只看价格页面。

自托管胜在价格以外的情况

有四种情况,成本计算不是决定因素。

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

如果您想先测试低成本方案,在 VPS 上使用 Ollama 运行小型模型只需一个下午;根据您计划租用的显卡为开源模型选型可以告诉您实际需要哪种 GPU。先在那里进行测算,再决定是否租用一个月的 GPU。

FAQ

GPU VPS 的月度 token 量达到多少时,成本会低于 API 定价?

将 GPU 的月租费用除以 API 每百万个输出 token 的价格。一张每月租金为 $365 的 GPU,如果对比每百万个输出 token 收费 15.00 美元的前沿 API,则每月达到 24.3 百万个输出 token 时可以达到盈亏平衡。如果对比收费 5.00 美元的小型商业模型,则需要 73 百万个。对于收费 0.20 美元的托管开放权重模型,一张中端 GPU 每月无法生成足够多的 token 来达到盈亏平衡。

为什么托管开放权重 API 的成本低于我自己的 GPU?

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

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

如果您的提示较长,应将输入 token 计算在内。本文比较的只有输出 token,因为对于聊天和 agent 工作,输出 token 通常占主要部分。加入输入 token 后,比较双方的计算方式都会变化。在 API 端,输入 token 会作为账单中单独且价格较低的一项。对于您自己的 GPU,prefill 会占用 GPU 时间,因此其成本已经包含在您测得的总 token 每秒数中。请使用实际的提示长度进行测量,这样双方仍具有可比性。

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

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

GPU 利用率低于 10% 时,是否值得租用 GPU VPS?

从价格角度看,不值得。在 10% 利用率下,每百万个输出 token 的成本为 3.47 美元;在 2% 利用率下,则为 17.36 美元。在本比较中,这两个价格都高于所有按量计费的 API,只有前沿层级除外。只有在您需要隐私,或需要某个 API 不提供的模型时,才应在低于这一利用率的情况下租用 GPU。