Files
gpu-rent/docs/llm.md
T
Leonid Pershin 6871c511c4 Implement UP_STOP_ON_FAIL option to manage GPU state on installation failure
- Added a new configuration option `UP_STOP_ON_FAIL` to control whether the GPU should be stopped automatically if the `up` command fails, enhancing user control over resource management.
- Updated the CLI to include a `--keep-on-fail` flag, allowing users to prevent GPU shutdown during installation errors.
- Enhanced the installation scripts and documentation to reflect these changes, providing clearer guidance on the new behavior and configuration options.
- Improved error handling in the CLI to ensure proper cleanup of resources in case of failure, preventing unexpected billing for unused GPU resources.
2026-08-21 08:32:33 +03:00

6.9 KiB
Raw Blame History

LLM рядом со SwarmUI (opt-in)

По умолчанию поднимается только SwarmUI. Ollama или llama.cpp — отдельно (помощь с промптами и т.п.).

Интерактивные вопросы — нумерованные меню (Enter = вариант со ←). Ключ словом (recommended, keep) тоже принимается.

Три стека на GPU:

# стек смысл
1 SwarmUI только генерация картинок
2 SwarmUI + LLM UI + Ollama/llama.cpp на той же карте
3 только LLM без SwarmUI — Ollama или llama.cpp

Флаги: up --yes --llm-only --llamacpp / --no-swarm --ollama. Vars: ENABLE_SWARMUI=false или WORKLOAD=llm.


Быстрый путь

A — wizard

gpu-rent setup

Меню: runtime → пресет моделей → опционально local-watchdog. Пишет LLM_RUNTIME в gpu-rent.vars.

B — флаг на up

gpu-rent up --yes --ollama
gpu-rent up --yes --llm llamacpp
gpu-rent up --yes --llm-only --llamacpp   # без SwarmUI

С --yes пресеты не спрашивает (берёт существующий yaml / example).

C — vars вручную

LLM_RUNTIME=ollama

Потом gpu-rent up --yes.

Выключить: LLM_RUNTIME=none (на up старые unit’ы gpu-rent-ollama / gpu-rent-llamacpp останавливаются).

Голый gpu-rent без args — help. Двойной клик: GPU_RENT_DEFAULT_ARGS=up --yes. Полный doctor на up: up -v.


Порты (loopback + туннель)

Сервис На VM На ноутбуке
SwarmUI 7801 17801
Ollama 11434 17811
llama.cpp 8080 17812
gpu-rent tunnel
gpu-rent open --llm
$env:OLLAMA_HOST = "http://127.0.0.1:17811"

После up/tunnel — access-card с URL и MCP-сниппетом.


Ollama

Файл Роль
ollama-models.example.yaml шаблон в git
ollama-models.yaml список тегов (gitignore); лаунчер копирует example при отсутствии

На upollama pull по списку. Точные теги: уже есть foo:7b ≠ skip для foo:3b. Лишнее на диске не удаляет.

Пресеты (меню)

# ключ tag / смысл
1 recommended huihui_ai/qwen2.5-vl-abliterated:7b — vision+RU, ~6 GB
2 light VL 3B abliterate (~3 GB)
3 text text-only qwen2.5-abliterate:7b
4 stock qwen2.5:7b
5 alt другой text abliterate 7B
6 empty только runtime
keep не трогать yaml (если уже спросили повторно)

default: true в yaml — preferred в логе; pull идёт по всему списку.


Автотюнинг Ollama

Unit gpu-rent-ollama читает /mnt/swarm_data/.gpu-rent-gpu.json:

Tier (VRAM) Flash Attn KEEP_ALIVE KV cache GPU_OVERHEAD
low (<16GiB) off 2m q4_0 6GiB
mid (1623) on* 5m q8_0 10GiB
high (2447) on* 15m q8_0 14GiB
ultra (≥48) on* 30m q8_0 20GiB

*Flash на Ampere+ (compute ≥ 8.0). NUM_PARALLEL=1, MAX_LOADED_MODELS=1. Env: /mnt/swarm_data/.gpu-rent-ollama.env.


llama.cpp

Файл Роль
llamacpp-models.example.yaml шаблон
llamacpp-models.yaml HTTPS URL на .gguf (gitignore)

На up: скачать GGUF → /mnt/swarm_data/llamacpp/modelsllama-server + systemd. Уже скачанные крупные файлы не трогает.

Бинарник: в GitHub Releases нет Linux CUDA — только Windows CUDA + Ubuntu CPU/Vulkan. Драйвер/CUDA runtime на VM ≠ готовый llama-server с CUDA: его нужно собрать (nvcc) или взять Vulkan prebuilt.

Порядок по умолчанию (LLAMACPP_BACKEND=auto):

  1. Если на VM уже есть nvcc (часто после прошлого up) → CUDA-сборка (тихо + heartbeat 515 мин).
  2. Иначе → Ubuntu Vulkan prebuilt (~30MB).
  3. Fallback на другой путь при ошибке.

Был только Vulkan-stamp, а nvcc появился — следующий up сам пересоберёт CUDA.

Var Зачем
LLAMACPP_BACKEND=auto|cuda|vulkan выбор пути (default auto)
LLAMACPP_TAG pin release (b10545)
LLAMACPP_ASSET_URL + LLAMACPP_SHA256 свой архив
LLAMACPP_BUILD_CUDA=1 форс CUDA; =0 — никогда не собирать
LLAMACPP_FORCE_REINSTALL=1 снести бинарь и поставить заново
LLAMACPP_NGL / LLAMACPP_CTX override GPU layers / context
LLAMACPP_HOST / LLAMACPP_PORT bind (default 127.0.0.1:8080)
LLAMACPP_EXTRA_ARGS доп. флаги llama-server
OLLAMA_VERSION / OLLAMA_SHA256 pin Ollama

Готовые кейсы A–H — в gpu-rent.vars.example.

Пресеты (меню)

# ключ что
1 recommended Qwen2.5-VL 7B abliterate + mmproj (~4.7+0.8 GB, картинки+RU)
2 light Qwen2.5 3B Instruct text Q4_K_M
3 text Qwen2.5 7B abliterate text-only
4 stock официальный 7B Instruct Q4_K_M
5 empty только runtime
keep не трогать yaml

-ngl / -c — по GPU probe. Для recommended abliterate GGUF нужен HF_TOKEN в .env (иначе 401). Вручную: положи GGUF в models и systemctl restart gpu-rent-llamacpp.


Idle-killer и LLM

Busy (не гасить GPU):

  • ollama pull (маркер младше ~45 мин; старше сбрасывается);
  • загруженная модель в Ollama;
  • llama.cpp: слоты заняты.

Ошибка установки LLM на upfail (не тихий лог).


Supply-chain (опциональный pin)

По умолчанию install тянет upstream без pin (WARN в логе). Жёстче:

OLLAMA_VERSION=0.6.5
OLLAMA_SHA256=<sha256 of ollama-linux-amd64.tgz>
LLAMACPP_TAG=b10545
# или LLAMACPP_ASSET_URL=... + LLAMACPP_SHA256=...
# CUDA из исходников (медленно): LLAMACPP_BUILD_CUDA=1
# Переустановка бинаря: LLAMACPP_FORCE_REINSTALL=1
# VRAM: LLAMACPP_NGL=40  LLAMACPP_CTX=4096  LLAMACPP_EXTRA_ARGS=--flash-attn on