Новости ИИ

Как запустить локальный llama.cpp и чат на своём ПК

Рабочее место с двумя мониторами, сервером и кабелями для локального запуска llama.cpp

Во второй части руководства по локальному AI-стеку автор показывает, как собрать llama.cpp, скачать небольшую тестовую модель и поднять сервер с веб-интерфейсом на локальной машине. После этого чат будет доступен по адресу http://127.0.0.1:8080, а сам подход поможет запускать ИИ без облака и с контролем над памятью.

Что именно ставят и зачем

llama.cpp — это C++-движок для запуска языковых моделей на обычном процессоре, без обязательной видеокарты. В этом шаге его собирают на Linux вместе с минимальным набором зависимостей: нужен build-essential для компиляции, libopenblas-dev для ускорения матричных операций на CPU, а python3-venv автор ставит заранее на будущее, под Open WebUI.

Для проверки берут компактную модель Qwen3.5-2B-Q4_K_M весом примерно 1,5 ГБ. Она удобна тем, что быстро скачивается и позволяет убедиться, что весь пайплайн работает, не дожидаясь загрузки гораздо более тяжёлых моделей на 9–10 ГБ. Позже такая модель пригодится и для быстрых задач вроде черновиков и проверки идей.

Как собирается и запускается сервер

Сборка идёт из исходников: репозиторий клонируют с GitHub, затем запускают cmake и сборку через несколько ядер. Для родного веб-интерфейса llama.cpp в сборке включают флаг -DLLAMA_BUILD_UI=ON, а если с UI возникают проблемы, его можно отключить и оставить только API — тогда интерфейс придётся открывать через другой фронтенд.

После сборки появляются полезные бинарники. Главный из них — llama-server: он поднимает HTTP-сервер и веб-чат. Ещё есть llama-cli для одиночных тестов и llama-quantize для последующей работы с квантованием моделей.

Главные опции, которые экономят память

Самая важная идея статьи — запуск через mmap. Это значит, что модель не загружается целиком в оперативную память, а читается с диска по мере необходимости. Такой режим помогает запускать модель, которая больше доступной RAM, и при этом не мучить SSD постоянной записью, как это бывает со swap.

Автор отдельно разбирает ограничения памяти через cgroup и systemd-run, а также режимы загрузки. Если поставить load-mode none, модель попытается занять всю память и может упасть с OOM. Режим mlock быстро работает, но подходит только для моделей, которые точно помещаются в RAM. Отдельно предупреждают и про CPU_REPACK: llama.cpp может создать вторую копию весов для ускорения, из-за чего пик потребления памяти почти удваивается. Поэтому для слабых машин полезен флаг --no-repack, даже если скорость чуть снизится.

Что важно знать про KV-cache и мультимодальные модели

Для длинного диалога может разрастаться KV-cache — память под историю общения. В статье советуют сжимать его в q8_0 через параметры -ctk q8_0 и -ctv q8_0: это даёт примерно вдвое меньший расход памяти при небольшой потере качества.

Отдельный блок посвящён мультимодальным моделям. Для них нужен файл mmproj-F16.gguf — это отдельный «переходник» между визуальным энкодером и языковой частью. Без него модель видит только текст, а с ним может работать с изображениями. При этом mmproj должен лежать в той же папке, что и сама модель, а для роутера llama.cpp важно, чтобы он находил этот файл рядом с ней.

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

Зачем вообще собирать llama.cpp локально?
Так можно запускать модели на своём компьютере, даже без мощной видеокарты, и лучше контролировать расход памяти. Это удобно для экспериментов, приватных задач и тестов на обычном железе.
Почему в статье советуют именно mmap?
Потому что в этом режиме модель не обязана целиком помещаться в оперативку. Файл читается по страницам, поэтому можно стартовать даже с более крупной моделью, чем позволяет RAM.
Что даёт Q4_K_M и почему взяли именно её?
Это удачный баланс между размером и качеством. Модель весит около 1,5 ГБ и подходит для быстрой проверки сборки, а не только для тяжёлых сценариев.
Зачем нужен mmproj для мультимодальных моделей?
Он связывает визуальную часть с языковой моделью, чтобы система понимала изображения. Без него мультимодальная модель работает как обычная текстовая.

Читайте также

Попробовать Lord GPT бесплатно →