Модель, которая отвечает на сервере компании внутри собственного периметра, — это llama.cpp: открытый движок локального запуска языковых моделей без облака и платы за токены. Для бизнеса это способ держать конфиденциальные данные в своём контуре и встраивать модель в собственные программы напрямую. Движок имеет смысл там, где важны контроль и встраивание, а удобство первой установки — на втором месте.

Что такое llama.cpp

TL;DR

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 серверный режим отличается одним принципиальным свойством: предел нагрузки определяется вашим железом, внешние лимиты здесь отсутствуют. Пока модель и запросы помещаются в ресурсы сервера, связка работает с одинаковой скоростью днём и ночью; когда упирается — расширение решается закупкой железа, без переговоров о квотах.

Что это даёт на практике: единая точка доступа для всей команды вместо зоопарка личных установок, свои ключи и логи запросов под контролем, предсказуемая нагрузка на железо. Администратор видит, кто и как использует модель, — для контура с конфиденциальными данными это обязательное требование.

Профиль нагрузки у каждой компании свой: число пользователей, длина документов, режим работы. От этих трёх параметров и зависит, хватит ли одного сервера.

● Discovery · 1 час · бесплатно

Сколько сотрудников одновременно обращались бы к вашей локальной модели?

Прийти на Discovery →

llama.cpp против Ollama

Ollama — удобная обёртка над тем же движком: одна команда на установку, каталог готовых моделей, автоматическая настройка. Стартовать с нуля быстрее именно с неё, и пошаговый путь описан в статье про запуск локальной модели через Ollama. llama.cpp берут там, где обёртка начинает мешать: тонкая настройка параметров, встраивание в свой продукт, нестандартное железо.

ВопросOllamallama.cpp
Первый запускОдна команда, всё настроеноСборка и ручная настройка
Контроль параметровБазовые настройкиПолный доступ к параметрам движка
Встраивание в продуктЧерез API-обёрткуНапрямую как библиотека
Для когоБыстрый старт, пилоты, команда без инженераИнженерная команда, свой продукт, особые требования

На практике оба инструмента живут в одной компании мирно: Ollama на машинах сотрудников для повседневных задач, llama.cpp в серверном режиме — для продукта и интеграций. Противопоставлять их здесь некорректно: конкуренции между ними нет, это этапы взросления одного и того же контура.

Если локальный контур нужен под ключ — с подбором железа, модели, серверного режима и интеграцией в процессы, — посмотрите, как мы подходим к таким проектам, в материале про внедрение ИИ в компанию. Состав работ и что влияет на стоимость обсуждаем на бесплатном Discovery-часе.

Частые вопросы

Чем llama.cpp отличается от Ollama?
Ollama — обёртка для быстрого старта: одна команда, готовые модели, автонастройка. llama.cpp — сам движок: больше ручной работы, зато полный контроль над параметрами и возможность встроить модель в собственную программу как библиотеку. Для пилота обычно начинают с Ollama, для продукта — с llama.cpp.
Что такое GGUF?
Формат файла с весами модели для локального запуска: один файл — одна модель, удобно хранить и переносить между машинами. Через llama.cpp запускаются модели именно в этом формате, в том числе с разной степенью сжатия весов.
Нужна ли видеокарта для llama.cpp?
Движок умеет работать на обычном процессоре — это одна из его главных особенностей. Видеокарта заметно ускоряет ответы, а главный ограничитель — объём памяти: модель должна поместиться в неё целиком. Проверяйте конкретную связку модели и железа на своих задачах.
Какие модели запускают через llama.cpp?
Любые открытые модели в формате GGUF: семейства Llama от Meta, Qwen, Mistral и другие. Выбор зависит от задачи, языка и доступной памяти — ориентиры даёт статья про выбор модели Llama для компании.
Подойдёт ли llama.cpp отделу без программистов?
Без инженера обойтись трудно: сборка, серверный режим и встраивание требуют технических рук. Для старта без технической команды удобнее Ollama или готовый локальный агент под задачу — а движок оставить на этап, когда появятся требования к контролю и встраиванию.