Компания хочет внедрить LLM-ассистента для отдела поддержки или внутреннего поиска по документации. Облачные API (OpenAI, Anthropic, Google) закрыты политикой безопасности или недоступны из России без обходных схем. Данные клиентов, переписку и внутренние обращения нельзя передавать наружу: этого требуют служба безопасности и 152-ФЗ о персональных данных. Запуск LLM локально через llama.cpp - рабочий путь: всё остаётся внутри контура, никаких внешних запросов. llama.cpp не единственный вариант, но самый низкопороговый: не требует CUDA-окружения в full-stack, работает на CPU и GPU, разворачивается за день без DevOps-инфраструктуры.
Главный вопрос - на каком оборудовании это работает без компромиссов по скорости и качеству. В статье разбираем требования для моделей 7B, 13B, 34B и 70B: сколько VRAM и ОЗУ нужно, когда достаточно CPU, а когда без GPU класса NVIDIA A100 не обойтись.
Что такое llama.cpp и почему он стал стандартом локального инференса
llama.cpp - open-source движок для запуска LLM в формате GGUF на CPU, GPU и Apple Silicon. Родился как порт модели LLaMA на C++ для запуска на Mac без видеокарты. Сегодня поддерживает десятки архитектур и работает на Linux, Windows и macOS без сложных зависимостей.
- Квантизация (Q4_K_M, Q5_K_M, Q6_K, Q8_0). Уменьшает модель в 2–4 раза без значимой потери качества: 26 ГБ в float16 помещаются в 8 ГБ при Q4_K_M.
- Минимум зависимостей и кросс-платформенность. Снимают головную боль администрирования: работает на CPU, GPU и Apple Silicon.
- Встроенный OpenAI-совместимый API через llama-server. Прозрачная интеграция с кодом, который раньше ходил в облако: меняется только endpoint, логика остаётся нетронутой.
Применяют там, где данные не должны покидать периметр: прототипы LLM-функций, on-premise чат-боты для поддержки и HR, RAG-системы по внутренней документации, инференс дообученных компанией моделей.

Сколько ресурсов нужно по размерам моделей
Запуск на CPU + ОЗУ
Модели 7B и 13B в квантизации Q4_K_M помещаются в 8–16 ГБ ОЗУ и выдают 5–8 токенов/сек на EPYC 9354P (32 ядра) и 12–18 токенов/сек на EPYC 9754 (128 ядер) или Xeon Platinum 8480+. Этого хватает для офлайн-обработки документов, ночных пайплайнов классификации обращений, batch-генерации описаний. Инженер ML запускает задачу на ночь - утром получает размеченный датасет.
Модель 34B на CPU потребует 24–32 ГБ ОЗУ и выдаёт 1–3 токена/сек. Для интерактивного чата неприемлемо: пользователь ждёт ответа минутами. Инференс LLM на CPU оправдан там, где скорость вторична, а экономия на оборудовании принципиальна.
Запуск с GPU
NVIDIA RTX 4090 с 24 ГБ VRAM запускает 13B Q5_K_M или Q6_K со скоростью 40–80 токенов/сек - уровень живого чата. Та же модель в Q8_0 может не влезть полностью и потребует офлоада части слоёв на CPU с падением скорости.
Модель 34B уже упирается в VRAM на одной RTX 4090: либо офлоад части слоёв - скорость падает до 10–20 токенов/сек, либо два GPU.
Для локального запуска 70B модели в квантизации Q4 потребуется 40–48 ГБ VRAM. Варианты: две RTX 4090, NVIDIA RTX 6000 Ada (48 ГБ), NVIDIA A100 (40 или 80 ГБ), NVIDIA H100 или две NVIDIA Tesla V100 32 ГБ. Ориентировочная скорость на A100/H100 - 15–40 токенов/сек в зависимости от квантизации и контекста. Для более крупных моделей нужно отдельно определить, какой сервер нужен для DeepSeek, и сопоставить его память с доступной конфигурацией.
Для прототипа достаточно 13B на одном GPU уровня RTX 4090. Для продакшн-нагрузки с моделями 70B+ нужен сервер с H100/A100 или конфигурация на 2–4 NVIDIA RTX 6000 Ada. Модели 34B - компромисс: офлоад или два GPU.

| Модель | VRAM | ОЗУ | GPU | Типовой сценарий |
|---|---|---|---|---|
| 7B Q4_K_M | — | 8 ГБ | CPU (Xeon/EPYC) или RTX 4060 | Batch-обработка, классификация текстов |
| 13B Q4/Q5_K_M | 10–12 ГБ | 16–32 ГБ | NVIDIA RTX 4090 (24 ГБ) | Интерактивный чат, RAG по документам |
| 34B Q4_K_M | 20–24 ГБ | 32–64 ГБ | RTX 4090 (офлоад) / 2×RTX 4090 | Сложные генерации, код-ассистент |
| 70B Q4_K_M | 40–48 ГБ | 64–128 ГБ | A100 80 ГБ / H100 / 2×RTX 6000 Ada | Продакшн-чат, прод-RAG, код высокой сложности |
RTX 4060 (8 ГБ VRAM) — только при контексте до 4k токенов; для RAG-сценариев с контекстом 8k+ нужна RTX 4070/4080 или CPU-режим.
Подбор железа под целевую нагрузку
Решение строится вокруг четырёх параметров.
- Размер модели (7B / 13B / 34B / 70B). Определяет качество ответов, поддержку русского и сложность решаемых задач.
- Уровень квантизации (Q4_K_M / Q5_K_M / Q6_K / Q8_0). Чем выше, тем больше памяти, но стабильнее ответы на длинном контексте.
- Длина контекста (4k–32k токенов). Влияет на VRAM через KV-cache: у Llama 3 70B переход с 4k на 32k добавляет около 9 ГБ.
- Целевая скорость (токенов/сек) с учётом числа параллельных пользователей. Для интерактивного чата комфортно от 30 токенов/сек на пользователя.
Базовое правило для оценки VRAM: к размеру модели в GGUF добавьте KV-cache и 1–2 ГБ накладных расходов. KV-cache зависит от модели и длины контекста: для Llama 3 70B в FP16 это около 1,25 ГБ на 4k контекста и 10 ГБ на 32k, а формулу для других моделей дает разбор, как рассчитать VRAM под модель и контекст. Под одного пользователя и модель 13B Q4_K_M уверенно работает рабочая станция с NVIDIA RTX 4090 и 32–64 ГБ ОЗУ. Под 10 параллельных пользователей для llama.cpp подбор железа уже означает сервер с двумя RTX 4090 или одним GPU класса NVIDIA A100/H100.
Для 70B в продакшне с десятками одновременных запросов выбирают сервер на HGX-платформе с 4–8 GPU и быстрым NVLink между ними. Для прототипов и задач небольшого отдела достаточно одной мощной рабочей станции - это в разы дешевле и быстрее в развёртывании.
Если задача - поднять пилот быстро, ориентируйтесь на рабочие станции для AI: под одного-трёх пользователей и модели до 13B они закрывают задачу без избыточного бюджета.
Ориентировочный бюджет на железо
Порядок цифр, не смета: рабочая станция с RTX 4090 для моделей до 13B — бюджет уровня мощного инженерного ПК. Сервер с одной A100/H100 для 70B — уже единицы миллионов рублей, основная часть — GPU. Мульти-GPU конфигурация под 50+ одновременных пользователей — бюджет проекта, а не закупки: счёт идёт на десятки миллионов с учётом резервирования и СХД. Цены на GPU волатильны — перед защитой бюджета запрашивайте актуальные котировки у поставщиков.
Как запустить llama.cpp на Windows и на нескольких машинах
Частый сценарий пилота: основная машина на Windows с видеокартой и один-два сервера на Linux без GPU, ресурсы которых хочется отдать той же модели. llama.cpp закрывает оба вопроса без сборки специального окружения.
- Запуск на Windows. Собирать llama.cpp из исходников не обязательно: в разделе Releases репозитория проекта выкладываются готовые сборки под Windows для CPU, CUDA и Vulkan. Достаточно скачать архив под свою видеокарту, распаковать его и запустить llama-server или llama-cli с путем к GGUF-файлу.
- Подключение дополнительных машин. На каждом сервере, который отдает свои ресурсы, запускают rpc-server из сборки llama.cpp, а на основной машине llama-server или llama-cli запускают с параметром --rpc и адресами серверов в формате адрес:порт через запятую. Версии llama.cpp на всех машинах лучше держать одинаковыми.
- Распределение слоев. Слои модели делятся между машинами, поэтому модель, которая не помещается в память одного сервера, может работать на нескольких. Скорость при этом ограничена сетью: данные между машинами передаются на каждом токене, и медленный канал сразу снижает число токенов в секунду.
- Безопасность. У rpc-server нет аутентификации, поэтому его запускают только в изолированной сети или отдельном VLAN и не открывают порт наружу.
Программная экосистема вокруг llama.cpp
Что обычно собирается рядом
В реальном проекте llama.cpp редко стоит в одиночку, и движок подбирают по нагрузке:
Пилот на 1–3 пользователя: llama.cpp и Ollama;
GUI для экспериментов ML-команды: LM Studio;
10–50 параллельных запросов на GPU: vLLM.
Чем эти инструменты различаются по производительности, форматам и работе с несколькими GPU, собрано в статье Ollama, vLLM и LM Studio: подробное сравнение.
Поверх инференс-движка строится прикладной слой. Для RAG-систем по внутренней документации - LangChain или LlamaIndex. Для эмбеддингов под векторный поиск - sentence-transformers и модели типа bge или e5. Для отладки промптов - text-generation-webui. За наблюдаемостью следят Prometheus и Grafana: задержки, очередь запросов, утилизация GPU.
Когда стек определён, следующий шаг - подобрать оборудование для AI-нагрузок под реальный профиль: число GPU, объём ОЗУ, пропускная способность NVLink.
Типичные ошибки при локальном запуске
- Попытка запустить 70B на одной RTX 4090, потому что «работает на потребительском GPU». Технически работает с офлоадом большей части слоёв на CPU со скоростью 1–3 токена/сек. Для интерактивного чата неприемлемо.
- Слишком агрессивная квантизация - Q2_K или Q3_K_M, ради экономии VRAM. Качество ответов и устойчивость к длинному контексту резко проседают. Безопасный коридор для продакшна - Q4_K_M и выше.
- Расчёт VRAM без учёта KV-cache: у Llama 3 70B при контексте 32k кэш занимает около 10 ГБ против 1,25 ГБ на 4k, и модель падает по OOM в самый неудобный момент.
- Сборка llama.cpp без поддержки CUDA/cuBLAS на машине с GPU: производительность падает в десятки раз. При компиляции нужен флаг GGML_CUDA=ON или аналогичный для текущей версии.
- Русский язык без проверки совместимости. Не все модели работают с русским одинаково. Для русскоязычных задач выбирают модели с явной поддержкой ru-сабсета - Saiga, Qwen, Mistral-семейство в правильных версиях. И сразу закладывают цикл обновления: экосистема меняется быстро.
Что предусмотреть до запуска в продакшн
Запуск LLM внутри периметра не означает автоматической безопасности. Инференс-сервер - это отдельный сервис, к которому применяют те же стандарты, что к любому внутреннему API.
Сетевая изоляция. llama-server по умолчанию слушает на всех интерфейсах. В продакшене его ограничивают localhost или внутренним сетевым интерфейсом и закрывают iptables или firewalld. Тестовый контур с экспериментальными моделями держат отдельно от боевого: риск нестабильности и смешения данных между средами реален.
Контроль доступа. API-ключ к llama-server обязателен даже во внутренней сети. llama-server не имеет встроенной поддержки LDAP — авторизацию реализуют через reverse proxy: nginx с LDAP Auth Daemon или Keycloak в роли OIDC-провайдера перед эндпойнтом. Каждый запрос к модели логируют вместе с промптом и ответом: это требование для аудита и расследования инцидентов.
Ограничения конфигурации. Максимальная длина контекста ограничивается не только по VRAM, но и как защита от prompt injection с гигантскими входными данными. Rate-limit на запросы в минуту предотвращает перегрузку сервера одним процессом. В средах с требованиями ФСТЭК или ЦБ весь стек - llama.cpp, OS, GPU-драйверы, фиксируется по версиям и проходит проверку перед выкаткой.

Заключение
Алгоритм выбора простой и состоит из четырёх шагов. Сначала определите целевой размер модели - 7B, 13B, 34B или 70B, исходя из требований к качеству ответов, поддержке русского языка и сложности задач. Дальше оцените число параллельных пользователей и допустимую задержку: интерактивный чат требует минимум 20–30 токенов/сек, офлайн-пайплайн работает и при 5–10. Третий шаг - посчитайте VRAM и ОЗУ по правилу «размер модели в GGUF плюс KV-cache для нужной длины контекста плюс 1–2 ГБ накладных». И последнее - подберите оборудование под получившиеся требования.
Для пилота достаточно рабочей станции с NVIDIA RTX 4090 и моделью 13B: запуск LLM локально в таком варианте занимает день-два от получения оборудования. Для продакшна с десятками пользователей и моделями 70B нужен сервер с GPU класса NVIDIA H100 или A100 либо конфигурация на нескольких NVIDIA RTX 6000 Ada. Рассчитайте всё заранее: апгрейд GPU на действующем сервере сложнее и дороже, чем правильный выбор с первого раза.
