- Introduced GPU probing functionality to gather and store GPU specifications in `/mnt/swarm_data/.gpu-rent-gpu.json`, aiding in performance tuning. - Updated `install_ollama.sh` and `install_llamacpp.sh` to utilize GPU information for configuring optimal runtime parameters. - Enhanced `provision.py` to include GPU probing and performance tuning logic, ensuring better resource allocation for LLM operations. - Improved documentation in `decisions.md`, `llm.md`, and `swarmui.md` to reflect changes in GPU handling and performance tuning processes. - Added new tests to validate the GPU probing and model resolution logic, ensuring robustness in handling various GPU configurations.
5.0 KiB
LLM рядом со SwarmUI (opt-in)
По умолчанию поднимается только SwarmUI. Ollama или llama.cpp — отдельно, когда нужны (помощь с промптами и т.п.).
Быстрый путь
Вариант A — wizard
gpu-rent setup
Выбери ollama или llamacpp, при Ollama — пресет моделей. Значение пишется в 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
LLM_RUNTIME=llamacppилиup --llamacpp- CLI ставит
llama-server+ systemdgpu-rent-llamacpp - Положи GGUF в
/mnt/swarm_data/llamacpp/models(SFTP /gpu-rent ssh) systemctl restart gpu-rent-llamacppна VM
Без GGUF unit может стартовать, но API бесполезен — смотри gpu-rent logs / journalctl -u gpu-rent-llamacpp.
Параметры -ngl / -c ставятся по тому же GPU probe (full offload на mid+, меньше слоёв и ctx на low).
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=...