GPU VPS 與 API token 計費何時打平?
每小時 $0.50 的 GPU VPS,每月租金為 $365。用公式計算輸出 token 用量,找出何時低於 API 計費,並注意實測 tokens/秒與使用率。
實際的損益平衡點
GPU VPS 只有在特定情況下,成本才會低於依 token 計費的 API:每月固定租金除以你當月實際產生的輸出 token 後,低於 API 對相同 token 收取的費用。租金不會變動,API 帳單則會隨每次請求變動。因此,答案永遠是每月用量,而不是單純的「是」或「否」。
以每小時 $0.50 的中階 GPU VPS 計算,730 小時的月份租金為 $365。與 frontier model API 相比,每月產生 24.3 百萬個輸出 token 時達到損益平衡。與小型商用模型相比,則為 73 百萬個。與相同規模的 hosted open-weight model 相比,則永遠無法達到損益平衡,因為單張 GPU 在一個月內無法產生足夠的 token,達到交叉點。
已發布的損益平衡研究無法回答這個問題。2026 年稍早發表的其中兩項研究指出,在 H200 上,交叉點接近 72% 的持續使用率;在 MI300X 上,則介於 22% 到 48% 的 duty cycle。兩者都以同一家供應商的 serverless 產品作為比較基準,而且所採用的加速器每小時成本高於多數讀者每月的支出。計算方式相同。以下重新以單張 GPU、1 個介於 7B 到 30B 的 open model,以及一般的計量 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共有四個輸入值,這四項都可以測量或查詢。
hourly_rate是 GPU VPS 每小時的成本,其中包含閒置時數。如果按月付費,請將月費除以 730。tokens_per_second是伺服器在實際並行量下可維持的總輸出速率。這不是供應商圖表中的單一串流數據。duty_cycle是 GPU 每月實際用於產生 token 的時間比例。整月租用但每天只使用兩小時的主機,其比例為 8.3%。api_price_per_million是您要比較的輸出 token 計價。
此範例會比較雙方的輸出 token 成本,因為在聊天與代理工作負載中,輸出通常占帳單的大部分。如果 prompt 很長,請在雙方都加入輸入成本。在 API 端,這會作為帳單上的獨立項目。在自有 GPU 上,prefill 會消耗 GPU 時間,因此已反映在較低的實測 tokens_per_second 中。
如何在信任計算結果前測量每秒 tokens 數
以上所有計算都建立在一個實測數值上。若這個數值誤差達到 3 倍,結果也會差 3 倍。請使用你實際租用的卡,搭配真正要執行的模型與量化設定進行測量。
Ollama 可透過一個命令取得單一串流的數值:
ollama run qwen3:8b --verbose "Write 400 words about disk latency."--verbose 會在回答後輸出計時資訊區塊。關鍵行是 eval rate,單位為每秒 tokens,且只計算生成階段。prompt eval rate 是 prefill 速度,通常高得多。你的數值會與以下範例不同:
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(key-value cache,即 vLLM 保留在 VRAM 中、每個請求使用的 attention 狀態)填滿,之後便不再上升。若繼續增加請求,請求會進入佇列,而不是處理得更快;你會看到 Waiting 計數持續增加。vLLM 也提供負載產生器 vllm bench serve。其 flags 會隨版本變動,因此請在已安裝的版本上執行 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 open model,測得 16 個並行請求的總輸出速度為每秒 400 個 token。不論是否使用 GPU,租用費都固定不變。依此速率,每月可產生 1,051 million 個輸出 token;這是 GPU 持續運作且從未停止時的產能。
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 時,frontier API 的費用為 375 美元,因此兩者相差不到 10 美元。達到 50 million 個輸出 token 時,小型商用模型的費用為 250 美元,仍是較便宜的選項。每月輸出 1000 million 個 token 時,GPU 必須在該月有 95% 的時間處於忙碌狀態;hosted open-weight API 的費用為 200 美元,而 GPU 的租用費相同。在 GPU 工作最繁重的確切用量下,租用 GPU 的成本反而接近 API 的 2 倍。
最後這項結果常讓人意外,但並非偶然。hosted open-weight endpoint 是以高利用率運作的 GPU fleet,因此價格接近滿載 GPU 的成本。租用單張 GPU 且未讓它滿載運作,不可能擊敗滿載 GPU fleet 的價格。能夠擊敗的是 frontier pricing,因為它依模型能力定價,而不是依 silicon time 定價。
每個使用率下每 1 百萬個輸出 token 的成本
流量與使用率是從兩個角度描述同一件事。租用 GPU 是按小時計費。閒置時間不產生任何輸出,仍會產生成本。
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"
}
]3 個 API 欄位是截至 2026 年 8 月常見的公開牌價:託管的 8B 開放權重模型每 1 百萬個輸出 token 收取 0.20 美元,小型商用模型收取 5.00 美元,frontier 模型收取 15.00 美元。這些數值僅供說明。決定前請先查看今天的價格頁面;如果比較對象是固定月費方案,而不是按 token 計費,訂閱方案的計算方式會不同,價格交叉點也會再次變動。
讓這張卡全速運作時,每 1 百萬個輸出 token 的成本為 0.35 美元,確實很便宜。使用率為 10% 時,同樣的 1 百萬個 token 成本為 3.47 美元。使用率為 2% 時,成本為 17.36 美元,這已經與託管開放模型對相同輸出收取的 0.20 美元不在同一個價格範圍。
使用率低於約 10% 時,租用 GPU 是較昂貴的選擇。你為每 1 百萬個 token 的輸出支付 3.47 美元,但託管開放模型只收取 0.20 美元。差額換來的是隱私,以及不會隨用量變動的帳單。這些價值可能確實值得付費,但它們不是價格優勢,因此不要將其列為價格勝出。
每個 API 層級的損益平衡用量
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%。這個門檻很低。小型團隊在工作時間使用 coding agent,即可達到這個用量。
相較於小型商業層級,每月需要 73 百萬個 token,或 6.9% 的使用率。相較於託管的開放權重層級,所需使用率為 174%。超過 100% 按定義即無法達成,因為該顯示卡必須執行超過一個月所包含的時數。以這個每小時費率計算,單張中階顯示卡無法在這項比較中勝出。因此,只有更便宜的顯示卡、更快的顯示卡,或與價格無關的理由,才能改變結果。
公式未涵蓋的成本
公式只計算 GPU 小時與 token。數項實際成本不在其中。
冷啟動。 16-bit 權重的 8B 模型約占 16 GB,從本機磁碟載入 VRAM 需要數十秒。為節省租用費而在使用間隔停止伺服器,就必須每次在第一個請求時等待。若讓伺服器持續執行以避免等待,使用率就會大幅下降,導致每個 token 的成本上升。這項取捨正是 serverless inference 存在的主要原因。
儲存與下載。 權重檔案很大。16-bit 的 8B 模型約為 16 GB,量化為 4-bit 的 30B 模型約為 18 GB,而 16-bit 的 30B 模型完全無法放入 24 GB 顯示卡。模型規模越大,限制很快就會變得明顯;在高階模型中,執行 Kimi K3 這類兆參數開放模型代表僅權重就超過任何可按小時租用的單張顯示卡容量。這些磁碟空間每月都要付費,每次重建環境也都要耗費時間。執行 du -sh ~/.cache/huggingface/hub。經過一週的實驗後再執行一次。它的成長速度會超出預期,因為每個曾經嘗試過的量化版本仍會留在磁碟上。
你自己的時間。 Driver 與 CUDA 版本、昨天還能使用的 context length 今天卻發生 out-of-memory 錯誤,以及變更 chat template 的模型更新,這些都不會出現在每個 token 的成本中,但都會占用你的晚上。如果你之前沒有配置過這類伺服器,GPU VPS 實際提供的內容值得在租用一個月前先閱讀。
品質差距。 這是最大的隱藏成本,也是最難估算的成本。8B 開放模型不是 frontier model。如果它需要 3 次嘗試,而 frontier model 只需 1 次,那麼每個有用答案的實際價格就是圖表數值的 3 倍,而且它仍可能無法完成工作。在比較價格前,先使用自己的 prompts 進行比較。對於 agent 工作負載,通常的做法是依難度分流,並將低成本的本機 token 用於大量工作;控制 VPS 上的 agent 支出主要就是處理這件事。
你忘記的計費項目。 你停止的按小時計費 GPU instance,通常仍會繼續對其連接的儲存空間與保留的 IP 位址計費。請查看帳單,不要只看價格頁面。
自架服務勝出的情況不只是價格
以下 4 種情況中,成本計算並不是決定因素。
- 不能離開你控制範圍的資料。如果合規規範禁止將文字傳送給第三方,問題就不是每個 token 的價格。
- 按排程持續處理大量工作。每晚執行 6 小時的批次分類工作,依設計就是 25% 的使用率,而且不會讓帳單出現意外。
- 速率限制。你自己的 GPU 只有 1 個佇列,而且由你自行使用。
- 沒有任何 API 提供的模型。如果你需要特定的 fine-tune,就沒有可比較的替代方案。
如果你想先測試低成本版本,在 VPS 上使用 Ollama 執行小型模型只需花費一個下午,而根據你打算租用的顯示卡評估開放模型能告訴你實際需要哪一款 GPU。先在這裡測量,再決定是否租用 1 個月的 GPU。
FAQ
GPU VPS 每月產生多少 token 時,成本才會低於 API 定價?
以 GPU 的每月成本除以每百萬個輸出 token 的 API 價格。每月租金為 $365 的顯示卡,若對比每百萬個輸出 token 收取 15.00 美元的 frontier API,則每月產生 24.3 百萬個輸出 token 時達到損益平衡。若對比每百萬個 token 收取 5.00 美元的小型商用模型,則為 73 百萬個。若對比每百萬個 token 收取 0.20 美元的託管開放權重模型,單張中階顯示卡每月無法產生足夠的 token 來達到損益平衡。
為什麼託管的開放權重 API 比我自己的 GPU 便宜?
因為它的定價接近 GPU 滿載運作的成本,而你的顯示卡並未滿載。服務數千個並行請求的供應商,能讓整個 GPU fleet 維持接近飽和,因此可以接近產生 token 的邊際成本銷售。你的顯示卡一天大部分時間都處於閒置狀態,但你仍須支付這些閒置時數的成本。在 10% duty cycle 下,你每百萬個輸出 token 的成本為 3.47 美元,而對方只收取 0.20 美元。
我是否也應該計算輸入 token?
如果 prompt 很長,就應該計算。此處的比較只使用輸出 token,因為在聊天與 agent 工作負載中,輸出通常是主要成本。加入輸入 token 後,兩邊的計算方式都會改變。API 端會在帳單上列為獨立且價格較低的項目。使用自己的顯示卡時,prefill 會消耗 GPU 時間,因此該成本已包含在你測得的整體每秒 token 數中。請使用實際的 prompt 長度進行測量,這樣兩邊仍可比較。
如何測量公式所需的每秒 token 數?
以實際使用方式提供模型服務,然後在真實並行量下讀取整體產生速率。使用 Ollama 時,ollama run <model> --verbose 會以每秒 token 數列印 eval rate,但這只代表單一串流,會低估批次處理伺服器的速率。使用 vLLM 時,執行中的伺服器會在請求處理期間記錄 Avg generation throughput,應使用這個數值。同時監看 nvidia-smi。如果 GPU 在產生期間的使用率未接近 100%,表示你尚未測得上限。
GPU VPS 使用率低於 10% 時,是否值得租用?
以價格而言,不值得。在 10% duty cycle 下,每百萬個輸出 token 的成本為 3.47 美元;在 2% 下則為 17.36 美元。除了 frontier tier 之外,這兩者都高於本比較中的所有計量式 API。只有在你支付的是隱私需求,或是沒有任何 API 提供的模型時,才適合低於這條使用率門檻租用。