Что такое движок

Движок — это способ раскладки модели в VRAM + API обращения к модели. Шкала оценок (1–5): сложность — порог входа (настройка, зависимости, понимание параметров); возможности — что умеет движок (batching, квантизация, TP, API, hardware-coverage). Чем выше по списку, тем сложнее и тем мощнее.

Сравнение

ДвижокСложностьВозможностиКогда брать
vLLM3/54/5Де-факто стандарт production-сервинга: PagedAttention, continuous batching, OpenAI API, самый широкий hardware-coverage (NVIDIA, AMD ROCm, TPU, Gaudi, CPU)
SGLang4/55/5Максимальный throughput + structured output: RadixAttention (prefix-cache) до ~29% быстрее vLLM на H100, до 6.4× на prefix-heavy нагрузках; xGrammar для JSON
TensorRT-LLM5/55/5Максимальная производительность, только NVIDIA: FP8/FP4, peak throughput на H100/H200/B200, но нужна компиляция модели (длинный cold start, пересборка при смене модели). На 3090 нецелесообразно
llama.cpp2/53/5Edge / CPU / consumer GPU: GGUF (Q4_K_M, Q5_K_M, Q8_0), чистый C/C++ без зависимостей, offload слоёв CPU↔GPU, работает на 8 GB VRAM и даже на чистом CPU
Ollama1/52/5Одна команда, OpenAI-совместимый API, реестр готовых моделей. Dev, эксперименты, прототипы
TGI (Hugging Face)3/53/5Maintenance mode (2026): брать только если уже сидите в HF-стеке
LMDeploy (TurboMind)4/54/5~1.5–1.8× throughput vs vLLM на A100/H100

vLLM — оптимум «сложность/возможности» (3/5 vs 4/5). Поэтому путь до 1 млрд токенов — Ollama → llama.cpp → vLLM.

Путь модели: disk → RAM → VRAM

Модель не грузится «напрямую в GPU» — она идёт через RAM:

Путь модели: HuggingFace (X GB) → диск (X GB) → RAM (1.2X GB) → VRAM (1–2X GB)HuggingFaceX GBДискX GBRAM1.2X GBVRAM1–2X GB
  • RAM 1.2X — транзитный буфер: модель читается в RAM, потом копируется в VRAM; +10–20% overhead (OS, буферы, CUDA context).
  • VRAM 1–2X — веса (1X) + KV-cache (растёт с контекстом и конкурентностью: 0 → 1X+ на длинном) + 10–20% overhead. Короткий контекст ~1.1–1.3X, длинный (128K+) — 2X и выше.

Наш стек (Qwen3.8-27B-AWQ, 16 GB на диске, 2×RTX 3090): RAM ≥ 32 GB (2X, с запасом), VRAM ~20–24 GB на 32K контекст (1.3–1.5X), до ~39 GB на 256K (2.4X).

Форматы моделей

  • GGUF → локальный/edge (llama.cpp/Ollama).
  • AWQ/FP8 → production-сервер (vLLM/SGLang).

Наш стек (Qwen3.8-27B-AWQ-MTP, 2×RTX 3090, Ampere):

  • vLLM — основной production-движок (AWQ, TP=2, MTP);
  • SGLang — альтернатива при prefix-heavy нагрузке;
  • llama.cpp / Ollama — edge и CPU-фолбэк;
  • TensorRT-LLM — не наш сценарий (H100+ и компиляция моделей).

Что мы видели в референс-деплое

Путь нашего кластера: Ollama (Tesla M40) → llama.cpp (3060/4070 Ti под Proxmox) → vLLM (2×3090). Почему на каждом шаге меняли рантайм — в части 1 серии «Наш опыт», конфигурация vLLM — в части 3.

Вывод

Начинайте с Ollama «чтобы просто заработало», растите до llama.cpp за контролем контекста и VRAM, и заканчивайте на vLLM для production. Движок выбирают не по бенчмарку, а по тому, где ограничения текущего движка перестают тянуть вашу нагрузку.

Смежные материалы: Тюнинг vLLM (часть 3), Путь железа (часть 1), Tensor Parallelism, Continuous Batching.

← Матрица моделей по размерным классам: одна задача — одна модель 1 млрд токенов/сутки: финальная архитектура, тономика и что мы бы сделали по-другому →