TL;DR
- На LowCostGPU один инстанс с шаблоном vLLM даёт эндпоинт, совместимый с OpenAI; 8B на RTX 5090 обходится в $0,481 в час.
- Ожидайте около 2 800 суммарных токенов в секунду для 8B на RTX 5090, 900 — для 32B в 4-бит, 550 — для 70B в 4-бит.
- Стоимость за миллион выходных токенов равна часовому тарифу, делённому на число токенов в секунду, а затем умноженному на 3 600 и на миллион; зарезервированный тариф снижает её на 35 процентов.
- Самая частая причина OOM — оставленный max-model-len на максимуме модели в 128k; ограничивайте контекст и используйте KV-кэш в fp8.
Развёртывание одной командой
lowcostgpu launch --gpu rtx-5090 --template vllm --disk 60 \
--env MODEL=meta-llama/Llama-3.1-8B-Instruct
# ✓ i-52ab77c1 · https://i-52ab77c1.lowcostgpu.com:8000/v1
curl https://i-52ab77c1.lowcostgpu.com:8000/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{"model":"meta-llama/Llama-3.1-8B-Instruct",
"messages":[{"role":"user","content":"ping"}]}'Шаблон скачивает веса при первом запуске (трафик оплачивается: модель весом 16 GB обойдётся в $0,16). Поместите HF_HOME на том, и все последующие инстансы будут запускаться без повторной загрузки.
Подбор карты под модель
| Класс модели | Карта | $/ч | Суммарный tok/s ≈ | $ / млн выходных токенов ≈ |
|---|---|---|---|---|
| 7–8B FP16 | RTX 5090 | $0,481 | 2 800 | $0,048 |
| 14B FP16 / 32B-4bit | L40S | $0,448 | 900 | $0,138 |
| 70B-4bit | H100 PCIE | $1,811 | 550 | $0,91 |
Указанная производительность — типичные суммарные показатели непрерывного батчинга при среднем контексте; ваш микс промптов сдвинет их на ±40 %. Поэтому и существует раздел с бенчмарком.
Важные флаги
--max-model-len 8192 # cap context = cap KV-cache = predictable memory
--gpu-memory-utilization 0.92 # default 0.90; raise carefully once stable
--max-num-batched-tokens 8192 # throughput/latency dial — higher = more tok/s
--kv-cache-dtype fp8 # halves cache on Hopper/Blackwell — free VRAM
--tensor-parallel-size 2 # split across 2 GPUs when one is shortВсё остальное можно оставить по умолчанию, пока бенчмарк не покажет обратное. Самая частая причина OOM — оставлять --max-model-len на максимуме модели в 128k «на всякий случай» — во сколько это обходится, показывает раздел о KV-кэше.
Бенчмарк вместо веры на слово
vllm bench serve \
--base-url https://i-52ab77c1.lowcostgpu.com:8000 \
--model meta-llama/Llama-3.1-8B-Instruct \
--dataset-name random --random-input-len 512 --random-output-len 256 \
--request-rate 16 --num-prompts 512
# → throughput, TTFT p50/p99, ITL p50/p99Ориентируйтесь на два числа: суммарный tok/s (ваши расходы) и p99 time-to-first-token (ваши пользователи). Увеличивайте --request-rate, пока p99 TTFT не превысит ваш бюджет — эта скорость и есть честная пропускная способность карты для вашего профиля трафика.
Расчёт стоимости токенов
$/M output tokens = price_per_hour / (tokens_per_sec x 3600) x 1e6
# benchmark said 2,910 tok/s on the 5090:
0,481 / (2910 x 3600) x 1e6 = $0,046 per million output tokens
# reserved (-35%) and cache-hit traffic push it lower stillГотовность к продакшену
- Базовая нагрузка — на зарезервированных мощностях (−35 %), всплеск — на serverless — один баланс, две кривые.
- Проверка работоспособности GET /health; перезапуск при сбое — переключатель шаблона.
- Веса на томе только для чтения — воркеры на замену запускаются за секунды, и неудачное развёртывание никогда не повредит библиотеку.
- Никогда не запускайте сервинг на прерываемых мощностях — этот режим для этапа обучения в вашем пайплайне.
Применить цифры на практике
Каждая цена в этом руководстве — наш тариф в реальном времени: фиксированный, ≥30 % ниже медианы рынка, с посекундной тарификацией. Разверните ту же конфигурацию, что описана выше, из консоли примерно за 30 секунд — оплата криптой, без карты и без KYC.


