Свой сервер для языковой модели: что нужно на самом деле
Сервер подбирают не под «размер модели», а под число одновременных пользователей и длину документов. Считаем память, скорость и деньги по карточкам моделей и замерам.
Коротко
- Память съедают не только веса, но и пользователи: десяти сотрудникам с контекстом 8K у Qwen3-32B нужно кэша больше, чем весов.
- Гибридные архитектуры вроде Qwen3.8-27B держат в четыре раза меньше кэша на токен — для офиса это важнее числа параметров.
- Вторая видеокарта добавляет память, а не скорость. Ollama по умолчанию обслуживает один запрос, а не влезший в контекст текст молча обрезает.
- Квантование и токенизатор бьют по русскому сильнее, чем видно в англоязычных тестах. Пилот — в аренде, покупка — при доказанной загрузке.
Вопрос «какая видеокарта нужна под модель на 32B» кажется естественным, но ответ на него ничего не говорит о работе отдела. Веса Qwen3-32B в 4 битах занимают 19,8 ГБ и помещаются в карту на 24 ГБ. Если же с моделью одновременно работают десять сотрудников и у каждого в диалоге по 8 тыс. токенов, понадобится ещё 21,5 ГБ — под кэш. Поэтому сервер считают по четырём вводным: сколько людей обращаются одновременно, какой длины у них документы, на каком языке они пишут и под какой лицензией выпущена модель. Цифры ниже — на октябрь 2026 года, пороги — оценки, а не обещания.
Память: веса плюс пользователи
Память под веса считается просто: число параметров × бит на параметр / 8. Популярный формат квантования Q4_K_M тратит 4,8–4,9 бита на параметр, то есть около 0,6 ГБ на миллиард, а не 0,5, как часто прикидывают. Реальные файлы на Hugging Face: Qwen3-8B — 5,0 ГБ, Qwen3-32B — 19,8 ГБ (откроется в новой вкладке), модель на 70B — 42,5 ГБ.
Вторая статья расхода — KV-кэш. Модель хранит промежуточные результаты по каждому токену контекста каждого открытого диалога, чтобы не пересчитывать их на каждом шаге. Размер на токен считается по файлу config.json: 2 × число слоёв с полным вниманием × число KV-голов × размер головы × 2 байта. У Qwen3-32B это (откроется в новой вкладке) 2 × 64 × 8 × 128 × 2 = 256 КиБ на токен: контекст 8K — 2 ГиБ на один диалог, 32K — 8 ГиБ. Десять человек по 8K — 20 ГиБ, или 21,5 ГБ, больше самих весов. Кэш можно хранить в 8 битах (FP8 или q8_0): он займёт вдвое меньше, а потеря точности, по документации Ollama (откроется в новой вкладке), очень мала.
Сколько это в страницах? У токенизатора Qwen3 русский текст занимает 2,9–3,6 знака на токен — таков разброс в примерах из документации Yandex AI Studio (откроется в новой вкладке) и статьи о T-pro 2.0. Страница договора — около 1 800 знаков, то есть 500–620 токенов. Контекст 8K вмещает 13–16 таких страниц на всё сразу: документ, инструкцию, историю диалога и ответ.
Сервер считают от числа одновременных пользователей и длины документов, а не от названия модели.
Дообучению нужна своя память: QLoRA модели на 32B — от 26 ГБ видеопамяти (Unsloth (откроется в новой вкладке)). Нужно ли оно вообще — в статье «Дообучение или RAG».
Архитектура модели важнее числа параметров
Две модели близкого размера могут различаться по кэшу вчетверо. У Qwen3.8-27B (откроется в новой вкладке) (август 2026 года, Apache 2.0) полное внимание есть только в 16 слоях из 64, остальные 48 — линейные, и их состояние не растёт с длиной контекста. При 4 KV-головах размером 256 выходит 2 × 16 × 4 × 256 × 2 = 64 КиБ на токен — в четыре раза меньше, чем у Qwen3-32B. Десять человек по 8K — 5,4 ГБ кэша вместо 21,5 ГБ. К этому добавляется состояние линейных слоёв: около 0,15 ГБ на диалог, от длины не зависит (оценка по тому же config.json).
Похожие решения есть и у других: у Qwen3.6-35B-A3B около 20 КиБ на токен, у gpt-oss-120b (откроется в новой вкладке) — 36 КиБ (у половины слоёв окно в 128 токенов), у GigaChat 3.1 Lightning со сжатым вниманием MLA — около 29 КиБ.
MoE (смесь экспертов) экономит не память, а скорость: в памяти лежат все параметры, а на каждый токен работают только активные (разбор Hugging Face (откроется в новой вкладке)). Qwen3-30B-A3B в 4 битах занимает 18,6 ГБ — почти как плотная Qwen3-32B, — но на токен читает около 3B параметров, примерно 2 ГБ весов. Поэтому потолок скорости у неё примерно в 10 раз выше при той же памяти (оценка). При многих параллельных запросах задействуются разные эксперты, и выигрыш уменьшается.
Экспертов MoE можно держать в обычной оперативной памяти, а на видеокарте оставить остальное. По правилу Unsloth (откроется в новой вкладке), видеопамяти и ОЗУ вместе должно быть не меньше размера файла модели: для gpt-oss-120b, около 65 ГБ в родном 4-битном формате, это, например, карта на 24 ГБ и 64 ГБ ОЗУ. Но скорость тогда ограничивает ОЗУ: двухканальная DDR5 даёт около 90 ГБ/с, в 10–20 раз медленнее памяти видеокарты. Для пилота на одного человека это работает, для отдела — нет: при параллельных запросах работают почти все эксперты, а читать их приходится из медленной памяти (оценка).
Скорость: что дают видеокарта и вторая карта
Генерация текста упирается не в вычисления, а в память: чтобы выдать один токен, карта читает все активные веса. Отсюда потолок скорости для одного пользователя — пропускная способность памяти, делённая на размер весов. Плотная 32B в 4 битах: на RTX 4090 (1 008 ГБ/с) — около 51 ток/с, на RTX 5090 (1 792 ГБ/с) — около 91 ток/с. На практике выходит 50–65% потолка: модель на 8B в 4 битах на RTX 4090 по расчёту даёт около 200 ток/с, в замере — 128; модель на 70B на A100 — 48 и 24.
Одному человеку в чате хватает 20 ток/с: это 60–70 знаков русского текста в секунду, быстрее, чем обычно читают. Для отдела важнее суммарная пропускная способность: она растёт с числом одновременных запросов, если программа умеет обрабатывать их пачкой.
Вторая видеокарта добавляет память, а не скорость, если модель разрезана по слоям. Так по умолчанию работает ggml — движок, на котором построена Ollama: карты обсчитывают свои слои по очереди. В замерах мая 2024 года (откроется в новой вкладке) модель на 70B в 4 битах выдавала 19,1 ток/с на двух RTX 4090 и 18,8 — на четырёх. Ускорение даёт другой способ — тензорный параллелизм в vLLM или SGLang: каждый слой делится между картами, и они читают свои части весов одновременно.
Главные параметры карты — объём и пропускная способность памяти. RTX 3090: 24 ГБ, 936 ГБ/с. RTX 4090: 24 ГБ, 1 008 ГБ/с. RTX 5090: 32 ГБ, 1 792 ГБ/с, 575 Вт. RTX PRO 6000 Blackwell (откроется в новой вкладке): 96 ГБ с ECC, та же скорость памяти, 600 Вт. В неё модель на 70B в 4 битах помещается вместе с кэшем на десять человек по 8K: около 70 ГБ даже с кэшем в FP16. Для двух таких карт в одном корпусе сборщик Puget Systems (откроется в новой вкладке) советует версию Max-Q на 300 Вт: охлаждение обычной устроено как у RTX 5090.
Чем запускать: Ollama, ggml или vLLM
У Ollama два умолчания, важных для офиса. Первое — один запрос на модель одновременно (OLLAMA_NUM_PARALLEL=1 по FAQ (откроется в новой вкладке)), остальные ждут. Второе — небольшой контекст: FAQ называет 4 096 токенов, в новых версиях он зависит от видеопамяти (откроется в новой вкладке) — 4K на картах меньше 24 ГиБ, 32K на 24–48 ГиБ, 256K от 48 ГиБ. Договор на 10 страниц (5–6 тыс. токенов) в 4K не влезет, и Ollama обрежет лишнее без ошибки в ответе: предупреждение останется только в журнале сервера. Контекст поднимают параметром num_ctx или переменной OLLAMA_CONTEXT_LENGTH; память под кэш растёт как произведение контекста на число параллельных запросов.
Под нагрузкой разница между программами — на порядок. В тесте Red Hat (откроется в новой вкладке) (август 2025; модель на 8B, одна A100 на 40 ГБ, от 1 до 256 одновременных пользователей) vLLM 0.9.1 на пике выдал 793 ток/с, Ollama 0.9.2 — 41 ток/с. По пропускной способности vLLM был впереди при любой нагрузке, в том числе против Ollama с увеличенной параллельностью. Обе программы с тех пор обновились: это порядок величин, а не точные цифры. Причина в устройстве: vLLM хранит кэш страницами, без фрагментации, и, по статье авторов (откроется в новой вкладке), даёт в 2–4 раза большую пропускную способность, чем прежние системы.
Между ними — собственный сервер движка ggml: параллельные слоты, непрерывная пакетная обработка запросов и API в формате chat completions; для пилота на несколько человек этого хватает. SGLang (откроется в новой вкладке) переиспользует кэш общих начал запросов и, по данным авторов, даёт до 6,4 раза больше пропускной способности на агентах, поиске по документам и многоходовых чатах.
| Программа | Когда подходит | Подвох |
|---|---|---|
| Ollama | 1–3 человека, пилот, рабочая станция | По умолчанию один запрос за раз и небольшой контекст; длинный документ обрежется без ошибки в ответе |
| Сервер ggml | Пилот на несколько человек, модель частично в ОЗУ, выгрузка экспертов MoE | При разбиении по слоям вторая карта не ускоряет ответ |
| vLLM | От 5–10 одновременных запросов, внутренний API для CRM и 1С | Рассчитан на модель и кэш в видеопамяти; GGUF для него не основной формат; аппаратного FP8 у RTX 3090 и A100 нет |
| SGLang | Длинный общий системный промпт, агенты, поиск по одним и тем же документам | Выигрыш есть, только если у запросов действительно общее начало |
Русский язык: квантование, токенизатор, выбор модели
Оценки квантования почти всегда английские. Red Hat провела более 500 тыс. оценок (откроется в новой вкладке): FP8 (W8A8) практически без потерь, INT8 — минус 1–3%, 4 бита только для весов сопоставимы с 8 битами, но у малых моделей разброс заметнее. Исследование Cohere (откроется в новой вкладке) показало, что сильнее всего квантование бьёт по языкам с нелатинской письменностью, а метрики это недооценивают: на японском автоматические тесты дали падение на 1,7%, оценка людей на реалистичных запросах — на 16%. Англоязычным цифрам для русского верить на слово нельзя: квантованную модель прогоняют на эталонном наборе из своих задач и сравнивают с неквантованной.
Второй фактор — токенизатор. Т-Банк в T-pro 2.0 (откроется в новой вкладке) заменил 34 тыс. редких некириллических токенов словаря Qwen3 на кириллические. Текст в 220 знаков из примера в статье занимает у неё 55 токенов вместо 76, на русской Википедии число токенов на слово упало с 3,12 до 2,38, а английский остался прежним. На том же договоре это даёт на четверть меньше кэша и более быстрый ответ при той же памяти под веса.
Открытые модели, которые имеет смысл пробовать на русских задачах (на октябрь 2026 года):
- T-pro 2.0 (откроется в новой вкладке) — 32B на базе Qwen3-32B, Apache 2.0, родной контекст 32K; по памяти и кэшу — как Qwen3-32B, в Q4_K_M — 19,76 ГБ.
- GigaChat 3.1 Lightning (откроется в новой вкладке) — 10B, из них 1,8B активных, MIT, контекст до 256K. По данным Сбера, на русских тестах сильнее Qwen3-4B, в коде и рассуждениях слабее.
- Qwen3.6 и Qwen3.8 — многоязычные; у независимой команды Vikhr (откроется в новой вкладке) есть русские дообучения Qwen3 на 4–8B под Apache 2.0, улучшения показаны на собственных тестах команды.
- YandexGPT 5 Lite — 8B, контекст 32K, собственная лицензия с порогом (о ней ниже).
- AliceAI-Foundation-80B-A3B (откроется в новой вкладке) (сентябрь 2026, Apache 2.0) — базовая модель без обучения на инструкциях; по словам Яндекса, она для исследований и доработки, а не для готовых продуктов.
Примеры запуска GigaChat Ultra любой версии рассчитаны на сервер с восемью GPU. Рейтингам тоже стоит доверять осторожно: с 1 сентября 2026 года действует MERA Text 2.0 (откроется в новой вкладке) с новыми закрытыми тестами, и старые баллы (например, 0,660 у T-pro 2.0) относятся к прежнему набору задач.
Открытые веса — не значит «можно всё»
Открытые веса значат, что файл можно скачать, но условия у моделей разные. Без порогов, по Apache 2.0 или MIT, распространяются Qwen3.5, Qwen3.6, Qwen3.8-27B, gpt-oss, Gemma 4, Mistral Small 4, DeepSeek V4, GigaChat 3.x, T-pro 2.0 и AliceAI-Foundation.
У YandexGPT 5 Lite своя лицензия (откроется в новой вкладке): коммерческое использование, в том числе для внутренних нужд, разрешено до 10 млн выходных токенов в месяц. Если порог достигнут, в течение 30 календарных дней после этого месяца нужно обратиться в Яндекс и договориться об условиях, иначе лицензия аннулируется. Допустим, отдел делает 300 запросов в день с ответом по 300 токенов: за 22 рабочих дня это около 2 млн выходных токенов, в пять раз ниже порога. Чат-бот для клиентов дойдёт до порога примерно при 1 100 ответах такой длины в день.
У Qwen3.8-Flash-Next (откроется в новой вкладке) (125B параметров, из них 6B активных, плюс 51B в эмбеддингах) лицензия Qwen Community 1.0. Внутреннее использование разрешено, но компания, чей бизнес — «модель как сервис» или самостоятельный ИИ-ассистент для кода и офисной работы, должна получить у Qwen отдельную лицензию до коммерческого использования. Для интегратора, который размещает модель для клиентов, это существенно. У полной GLM-5.3 (откроется в новой вкладке) условие для таких сервисов тоже есть, но касается только компаний с выручкой больше 10 млрд долларов за 12 месяцев. Поэтому модель, её версию и лицензию записывают в документацию проекта до пилота и перечитывают лицензию целиком при каждой смене модели.
Аренда или покупка
Арендованная GPU позволяет проверить всё это до покупки. Прайс immers.cloud (откроется в новой вкладке) на 13.10.2026 (одна карта, минимальная конфигурация, до скидок за предоплату, НДС на странице не указан): RTX 4090 — 82,76 ₽/ч, RTX 5090 — 130,76 ₽/ч, A100 80 ГБ — 211,77 ₽/ч, H100 — 341,77 ₽/ч. Пилот на 40 часов на RTX 5090 стоит около 5,2 тыс. ₽, та же карта круглосуточно — около 95,5 тыс. ₽ в месяц.
Цены покупки — ориентировочные. RTX 5090 в российской рознице в августе 2026 года, по оценке специалиста в интервью «Известиям», стоила от 350 до 620 тыс. ₽; цены растут из-за дефицита памяти. RTX PRO 6000 Blackwell на 96 ГБ у российских поставщиков — около 2,5–2,7 млн ₽; более дешёвые предложения с поставкой из Китая идут с оговорками по срокам и гарантии. Серверные H100 и H200 в Россию официально не поставляются, их ввозят параллельным импортом без поддержки производителя.
Покупка RTX 5090 окупается по сравнению с круглосуточной арендой за 350–620 / 95,5 ≈ 3,7–6,5 месяца. Но только при круглосуточной загрузке и без учёта остального сервера, электричества и администрирования, которые в аренду уже включены. Если модель нужна 10 часов в рабочие дни, месяц аренды той же карты — около 28,8 тыс. ₽ (130,76 × 220 ч), и покупка окупится лишь через 12–22 месяца. С картой на 96 ГБ арифметика другая: выделенный сервер с RTX PRO 6000 у Selectel (откроется в новой вкладке) стоит от 125 500 ₽ в месяц (НДС на странице не указан), и цена одной карты равна 20–22 месяцам аренды целого сервера. Сравнение своего железа с API по деньгам — в статье «Локальная модель или API».
Пилот — на арендованной карте, покупка — когда загрузка доказана замером, а не ожиданием.
Покупать карту, если
- пилот показал загрузку близко к круглосуточной;
- модель и число пользователей уже выбраны и стабильны;
- данные нельзя выносить из вашего контура даже в российское облако;
- есть кому следить за сервером, обновлениями и копиями.
Арендовать, если
- модель ещё выбирается и проверяется на ваших примерах;
- нагрузка неизвестна или бывает несколько часов в день;
- нужна модель больше, чем помещается в 96 ГБ;
- нужно дообучение: прогоны короткие и редкие.
Свой сервер — это не только карта. Нужны мониторинг памяти и очереди запросов, обновления программ и драйверов, резервные копии настроек и эталонного набора, журнал обращений. Развёртывание открытых моделей на сервере клиента или в российском облаке — часть нашей работы по внедрению ИИ; начинать такой проект разумно с замера на арендованной карте.
Читать дальше
Все статьиЛокальная модель или API: пять вариантов и как выбрать
Между «облаком» и «своим сервером» есть ещё три варианта. Выбор решают не деньги, а то, какие данные попадают в запрос и кто вправе поменять модель.
Дообучение или RAG: когда модель учить, а когда дать ей документы
«Обучить модель на наших документах» почти всегда значит сделать по ним поиск. Дообучение нужно для другого, и у него есть цена, которой не видно в счёте за GPU.
ИИ через API: что проверить до подключения — деньги, данные, закон, надёжность
API — быстрый способ начать, но вместе с ним вы получаете чужой тариф, чужие условия обработки данных и чужой график обновлений. Что проверить до первой строки кода.