Кожен промпт, який ви надсилаєте в ChatGPT, Claude чи Gemini, виконується на чужих GPU. Ваш код, дані клієнтів, секрети компанії — усе це проходить через інфраструктуру, якою ви не володієте і яку не можете перевірити. Для більшості команд це нормальний розмін: смикаєте API, платите за токени, йдете далі. Але якщо ви працюєте в медицині, фінансах чи держсекторі, «нормально» перестає бути достатнім, і self-hosted AI на приватних даних, з локальною LLM та власними GPU стає єдиною відповіддю, яка переживе аудит на комплаєнс.
Скажу чесно від самого початку: більшості читачів варто просто смикнути API. GPU всередині гіперскейлерів коштують дорого, моделі оновлюються кожні кілька тижнів, а тримати inference самому — це справді більше роботи. Повторю це й наприкінці, бо це важливо. Але є цілком реальний набір випадків, де self-hosting — не хобі, а вимога.
Навіщо взагалі self-host
Чотири причини зводять команду з managed API:
- Регуляторка. Даним юридично заборонено покидати ваш периметр. Без винятків і без відмовок у стилі «та у вендора ж є SOC 2».
- Контроль. Політика компанії забороняє надсилати вихідний код чи продові дані третій стороні.
- Вартість на масштабі. Після певного обсягу запитів оплата за токени виходить дорожчою, ніж власне залізо.
- Власні моделі. Ви дотренували щось на пропрієтарних даних. Ця модель — інтелектуальна власність, і ви не відправите її в чужий кластер.
Є ще недооцінений security-кут. Китайські open-weight моделі зараз займають близько 30% світового використання AI. Дослідники безпеки з'ясували, що DeepSeek виконав 100% шкідливих запитів зі стандартними техніками джейлбрейку. Сто відсотків. Порівнянні американські моделі провалюють від 5 до 12 відсотків тих самих тестів. Хоч би як ви ставилися до цих цифр, self-hosting знімає питання витоку даних цілком. Ваші промпти лишаються на ваших серверах. Їх ніхто не логує, ні на чому не навчає і нікуди не зливає.
Стек
Сетап нудний у найкращому сенсі — саме цього ви й хочете від інфраструктури. Control plane кластер крутить Crossplane з набором кастомних API-визначень, які я написав. Crossplane — це декларативний клей: замість клікання по консолі хмари ви описуєте потрібний результат як Kubernetes-ресурс, а платформа сама приводить реальність у відповідність.
Коли хтось застосовує cluster-ресурс, Crossplane відпрацьовує весь танець:
- піднімає кластер Kubernetes з окремими CPU- та GPU-node group
- ставить Nvidia GPU operator для драйверів та керування пристроями
- розгортає vLLM для inference
- зв'язує ingress, мережу та допоміжні застосунки
Той, хто замовляє кластер, заповнює кілька полів: провайдер, розмір ноди, перемикач GPU і які застосунки ставити. Це вся поверхня, яку він бачить. Жодних Helm-чартів, налагодження драйверів і експертизи з GPU.
Один ресурс — один endpoint
Коли команді потрібна модель, вона застосовує один кастомний ресурс. Вказує модель, скільки GPU їй виділити та ingress-хост. Усе. vLLM з коробки віддає OpenAI-сумісний API — та сама тиха деталь, яка робить усю конструкцію придатною до використання.
OpenAI-сумісний означає, що будь-який інструмент, уже написаний під OpenAI, просто працює. Наведіть Cursor на ваш внутрішній endpoint і отримайте автодоповнення на моделі, яка крутиться у вашому власному датацентрі. Будуйте агентів на будь-якому SDK, що говорить протоколом OpenAI. Змінюєте base URL — код лишається тим самим. Нікому не треба вчити нову клієнтську бібліотеку, бо нової бібліотеки немає.
Навколо цього я зібрав універсальний CI/CD pipeline-шаблон на 634 рядки, який деплоїть усе — від звичайних мікросервісів до ML-моделей — тим самим шляхом. Один pipeline, багато типів навантажень, нуль саморобних сніжинок під кожну команду.
Ваші дані, ваші GPU, ваші правила
Я розгортаю інфраструктуру під сиренами повітряної тривоги. Контроль над інфраструктурою для мене — не абстрактне гасло, а саме те, що тримає системи на плаву, коли навколо все валиться. Через це питання володіння б'є по мені сильніше, ніж питання зручності.
Тому ось чесне завершення, те саме, що я обіцяв. Якщо ваша задача звичайна — смикайте API. Дешевше, швидше стартувати, і операційну вагу несе хтось інший. Але якщо регуляторка вимагає, щоб дані ніколи не покидали ваш периметр, якщо політика забороняє inference на стороні, якщо ваш масштаб робить оплату за токени абсурдною або якщо ваші дотреновані моделі і є продукт — то це ваш сетап. Локальна LLM, приватні дані, ваші власні GPU.
Якщо ваші AI-промпти містять продові дані й виконуються на чужих GPU — у вас немає AI-стратегії. У вас є витік даних, який ви просто ще не помітили.
А де насправді виконуються ваші промпти — і хто ще може їх прочитати?