SSD Nodes Learn 🎉 VPS от $4.99/мес
Руководства Matt ConnorАвтор: Matt Connor · Обновлено 2026-08-08

GPU VPS или API: расчет точки безубыточности

Узнайте, при каком объеме токенов аренда GPU VPS становится выгоднее оплаты API. Мы приводим формулу расчета и точные цифры для моделей разных классов, чтобы вы оптимизировали затраты.

Где на самом деле находится точка безубыточности

GPU VPS выгоднее оплаты API за токен в одном случае: когда фиксированная ежемесячная арендная плата, деленная на количество сгенерированных за месяц токенов, становится меньше стоимости тех же токенов при использовании API. Арендная плата не меняется. Счет за API растет с каждым запросом. Поэтому ответом всегда является ежемесячный объем трафика, а не просто «да» или «нет».

Рассчитаем это для GPU VPS среднего уровня стоимостью $0.50 в час, что составляет $365 за месяц из 730 часов. При сравнении с API передовых моделей точка безубыточности достигается на уровне 24.3 миллионов выходных токенов в месяц. При сравнении с небольшой коммерческой моделью этот показатель составляет 73 миллион. При сравнении с хостингом моделей с открытыми весами того же размера точка безубыточности не достигается никогда, так как одна карта не может сгенерировать достаточное количество токенов в месяц, чтобы достичь порога окупаемости.

Опубликованные исследования безубыточности не дают ответа на этот вопрос. Два из них, вышедшие в начале 2026 года, определяют точку пересечения на уровне 72% постоянной загрузки для H200 и от 22% до 48% рабочего цикла для MI300X. Оба исследования сравнивают показатели с собственным 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

Четыре входных параметра, каждое из которых можно измерить или найти.

  • hourly_rate — стоимость GPU VPS в час, включая время простоя. Если вы платите помесячно, разделите эту сумму на 730.
  • tokens_per_second — совокупная скорость генерации, которую сервер поддерживает при вашей реальной нагрузке. Это не пиковое значение для одного потока из маркетинговых таблиц поставщика.
  • duty_cycle — доля времени в месяц, в течение которой GPU занят генерацией токенов. Если вы арендуете сервер на месяц и используете его по два часа в день, этот показатель составит 8.3%.
  • api_price_per_million — цена за выходные токены у провайдера, с которым вы сравниваете стоимость.

В примере учитываются выходные токены с обеих сторон, так как именно они составляют основную часть счета при работе чат-ботов и агентов. Если ваши промпты длинные, добавьте стоимость входных токенов к обеим сторонам. В случае с API это будет отдельная строка в счете. При использовании собственного сервера предварительное заполнение (prefill) потребляет ресурсы GPU, поэтому оно уже отражено в снижении итогового показателя tokens_per_second.

Как измерить количество токенов в секунду перед тем, как доверять расчетам

Все вышесказанное опирается на одно измеренное число. Ошибка в три раза в этом показателе приведет к ошибке в три раза в итоговом ответе. Измеряйте его на той видеокарте, которую вы арендуете, используя именно ту модель и квантование, которые планируете запускать.

Ollama позволяет получить показатель для одного потока одной командой:

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

--verbose выводит блок с таймингами после завершения ответа. Важная строка — eval rate, она показывает количество токенов в секунду, учитывая только генерацию. 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), после чего рост прекращается. Если увеличить нагрузку еще сильнее, запросы встанут в очередь вместо ускорения, что будет видно по растущему счетчику 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 делают здесь принципиально разные компромиссы, и разрыв между ними на одной и той же карте достаточно велик, чтобы изменить точку окупаемости в несколько раз.

Как выглядит счет за месяц

Рассмотрим пример: GPU VPS с 24 GB видеопамяти за $0.50 в час, на котором запущена модель 8B через vLLM. Суммарная производительность составляет 400 выходных токенов в секунду при 16 одновременных запросах. Арендная плата фиксирована независимо от использования карты. При такой нагрузке пропускная способность составляет 1,051 миллиона выходных токенов в месяц — это объем, который карта выдает при непрерывной работе.

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 долларов, так как арендная плата не зависит от нагрузки. Линии стоимости API проходят через ноль. Каждая пара графиков пересекается ровно один раз.

При объеме 25 миллионов выходных токенов в месяц использование frontier API обходится в 375 долларов, поэтому разница между вариантами составляет менее десяти долларов. При 50 миллионах токенов небольшая коммерческая модель стоит 250 долларов и остается более выгодным вариантом. При 1000 миллионах выходных токенов, для чего карта должна быть загружена на 95% времени, стоимость использования хостинга с открытыми весами составляет 200 долларов при той же арендной плате. В этом случае аренда карты проигрывает почти в два раза при максимальной загрузке.

Последний результат часто удивляет, но это не случайность. Хостинг для моделей с открытыми весами — это парк GPU, работающий с высокой утилизацией, поэтому его цена близка к стоимости работы одной полностью загруженной карты. Невозможно превзойти по цене парк с высокой утилизацией, арендуя одну карту и используя её не на полную мощность. Что действительно можно превзойти, так это ценообразование frontier-моделей, которое определяется их возможностями, а не временем работы оборудования.

Стоимость миллиона выходных токенов при каждом коэффициенте использования

Объем и коэффициент использования — это два взгляда на один и тот же факт. Аренда оплачивается по часам. Простаивающие часы не приносят результата, но всё равно стоят денег.

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 содержат типичные опубликованные цены по состоянию на август 2026 года: 0.20 долларов за миллион выходных токенов для размещаемой модели с открытыми весами (8B), 5.00 долларов для небольшой коммерческой модели и 15.00 долларов для передовой модели. Эти данные приведены для примера. Перед принятием решений сверьтесь с актуальной страницей цен. Если вы сравниваете стоимость с фиксированным ежемесячным тарифом, а не с оплатой за токены, то расчет подписки выполняется иначе, и точка окупаемости смещается.

При работе оборудования на полной загрузке миллион выходных токенов стоит 0.35 долларов, что действительно дешево. При коэффициенте использования 10% тот же миллион стоит 3.47 долларов. При коэффициенте 2% стоимость составляет 17.36 долларов, что несопоставимо с 0.20 долларами, которые взимают за аналогичный объем вывода при использовании размещаемой модели с открытыми весами.

При коэффициенте использования ниже примерно 10% аренда GPU становится дорогим выбором. Вы платите 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
  }
]

Для уровня frontier вам требуется 24.3 миллионов выходных токенов в месяц, что составляет всего 2.3% от производительности карты. Это низкий порог. Небольшая команда, использующая агентов для написания кода в течение рабочего дня, легко его преодолевает.

Для уровня small commercial вам требуется 73 миллионов токенов в месяц, или 6.9% рабочего цикла. Для уровня hosted open-weight требуемый рабочий цикл составляет 174%. Любое значение выше 100% по определению недостижимо: карте пришлось бы работать больше часов, чем содержит месяц. Одна карта среднего уровня при такой почасовой ставке не может выиграть в этом сравнении, поэтому изменить результат можно только с помощью более дешевой карты, более быстрой карты или причин, не связанных с ценой.

Что скрывает формула

Формула учитывает стоимость часов работы GPU и токенов. Однако существует ряд реальных затрат, которые остаются за рамками расчетов.

Холодный старт. Модель 8B с 16-битными весами занимает около 16 GB, и её загрузка с локального диска в VRAM занимает десятки секунд. Если останавливать инстанс между сеансами для экономии, вы будете платить временем ожидания при каждом первом запросе. Если оставить его запущенным, чтобы избежать задержек, коэффициент использования оборудования снизится, что увеличит стоимость одного токена. Этот компромисс — основная причина существования serverless-инференса.

Хранилище и загрузка. Веса моделей имеют большой объем. Модель 8B в 16-битном представлении занимает около 16 GB, модель 30B с квантованием до 4 бит — около 18 GB, а модель 30B в 16-битном представлении вообще не поместится на карту с 24 GB памяти. Ограничения становятся заметны очень быстро, особенно когда запуск открытой модели с триллионом параметров, такой как Kimi K3, означает, что одни только веса превышают объем памяти любой карты, доступной для аренды по часам. Вы платите за этот диск каждый месяц и тратите время при каждой пересборке. Запускайте du -sh ~/.cache/huggingface/hub после недели экспериментов. Объем данных растет быстрее, чем кажется, так как каждая версия модели, которую вы пробовали, всё еще занимает место.

Ваше личное время. Версии драйверов и CUDA, ошибки нехватки памяти (out-of-memory) при длине контекста, которая работала вчера, обновление модели, меняющее шаблон чата. Ничего из этого не отражено в показателе стоимости за токен, но всё это оплачивается вашими вечерами. Если вы ранее не подбирали конфигурацию таких серверов, стоит прочитать что на самом деле представляет собой GPU VPS, прежде чем оформлять аренду на месяц.

Разрыв в качестве. Это самая большая скрытая стоимость, которую труднее всего оценить. Открытая модель 8B не является передовой (frontier model). Если ей требуется три попытки там, где передовой модели достаточно одной, её реальная цена за полезный ответ в три раза выше табличной, и она всё равно может не справиться с задачей. Сравнивайте модели на своих промптах, прежде чем сравнивать их по цене. Для агентских рабочих нагрузок обычно применяют маршрутизацию по сложности: дешевые локальные токены используются для массовых задач, что по сути и является основой контроля расходов на агентов при работе на VPS.

Забытые счета. За остановленный почасовой GPU-инстанс часто продолжают списывать плату за подключенное хранилище и зарезервированный IP-адрес. Читайте счета, а не страницу с ценами.

Когда self-hosting выигрывает не за счет цены

Четыре случая, когда экономическая выгода не является решающим фактором.

  • Данные, которые не должны покидать ваш контур. Если правила комплаенса запрещают передачу текста третьим лицам, стоимость токена перестает быть главным вопросом.
  • Стабильно высокая нагрузка по расписанию. Пакетная задача классификации, которая выполняется шесть часов каждую ночь, имеет коэффициент использования 25% по определению и никогда не приводит к неожиданным счетам.
  • Ограничения частоты запросов (rate limits). Ваша собственная видеокарта имеет одну очередь, и она принадлежит только вам.
  • Модель, которую не предлагает ни один API. Если вам нужна специфическая дообученная модель, сравнивать ее просто не с чем.

Если вы хотите сначала протестировать бюджетный вариант, запуск небольшой модели на VPS с помощью Ollama займет один вечер, а оценка требований открытой модели к видеокарте покажет, какой GPU вам действительно нужен. Проведите замеры перед тем, как оплачивать аренду GPU на месяц.

FAQ

При каком ежемесячном объеме токенов GPU VPS выгоднее, чем API?

Разделите ежемесячную стоимость аренды GPU на цену API за миллион выходных токенов. При стоимости аренды карты 365 долларов в месяц и цене передового API 15.00 долларов за миллион, точка безубыточности составит 24.3 миллионов выходных токенов в месяц. В сравнении с небольшой коммерческой моделью по цене 5.00 долларов, это значение равно 73 миллионам. При сравнении с хостингом моделей с открытыми весами по цене 0.20 долларов, одна карта среднего уровня не сможет сгенерировать достаточное количество токенов в месяц, чтобы окупиться.

Почему API для моделей с открытыми весами стоит дешевле, чем собственный GPU?

Потому что цена API установлена близко к стоимости полностью загруженного GPU, а ваша карта не загружена полностью. Провайдер, обслуживающий тысячи одновременных запросов, поддерживает высокую загрузку своего парка оборудования, поэтому может продавать токены по цене, близкой к предельным издержкам на их производство. Ваша карта простаивает большую часть дня, и вы платите за часы простоя. При 10% коэффициенте использования ваша стоимость составляет 3.47 долларов за миллион выходных токенов против их 0.20 долларов.

Нужно ли учитывать входные токены наравне с выходными?

Учитывайте их, если ваши промпты длинные. Данное сравнение использует только выходные токены, так как они являются основным фактором затрат при работе чат-ботов и агентов. Добавление входных токенов меняет обе стороны уравнения. В случае с API это отдельная позиция в счете с более низкой ценой. На вашей собственной карте этап prefill потребляет время GPU, поэтому стоимость уже включена в совокупное количество токенов в секунду, которое вы измерили. Проводите измерения с реальной длиной промптов, чтобы обе стороны оставались сопоставимыми.

Как измерить количество токенов в секунду, необходимое для формулы?

Запустите модель в режиме, в котором планируете её использовать, затем считайте совокупную скорость генерации при реальной нагрузке. В Ollama команда ollama run <model> --verbose выводит eval rate в токенах в секунду, но это значение для одного потока, которое занижает показатели пакетного сервера. В vLLM работающий сервер записывает в логи Avg generation throughput во время обработки запросов — именно это число и следует использовать. Одновременно с этим отслеживайте nvidia-smi. Если загрузка GPU во время генерации не близка к 100%, значит, вы еще не достигли предела производительности.

Стоит ли арендовать GPU VPS при загрузке ниже 10%?

С точки зрения цены — нет. При 10% коэффициенте использования вы платите 3.47 долларов за миллион выходных токенов, а при 2% — 17.36 долларов. Оба значения выше, чем у любого API с оплатой по факту использования в этом сравнении, за исключением передового уровня. Арендуйте ниже этого порога только в том случае, если вы платите за конфиденциальность или за модель, которую не предлагает ни один API.