Модель, которая отвечает на сервере компании внутри собственного периметра, — это llama.cpp: открытый движок локального запуска языковых моделей без облака и платы за токены. Для бизнеса это способ держать конфиденциальные данные в своём контуре и встраивать модель в собственные программы напрямую. Движок имеет смысл там, где важны контроль и встраивание, а удобство первой установки — на втором месте.
Что такое llama.cpp
llama.cpp — библиотека-движок: берёт файл модели в формате GGUF и отвечает на запросы локально, в том числе на обычном процессоре без видеокарты. На нём построены Ollama, LM Studio и большинство пилотов локальных моделей, которые мы видим у клиентов.
Проект начинался как способ запустить модели семейства Llama от Meta на обычном железе и вырос в универсальный движок: сегодня через него работают Qwen, Mistral и другие открытые модели. Цифры производительности сознательно обходим — они зависят от железа, модели и сжатия, а честные значения для вашего сервера покажет только замер на ваших задачах.
В коробке с движком — несколько рабочих режимов, и компании используют их под разные задачи.
- Запуск модели в консоли — быстрая проверка модели на своих запросах.
- Серверный режим с API — модель как веб-сервис для своих программ и скриптов.
- Встраивание как библиотеки — модель внутри десктопного или серверного приложения.
- Утилиты для работы с файлами GGUF — конвертация и сжатие весов.
Код движка открыт, и это отдельное преимущество для компании: сообщество проверяет его годами, под него собраны готовые сборки под разное железо, а зависимости от одного поставщика здесь нет как класса. Если завтра понадобится перенос на другой сервер или другую модель, связка переезжает целиком — файл модели плюс движок.
Где движок уместен
Первая и главная причина смотреть в сторону llama.cpp — свой контур. Договоры, финансы, медицинские и персональные данные: всё, что компания передавать внешнему сервису вряд ли готова, остаётся внутри периметра, потому что модель работает локально, и запросу некуда уйти наружу.
Вторая причина — предсказуемость затрат. Облачный API тарифицируется за токены, и счёт растёт вместе с использованием; локальный движок после закупки железа работает без счёта за токены: предельная стоимость запроса стремится к нулю. На небольшом потоке запросов облако дешевле, на постоянной высокой нагрузке экономика начинает склоняться к своему контуру — границу для вашей задачи показывает расчёт на реальных объёмах.
- Прототип ИИ-функции до закупки серьёзного железа: проверить ценность на том, что уже есть.
- Ответы сотрудникам по внутренним документам — регламенты, база знаний, архив переписки.
- Площадки со слабым каналом связи: цех, удалённый объект, полевая команда.
- Встраивание модели в собственный продукт, где облачный API по условиям проходит плохо.
Выбор самой модели — отдельный разговор: размер, язык, качество на ваших текстах. Ориентиры даёт статья про модели Llama для компании и когда их выбирать; llama.cpp в этой связке отвечает за то, как выбранная модель будет работать.
GGUF и квантование
GGUF — формат файла с весами модели: один файл равен одной модели, его удобно хранить, переносить между серверами и версионировать. Подробный разбор формата на примере конкретной модели есть в статье про GGUF как формат весов для локального запуска — второй раз разбирать механику здесь незачем.
Квантование объясняется на пальцах: веса модели записывают компактнее, жертвуя долей точности ради памяти. Сильное сжатие — модель помещается на скромном железе, но отвечает заметно грубее; слабое — качество почти исходное, а требования к памяти выше. Практическое правило звучит так: берите самое качественное сжатие, которое влезает в память вашего сервера, и обязательно прогоняйте свои рабочие запросы — на чужих бенчмарках ваша задача может вести себя иначе.
Первый замер делается за вечер: одна открытая модель в GGUF, консоль, два десятка рабочих запросов отдела — без интеграций и серверного режима. Ответы читает живой сотрудник. Кивает чаще, чем качает головой — у локального контура есть основание; каждый второй ответ уходит в переписывание — экономия на токенах обернётся потерей времени.
Серверный режим
Для командной работы llama.cpp поднимают как локальный сервер: модель получает адрес внутри сети компании, а программы обращаются к ней через API, по формату похожий на привычные облачные. Свои скрипты, чат-боты, сценарии в n8n или Make подключаются к такой точке стандартным образом — снаружи связка выглядит как обычный веб-сервис.
От облачного API серверный режим отличается одним принципиальным свойством: предел нагрузки определяется вашим железом, внешние лимиты здесь отсутствуют. Пока модель и запросы помещаются в ресурсы сервера, связка работает с одинаковой скоростью днём и ночью; когда упирается — расширение решается закупкой железа, без переговоров о квотах.
Что это даёт на практике: единая точка доступа для всей команды вместо зоопарка личных установок, свои ключи и логи запросов под контролем, предсказуемая нагрузка на железо. Администратор видит, кто и как использует модель, — для контура с конфиденциальными данными это обязательное требование.
Профиль нагрузки у каждой компании свой: число пользователей, длина документов, режим работы. От этих трёх параметров и зависит, хватит ли одного сервера.
Сколько сотрудников одновременно обращались бы к вашей локальной модели?
llama.cpp против Ollama
Ollama — удобная обёртка над тем же движком: одна команда на установку, каталог готовых моделей, автоматическая настройка. Стартовать с нуля быстрее именно с неё, и пошаговый путь описан в статье про запуск локальной модели через Ollama. llama.cpp берут там, где обёртка начинает мешать: тонкая настройка параметров, встраивание в свой продукт, нестандартное железо.
| Вопрос | Ollama | llama.cpp |
|---|---|---|
| Первый запуск | Одна команда, всё настроено | Сборка и ручная настройка |
| Контроль параметров | Базовые настройки | Полный доступ к параметрам движка |
| Встраивание в продукт | Через API-обёртку | Напрямую как библиотека |
| Для кого | Быстрый старт, пилоты, команда без инженера | Инженерная команда, свой продукт, особые требования |
На практике оба инструмента живут в одной компании мирно: Ollama на машинах сотрудников для повседневных задач, llama.cpp в серверном режиме — для продукта и интеграций. Противопоставлять их здесь некорректно: конкуренции между ними нет, это этапы взросления одного и того же контура.
Если локальный контур нужен под ключ — с подбором железа, модели, серверного режима и интеграцией в процессы, — посмотрите, как мы подходим к таким проектам, в материале про внедрение ИИ в компанию. Состав работ и что влияет на стоимость обсуждаем на бесплатном Discovery-часе.