gpu-rent now writes personas/<id>/ on the VM (not legacy personas.json), adds seed-personas/doctor checks, and shortens mid/high keep-alive now that Assistent parks the LLM before Generate. Co-authored-by: Cursor <cursoragent@cursor.com>
6.1 KiB
LLM рядом со SwarmUI (opt-in)
По умолчанию поднимается только SwarmUI. Ollama — отдельно (помощь с промптами и т.п.).
Интерактивные вопросы — нумерованные меню (Enter = вариант со ←). Ключ словом (recommended, keep) тоже принимается.
Три стека на GPU:
| # | стек | смысл |
|---|---|---|
| 1 | SwarmUI | только генерация картинок |
| 2 | SwarmUI + LLM | UI + Ollama на той же карте |
| 3 | только LLM | без SwarmUI — только Ollama |
Флаги: up --yes --llm-only --ollama / --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 ollama
gpu-rent up --yes --llm-only --ollama # без SwarmUI
С --yes пресеты не спрашивает (берёт существующий yaml / example).
C — vars вручную
LLM_RUNTIME=ollama
Потом gpu-rent up --yes.
Выключить: LLM_RUNTIME=none (на up старые LLM unit’ы на VM останавливаются).
Голый gpu-rent без args — help. Двойной клик: GPU_RENT_DEFAULT_ARGS=up --yes. Полный doctor на up: up -v.
Порты (loopback + туннель)
| Сервис | На VM | На ноутбуке |
|---|---|---|
| SwarmUI | 7801 | 17801 |
| Ollama | 11434 | 17811 |
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 при отсутствии |
На up — ollama pull по списку, сверка с /api/tags. Слой 100% без status=success не считается успехом (кэш ≠ модель в Assistent). Если тега всё ещё нет — warning, GPU не гасим. Лишнее на диске не удаляет.
После успешного тега — warmup: 1-token POST /api/chat, чтобы веса (~6 GB VL) легли в VRAM до первого сообщения в Assistent. То же при gpu-rent tunnel, если /api/ps пуст. Промах warmup — warning, GPU не гасим.
Qwen3-VL (huihui_ai/qwen3-vl-abliterated:…) требует Ollama ≥ 0.12.7. Тег :8b-instruct — чат Instruct; :latest у этой библиотеки — Thinking, не ставить дефолтом.
Пресеты (меню)
| # | ключ | tag / смысл |
|---|---|---|
| 1 | recommended | huihui_ai/qwen3-vl-abliterated:8b-instruct — RU + vision, ~6.1 GB; запасной huihui_ai/qwen2.5-vl-abliterated:7b |
| 2 | light | …:3b — то же, мало VRAM (~3 GB) |
| 3 | text | huihui_ai/qwen2.5-abliterate:7b — RU, без vision (~5 GB) |
| 4 | big | huihui_ai/qwen2.5-vl-abliterated:32b — RU + vision (~21 GB) |
| 5 | empty | только runtime |
| — | keep | не трогать yaml |
Рекомендуемый пресет — abliterated Qwen3-VL Instruct; light / text / big пока Qwen2.5. Официальные censored-теги (qwen2.5vl:…) в меню нет.
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 | CONTEXT |
|---|---|---|---|---|---|
| low (<16 GiB) | off | 2m | q4_0 | 6 GiB | 8k |
| mid (16–23) | on* | 5m | q8_0 | 10 GiB | 16k |
| high (24–47) | on* | 5m | q8_0 | 14 GiB | 16k |
| ultra (≥48) | on* | 30m | q8_0 | 20 GiB | 32k |
*Flash на Ampere+ (compute ≥ 8.0). NUM_PARALLEL=2, MAX_LOADED_MODELS=2 (chat VL + memory embed). Memory models use use: memory and a CPU Modelfile (num_gpu 0) so embed does not steal VRAM from the chat model. Ollama default num_ctx is 4096; we set OLLAMA_CONTEXT_LENGTH so Assistent + vision fits. Mid/high keep-alive is 5m because Assistent parks the chat model before Generate (AssistentParkLlm) and warms after. Env: /mnt/swarm_data/.gpu-rent-ollama.env.
Personas: laptop assistent-personas.yaml → on up / seed-personas overlay folders under /mnt/swarm_data/Assistent/personas/<id>/ (+ _base/assistant.json with default_persona / num_ctx). See extensions.md.
ollama-models.yaml entries:
- name: huihui_ai/qwen3-vl-abliterated:8b-instruct
use: chat
default: true
- name: huihui_ai/qwen2.5-vl-abliterated:7b
use: chat
- name: nomic-embed-text
use: memory
Roles are written to /mnt/swarm_data/Assistent/ollama-roles.json for the Assistent extension (chat select vs memory select).
Idle-killer и LLM
Busy (не гасить GPU):
- очередь / loading SwarmUI (Generate) — даже если Ollama
/api/psпуст после ParkLlm; ollama pull(маркер младше ~3 ч; refresh во время pull);- загруженная модель в Ollama.
Ошибка установки LLM на up — fail (не тихий лог).
Supply-chain (опциональный pin)
По умолчанию install тянет upstream без pin (WARN в логе). Жёстче:
OLLAMA_VERSION=0.6.5
OLLAMA_SHA256=<sha256 of ollama-linux-amd64.tgz>
Готовые кейсы — в gpu-rent.vars.example.