Когда один бинарник правит всеми
Долгое время локальный запуск LLM напоминал квест с выбором оружия. Под каждую платформу - свой бинарник. Под каждое расширение - отдельная сборка. CUDA, Metal, Vulkan, CPU-only, AVX-only - глаза разбегались. Разработчики llama.cpp долго терпели этот хаос, а потом взяли и сделали unified binary.
Unified binary - это один исполняемый файл, который сам определяет, на каком железе работает, и подгружает нужные оптимизации на лету. Скачал, дал права на запуск, скормил модель в GGUF - и готово. Никакой возни с флагами сборки, никаких "а у меня не собирается под Windows".
По состоянию на май 2026 unified binary - официально рекомендуемый способ распространения llama.cpp. Релизная страница на GitHub теперь содержит только один архив под каждую ОС вместо дюжины вариантов.
Как это работает технически? Внутри бинарника - статически слинкованные бэкенды: CUDA, Metal, Vulkan, OpenCL, SYCL, а также несколько CPU-ядер (AVX2, AVX, NEON, x86-64-v3 и т.д.). При старте программа запускает тесты производительности и выбирает оптимальную комбинацию. Это занимает пару секунд, но результат - максимальная скорость на конкретном устройстве без дополнительной настройки.
Для сравнения, другие фреймворки (Ollama, vLLM, MLX) требуют либо установки рантайма, либо докер-контейнера. Unified binary же - это просто файл. Его можно положить в репозиторий проекта, таскать на флешке, запускать на сервере без прав суперпользователя.
1Сравнение с альтернативами
| Инструмент | Размер бинарника | Зависимости | Простота запуска |
|---|---|---|---|
| Unified binary (llama.cpp) | ~150-200 МБ | Нет (статическая линковка) | Высокая (скачал - запустил) |
| Ollama | ~1-2 ГБ (с runtime) | Требуется установка | Средняя (нужен сервис) |
| LM Studio | ~500 МБ (с GUI) | Требуется установка | Высокая (GUI) |
| vLLM | ~2-3 ГБ (с Python) | Python, CUDA toolkit | Низкая (требуется окружение) |
Unified binary выигрывает в портативности, но проигрывает в гибкости: если нужно что-то сильно кастомное (например, свой бэкенд или нестандартный quantization), придется собирать из исходников. Но для 99% сценариев стандартного инференса его более чем достаточно.
2Примеры из жизни: от Raspberry Pi до игрового ПК
Сценарий 1: вы хотите запустить Llama 3.3 8B на своем ноутбуке без установки Python и CUDA. С unified binary это выглядит так:
# Скачиваем бинарник под Linux
wget https://github.com/ggml-org/llama.cpp/releases/download/latest/llama-binary-linux-x86_64
# Даем права
chmod +x llama-binary-linux-x86_64
# Скачиваем модель (GGUF)
wget https://huggingface.co/bartowski/Llama-3.3-8B-Instruct-GGUF/resolve/main/Llama-3.3-8B-Instruct-Q4_K_M.gguf
# Запускаем инференс
./llama-binary-linux-x86_64 -m Llama-3.3-8B-Instruct-Q4_K_M.gguf -p "Hello, who are you?"Три команды - и модель уже отвечает. Никаких pip install, никаких cmake ... Кстати, подробно про скачивание моделей в GGUF можно почитать вот тут.
Сценарий 2: запуск на старом железе. У вас есть Raspberry Pi 5 или Steam Deck? Unified binary автоматически выберет ARM-оптимизации и NEON-инструкции. Мы уже писали, как запускать LLM на старом железе - с unified binary это стало еще проще.
Сценарий 3: встраивание в CI/CD или серверную инфраструктуру. Бинарник не требует установки, его можно просто добавить в Docker-образ как статический артефакт. Для продакшена можно даже использовать RPC-сервер, чтобы распределить нагрузку на несколько машин.
Важный нюанс: unified binary пока не поддерживает все экзотические GPU (например, Intel Arc старого поколения с OpenCL). Для таких случаев придется собирать llama.cpp вручную с нужными флагами. Но массовые комбинации (NVIDIA, AMD, Apple Silicon) работают из коробки.
3Кому это нужно (и кому - нет)
- Разработчикам, которые хотят встроить LLM в свой проект без танцев с бубном вокруг зависимостей. Встраивание llama.cpp напрямую - тема смежная, но unified binary подходит для быстрого прототипирования.
- DevOps-инженерам, разворачивающим модели на голых серверах или в Kubernetes.
- Энтузиастам, которые хотят поиграться с разными моделями, не засоряя систему рантаймами.
- Не подойдет тем, кто привык к графическим интерфейсам (LM Studio, GPT4All). CLI - это осознанный выбор.
Кстати, если вам нужно запустить модель на нескольких устройствах одновременно (например, на нескольких телефонах), unified binary можно комбинировать с RPC-подходом, о котором мы рассказывали в статье про AI-Doomsday-Toolbox.
А для продвинутого роутинга между GPU на Mac есть отдельный гайд.
Лично мое мнение: unified binary - это эволюционный шаг, который делает локальный AI таким же простым, как запуск обычной программы. Не удивлюсь, если через год все LLM-дистрибутивы будут распространяться именно так. Потому что удобство побеждает.