Ollama против llama.cpp: сравнили запуск Gemma 4 на сервере
Автор развернул Gemma 4 26B A4B в Q4-кванте на облачном сервере с RTX 4090 и запустил её двумя способами — через Ollama и напрямую через llama.cpp. Он описал установку, настройку HTTP API и подготовку к замерам скорости.
- Для теста использовали Gemma 4 26B A4B в Q4-кванте весом 14–18 ГБ на видеокарте RTX 4090 с 24 ГБ памяти
- Ollama прячет техническую сложность: установка одной командой, работа с моделями похожа на Docker
- llama.cpp требует сборки с флагом GGML_CUDA=ON и установки nvcc, но даёт свой HTTP API, совместимый с OpenAI

Автор статьи на Хабре сравнил два способа запуска открытой модели Gemma 4 на облачном сервере: через Ollama и напрямую через llama.cpp. Для теста он взял квантированную версию Gemma 4 26B A4B в формате GGUF с квантом Q4_0. В таком виде модель весит 14–18 ГБ, поэтому запускалась на видеокарте RTX 4090 с 24 ГБ памяти.
Gemma 4 — модель от Google, вышедшая весной 2026 года и впервые полностью открытая под лицензией Apache 2.0. Версия 26B A4B построена на архитектуре MoE: при 26 млрд параметров на обработку каждого токена активируется примерно 4 млрд, что даёт баланс между качеством и расходом ресурсов.
Ollama: простота вместо контроля
Ollama устанавливается скриптом одной командой и прячет всю техническую сложность — компиляцию и зависимости. Работа с моделями построена как в Docker: команды pull, run, rm, ps. По умолчанию сервис слушает только локальный адрес 127.0.0.1:11434.
Модель скачивается прямо с Hugging Face командой ollama pull. После запуска доступен HTTP API: список моделей отдаётся по /api/tags, а запросы к чату идут на /api/chat. По умолчанию ответ приходит в streaming-режиме, но параметр «stream»: false заставляет сервер вернуть один готовый ответ в JSON.
llama.cpp: сборка под CUDA
Второй путь сложнее. Сначала нужно установить утилиты для сборки (git, cmake, build-essential, libssl-dev), затем склонировать репозиторий llama.cpp. Чтобы задействовать GPU, требуется CUDA и компилятор nvcc — если его нет, ставится пакет nvidia-cuda-toolkit.
Сборка запускается с флагом GGML_CUDA=ON: без него cmake соберёт версию только для процессора. После сборки сервер запускается с параметрами --n-gpu-layers all (выгрузить на GPU максимум слоёв) и --ctx-size 4096 (размер контекста в токенах). У llama.cpp свой HTTP API, во многом совместимый с OpenAI.
К моменту публикации автор получил два одинаково работающих сервера с одной и той же моделью в одном кванте. Для сравнения он выбрал метрики TTFT (время до первого токена), ITL (задержка между токенами), скорость генерации в токенах в секунду и полное время выполнения запроса. Замеры планируется проводить инструментом GuideLLM, чтобы повторить тесты и получить объективные результаты.
Для профиТехнические детали: архитектура, цифры, ссылки
Модель: Gemma 4 26B A4B, MoE-архитектура, 26 млрд параметров, ~4 млрд активных на токен, лицензия Apache 2.0 (весна 2026).
Квант: Q4_0, вес 14–18 ГБ. Железо: RTX 4090, 24 ГБ.
- Ollama: установка через curl -fsSL https://ollama.com/install.sh | sh, бинд на 127.0.0.1:11434, эндпоинты /api/tags и /api/chat.
- llama.cpp: сборка cmake -B build -DGGML_CUDA=ON, запуск llama-server с флагами --n-gpu-layers all --ctx-size 4096 --parallel 1, эндпоинт /v1/chat/completions (совместим с OpenAI).
- Метрики: TTFT, ITL, output tokens/s, request latency. Инструмент замера — GuideLLM.
Историческая справка из статьи: Ollama появилась в 2023 году на базе llama.cpp, в 2025-м получила собственный движок для работы с GGML, а в 2026-м вернулась к llama.cpp для формата GGUF.
Вопросы и ответы
- Чем Ollama отличается от llama.cpp при запуске моделей?
- Ollama устанавливается одной командой и прячет компиляцию и зависимости, работа с моделями похожа на Docker. llama.cpp требует самостоятельной сборки, например с флагом GGML_CUDA=ON для GPU, но даёт больше контроля над параметрами запуска.
- Какая модель использовалась для сравнения?
- Квантированная Gemma 4 26B A4B в формате GGUF с квантом Q4_0 весом 14–18 ГБ, запущенная на RTX 4090 с 24 ГБ памяти.
- Какие метрики сравнивают в тестах?
- TTFT (время до первого токена), ITL (задержка между токенами), скорость генерации в токенах в секунду и полное время выполнения запроса.



