GPU и ИИ
Как самостоятельно запустить LLM на приватном GPU-сервере
Запуск языковой модели на арендованном вами оборудовании — единственный способ быть уверенным, что ваши промпты никто не логирует, не хранит и не читает, кроме вас. Любой облачный API — какой бы хорошей ни была его политика приватности — получает каждый отправленный вами токен, а эта политика может измениться без вашего участия. Когда вы запускаете модель сами, граница смещается: веса лежат на диске, который контролируете вы, инференс идёт в VRAM, арендованной по часам, и ничего не покидает машину, пока вы сами куда-то это не отправите. Программная часть стала по-настоящему простой. Спотыкаются обычно на другом: на расчёте карты перед заказом и на том, что забывают простое правило — открытый порт инференса остаётся открытым портом инференса.
Что даёт запуск модели самостоятельно — и чего не даёт
Стоит быть точным насчёт выгоды, потому что термином «приватный ИИ» разбрасываются как попало. Модель на собственном GPU полностью меняет одни вещи и совершенно не меняет другие.
- Ваши промпты и ответы остаются на машине — никакого логирования на стороне провайдера, никакого окна хранения, никакого датасета, собранного из того, о чём вы спрашивали.
- Никакого аккаунта, никакого лимита запросов на ключ и никакого слоя политик между вами и весами модели. Какую модель развернули, ту и получаете.
- Предсказуемая стоимость при большом объёме. Начиная с нескольких миллионов токенов в день арендованная карта обходится дешевле, чем оплата за токен, и цена не меняется, когда провайдер пересматривает свой прайс-лист.
- Это не делает слабую модель сильной. Модель с открытыми весами на вашем железе остаётся той же самой моделью — самостоятельный запуск даёт контроль, а не флагманские возможности.
- Это ничего не скрывает от хостера. Любой, у кого есть физический доступ к работающей машине, в принципе может прочитать её память — а это вопрос к хостеру, а не к модели.
VRAM решает всё: как подобрать карту под модель
Почти любая неудачная первая попытка — это ошибка в расчёте VRAM. Веса, KV-кэш и рабочее пространство должны поместиться в карту одновременно, и никакой плавной деградации тут не бывает — вы получаете ошибку нехватки памяти через несколько секунд после начала загрузки. Рабочее эмпирическое правило такое: модели требуется примерно 2 ГБ VRAM на миллиард параметров при точности 16-bit, около 1 ГБ — при 8-bit и примерно 0,6 ГБ — при 4-bit. К этому нужно добавить KV-кэш, который растёт вместе с длиной контекста и числом параллельных запросов — и именно он на практике кусается в продакшене, а не на тестах.
- Модель 7B–8B: около 16 ГБ при FP16 или заметно меньше 8 ГБ при 4-bit. Это класс, который спокойно помещается в RTX A4000 16 GB с запасом.
- Модель 13B–14B: примерно 28 ГБ при FP16, около 9 ГБ при 4-bit. RTX 4090 24 GB тянет её в квантованном виде с солидным запасом под контекст.
- Модель 30B–34B: около 68 ГБ при FP16, почти 20 ГБ при 4-bit — естественный дом для RTX 5090 32 GB.
- Модель 70B: около 140 ГБ при FP16, примерно 40 ГБ при 4-bit. Это уровень A100 или H100 80 GB, а на полной точности — уже больше одной карты.
- Длинный контекст умножает именно KV-кэш, а не веса. Окно в 128k токенов на крупной модели само по себе может потребовать десятки гигабайт — заложите это в расчёт до заказа карты, а не после.
Выбор GPU: от A4000 до H100, и когда почасовая оплата выгоднее помесячной
Каждый тариф в линейке GPU-серверов — это целая физическая карта со всей её VRAM: никакого разбиения через MIG, никакого разделения времени между пользователями, — так что цифра в характеристиках — именно та цифра, которую вы реально можете занять. Подбирайте карту под модель, которую собираетесь обслуживать в проде, а не под ту, которую когда-нибудь захотите попробовать.
- RTX A4000 16 GB за $89/mo — 8 vCPU и 64 GB RAM. Достаточно для квантованного ассистента 7B–13B, сервиса эмбеддингов или пайплайна классификации, который крутится весь день.
- RTX 4090 24 GB за $189/mo — 16 vCPU, 128 GB и 2 TB NVMe. Лучшее соотношение цены за токен для моделей 13B–34B при 4-bit, и обычный выбор для небольшого продакшен-эндпоинта.
- RTX 5090 32 GB за $279/mo — 24 vCPU и 192 GB. Эти лишние 8 ГБ часто и решают, поместится ли модель 34B с реальным контекстом или нет.
- A100 80 GB за $690/mo — 32 vCPU, 256 GB и 4 TB NVMe. Пропускная способность HBM2e и достаточно памяти для модели 70B при 4-bit с длинным контекстным окном либо для обслуживания с интенсивным батчингом.
- H100 80 GB за $1190/mo — 48 vCPU, 384 GB, 8 TB NVMe и порт 10 Gbps. Поддержка FP8 и пропускная способность HBM3 делают его единственным разумным выбором при серьёзных требованиях к пропускной способности или для обучения.
Оплата — почасовая или помесячная с одного и того же предоплаченного баланса, и это меняет арифметику куда сильнее, чем кажется на первый взгляд. Оценка, занимающая два неполных дня на H100, обойдётся вам ровно в часы работы, а не в месяц аренды. А чат-эндпоинту, который должен отвечать в три часа ночи, нужна помесячная машина. Если нужно несколько карт в одной машине или GPU рядом с большим объёмом локального хранилища, лучше подойдёт выделенный сервер — а общий случай оплаты криптовалютой разобран в материале про аренду GPU-сервера за криптовалюту.
Шаг за шагом: от пополнения в криптовалюте до работающего эндпоинта
- 01Создайте аккаунт на одноразовый emailEmail и пароль. Ни имени, ни телефона, ни документов — с нашей стороны ничего не связывает запущенную модель с вами.
- 02Пополните баланс в криптовалютеПополните предоплаченный баланс через Bitcoin, Monero или любую из 8 монет. Он никогда не сгорает и никогда не замораживается.
- 03Разверните GPU-инстанс на CUDA-образеВыберите карту, регион и готовый CUDA-образ со свежими драйверами и PyTorch. Сервер будет готов за считанные минуты.
- 04Убедитесь, что карта видна, прежде чем что-либо скачиватьОдин вызов nvidia-smi покажет GPU, версию драйвера и свободную VRAM. Это десятисекундная проверка, которая экономит час путаницы.
- 05Скачайте веса на локальный NVMeЗагружайте модель на собственный диск инстанса, а не на сетевой том. Веса весят десятки гигабайт, и вы будете загружать их не один раз.
- 06Запустите сервер, привязанный к localhostЗапустите vLLM или Ollama на 127.0.0.1, локально убедитесь, что получаете ответ, и только потом решайте, как вы будете обращаться к нему снаружи.
vLLM, Ollama или llama.cpp: выбор стека для инференса
Три стека покрывают почти все случаи, и правильный выбор зависит от того, сколько запросов увидит эндпоинт, а не от того, какой стек технически эффектнее.
- Ollama — самый короткий путь от пустого сервера до работающего эндпоинта. Одна команда скачивает квантованную модель и раздаёт её через API, совместимый с OpenAI. Идеально для одного пользователя, прототипа или приватного ассистента.
- vLLM — ответ для продакшена. Непрерывный батчинг и постраничное внимание позволяют одной карте обслуживать множество параллельных запросов с пропускной способностью в несколько раз выше, чем у наивного цикла обработки запросов. Это разница между эндпоинтом для вас лично и эндпоинтом для приложения.
- llama.cpp — прагматичный вариант. Квантование GGUF вплоть до 4-bit и ниже, выгрузка части слоёв на CPU, если они не помещаются, и самый низкий порог по памяти из всех трёх. Именно это позволяет слишком большой модели вообще запуститься на слишком маленькой карте.
- TGI, SGLang и TensorRT-LLM в отдельных сценариях работают ещё быстрее. Беритесь за них только после того, как измерили конкретное узкое место, а не заранее.
Все три стека предоставляют маршрут chat-completions, совместимый с OpenAI, поэтому коду приложения, написанному под коммерческий API, обычно достаточно поменять один base-URL — и больше ничего. Именно эта совместимость — практическая причина, по которой запуск модели у себя перестал быть отдельным проектом и стал просто пунктом настройки.
Как сохранить приватность эндпоинта: никогда не открывайте порт инференса
Сервер инференса без аутентификации — современный эквивалент открытой базы данных. Сканеры находят новые IP-адреса за считаные часы, а открытый наружу эндпоинт означает, что кто-то другой тратит ваши часы GPU — либо читает всё, что ваше приложение через него отправляет.
Если эндпоинту действительно нужно быть публичным — это продукт, а не приватный ассистент, — терминируйте TLS на reverse proxy, требуйте bearer-токен, который вы регулярно меняете, и ограничивайте частоту запросов на ключ. Вынести этот proxy на отдельный небольшой VPS, оставив GPU-машину доступной только через туннель, — более чистое решение. Логика та же, что и в случае с сайтом, размещённым без KYC: машина, смотрящая в интернет, должна хранить как можно меньше.
Дообучение: когда несколько часов на арендованной карте выгоднее ежемесячной оплаты
Дообучение — самый сильный аргумент в пользу аренды, а не подписки. Запуск LoRA или QLoRA на модели 7B–13B — пара тысяч примеров, несколько эпох — занимает считаные часы на 4090 и стоит ровно столько часов, сколько он проработал. На выходе адаптер весом в несколько сотен мегабайт, так что можно сохранить чекпоинт, удалить инстанс, а позже подгрузить этот адаптер уже на карту поменьше для инференса. Полное дообучение модели 70B — совсем другой бюджет и требует A100 или H100 с запасом под состояние оптимизатора, но и оно по-прежнему измеряется днями, а не контрактом.
Почасовая оплата открывает простой рабочий процесс: развернуть, обучить, скопировать адаптер с машины, удалить её. Вы платите ровно за использованные вычисления, и никакая карта не простаивает между делом. Держите датасет на NVMe инстанса, пока работаете, и забирайте его обратно по завершении — то, что остаётся на арендованной машине, никогда не должно быть единственной копией.
Честный компромисс приватности GPU, которым вы не владеете
Запуск модели самостоятельно устраняет самую крупную и самую конкретную утечку: третью сторону, которая получает каждый промпт, хранит его в течение какого-то срока и сама решает, что с ним делать. На арендованной карте модель и ваши данные живут внутри машины, которая подчиняется только вашему ключу доступа. Чего аренда устранить не может — так это самого хостера. Любой, у кого есть физический доступ к работающему серверу, в принципе может прочитать его память, а полное шифрование диска на удалённой машине защищает от кражи выключенного накопителя, а не работающего.
Так что дельный вопрос — не «может ли хостер это увидеть», а «знает ли хостер, кто я». Хостинг без KYC отвечает именно на него: email и пароль, без верификации, в деле нечего запрашивать и нечему утекать. Оплата с криптобаланса убирает банк из уравнения. Насколько далеко вы зайдёте в вопросах оплаты — вопрос вашей модели угроз: Bitcoin псевдонимен, а не анонимен, поэтому монеты, прослеженные до верифицированной биржи, всё равно куда-то приводят, а пополнение через Monero закрывает этот разрыв на уровне протокола.
Ошибки, которые незаметно тратят часы GPU впустую
- Расчёт размера только по весам без учёта KV-кэша — модель спокойно загружается, а потом падает на первом же длинном запросе.
- Обслуживание при FP16 на карте, которая потянула бы ту же модель при 4-bit с втрое большим контекстом, — просто из опасений насчёт качества, которые никто на самом деле не проверял.
- Скачивание сорока гигабайт весов на сетевой том с последующим недоумением, почему каждый перезапуск занимает двадцать минут.
- Сервер, оставленный привязанным к 0.0.0.0 «просто чтобы проверить с ноутбука», — на публичном IP его находят в тот же день.
- Помесячная оплата карты, которая двадцать часов в сутки простаивает, хотя нагрузка изначально была пакетной задачей.
- Бенчмаркинг по одному запросу за раз с выводом, что vLLM того не стоит, — при этом всё его преимущество проявляется именно при параллельной нагрузке.
Ни одна из этих проблем не экзотика. Это ровно то, что происходит, когда карту выбирают раньше модели. Сначала определитесь с моделью и квантованием, честно посчитайте VRAM, держите порт закрытым — и запущенная у себя LLM окажется одной из самых нетребовательных вещей, которые можно оставить работать.