llama-server: сборка, запуск, настройка

Использованные материалы

Git: https://github.com/ggml-org/llama.cpp/tree/master/tools/server
Параграф Systemd Services из статьи Self-host LLMs in production with llama.cpp llama-server.

Важно

Все указанные в статье IP-адреса, это адреса моей домашней сети, менять на актуальные для себя по необходимости.

Установка CUDA Toolkit

sudo apt update
sudo apt install cmake curl libcurl4-openssl-dev
sudo apt install cuda-toolkit
sudo apt install nvidia-gds 
# для cuda-compat не нашлось кандидатов на установку, но она опциональна и сервер собрался, запустился и работает без неё
sudo apt install cuda-compat
# перезагрузка обязательна
sudo reboot

Сборка llama-server

cd /srv
sudo git clone https://github.com/ggml-org/llama.cpp.git
sudo chown -R :andrey llama.cpp
sudo chmod -R g+w llama.cpp
cd llama.cpp
git config --global --add safe.directory /srv/llama.cpp
cmake -B build -DGGML_CUDA=ON
cmake --build build --config Release
Сборка длится несколько часов на Jetson Orin NX 16 GB.
После сборки все бинарники находятся в папке llama.cpp/build/bin.

Пробный запуск

/srv/llama.cpp/build/bin/llama-server --ctx-size 4096 --host 0.0.0.0 --port 8080 --gpu-layers 99 --model /srv/models/Meta-Llama-3.1-8B-Instruct-Q6_K.gguf
Более - менее оптимизированный запуск:
/srv/llama.cpp/build/bin/llama-server --host 0.0.0.0 --port 8080 --ctx-size 8192 --gpu-layers 99 --parallel 4 --jinja --model /srv/models/prog/DeepSeek-Coder-V2-Lite-Instruct-Q5_K_M.gguf
--jinja нужен для совместимости с Codex.

Чат ожидает вопросов по адресу http://192.168.168.15:8080.

Тестирование

В браузере заходим по адресу http://192.168.168.15:8080 и пробуем общаться. Работает, но медленно. Нужны оптимальный выбор LLM модели для устройства и подбор правильных параметров запуска llama-server.

Интерфейсы

Настройка

README.md
llama.cpp guide - Running LLMs locally, on any hardware, from scratch
Развёртывание Open LLMs с помощью LLAMA-CPP Server