- Added support for `llamacpp-models.yaml` in `.gitignore` and implemented logic to copy it in `gpu-rent.ps1` and `gpu-rent.sh`. - Enhanced CLI to prompt for llama.cpp model presets during setup and execution, improving user experience. - Updated configuration handling to include `llamacpp_models_manifest` and related functions for managing llama.cpp models. - Improved documentation in `cli.md` and `llm.md` to reflect changes in llama.cpp integration and model management. - Refactored provisioning logic to handle llama.cpp model downloads and configurations effectively.
5.3 KiB
LLM рядом со SwarmUI (opt-in)
По умолчанию поднимается только SwarmUI. Ollama или llama.cpp — отдельно, когда нужны (помощь с промптами и т.п.).
Быстрый путь
Вариант A — wizard
gpu-rent setup
Выбери ollama или llamacpp. Для обоих спросит пресет моделей. Значение пишется в gpu-rent.vars (LLM_RUNTIME=…).
Вариант B — флаг на up
gpu-rent up --yes --ollama
gpu-rent up --yes --llm llamacpp
Вариант C — вручную в vars
LLM_RUNTIME=ollama
Потом обычный gpu-rent up --yes.
Чтобы выключить LLM на следующих сессиях: LLM_RUNTIME=none (на up старые unit’ы gpu-rent-ollama / gpu-rent-llamacpp останавливаются).
Голый gpu-rent без args — help, не up. Двойной клик: GPU_RENT_DEFAULT_ARGS=up --yes в gpu-rent.vars. Полный doctor на up: up -v.
Порты (loopback + туннель)
| Сервис | На VM | На ноутбуке |
|---|---|---|
| SwarmUI | 7801 | 17801 |
| Ollama | 11434 | 17811 |
| llama.cpp | 8080 | 17812 |
gpu-rent tunnel
gpu-rent open --llm
Клиент Ollama:
# Windows PowerShell
$env:OLLAMA_HOST = "http://127.0.0.1:17811"
После успешного up/tunnel CLI печатает access-card со всеми URL и MCP-сниппетом.
Ollama: модели
| Файл | Роль |
|---|---|
ollama-models.example.yaml |
шаблон в git |
ollama-models.yaml |
твой список (gitignore) |
На up при LLM_RUNTIME=ollama CLI делает ollama pull по списку. Уже скачанные теги точно не трогает (foo:3b ≠ foo:7b). Лишние модели на диске не удаляет.
Пресеты setup
| preset | tag | зачем |
|---|---|---|
| recommended | huihui_ai/qwen2.5-abliterate:7b |
RU/EN, ~5 GB, меньше отказов |
| light | qwen2.5:3b |
быстрее, слабее |
| stock | qwen2.5:7b |
официальный |
| alt | richardyoung/qwen2.5-7b-instruct-abliterated |
другой abliterate |
| empty | [] |
только runtime, pull руками |
Community abliterate-модели без гарантий безопасности — для личного prompt-help рядом со SwarmUI.
Поле default: true в yaml — preferred модель (лог / подсказка); pull идёт по всему списку.
Автотюнинг Ollama под GPU
На установке gpu-rent-ollama читает /mnt/swarm_data/.gpu-rent-gpu.json и пишет env в systemd unit (одна карта вместе со SwarmUI):
| Tier (VRAM) | Flash Attn | KEEP_ALIVE | KV cache | GPU_OVERHEAD (запас под Swarm/Krea) |
|---|---|---|---|---|
| low (<16 GiB) | off | 2m | q4_0 | 6 GiB |
| mid (16–23) | on* | 5m | q8_0 | 10 GiB |
| high (24–47) | on* | 15m | q8_0 | 14 GiB |
| ultra (≥48) | on* | 30m | q8_0 | 20 GiB |
*Flash на Ampere+ (compute ≥ 8.0). Всегда NUM_PARALLEL=1, MAX_LOADED_MODELS=1.
Файл: /mnt/swarm_data/.gpu-rent-ollama.env (пересоздаётся на каждом install Ollama).
llama.cpp
Манифест GGUF:
| Файл | Роль |
|---|---|
llamacpp-models.example.yaml |
шаблон в git |
llamacpp-models.yaml |
URL на .gguf (gitignore) |
На interactive up / setup после выбора llamacpp спрашивается пресет (как у Ollama). На up CLI скачивает GGUF в /mnt/swarm_data/llamacpp/models, затем ставит llama-server + systemd.
Пресеты
| preset | что |
|---|---|
| recommended | Qwen2.5 7B abliterate Q4_K_M (~4.7 GB) |
| light | Qwen2.5 3B Instruct Q4_K_M |
| stock | официальный Qwen2.5 7B Instruct Q4_K_M |
| empty | только runtime |
Параметры -ngl / -c — по GPU probe. Опционально HF_TOKEN для gated HF. Вручную: положи GGUF в каталог models и systemctl restart gpu-rent-llamacpp.
Idle-killer и LLM
Busy (не гасить GPU), если:
- идёт
ollama pull(маркер младше ~45 мин; старше — сбрасывается); - в Ollama есть загруженная модель;
- llama.cpp занимает слоты.
Ошибка установки LLM на up — fail (не тихий лог): почини или поставь LLM_RUNTIME=none.
Supply-chain (опциональный pin)
По умолчанию install-скрипты тянут upstream без pin (Ollama: curl|sh; llama.cpp: GitHub latest) — риск подмены. В логе будет WARN.
Жёстче — задай env на VM / при bootstrap:
OLLAMA_VERSION=0.6.5
OLLAMA_SHA256=<sha256 of ollama-linux-amd64.tgz>
LLAMACPP_TAG=b4690
# или LLAMACPP_ASSET_URL=... + LLAMACPP_SHA256=...