Нужен ли VPS с GPU для запуска нейросетей
Узнайте, когда аренда VPS с GPU оправдана для работы с нейросетями. Разбираем, почему квантованные модели и Whisper small эффективно работают на обычном CPU с достаточным RAM.
Нужен ли вам VPS с GPU или достаточно CPU?
VPS с GPU меняет два аспекта при самостоятельном запуске модели: скорость генерации токенов и возможность размещения модели в памяти. Больше ничего не меняется. Если ваша рабочая нагрузка — это квантованная модель от 7B до 27B для общения с одним пользователем, задача по созданию эмбеддингов с низкой интенсивностью или транскрипция речи с помощью Whisper small, то обычный VPS с CPU и достаточным объемом RAM справится с этой задачей. Начните с CPU, измерьте показатели, которые вас не устраивают, и только потом переходите на более мощное оборудование.
Причина кроется в пропускной способности памяти. Когда языковая модель генерирует один токен, она считывает из памяти все необходимые веса. Модель 8B, квантованная до 4 бит, занимает примерно 4.9 GB на диске и столько же в оперативной памяти, поэтому генерация одного токена означает передачу около 4.9 GB данных. Разделите пропускную способность памяти машины на это число, и вы получите верхний предел количества токенов в секунду. Это простое деление объясняет почти все результаты тестов, которые вы встретите.
Что на самом деле дает GPU
Пропускная способность. Оперативная память DDR5 на современном сервере передает данные со скоростью десятки гигабайт в секунду. Видеопамять (VRAM) GPU передает их со скоростью от сотен до более чем тысячи гигабайт в секунду. Отношение этих скоростей и есть ускорение, и оно весьма значительно.
Емкость и скорость. Сервер с 64 GB оперативной памяти может загрузить 70B модель в 4-битном квантовании. Она будет работать, но скорость генерации будет ближе к скорости чтения, чем к живому общению. GPU помогает здесь только в том случае, если модель целиком помещается в VRAM, так как при выгрузке слоев в системную память управление снова переходит к медленному пути обработки.
Пакетная обработка (batch throughput). Это аспект, который часто недооценивают. Когда GPU генерирует ответ для одного пользователя, большая часть вычислительных мощностей простаивает, так как процессор ожидает данные из памяти. Если обрабатывать 20 запросов одновременно, одни и те же веса модели будут использоваться для всех 20 запросов. Суммарное количество токенов в секунду возрастает в несколько раз, в то время как скорость для каждого отдельного пользователя почти не падает. CPU-движки для инференса, такие как llama.cpp, также поддерживают пакетную обработку, причем прирост производительности зависит от оборудования и нагрузки. Если вы создаете API, к которому обращается множество клиентов, пакетная обработка — это главный аргумент в пользу использования GPU, более весомый, чем чистая скорость в однопоточном режиме.
Обработка промптов. Чтение длинного промпта ограничено вычислительной мощностью, а не пропускной способностью памяти, и именно здесь GPU выигрывают с наибольшим отрывом. Контекст в 30,000 токенов, который CPU обрабатывает целую минуту, на GPU обрабатывается за несколько секунд. Системы поиска и извлечения информации (retrieval), которые добавляют документы в каждый запрос, постоянно ощущают это преимущество.
Приблизительные показатели и их интерпретация
Реальная пропускная способность также оказывается ниже, чем пропускная способность, деленная на размер модели, поскольку механизм внимания (attention) при увеличении контекста добавляет вычислительную нагрузку, которую простое деление не учитывает.
Для сравнения, средняя скорость чтения про себя на английском языке составляет от 4.0 до 4.3 слов в секунду: 238 слов в минуту для нехудожественной литературы и 260 для художественной. Любая скорость от 15 токенов в секунду и выше уже воспринимается одним пользователем как обычный набор текста. Именно поэтому многие конфигурации, работающие только на CPU, вполне справляются с задачами.
Расчет объема VRAM перед покупкой
Размер файла модели — это нижний предел, а не итоговое требование. В бюджет памяти нужно заложить веса, KV-кэш (key-value cache, память на каждый токен, которую использует механизм внимания) и около 1 ГБ на накладные расходы.
Рассчитывайте кэш индивидуально, а не добавляйте фиксированный процент, так как квантование весов не влияет на кэш. Для каждого токена модель с полным механизмом внимания (full-attention) сохраняет ключ и значение для каждого слоя и каждой KV-головки. В формате FP16, который является типом кэша по умолчанию в Ollama, это составляет 2 байта на число. Метаданные моделей Ollama, проверенные 2026-10-27, указывают, что Llama 3.1 8B имеет 32 слоя и 8 KV-головок размерностью 128, что дает 128 КиБ на токен: около 1.07 ГБ при контексте 8k и 2.15 ГБ при 16k. Таким образом, для модели 8B размером 4.9 ГБ потребуется около 7 ГБ VRAM при 8k и около 8 ГБ при 16k. Модель 27B в 4 битах занимает около 17 ГБ (Gemma 3 27B в библиотеке Ollama). Метаданные Gemma 3 указывают на использование скользящего окна (sliding window) размером 1024 токена, что ограничивает рост кэша, поэтому планируйте 20 ГБ или более. Модель 70B в 4 битах занимает около 43 ГБ (Llama 3.3 70B). С учетом 80 слоев ее кэш в FP16 добавляет около 2.7 ГБ при 8k и 5.4 ГБ при 16k, поэтому для нее нужна карта на 48 ГБ с минимальным запасом или две карты меньшего объема. Эта арифметика работает и для гораздо больших моделей, а расчет VRAM для модели с 2.8 триллионами параметров, такой как Kimi K3 показывает, что выбор видеокарты перестает быть единственным вопросом.
Это особенно важно при работе с длинным контекстом. В моделях с полным механизмом внимания, таких как Llama 3.1, KV-кэш растет линейно вместе с длиной контекста, и при 128k токенов он может превысить размер самих весов. Модели со скользящим окном или блочным вниманием (chunked attention) работают иначе: документация Transformers от Hugging Face приводит в пример Mistral, Gemma 2 и Llama 4, где кэш на соответствующих слоях перестает расти после достижения размера окна или блока, поэтому их суммарный объем увеличивается медленнее. Если вы планируете использовать длинный контекст, рассчитывайте объем в первую очередь исходя из кэша и проверяйте, предлагает ли ваш движок квантование кэша. В Ollama OLLAMA_KV_CACHE_TYPE=q8_0 использует примерно вдвое меньше памяти, чем стандартный f16, при этом квантование кэша работает только при включенном Flash Attention. Также явно задавайте длину контекста. Ollama выбирает значение по умолчанию исходя из объема VRAM: 4k для менее чем 24 GiB, 32k для диапазона от 24 до 48 GiB и 256k для 48 GiB и выше. На карте с 48 ГБ при запуске модели 70B это значение по умолчанию потребует гораздо больше кэша, чем может вместить карта.
Проверка аппаратного обеспечения
На инстансе с GPU прежде всего убедитесь, что драйвер распознает видеокарту.
nvidia-smiВам нужна таблица с названием GPU, версией драйвера и объемом используемой памяти относительно общего объема. Ошибка NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver означает, что NVIDIA-SMI не может связаться с драйвером; проверьте, установлен ли драйвер и загружен ли его модуль ядра. В стандартном образе Ubuntu проблему обычно решает sudo apt install -y ubuntu-drivers-common && sudo ubuntu-drivers install, после чего требуется перезагрузка для загрузки нового модуля. Для вычислительных машин документация Ubuntu Server рекомендует sudo ubuntu-drivers install --gpgpu, что позволяет выбрать ветку серверных драйверов.
Для контейнеров одного драйвера недостаточно. Docker требует NVIDIA Container Toolkit для проброса устройства.
sudo apt-get update && sudo apt-get install -y --no-install-recommends ca-certificates curl gnupg2
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart dockerЗатем проверьте, работает ли проброс изнутри контейнера:
sudo docker run --rm --gpus all ubuntu:24.04 nvidia-smiДолжна появиться та же таблица. Строка docker: Error response from daemon: could not select device driver с указанием недоступной возможности GPU означает, что Docker не смог найти драйвер устройства, соответствующий запросу; проверьте, установлен ли инструментарий, затем повторно выполните nvidia-ctk и перезапустите службу. В Compose эквивалентом является запись deploy.resources.reservations.devices, где driver имеет значение nvidia, а список возможностей содержит gpu; это встраивается в обычные определения сервисов, описанные в Docker Compose на VPS.
Замеряйте показатели перед обновлением
Запустите модель, которую планируете использовать, на текущем процессоре и зафиксируйте результаты. При работе с Ollama self-hosting an LLM on a VPS для этого достаточно одного флага:
ollama run llama3.1:8b --verbose "Summarise the causes of the 1929 crash in 200 words."Вывод завершается временными показателями. eval rate — это скорость генерации в токенах в секунду. prompt eval rate показывает, как быстро машина обработала ваш ввод. Эти два числа подсказывают, какое обновление поможет: низкий показатель eval rate указывает на проблему с пропускной способностью памяти, а низкий prompt eval rate на длинных входных данных — на проблему вычислительной мощности.
Если на машине есть GPU, убедитесь, что модель действительно загружена в видеопамять:
ollama psВ столбце PROCESSOR должно быть значение 100% GPU, если всё поместилось, или что-то вроде 43%/57% CPU/GPU, если нет. Частичное распределение модели обычно работает хуже, чем ожидается, так как каждый токен всё равно ожидает завершения обработки на медленной части системы.
Вопрос стоимости
GPU-инстансы тарифицируются по времени предоставления вычислительных мощностей, а не по количеству токенов; тарифы и стоимость простоя устанавливаются провайдером. GPU, работающий постоянно при малом количестве запросов в день, большую часть оплаченного времени простаивает. Точка окупаемости зависит от утилизации: загруженный GPU обходится дешево в пересчете на токен, а простаивающий — это прямые убытки.
Существует три рациональных подхода. Постоянную низконагруженную работу лучше оставить на CPU VPS. Редкие сложные запросы стоит отправлять через hosted API с оплатой за токены. GPU следует арендовать почасово для пакетных задач, дообучения или массового создания эмбеддингов, после чего удалять инстанс. Комбинирование этих методов — обычная практика. Дисциплина бюджетирования, описанная в контроле расходов на AI-агентов на постоянно работающем VPS, применима и здесь, с той разницей, что основным источником потерь является время простоя, а не количество токенов.
Что по-прежнему хорошо работает без GPU
Эмбеддинги при небольших объемах данных. Небольшая модель эмбеддингов обрабатывает сотни коротких документов в минуту на нескольких ядрах CPU, а индекс, который вы строите один раз, не требует высокой скорости.
Модели Whisper small и base для транскрибации. Faster-whisper на CPU выполняет транскрибацию почти в реальном времени для модели small, чего достаточно для конвейера, работающего в ночное время.
Квантованные чат-модели размером примерно до 27B для одного или двух пользователей. Медленно, но текст читаем и пригоден для использования.
Любые задачи, которые можно назвать пакетной обработкой (batch job). Если никто не смотрит на экран, время выполнения — это лишь вопрос планирования, а не жесткое требование.
Что действительно требует GPU: обучение или дообучение (fine-tuning) моделей (за исключением небольших адаптеров), обслуживание большого количества одновременных пользователей, генерация изображений и видео, а также распознавание речи в реальном времени, где задержка напрямую влияет на качество продукта.
FAQ
Сколько видеопамяти (VRAM) нужно для модели 7B или 8B?
Примерно 7 ГБ для 4-битной квантованной модели 8B с контекстом 8k и около 8 ГБ для 16k при использовании стандартного кэша FP16 в Ollama. Веса занимают примерно 4.9 ГБ, KV-кэш добавляет около 1.07 ГБ при 8k или 2.15 ГБ при 16k, остальное — это примерно 1 ГБ накладных расходов. Видеокарта на 8 ГБ справится с контекстом 8k, но при 16k будет работать на пределе; карта на 12 ГБ обеспечит комфортный запас для более длинных контекстов. Переключение кэша в режим q8_0 сокращает его долю примерно вдвое. Если вы планируете использовать контекст 128k, рассчитывайте объем для кэша отдельно, так как он может стать больше, чем сами веса модели.
Можно ли запустить Ollama без GPU?
Да. Ollama автоматически переключается на CPU, для работы требуется лишь достаточный объем оперативной памяти для размещения модели. Ожидайте примерно 5–12 токенов в секунду для 4-битной модели 8B в зависимости от скорости памяти, что близко к скорости чтения для одного пользователя. Длинные промпты — основная проблема при работе на CPU, так как обработка 30,000 токенов контекста ограничена вычислительной мощностью и занимает гораздо больше времени, чем генерация ответа.
Почему мой GPU работает почти так же медленно, как CPU?
Обычно это происходит из-за того, что модель не поместилась в VRAM целиком, поэтому часть слоев выполняется на CPU, и каждый токен ожидает завершения медленной части вычислений. Запустите ollama ps и проверьте, что в столбце PROCESSOR указано 100% GPU. Если отображается разделение (split), используйте меньшую квантованную версию или модель меньшего размера. Другая частая причина — короткий тест производительности, где время загрузки модели преобладает над временем генерации.
Стоит ли арендовать GPU VPS для одного пользователя?
Обычно нет. Скорость спокойного чтения на английском языке составляет в среднем от 4.0 до 4.3 слов в секунду; перед сравнением производительности CPU с этим показателем необходимо перевести токены в секунду в слова в секунду. Оправданными случаями для одного пользователя являются длинные промпты, генерация изображений и дообучение (fine-tuning). Обслуживание множества пользователей одновременно — самый весомый аргумент, так как пакетная обработка (batching) позволяет одному GPU использовать общие веса для разных запросов.
Что лучше: арендовать GPU почасово или держать сервер постоянно включенным?
Арендуйте почасово, если нагрузка носит эпизодический характер: дообучение, массовая генерация эмбеддингов или пакетная транскрипция. Держите сервер включенным постоянно только в том случае, если видеокарта загружена работой, так как оплата за GPU взимается за время аренды, а не за количество сгенерированных токенов. Ассистент с низкой посещаемостью обойдется дешевле на CPU VPS или через API с оплатой за токены, чем на простаивающем GPU.