Моделі з відкритими вагами стали достатньо добрими, щоб запуск LLM на власному залізі був реалістичним варіантом, а не дослідницьким проєктом. Родини Llama, Qwen, Mistral, Gemma і DeepSeek пропонують моделі від кількох мільярдів до сотень мільярдів параметрів, багато з них — за ліцензіями, що дозволяють комерційне використання. Для більшості компаній питання вже не «чи можемо?», а «чи варто і як?». У гайді — про рішення, інструменти, розрахунок заліза й операційну роботу, яку блоги вендорів зазвичай оминають.

Коли власний хостинг доречний

Self-hosting виправданий однією з чотирьох причин:

  1. Дані не можуть залишати вашу інфраструктуру. Регульовані дані, договори з клієнтами, що забороняють обробку третіми сторонами, секретна чи оборонна робота. Це найпоширеніша й найсильніша причина; див. приватність LLM-застосунків.
  2. Великий стабільний обсяг вузької задачі. Класифікація, видобування даних чи ембеддинг мільйонів елементів на день, коли мала донавчена модель на власних GPU вигідніша за потокенну оплату. Див. fine-tuning, RAG чи промпти.
  3. Вимоги до затримки чи роботи офлайн. Edge-розгортання, виробництва, on-premises продукти без надійного інтернету.
  4. Контроль. Фіксація точної версії моделі на роки, власні налаштування декодування, незалежність від змін політик вендора.

Зазвичай self-hosting не виправданий для універсальних асистентів, складних агентів і кодування, де фронтирні моделі через API залишаються суттєво сильнішими, а також для малих і нерівномірних обсягів, де GPU, що простоюють, коштують більше за виклики API. Багато команд приходять до гібриду: фронтирні API для складних задач, власні моделі — для чутливих чи масових.

Вибір сервера інференсу

Інструмент Найкраще для Примітки
vLLM Продакшен-обслуговування на GPU PagedAttention, continuous batching, OpenAI-сумісний API, тензорний паралелізм, структурований вивід
SGLang Високопродуктивне обслуговування, складні програми промптів Кешування префіксів RadixAttention (Zheng et al., 2023)
Hugging Face TGI Продакшен в екосистемі HF Зрілий, добра інтеграція з HF Hub
Ollama Машини розробників, невеликі внутрішні інструменти Встановлення однією командою, бібліотека моделей, побудований на llama.cpp
llama.cpp CPU, Apple Silicon, edge-пристрої Квантизовані моделі GGUF, мінімум залежностей

Ключова інновація vLLM — PagedAttention, що керує кешем ключів і значень уваги сторінками, як віртуальною пам'яттю, зменшуючи фрагментацію й дозволяючи значно більші батчі; стаття повідомляє про у 2–4 рази вищу пропускну здатність порівняно з попередніми системами за тієї самої затримки (Kwon et al., 2023). Разом із continuous batching — додаванням нових запитів у батч, що вже виконується, замість очікування — саме тому спеціалізований сервер обслуговує значно більше користувачів на GPU, ніж наївний скрипт.

Наш стандарт: Ollama для локальної розробки, vLLM для продакшену. Обидва надають OpenAI-сумісні ендпоінти, тож код застосунку лишається тим самим.

# vLLM-сервер у продакшен-стилі з OpenAI-сумісним API
vllm serve Qwen/Qwen2.5-14B-Instruct \
  --max-model-len 16384 \
  --gpu-memory-utilization 0.90 \
  --enable-prefix-caching \
  --api-key "$VLLM_API_KEY"

Розрахунок пам'яті GPU

Пам'ять GPU — головне обмеження. Домінують дві складові:

Ваги моделі: параметри × байти на параметр.

Розмір моделі FP16/BF16 INT8 4 біти
8B ~16 ГБ ~8 ГБ ~5 ГБ
14B ~28 ГБ ~14 ГБ ~9 ГБ
32B ~64 ГБ ~32 ГБ ~18 ГБ
70B ~140 ГБ ~70 ГБ ~40 ГБ

KV-кеш: росте пропорційно довжині контексту × кількості одночасних послідовностей. Для довгих контекстів і багатьох користувачів KV-кеш може перевищити ваги. Grouped-query attention у сучасних моделях його зменшує; кешування префіксів ділить його між запитами з однаковим системним промптом.

Емпіричні правила: залишайте 20–30% пам'яті GPU понад ваги для KV-кешу й активацій; один GPU на 24 ГБ комфортно обслуговує квантизовану модель на 8–14 млрд параметрів для невеликої команди; моделі на 32 млрд вміщуються на один GPU на 80 ГБ у FP16 або на 48 ГБ у квантизованому вигляді; моделі класу 70 млрд потребують кількох GPU або агресивної квантизації.

Квантизація

Квантизація зберігає ваги меншою кількістю бітів, зменшуючи пам'ять і часто пришвидшуючи роботу:

  • GPTQ і AWQ — методи після навчання для 4-бітного інференсу на GPU з невеликими втратами якості (Frantar et al., 2022; Lin et al., 2023).
  • FP8 добре підтримується на сучасних датацентрових GPU і для багатьох моделей майже не втрачає якості.
  • GGUF-рівні квантизації (Q4_K_M, Q5_K_M, Q8_0…) — формат llama.cpp/Ollama для CPU й Apple Silicon.

Втрата якості залежить від моделі й задачі: міркування й неанглійський текст можуть страждати більше, ніж англомовний чат. Завжди оцінюйте квантизовану модель на власному наборі evals, зокрема українською, якщо це релевантно; див. evals для LLM.

Розгортання в Kubernetes

У продакшені запускайте сервери інференсу як навантаження Kubernetes на GPU-вузлах:

  • Пул GPU-вузлів із NVIDIA device plugin або GPU operator; taints, щоб туди потрапляли лише поди інференсу.
  • Сховище моделей: завчасно завантажуйте ваги на persistent volume або локальний кеш вузла; завантаження 30+ ГБ під час старту пода робить масштабування болісно повільним.
  • Readiness-проби на ендпоінт моделі — завантаження великої моделі триває хвилини.
  • Автомасштабування за довжиною черги чи завантаженням GPU, а не CPU; масштабування до нуля — лише якщо холодний старт прийнятний.
  • Шлюз попереду (OpenAI-сумісний маршрутизатор або проксі на кшталт LiteLLM) для автентифікації, лімітів, маршрутизації між моделями й фолбеку на зовнішні API; див. надійність LLM API.

GPU-сервери європейських провайдерів для стабільних навантажень можуть бути значно дешевшими за гіперскейлерів; наш досвід економних кластерів описаний у статті Kubernetes на Hetzner.

Безпека й відповідність вимогам

Self-hosting перекладає відповідальність на вас:

  • Автентифікуйте кожен ендпоінт. Відкриті порти інференсу регулярно знаходять і зловживають ними.
  • Мережева ізоляція. Серверам інференсу в продакшені не має бути потрібен вихід в інтернет.
  • Ланцюг постачання. Завантажуйте ваги з офіційних джерел, перевіряйте контрольні суми, віддавайте перевагу safetensors над форматами на основі pickle і скануйте контейнери; див. безпека ланцюга постачання контейнерів.
  • Ліцензії. Ліцензії відкритих моделей різняться: деякі обмежують комерційне використання понад певну кількість користувачів чи для певних цілей. Фіксуйте ліцензію кожної моделі, яку розгортаєте.
  • Логування. Промпти можуть містити персональні дані; застосовуйте ті самі строки зберігання й контроль доступу, що й для будь-якої іншої системи з такими даними; див. спостережуваність LLM.
  • EU AI Act. Розгортання відкритої моделі у вашому продукті може тягнути зобов'язання залежно від способу використання; див. гайд з EU AI Act.

Повна вартість: чесне порівняння

Порівнюйте повну вартість володіння, а не погодинну ціну GPU з ціною токена:

Стаття витрат API Власний хостинг
Інференс За токен GPU-сервери 24/7 (або зарезервовані), незалежно від використання
Інженерія Лише інтеграція Налаштування, оновлення, моніторинг, чергування
Якість Фронтирні моделі Відкриті моделі; може знадобитися більше роботи з промптами чи fine-tuning
Масштабування Миттєве Планування ємності, закупівлі
Відповідність вимогам DPA вендора, оцінка передачі даних Власні контролі, часто юридично простіше

Груба оцінка точки беззбитковості: оцініть токени на місяць, помножте на ціни API для моделі порівнянної якості й порівняйте з вартістю GPU плюс 0,25–0,5 ставки інженера. Для багатьох навантажень малого й середнього бізнесу API вигідніші; self-hosting виграє на контролі даних і дуже великих обсягах. Перераховуйте кожні пів року — і ціни API, і якість відкритих моделей змінюються швидко.

Шлях впровадження

  1. Прототип на API, щоб довести сценарій і побудувати evals.
  2. Короткий список відкритих моделей, що вписуються у ваше залізо й ліцензійні обмеження; див. як обрати LLM.
  3. Запустіть їх локально в Ollama на наборі evals.
  4. Розгорніть vLLM на одному GPU-вузлі для пілотної групи; виміряйте затримку, пропускну здатність і якість.
  5. Посиліть: шлюз, автентифікація, моніторинг, автомасштабування, бекапи конфігурацій.
  6. Оптимізуйте: квантизація, кешування префіксів, спекулятивне декодування — мала чорнова модель пропонує токени, які велика перевіряє паралельно, скорочуючи затримку без зміни результатів (Leviathan et al., 2022), — і fine-tuning меншої моделі, якщо обсяг це виправдовує.

FAQ

Чи можна запустити корисну модель без GPU? Малі квантизовані моделі (до ~8 млрд параметрів) працюють на сучасних CPU й Apple Silicon через llama.cpp чи Ollama — підходить для внутрішніх інструментів з малим навантаженням, але повільно для багатьох одночасних користувачів.

Чи достатньо добрі відкриті моделі для української? Більші багатомовні відкриті моделі пристойно працюють з українською; малі помітно слабші. Тестуйте на власних задачах.

Чи self-hosting автоматично відповідає GDPR? Ні. Він прибирає передачу третім сторонам, але вам усе одно потрібні правова підстава, обмеження строку зберігання, контроль доступу й безпека даних, які ви обробляєте.

Як встигати за новими моделями? Тримайте застосунок за OpenAI-сумісним інтерфейсом, підтримуйте набір evals актуальним і оцінюйте нові релізи щокварталу.

Джерела

  1. Kwon et al. (2023). Efficient Memory Management for Large Language Model Serving with PagedAttention; документація vLLM.
  2. Zheng et al. (2023). SGLang: Efficient Execution of Structured Language Model Programs.
  3. Ollama і llama.cpp на GitHub.
  4. Frantar et al. (2022). GPTQ; Lin et al. (2023). AWQ.
  5. Leviathan et al. (2022). Fast Inference from Transformers via Speculative Decoding.
  6. Hugging Face. safetensors.