pip install llama cpp python и сборка сервера: локальная LLM за 30 минут на RTX 4090
Llama.cpp позволяет запустить языковую модель на собственном сервере без облачных API, и 5 июня 2025 года это один из самых гибких способов держать данные и инференс (генерацию ответов моделью) внутри своего контура.

Локальный запуск LLM (большой языковой модели) означает, что ни промпты (запросы к модели), ни ответы не уходят на чужие серверы. Для компаний в РФ это закрывает вопрос утечки данных и не зависит от доступности зарубежных API.
Фреймворк llama.cpp, написанный на C/C++, даёт контроль над каждым параметром генерации. Поднять REST API и получить первый ответ здесь не сложнее, чем в Ollama, но набор настроек заметно шире. Ниже полный маршрут: от сборки на российском сервере Selectel с RTX 4090 до рабочего запроса на русском языке. Гайд подготовлен по материалам публикации Local LLM Optimization.
Что понадобится?
- Сервер с GPU. В источнике использована почасовая прерванная GPU-машина Selectel: 8 vCPU, 32 ГБ RAM, 200 ГБ SSD, 1 × RTX 4090 (24 ГБ VRAM), Ubuntu 24.04 LTS, GPU Driver 580 (Open), локация Москва (ru-7b).
- Установленный CUDA-компилятор (путь по умолчанию
/usr/local/cuda/bin/nvcc). - Git, cmake, wget и базовые инструменты сборки.
- 30 минут на сборку, скачивание модели и первый запрос.
Если вы планируете вызывать llama.cpp из Python-кода, пригодится обёртка: выполните pip install llama cpp python (пакет llama-cpp-python). Она не нужна для REST API, но упрощает интеграцию в скрипты. Убедитесь, что версия совместима с вашей CUDA.
Пошаговая инструкция
1. Клонируйте репозиторий и создайте папку сборки
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
mkdir build && cd build
2. Соберите три инструмента: llama-server, llama-bench, llama-cli
- llama-server поднимает REST API для запросов к модели.
- llama-bench прогоняет тесты производительности и помогает подобрать размер контекста.
- llama-cli позволяет общаться с моделью прямо из терминала.
export CUDACXX=/usr/local/cuda/bin/nvcc
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DGGML_CUDA=ON \
-DLLAMA_CURL=ON \
-DGGML_CUDA_FA=ON \
-DCMAKE_CUDA_ARCHITECTURES=89
cmake --build . --config Release \
--target llama-server llama-bench llama-cli --parallel
Параметр -DGGML_CUDA_FA=ON включает Flash Attention для ускорения генерации. Значение -DCMAKE_CUDA_ARCHITECTURES=89 соответствует архитектуре RTX 40xx. Для RTX 30xx укажите 86.
3. Скачайте модель в формате GGUF
GGUF (формат квантованных моделей для llama.cpp, где квантование означает сжатие весов модели для экономии памяти) позволяет уместить 9-миллиардную модель в 24 ГБ видеопамяти.
mkdir -p ./models
wget -O ./models/Qwen3.5-9B_Q4_k_m.gguf \
"https://huggingface.co/SandLogicTechnologies/Qwen3.5-9B-GGUF/resolve/main/Qwen3.5-9B_Q4_k_m.gguf"
4. Запустите llama-server
./bin/llama-server \
-m ./models/Qwen3.5-9B_Q4_k_m.gguf \
--host 0.0.0.0 \
--port 8089 \
-c 2048 \
-ngl 99 \
--jinja
Здесь -c 2048 задаёт размер контекста в токенах (единицах текста, на которые модель разбивает входные данные), -ngl 99 выгружает все слои модели на GPU, --jinja включает шаблонизацию промптов.
5. Отправьте первый запрос
Эндпоинт /v1/chat/completions совместим с OpenAI API, поэтому любой клиент, написанный для ChatGPT, будет работать без изменений:
curl http://0.0.0.0:8089/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3.5-9b",
"messages": [
{"role": "system", "content": "Ты — эксперт по ИИ. Отвечай кратко и понятно."},
{"role": "user", "content": "Объясни, что такое квантование модели, простыми словами."}
],
"temperature": 0.7,
"max_tokens": 300,
"stream": false
}'
Для простых одноразовых запросов есть второй эндпоинт, /completion, где достаточно передать строку в поле prompt.
6. Протестируйте производительность через llama-bench
for ub in 128 256 512 1024; do
./bin/llama-bench \
-m ./models/Qwen3.5-9B_Q4_k_m.gguf \
-p 2048 -n 128 \
-b 1024 -ub "$ub" \
-ngl 99 \
-ctk q8_0 -ctv q8_0 \
-fa on
done
Цикл перебирает размер микробатча (-ub), чтобы найти значение с лучшей скоростью генерации именно на вашей карте.
В источнике показан сценарий, где модель извлекает параметры задачи из сообщения в мессенджере и оформляет результат в Markdown.
Входное сообщение:
Нужно смержить ветку feature/new-dashboard в дев.
Там новый график аналитики, проверьте, чтобы все подтягивалось.
Василий (+79876543210) отвечает за задачу
Сроки ASAP в понедельник 1 августа 2026
Промпт модели просит извлечь имя задачи, дедлайн и автора, а при отсутствии параметров вернуть комментарий.
Результат: модель возвращает структурированный Markdown с полями «автор: Василий», «дедлайн: 1 августа 2026» и описанием задачи. Данные при этом не покидают ваш сервер.
Код на Python использует библиотеку requests и обращается к тому же http://0.0.0.0:8089/completion. Если вы предпочитаете нативную обёртку, выполните pip install llama cpp python и работайте с моделью без HTTP-вызовов.
- Неверная архитектура CUDA. Параметр
CMAKE_CUDA_ARCHITECTURES=89подходит только для RTX 40xx. Для RTX 3090 нужно86, для A100 указывайте80. Ошибка приведёт к сборке без GPU-ускорения, и модель будет генерировать на CPU в десятки раз медленнее. - Контекст больше видеопамяти. Если указать
-c 8192на карте с 24 ГБ для 9B-модели, сервер может упасть с ошибкой нехватки VRAM. Начинайте с-c 2048и увеличивайте, проверяяnvidia-smi. - Забыли
-ngl 99. Без этого флага слои модели останутся на CPU. Генерация будет работать, но медленно. - Путь к CUDA не экспортирован. Без
export CUDACXX=...cmake не найдёт компилятор и соберёт проект без поддержки GPU, причём без явной ошибки.
Что делать с этим прямо сейчас?
Авторам Дзена и копирайтерам. Локальная модель позволяет генерировать черновики, проверять тексты и экспериментировать с промптами без лимитов подписки и без отправки контента на внешние серверы. Qwen 3.5 9B понимает русский язык и работает с контекстом до 2048 токенов в базовой конфигурации.
Маркетологам и предпринимателям в РФ. Связка «Selectel + llama.cpp» закрывает требования по локализации данных: сервер в Москве, трафик не уходит за рубеж, нет зависимости от зарубежных API. Для внутренних задач (разбор заявок, классификация обращений, генерация ответов) этого достаточно.
Разработчикам. REST API совместим с форматом OpenAI, поэтому существующий код с openai.ChatCompletion заработает после замены одного URL. Для прямого вызова из Python без HTTP-прослойки подойдёт pip install llama cpp python.
Я тестировал llama.cpp на нескольких конфигурациях, и главное преимущество перед Ollama именно в бенчмаркинге: llama-bench позволяет подобрать параметры под конкретную карту, а не гадать. Для продакшена это экономит часы.
Честная оговорка: 9B-модель с квантованием Q4 не заменит GPT-4o или Claude на сложных задачах с длинным контекстом. Но для типовых задач (классификация, извлечение данных, короткая генерация на русском) её хватает, и вы платите только за аренду сервера.
Из доступных в РФ облачных аналогов, по моим наблюдениям, YandexGPT и GigaChat решают похожие задачи через API, но не дают контроля над моделью и параметрами генерации. Llama.cpp, это выбор тех, кому нужна полная прозрачность.
Попробуйте генерацию контента с ИИ
Если вы пока не готовы разворачивать сервер, протестируйте работу с нейросетями на практике в инструментах dzen.guru
ПопробоватьЛокальная LLM не требует подписки, не имеет лимитов запросов и не отправляет ваши данные третьим сторонам. Один вечер на настройку, и у вас собственный ИИ-сервер с API, который понимает русский язык и живёт в вашем контуре.

Основатель dzen.guru. Эксперт по монетизации и продвижению на Дзен. Автор курса «Старт на Дзен 2026».
Читайте также

Нейросеть для бизнеса пока убыточна: 493 компании из S&P 500 не заработали на ИИ ни цента
Почему это важно Главный экономист одной из крупнейших частных инвестиционных компаний мира впервые подкрепил цифрами то, о чём спорят и в России: массовые…

Что такое ИИ-агент на практике: три правила, спасающие проект на ELMA 365 от хаоса
Компании, которые строят бизнес-модули на российской low-code-платформе ELMA 365, всё чаще передают рутину ИИ-агентам, но без жёстких правил агенты ломают…
Meta AI убрала слово «обучение» из условий, но юристы нашли лазейку для парсинга
Почему это важно Meta убрала из пользовательских условий слово «обучение», но юристы указывают: оставшаяся формулировка «разработка бизнес-продуктов»…
Комментарии