Локальный запуск LLM (llama.cpp, Ollama)
| llama.cpp | Георгий Герганов, март 2023, C/C++, MIT |
|---|---|
| Ollama | 2023, Go (поверх llama.cpp), MIT |
| Формат моделей | GGUF |
| Бэкенды | CPU, CUDA, Metal, Vulkan, ROCm |
| API | совместимый с OpenAI (/v1/chat/completions) |
| Альтернативы | LM Studio, MLX (Apple), vLLM, Jan, KoboldCpp |
Локальный запуск LLM — использование больших языковых моделей на собственном компьютере или сервере вместо облачных API. Главные причины — приватность (данные не покидают машину), работа без интернета и без блокировок, отсутствие платы за токены и полный контроль над моделью. Плата за это — более слабые модели, чем передовые облачные, и требования к железу. Основные инструменты — библиотека llama.cpp и построенная на ней программа Ollama.[1][2]
История
После утечки весов модели LLaMA от Meta в марте 2023 года болгарский разработчик Георгий Герганов за несколько вечеров написал llama.cpp — реализацию инференса на чистом C/C++ без Python и PyTorch, способную работать на обычном ноутбуке, в том числе на Apple Silicon. Ключевым была агрессивная квантизация до 4 бит. Проект быстро стал основой экосистемы: появился формат GGUF (2023), сотни поддерживаемых архитектур и обёртки — Ollama, LM Studio, Jan, KoboldCpp. Тем временем Meta, Mistral, Alibaba (Qwen), Google (Gemma), DeepSeek и другие начали выпускать открытые веса официально.
Инструменты
| Инструмент | Для кого | Особенности |
|---|---|---|
| llama.cpp | разработчики, серверы | максимум настроек, llama-server с веб-интерфейсом и API[4] |
| Ollama | разработчики, быстрый старт | ollama run модель, каталог моделей, фоновый сервис |
| LM Studio | пользователи | графический интерфейс, поиск моделей на Hugging Face |
| MLX | владельцы Mac | фреймворк Apple, быстрый на Apple Silicon[5] |
| vLLM | серверы с GPU, много пользователей | высокая пропускная способность, см. vLLM и инференс-серверы |
# Ollama
ollama pull qwen3:8b
ollama run qwen3:8b "Объясни, что такое GIL, в трёх предложениях"
# llama.cpp: сервер с OpenAI-совместимым API и веб-чатом
llama-server -hf ggml-org/gemma-3-4b-it-GGUF --port 8080 -c 16384 -ngl 99
Оба поднимают HTTP API, совместимый с OpenAI, поэтому существующие клиенты, редакторы кода и библиотеки работают с локальной моделью сменой адреса:
from openai import OpenAI
client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama")
r = client.chat.completions.create(model="qwen3:8b",
messages=[{"role": "user", "content": "Привет!"}])
print(r.choices[0].message.content)
Ollama описывает настройки модели (системный промпт, температуру, размер контекста) в файле Modelfile по аналогии с Dockerfile.[3]
Требования к железу
Главный ограничитель — память: модель должна поместиться в видеопамять GPU или в общую память Apple Silicon. Грубая оценка для 4-битной квантизации — около 0,6 ГБ на миллиард параметров плюс память на KV-кэш, растущая с длиной контекста.
| Модель | Память (Q4) | Где запускать |
|---|---|---|
| 1–4 млрд | 1–3 ГБ | любой ноутбук, телефон |
| 7–9 млрд | 5–6 ГБ | ноутбук с 16 ГБ, видеокарта 8 ГБ |
| 14–32 млрд | 9–20 ГБ | Mac с 32 ГБ, видеокарта 24 ГБ |
| 70 млрд | ~40 ГБ | Mac с 64 ГБ, две видеокарты |
Скорость генерации определяется пропускной способностью памяти, поэтому Mac с большой объединённой памятью и видеокарты вроде RTX 3090/4090 — популярный выбор. Без GPU модель работает и на CPU, но медленно. Модели семейства MoE (смесь экспертов) активируют лишь часть параметров на токен и работают быстрее, чем подсказывает их полный размер, хотя памяти требуют на все веса.
Выбор модели и квантизации
Модели в формате GGUF публикуются на Hugging Face в нескольких вариантах квантизации.[6] Разумный выбор — Q4_K_M как компромисс размера и качества, Q5_K_M/Q6_K при запасе памяти, Q8_0 — почти без потерь. Крупная модель в 4 битах обычно лучше меньшей в 8 битах.
Применения
- приватный чат и работа с конфиденциальными документами (локальный RAG с локальной моделью эмбеддингов);
- автодополнение кода в редакторе без отправки кода наружу;
- офлайн-перевод, суммаризация, классификация больших объёмов текста без оплаты за токены;
- эксперименты с дообучением и прототипы до выбора облачного провайдера.
Ограничения
Локальные модели уступают передовым облачным в сложных рассуждениях, коде и длинном контексте; качество вызова инструментов и структурированного вывода сильно зависит от модели и шаблона чата. Сервер Ollama по умолчанию слушает только localhost — открывать его в сеть без аутентификации опасно.