SSD Nodes Learn 🎉 VPS mula $5.50/buwan
Mga Gabay Matt ConnorNi Matt Connor · Na-update 2026-08-13

GPU VPS vs API: Kailan Mas Mura?

Alamin ang eksaktong break-even volume: $365/buwan na GPU VPS ay pumapantay sa frontier API sa {{q:breakeven_duty:breakeven_tokens_millions@-1}}M output tokens.

Saan talaga pumapantay ang gastos

Sa isang punto, mas matipid ang GPU VPS kaysa sa per-token API billing: kapag ang fixed monthly rent, na hinati sa output tokens na aktuwal mong nagagawa sa buwang iyon, ay mas mababa kaysa singil ng API para sa kaparehong bilang ng tokens. Hindi nagbabago ang rent. Nagbabago ang API bill sa bawat request. Kaya ang sagot ay palaging monthly volume, hindi simpleng oo o hindi.

Gamitin natin ang mid-range GPU VPS na nagkakahalaga ng $0.50 kada oras, o $365 para sa buwang may 730 oras. Kung ikukumpara sa frontier model API, pumapantay ang gastos sa 24.3 milyong output tokens kada buwan. Kung maliit na commercial model ang ikukumpara, 73 milyon ito. Kung hosted open-weight model na kapareho ang laki ang ikukumpara, hindi kailanman pumapantay ang gastos dahil hindi makakagawa ng sapat na tokens ang isang card sa loob ng isang buwan para maabot ang crossing point.

Hindi sinasagot ng published break-even studies ang tanong na ito. Dalawa sa mga ito mula sa unang bahagi ng 2026 ang naglagay sa crossover malapit sa 72% sustained utilisation sa isang H200, at nasa pagitan ng 22% at 48% duty cycle sa isang MI300X. Pareho nilang ikinukumpara ang gastos sa serverless product ng parehong vendor, at pareho nilang ginagamit ang presyo ng accelerators na mas mahal kada oras kaysa sa karaniwang ginagastos ng karamihan sa mga mambabasa rito kada buwan. Pareho ang arithmetic. Ang sumusunod na kalkulasyon ay iniaangkop ito para sa isang card, isang open model na nasa 7B hanggang 30B, at karaniwang metered API billing.

Ang bawat numerong nasa ibaba ay input, hindi resulta. Palitan ang lahat ng ito ng sarili mong values.

Ang formula, para maipasok mo ang sarili mong mga numero

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

Apat ang input, at masusukat o mahahanap mo ang lahat ng ito.

  • hourly_rate ang gastos kada oras ng GPU VPS, kasama ang mga oras na idle ito. Kung buwanan ang bayad mo, hatiin ang buwanang presyo sa 730.
  • tokens_per_second ang pinagsama-samang output rate na napapanatili ng server sa aktuwal mong concurrency. Hindi ito ang single-stream na numerong nasa chart ng vendor.
  • duty_cycle ang bahagi ng buwan na ginagamit ng GPU sa pag-generate ng tokens. Ang isang box na nirentahan mo buong buwan pero ginagamit lamang nang dalawang oras bawat araw ay nasa 8.3%.
  • api_price_per_million ang metered price na ipinapaghambing mo para sa output tokens.

Output tokens ang ginagamit ng halimbawa sa magkabilang panig, dahil output ang bumubuo sa malaking bahagi ng bill para sa chat at agent work. Kung mahahaba ang prompts mo, idagdag ang input sa magkabilang panig. Sa API side, hiwalay itong line item sa invoice. Sa sarili mong card, kumokonsumo ng GPU time ang prefill, kaya lumalabas na ito bilang mas mababang nasusukat na tokens_per_second.

Paano sukatin ang tokens per second bago pagkatiwalaan ang arithmetic

Nakabatay ang lahat ng nasa itaas sa isang sukat na numero. Kung mali ito nang factor na tatlo, mali rin nang factor na tatlo ang sagot. Sukatin ito sa card na nirerentahan mo, gamit ang model at quantisation na talagang patatakbuhin mo.

Ibinibigay ng Ollama ang single-stream figure sa isang command:

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

Nagpi-print ang --verbose ng timing block pagkatapos ng sagot. Ang mahalagang linya ay eval rate, na nasa tokens per second at generation lamang ang binibilang. Ang prompt eval rate ay prefill speed at karaniwan itong mas mataas. Magkakaiba ang mga numero mo sa mga ito:

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

Maling numero ang single stream para sa cost model dahil sinusukat nito ang isang request sa bawat pagkakataon sa isang card na kayang magsilbi ng marami nang sabay-sabay. Para sa aggregate figure, i-serve ang model gamit ang vLLM at basahin ang throughput na iniuulat ng server tungkol sa sarili nito:

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

Habang may mga request na isinasagawa, nagla-log ang server ng status line sa bawat reporting interval. Nagbabago ang eksaktong fields sa iba’t ibang vLLM release, kaya ang sa iyo ang basahin, hindi ang akin:

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%

Ang Avg generation throughput ang numerong kailangan ng formula. Tumataas ito habang nagdaragdag ka ng concurrent requests hanggang mapuno ang KV cache (key-value cache, ang per-request attention state na pinananatili ng vLLM sa VRAM), at pagkatapos ay hindi na ito tumataas. Kapag lumampas ka roon, pumipila ang mga request sa halip na bumilis, na makikita mo bilang tumataas na bilang ng Waiting. May load generator din ang vLLM na tinatawag na vllm bench serve. Nagbabago ang mga flag nito sa iba’t ibang version, kaya patakbuhin ang vllm bench serve --help sa version na na-install mo sa halip na kumopya ng command mula sa isang blog post.

I-monitor ang card habang tumatakbo ang test:

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

Kung nananatili malapit sa 100% ang utilization.gpu habang nagge-generate, throughput-bound ka at ang nasukat mong numero ang totoong ceiling. Kung mababa ito, ibang bagay ang limitasyon: napakakaunting concurrent requests, mabagal na client, o model na hindi kasya sa VRAM at bahagyang nao-offload sa system RAM. Magkakaiba nang malaki ang trade-off ng Ollama at vLLM dito, at sapat ang laking agwat ng mga ito sa parehong card para magbago nang factor na ilang beses ang break-even.

Ano ang hitsura ng bill sa loob ng isang buwan

Ang worked example ay isang 24 GB GPU VPS sa halagang $0.50 bawat oras, na nagpapatakbo ng 8B open model gamit ang vLLM. Sinukat ito sa pinagsama-samang bilis na 400 output token bawat segundo na may 16 sabay-sabay na request. Fixed ang renta kahit hindi mo gamitin ang card. Sa bilis na iyon, ang kapasidad ay 1,051 milyong output token bawat buwan. Ito ang dami ng output na magagawa ng card kung hindi ito kailanman hihinto.

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
  }
]

Flat ang GPU line sa 365 dollars dahil walang pakialam ang renta sa ginagawa mo sa card. Ang bawat API line ay tuwid na linya na dumaraan sa zero. Isang beses eksaktong nag-i-intersect ang bawat pares.

Sa 25 milyong output token bawat buwan, ang frontier API ay naniningil ng 375 dollars, kaya wala pang sampung dolyar ang pagitan ng dalawang opsyon. Sa 50 milyon, naniningil ang maliit na commercial model ng 250 dollars at ito pa rin ang mas murang opsyon. Sa 1000 milyong output token, na nangangailangan na maging abala ang card sa 95% ng buwan, naniningil ang hosted open-weight API ng 200 dollars kumpara sa kaparehong renta. Mas mataas nang halos dalawang beses ang gastos sa card sa eksaktong volume kung kailan ito pinakamasinsinang ginagamit.

Nakakagulat ang huling resultang ito para sa maraming tao, pero hindi ito nagkataon lamang. Ang hosted open-weight endpoint ay GPU fleet na pinatatakbo sa mataas na utilisation, kaya malapit ang presyo nito sa gastos ng isang card na saturated. Hindi mo malalampasan ang saturated fleet sa pag-renta ng isang card at pagpapatakbo rito nang mas mababa sa full load. Ang maaari mong malampasan ay ang frontier pricing, na nakabatay sa capability sa halip na sa oras ng paggamit ng silicon.

Gastos bawat isang milyong output token sa bawat duty cycle

Ang volume at duty cycle ay iisang katotohanan na tinitingnan mula sa magkaibang panig. Bumibili ang renta ng mga oras. Walang nalilikha ang mga idle na oras, pero may gastos pa rin.

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"
  }
]

Ang 3 API column ay karaniwang published list price noong August 2026: 0.20 dollars bawat isang milyong output token para sa isang hosted 8B open-weight model, 5.00 dollars para sa isang maliit na commercial model, at 15.00 dollars para sa isang frontier model. Mga halimbawang halaga lamang ang mga ito. Suriin ang price page ngayon bago magpasya. Kung ang paghahambing mo ay laban sa flat monthly plan sa halip na metered token, iba ang subscription arithmetic at muling nagbabago ang crossing point.

Patakbuhin ang card sa buong kapasidad nito at ang gastos sa isang milyong output token ay 0.35 dollars, na tunay na mura. Sa 10% duty cycle, ang parehong isang milyon ay nagkakahalaga ng 3.47 dollars. Sa 2% duty cycle, nagkakahalaga ito ng 17.36 dollars. Hindi na ito kapareho ng range ng 0.20 dollars na sinisingil ng isang hosted open model para sa kaparehong output.

Sa duty cycle na humigit-kumulang mas mababa sa 10%, mas mahal ang pagrenta ng GPU. Nagbabayad ka ng 3.47 dollars bawat isang milyong token para sa output na ibinebenta sa halagang 0.20 dollars. Ang binibili mo kapalit ng diperensiya ay privacy at bill na hindi nagbabago. Maaaring may tunay na halaga ang mga iyon. Hindi sila cost advantage, kaya huwag silang ituring na ganoon.

Ang break-even volume para sa bawat API tier

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
  }
]

Kung ihahambing sa frontier tier, kailangan mo ng 24.3 milyong output token bawat buwan. Katumbas lamang ito ng 2.3% ng kayang iproseso ng card. Mababa ang pamantayang ito. Maaabot ito ng maliit na team na nagpapatakbo ng coding agents sa buong oras ng trabaho.

Kung ihahambing sa small commercial tier, kailangan mo ng 73 milyong token bawat buwan, o 6.9% duty cycle. Kung ihahambing sa hosted open-weight tier, 174% ang kinakailangang duty cycle. Ayon sa depinisyon, hindi maaabot ang anumang higit sa 100%: kailangang tumakbo ang card nang mas maraming oras kaysa sa mayroon sa isang buwan. Hindi kayang manalo ng isang mid-range card sa ganitong hourly rate sa paghahambing na ito. Kaya ang tanging paraan para magbago ang resulta ay mas murang card, mas mabilis na card, o isang dahilan na hindi nakabatay sa presyo.

Ang Hindi Ipinapakita ng Formula

Tinatantiya ng formula ang gastos sa GPU hours at tokens. May ilang aktuwal na gastos na hindi nito kasama.

Cold starts. Ang 8B model na may 16-bit weights ay humigit-kumulang 16 GB, at ang pag-load nito mula sa local disk papunta sa VRAM ay umaabot ng ilang dosenang segundo. Kung ihihinto mo ang box kapag hindi ginagamit upang makatipid sa bayad, kailangan mong hintayin ang prosesong ito sa bawat unang request. Kung iiwan mo naman itong tumatakbo para maiwasan ang paghihintay, bababa nang malaki ang duty cycle at tataas ang cost per token. Ito ang pangunahing dahilan kung bakit umiiral ang serverless inference.

Storage at download. Malalaki ang weights. Ang 8B model na may 16-bit weights ay nasa 16 GB, ang 30B model na naka-quantise sa 4-bit ay nasa 18 GB, at hindi kasya sa 24 GB card ang 30B model na may 16-bit weights. Mabilis lumiit ang limitasyon sa high end. Ang pagpapatakbo ng open model na may isang trilyong parameter gaya ng Kimi K3 ay nangangahulugang mas malaki pa sa anumang single card na maaari mong rentahan kada oras ang weights pa lamang. Magbabayad ka para sa disk na iyon bawat buwan, at magbabayad ka rin sa oras sa bawat rebuild. Patakbuhin ang du -sh ~/.cache/huggingface/hub pagkatapos ng isang linggong mga experiment. Mas mabilis itong lumalaki kaysa sa inaasahan mo dahil nananatili roon ang bawat quantisation na minsan mong sinubukan.

Sarili mong oras. Mga version ng driver at CUDA, mga out-of-memory error sa context length na gumana kahapon, at model update na nagbabago sa chat template. Wala sa cost-per-token figure ang mga ito, ngunit sinisingil ang lahat sa mga gabi mo. Kung hindi ka pa nakakapag-size ng ganitong box, sulit basahin ang aktuwal na ibinibigay ng GPU VPS bago ka mag-commit sa isang buwang renta.

Agwat sa kalidad. Ito ang pinakamalaking nakatagong gastos at pinakamahirap presyuhan. Hindi frontier model ang 8B open model. Kung kailangan nito ng tatlong pagtatangka samantalang isang pagtatangka lang ang kailangan ng frontier model, tatlong beses na mas mataas ang aktuwal na presyo nito bawat kapaki-pakinabang na sagot kaysa sa halagang nasa chart, at maaari pa rin nitong hindi magawa ang task. Ikumpara muna ito gamit ang sarili mong prompts bago magkumpara batay sa presyo. Para sa agent workloads, karaniwang solusyon ang pag-route batay sa hirap at paggamit ng murang local tokens para sa bulk work. Karamihan ng pagkontrol sa gastos ng agent sa isang VPS ay tungkol dito.

Mga billing na nakalimutan mo. Ang hourly GPU instance na ihihinto mo ay madalas patuloy na sinisingil para sa attached storage at reserved IP address nito. Suriin ang invoice, hindi ang price page.

Kapag mas kapaki-pakinabang ang self-hosting kahit hindi presyo ang batayan

Apat na sitwasyon kung saan hindi ang kalkulasyon ang pangunahing batayan.

  • Data na hindi maaaring lumabas sa iyong kontrol. Kung ipinagbabawal ng isang compliance rule na ipadala ang text sa third party, hindi presyo bawat token ang tinatanong.
  • Tuloy-tuloy na mataas na volume ayon sa iskedyul. Ang batch classification job na tumatakbo nang anim na oras bawat gabi ay likas na nasa 25% duty cycle, at hindi ka nito ginugulat sa bill.
  • Rate limits. Iisa ang queue ng sarili mong card, at ikaw ang kumokontrol dito.
  • Isang model na walang iniaalok na API. Kung kailangan mo ng partikular na fine-tune, wala kang ibang maihahambing dito.

Kung gusto mo munang subukan ang murang bersyon, isang hapon lang ang kailangan para sa pagpapatakbo ng maliit na model sa isang VPS gamit ang Ollama, at ipinapakita ng pagtutugma ng laki ng open model sa card na uupahan mo kung aling GPU ang aktuwal mong kailangan. Magsukat muna roon bago mag-sign up para sa isang buwang GPU rent.

FAQ

Sa anong buwanang dami ng token nalalamangan ng GPU VPS ang presyo ng API?

Hatiin ang buwanang gastos sa GPU sa presyo ng API bawat isang milyong output token. Ang card na inuupahan sa halagang $365 bawat buwan, kumpara sa frontier API na nagkakahalaga ng 15.00 dollars bawat isang milyon, ay nagba-break even sa 24.3 milyong output token bawat buwan. Kumpara sa isang maliit na commercial model na nagkakahalaga ng 5.00 dollars, nasa 73 milyon ito. Kumpara sa hosted open-weight model na nagkakahalaga ng 0.20 dollars, hindi makakagawa ng sapat na token ang isang mid-range card sa loob ng isang buwan para mag-break even.

Bakit mas mura ang hosted open-weight API kaysa sa sarili kong GPU?

Dahil ang presyo nito ay nakatakda malapit sa gastos ng isang GPU na lubos na ginagamit, samantalang hindi lubos na ginagamit ang iyong card. Ang provider na nagseserbisyo ng libo-libong concurrent request ay nagpapanatili sa fleet nito na malapit sa saturation, kaya nakakapagbenta ito ng mga token na malapit sa marginal cost ng paggawa sa mga ito. Karamihan ng araw ay idle ang iyong card, pero binabayaran mo ang mga oras na idle ito. Sa 10% duty cycle, ang gastos mo ay 3.47 dollars bawat isang milyong output token, kumpara sa 0.20 dollars nila.

Dapat ko bang bilangin ang input token pati ang output token?

Bilangin ang mga ito kung mahahaba ang iyong prompt. Output token lamang ang ginagamit sa paghahambing na ito dahil ito ang dominanteng bahagi sa chat at agent work. Kapag idinagdag ang input, nagbabago ang magkabilang panig. Sa API side, hiwalay at mas mababang-presyong item ito sa invoice. Sa sarili mong card, kumokonsumo ng GPU time ang prefill, kaya kasama na ang gastos nito sa aggregate tokens per second na sinukat mo. Sukatin ito gamit ang aktuwal mong haba ng prompt upang manatiling maihahambing ang dalawang panig.

Paano ko susukatin ang tokens per second na kailangan ng formula?

I-serve ang model sa paraang gagamitin mo rito, pagkatapos ay basahin ang aggregate generation rate sa ilalim ng aktuwal na concurrency. Sa Ollama, nagpi-print ang ollama run <model> --verbose ng eval rate sa tokens per second, pero iisang stream lamang iyon kaya mas mababa ang nasusukat kaysa sa isang batched server. Sa vLLM, nagla-log ang tumatakbong server ng Avg generation throughput habang may mga request na isinasagawa, at iyon ang halagang dapat gamitin. Kasabay nito, i-monitor ang nvidia-smi. Kung hindi malapit sa 100% ang GPU utilisation habang nagge-generate, hindi mo pa natutukoy ang ceiling.

Sulit bang mag-rent ng GPU VPS kapag mas mababa sa 10% ang utilisation?

Hindi kung presyo ang batayan. Sa 10% duty cycle, nagbabayad ka ng 3.47 dollars bawat isang milyong output token, at sa 2% ay 17.36 dollars. Pareho itong mas mataas kaysa sa lahat ng metered API sa paghahambing na ito, maliban sa frontier tier. Mag-rent nang mas mababa sa antas na iyon kung privacy o isang model na walang inaalok na API ang tunay na kailangan mo.