Какие нейросети можно запустить на своем сервере
Узнайте, как выбрать модель ИИ исходя из объема RAM. Приводим расчеты для серверов с 4, 16 и 64 ГБ памяти, реальную скорость генерации токенов и скрытые затраты контекста.
Что определяет, какие модели ИИ можно разместить на собственном сервере
То, какие модели ИИ вы можете разместить на своем сервере, определяется одним числом: объемом RAM на машине. Семейство модели и фреймворк имеют гораздо меньшее значение, чем то, помещаются ли веса в память с запасом. В этой статье приведен расчет для определения этого объема. Установка среды выполнения — это отдельная задача, описанная в руководстве по запуску Ollama на VPS.
Ответ зависит от двух факторов. Веса — это фиксированные затраты, определяемые количеством параметров и квантованием. Контекстное окно — это переменные затраты, и именно о них люди забывают до тех пор, пока модель, которая загружалась вчера, не отказывается загружаться сегодня.
Расчет размера: биты на параметр
Файл модели почти полностью состоит из весов. Каждый вес хранится с определенным количеством бит. Квантование означает хранение весов с меньшим количеством бит, чем при обучении; это приводит к небольшой потере точности, но значительно экономит память. Размер модели напрямую зависит от этого:
weights in GB = (parameters in billions x bits per weight) / 8Модели выпускаются с точностью 16 бит, что составляет 2 GB на миллиард параметров. Именно поэтому почти никто не запускает модели в исходной точности на VPS. Ниже приведены варианты квантования, которые вы встретите на практике, с их реальным средним количеством бит на вес:
Q8_0хранит около 8.5 бит на вес, что составляет примерно 1.1 GB на миллиард параметров.Q6_Kхранит около 6.6 бит, что составляет примерно 0.83 GB на миллиард.Q5_K_Mхранит около 5.7 бит, что составляет примерно 0.71 GB на миллиард.Q4_K_Mхранит около 4.8 бит, что составляет примерно 0.6 GB на миллиард.
Используйте 0.6 GB на миллиард параметров в качестве рабочего значения. Q4_K_M — это разумный выбор по умолчанию для систем, ограниченных объемом памяти: потеря качества по сравнению с 8 битами в большинстве задач невелика, а размер файла почти в два раза меньше. При значении ниже 4 бит потери быстро растут, поэтому модель 70B, сжатая до 2 бит, обычно работает хуже, чем модель 32B с квантованием 4 бита того же поколения. Если памяти не хватает, лучше выбрать модель меньшего размера, чем опускаться ниже 4 бит.
The data behind this chart
[
{
"label": "3B",
"weights_gb": 1.8,
"kv_8k_gb": 0.9,
"kv_128k_gb": 14
},
{
"label": "8B",
"weights_gb": 4.8,
"kv_8k_gb": 1,
"kv_128k_gb": 16
},
{
"label": "14B",
"weights_gb": 8.4,
"kv_8k_gb": 1.5,
"kv_128k_gb": 24
},
{
"label": "32B",
"weights_gb": 19.2,
"kv_8k_gb": 2,
"kv_128k_gb": 32
},
{
"label": "70B",
"weights_gb": 42,
"kv_8k_gb": 2.5,
"kv_128k_gb": 40
}
]В столбце весов выше применено правило 0.6 GB на миллиард. Реальные файлы GGUF отклоняются от этого значения лишь на несколько процентов, так как слои эмбеддингов и выходные слои хранятся с более высокой точностью, чем остальные. Модель 3B с квантованием 4 бита занимает около 1.8 GB. Модель 8B занимает 4.8 GB. Модель 32B занимает 19.2 GB, а модель 70B — 42 GB.
Почему длина контекста требует больше оперативной памяти, чем веса модели
KV cache (кэш ключей и значений, состояние внимания, которое модель хранит для каждого токена в текущем диалоге) — это вторая статья расходов памяти. Он выделяется при загрузке модели, его размер зависит от заданной длины контекста, и он растёт линейно вместе с этой длиной.
Формула KV cache и где искать значения
bytes per token = 2 x layers x kv_heads x head_dim x bytes per elementМножитель 2 учитывает ключ и значение. Значения для layers, kv_heads (указаны как num_key_value_heads) и head_dim находятся в config.json на странице карточки модели. Количество байт на элемент равно 2 для 16-битного кэша. Типичная модель 8B имеет 32 слоя, 8 голов ключей-значений и размерность головы 128, поэтому 2 x 32 x 8 x 128 x 2 = 131072 байт, что составляет 128 KiB на токен.
При стандартном контексте Ollama модель 8B тратит полгигабайта на кэш. На 8192 токенах она занимает 1 GB. При контексте 128k, заявленном в карточке модели, она занимает 16 GB, что более чем в три раза превышает размер весов. Модель 70B — обратный случай: её кэш при 128k составляет 40 GB, что меньше размера её весов, так как механизм grouped query attention не даёт стоимости на токен расти так же быстро, как количеству параметров.
Стандартная длина контекста Ollama составляет 4096 токенов на сервере только с CPU. При наличии GPU значение выбирается автоматически исходя из объёма VRAM: 32k для объёма от 24 до 48 GiB и 256k для 48 GiB и выше. Увеличьте это значение с помощью переменной OLLAMA_CONTEXT_LENGTH на сервере, а затем проверьте, какое значение фактически получила запущенная модель, в столбце CONTEXT команды ollama ps. Математика памяти для этого параметра подробно разобрана в статье о num_ctx и длине контекста.
Есть два способа уменьшить потребление памяти кэшем. Запрашивайте тот контекст, который вам действительно нужен, а не тот, что указан в карточке модели, так как большинство задач чата и программирования укладываются в диапазон от 8k до 32k. Либо квантуйте сам кэш до 8 бит, что сократит его размер вдвое, но может незначительно снизить точность при работе с длинным контекстом.
Резидентная модель удерживает RAM до тех пор, пока что-то её не выгрузит
Ollama удерживает модель в оперативной памяти в течение 5 минут после последнего запроса, после чего выгружает её. Это значение по умолчанию подходит для ноутбука, но не для сервера, где каждый первый запрос после периода простоя снова требует времени на загрузку.
ollama ps
ollama stop qwen3:4bollama ps выводит список резидентных моделей, где столбец SIZE показывает объем занимаемой памяти, а столбец UNTIL — время до истечения срока удержания. Чтобы закрепить модель в памяти постоянно, установите OLLAMA_KEEP_ALIVE=-1 в настройках сервиса. Значение 0 приводит к выгрузке модели сразу после завершения каждого ответа.
sudo systemctl edit ollama.service[Service]
Environment="OLLAMA_KEEP_ALIVE=-1"
Environment="OLLAMA_CONTEXT_LENGTH=8192"sudo systemctl daemon-reload
sudo systemctl restart ollamaОтправьте один запрос, а затем снова выполните ollama ps через десять минут. Модель всё ещё отображается в списке, и именно в этом суть: она занимает RAM независимо от того, использует её кто-то или нет. Закрепленная модель не является свободным ресурсом. На VPS с 16 GB оперативной памяти модель 8B с контекстом 8k занимает примерно 6 GB на всё время работы сервиса, поэтому рассчитывайте ресурсы сервера исходя из суммы объема модели и вашего приложения, а не только модели. В разделе Закрепление модели в памяти рассматривается компромисс между этим подходом и задержкой при «холодном» старте.
Что можно запустить на VPS с 4 GB ОЗУ
Зарезервируйте около 1 GB для операционной системы и сервера моделей, что оставит примерно 3 GB свободного пространства. Этого достаточно для моделей размером от 1B до 4B параметров с квантованием 4 бита и стандартным контекстом в 4096 токенов. По состоянию на август 2026 года к этому классу относятся Llama 3.2 (3B), Qwen 3 (1.7B и 4B), а также компактные версии Gemma и Phi. Рассматривайте их как примеры размеров, а не как рекомендации. Названия моделей меняются каждые несколько месяцев, а математические расчеты остаются прежними.
Ожидайте скорость генерации примерно от 6 до 14 токенов в секунду. Столь малые модели хорошо справляются с узкими задачами: классификацией, извлечением тегов, краткими резюме, переписыванием абзацев в заданном стиле. Они плохо подходят для многошаговых рассуждений и написания кода, затрагивающего несколько файлов; никакие методы промптинга не исправят этот недостаток.
Основная проблема на данном уровне ресурсов — использование swap. Если модель не помещается в ОЗУ, Linux не блокирует её загрузку. Вместо этого система выгружает память на диск. Поскольку для генерации одного токена необходимо считать каждый весовой коэффициент, скорость генерации падает до секунд на один токен. Следите за free -h, а также за столбцами si и so в vmstat 1 во время работы модели. Ненулевые значения swap in и swap out в процессе генерации означают, что модель слишком велика для выбранного тарифного плана.
Что можно запустить на VPS с 8–16 ГБ ОЗУ
На этом этапе self-hosted модели становятся по-настоящему полезными. На 8 ГБ ОЗУ можно запустить модель 7B или 8B с квантованием 4 бита (около 4.8 ГБ весов) и контекстом 8k. На 16 ГБ можно запустить модель 13B или 14B с квантованием 4 бита (около 8.4 ГБ) или оставить модель 8B с квантованием 8 бит, если вы предпочитаете точность количеству параметров.
Основная проблема — скорость. Модель 8B на CPU генерирует от 3 до 7 токенов в секунду, а 14B — от 1.5 до 3.5. Человек читает со скоростью примерно 5–10 токенов в секунду, поэтому работа модели 8B на VPS без GPU напоминает медленную печать текста. Это приемлемо для фоновых задач, но утомительно для интерактивного общения. Замеры работы Qwen 3 (8B и крупнее) на VPS показывают, как это выглядит на практике.
Что можно запустить на VPS с 32–64 ГБ ОЗУ
Модель 32B с квантованием 4 бита занимает около 19.2 ГБ, поэтому она помещается на тариф с 32 ГБ ОЗУ при небольшом контексте и комфортно работает на 48 ГБ или 64 ГБ. Модель 70B с квантованием 4 бита занимает около 42 ГБ, поэтому для неё требуется 64 ГБ ОЗУ еще до выделения памяти под кэш.
Оценивайте скорость работы объективно. Модель 32B на CPU выдает от 0.6 до 1.5 токенов в секунду, а 70B — от 0.2 до 0.5. Ответ объемом 500 токенов от модели 70B будет генерироваться около двадцати минут. Это инструменты для пакетной обработки. Если поставить их в очередь на обработку документов на ночь, скорость не имеет значения. Если же использовать их в чат-интерфейсе, скорость становится критически важной.
Маршрутизация в Mixture of Experts (MoE) меняет этот расчет, и это единственная архитектурная деталь, которую стоит изучить. Модель MoE пропускает каждый токен только через небольшую часть своих весов. Модель с 30B общих параметров и 3B активных параметров на токен требует столько же памяти, сколько 30B, но генерирует текст со скоростью, близкой к плотной модели 3B, так как каждый токен считывает только активных экспертов. На сервере с 32 ГБ ОЗУ модель MoE такой конфигурации гораздо практичнее, чем плотная модель 30B. Главное правило: общие параметры определяют требования к памяти, а активные параметры — скорость работы.
Насколько быстро работает CPU-инференс на самом деле?
Генерация одного токена требует однократного считывания всех активных весов из оперативной памяти. Этого невозможно избежать, поэтому скорость генерации на CPU определяется пропускной способностью памяти, а не количеством ядер. Предел вычисляется делением: доступная пропускная способность памяти делится на размер весов в байтах. Небольшой VPS общего пользования в реальности обеспечивает от 10 до 25 ГБ в секунду на все vCPU, поэтому модель размером 4.8 ГБ выдает максимум около 2–5 токенов в секунду.
The data behind this chart
[
{
"label": "3B",
"tokens_per_second_low": 6,
"tokens_per_second_high": 14
},
{
"label": "8B",
"tokens_per_second_low": 3,
"tokens_per_second_high": 7
},
{
"label": "14B",
"tokens_per_second_low": 1.5,
"tokens_per_second_high": 3.5
},
{
"label": "32B",
"tokens_per_second_low": 0.6,
"tokens_per_second_high": 1.5
},
{
"label": "70B",
"tokens_per_second_low": 0.2,
"tokens_per_second_high": 0.5
}
]Это диапазоны, характерные для обычного оборудования VPS, а не результаты тестирования конкретной машины. Ваш показатель зависит от поколения памяти, количества каналов на хосте и того, сколько соседних виртуальных машин конкурируют за ресурсы. Измерьте собственные показатели, используя любой тег модели, который у вас уже есть:
ollama run qwen3:4b --verbose "Write three sentences about disk latency."Сводка, выводимая после завершения ответа, заканчивается строкой eval rate: ... tokens/s. Это и есть ваша скорость генерации. Не учитывайте первый запуск сессии, так как показатель load duration в той же сводке включает чтение весов с диска. Правильное измерение количества токенов в секунду описывает, как получить значение, пригодное для сравнения.
Два результата обычно удивляют пользователей. Добавление vCPU быстро перестает давать прирост, так как после примерно 8 ядер дополнительные ядра простаивают в ожидании данных из памяти, а не выполняют вычисления. А на тарифах общего пользования одна и та же команда выдает разные числа в разное время суток, что связано с CPU steal time от шумных соседей, а не с ошибками в вашей конфигурации.
Чтение промпта — это задача, отличная от генерации ответа. Обработка промпта ограничена вычислительной мощностью, поэтому она масштабируется с увеличением количества ядер, и именно здесь GPU уходит далеко вперед. На чтение длинного документа у CPU уходят минуты, а у GPU — секунды. Это первое препятствие, с которым вы столкнетесь, подключая агента для написания кода к хостируемой модели, так как на каждом шаге заново отправляется контекст файла и определения инструментов, прежде чем вернется хотя бы один токен ответа.
Что меняется при добавлении GPU
Арифметика не меняется, меняется только пул ресурсов. VRAM — это жесткое ограничение, поэтому рассчитайте объем перед арендой:
- 8 GB VRAM вмещают модель 7B или 8B с квантованием 4 бита и коротким контекстом.
- 16 GB вмещают модель 14B с квантованием 4 бита и полноценным контекстом или 8B с квантованием 8 бит.
- 24 GB вмещают модель 32B с квантованием 4 бита при условии короткого контекста.
- 48 GB и более вмещают модель 70B с квантованием 4 бита, оставляя место для кэша и параллельных запросов.
Если модель не помещается целиком, Ollama разделяет её: часть слоев остается на GPU, остальные переносятся на CPU. ollama ps отображает распределение в столбце PROCESSOR, например, как 78%/22% CPU/GPU. Воспринимайте это как предупреждение, а не как функциональную возможность. Скорость работы определяется частью на CPU, так как генерация каждого токена ожидает обработки этих слоев. В результате модель, у которой четверть слоев находится на CPU, работает со скоростью, близкой к CPU, а не к GPU. Если вы видите непредвиденное разделение, сначала уменьшите длину контекста. Обычно именно кэш переполняет память.
Параллельная обработка — вторая причина для увеличения ресурсов. Веса модели общие для всех одновременных запросов, но каждый активный запрос требует собственного KV-кэша. Поэтому десять пользователей, одновременно работающих с моделью 8B при контексте 8k, потребуют в десять раз больше 1 GB кэша сверх объема весов. В статье Обслуживание параллельных пользователей с одной self-hosted модели подробно описано, где находится этот предел.
Вопрос о целесообразности аренды GPU также сводится к арифметике: всё зависит от того, сколько токенов в месяц вы реально генерируете. В статье Точка окупаемости между GPU VPS и API токенами приведены соответствующие расчеты.
Что нельзя разместить на собственном сервере
Здесь существуют два разных барьера, и важно понимать, с каким именно вы столкнулись.
Первый — это закрытые веса. Передовые коммерческие модели не распространяются, поэтому файла для загрузки не существует, и никакой объем оперативной памяти это не изменит. Вы можете разместить на своем сервере всё, что их окружает: интерфейс, уровень поиска данных, цикл агента, логи. Сама модель остается удаленным API. Можно ли разместить Claude на своем сервере подробно разбирает этот вопрос.
Второй — это открытые веса, которые просто слишком велики. Самые крупные открытые релизы представляют собой архитектуры mixture of experts с общим количеством параметров в сотни миллиардов. К ним применяется то же правило: модель с общим количеством параметров 400B в квантовании 4 бита требует около 240 GB только для весов, без учета кэша. Это специализированное оборудование, и его ежемесячная аренда стоит значительно дороже, чем большинство людей тратят на API-токены за год. Что нужно для размещения модели класса Kimi на своем сервере описывает реальные требования.
Честная граница между этими вариантами: размещайте на своем сервере, если нагрузка стабильна, а данные не должны покидать ваш контур. Покупайте токены, если нагрузка носит скачкообразный характер или если вам критически важно качество ответов передовых моделей.
Оцените доступные ресурсы перед выбором
free -h
nproc
lscpu | grep 'Model name'Планируйте исходя из столбца available в free -h, а не из столбца total, так как total учитывает память, уже занятую системой. Вычтите примерно 1 GB на нужды операционной системы и сервера моделей. Разделите оставшееся значение на 0.6, чтобы получить максимальное количество параметров в миллиардах, которое можно разместить при 4-битной квантовании. Затем вычтите объем KV-кэша для необходимого вам контекста. Полученное число и будет ответом; в отличие от списка названий моделей, этот метод не теряет актуальности.
FAQ
Сколько оперативной памяти нужно для запуска модели 8B?
Примерно 4.8 ГБ для весов при 4-битной квантовании, плюс KV-кэш для вашей длины контекста, плюс около 1 ГБ для операционной системы и сервера модели. При контексте в 8192 токена кэш добавляет около 1 ГБ, поэтому план на 8 ГБ подходит, а на 4 ГБ — нет. Если вам нужен полный контекст 128k, заявленный в карточке модели, только на кэш уйдет 16 ГБ, и вам потребуется план на 32 ГБ.
Почему модель работает медленно, хотя на VPS много vCPU?
Потому что генерация ограничена пропускной способностью памяти, а не количеством ядер. Для каждого токена требуется выгрузка всего набора активных весов из оперативной памяти, поэтому, как только несколько ядер насыщают каналы памяти, остальные просто простаивают. Другая частая причина — swap. Если vmstat 1 показывает ненулевые значения si и so во время ответа модели, значит, веса не помещаются в RAM и часть каждого токена считывается с диска, что обходится значительно дороже, чем кажется.
Действительно ли для большего окна контекста нужно больше памяти?
Да, рост потребления памяти линейно зависит от количества токенов. Типичная модель 8B использует около 128 KiB KV-кэша на токен, поэтому 8192 токена требуют 1 ГБ, а 131072 токена — 16 ГБ. Кэш выделяется при загрузке модели, а не по мере роста диалога, поэтому запрос контекста 128k резервирует этот объем памяти сразу, даже если каждый ваш запрос состоит всего из 200 токенов.
Что лучше: запустить большую модель в 2 бита или меньшую в 4 бита?
Выбирайте меньшую модель в 4 бита. Качество падает медленно при переходе с 8 до 4 бит и быстро — ниже 4 бит, поэтому модель 70B, сжатая до 2 бит, обычно дает худшие ответы, чем модель 32B в 4 битах того же поколения. Сильная квантование проявляется в виде повторов и игнорирования инструкций, а не в виде сообщений об ошибках, поэтому легко ошибочно обвинить в этом свой промпт. Считайте 4 бита нижним пределом и лучше меняйте количество параметров.
Можно ли самостоятельно запустить модель, сопоставимую с крупными коммерческими решениями?
Не на обычном VPS. Самые мощные модели с открытыми весами содержат сотни миллиардов параметров, что при 4-битном квантовании требует более 200 ГБ оперативной памяти еще до учета KV-кэша, а самые сильные коммерческие модели вообще не распространяются. Обычное оборудование хорошо справляется с запуском качественных моделей от 8B до 32B для конкретных задач, где узкоспециализированная и хорошо настроенная небольшая модель часто не уступает универсальной. Если вам нужно качество уровня frontier, сравните стоимость API и оборудования перед покупкой.