Files
gpu-rent/docs/llm.md
T
Leonid PershinandCursor d934fc9366 Expose ollama-roles default_chat for Assistent senior model default.
Write preferred chat tag into Assistent/ollama-roles.json so UI and warmup align with manifest default: true.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-22 03:50:58 +03:00

6.3 KiB
Raw Blame History

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 при отсутствии

На upollama 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.1GB; запасной huihui_ai/qwen2.5-vl-abliterated:7b
2 light …:3b — то же, мало VRAM (~3GB)
3 text huihui_ai/qwen2.5-abliterate:7b — RU, без vision (~5GB)
4 big huihui_ai/qwen2.5-vl-abliterated:32b — RU + vision (~21GB)
5 empty только runtime
keep не трогать yaml

Рекомендуемый пресет — abliterated Qwen3-VL Instruct; light / text / big пока Qwen2.5. Официальные censored-теги (qwen2.5vl:…) в меню нет.

default: true в yaml — preferred в логе и в Assistent/ollama-roles.jsondefault_chat (Assistent UI + warmup); 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 (<16GiB) off 2m q4_0 6GiB 8k
mid (1623) on* 5m q8_0 10GiB 16k
high (2447) on* 5m q8_0 14GiB 16k
ultra (≥48) on* 30m q8_0 20GiB 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/ → on up / seed-personas overlay folders under /mnt/swarm_data/Assistent/personas/<id>/ (+ _base/assistant.json with default_persona / num_ctx). Shelves are short JSON files (not a long prompt). 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 / memory lists + default_chat for UI default and warmup).


Idle-killer и LLM

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

  • очередь / loading SwarmUI (Generate) — даже если Ollama /api/ps пуст после ParkLlm;
  • ollama pull (маркер младше ~3 ч; refresh во время pull);
  • загруженная модель в Ollama.

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


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

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

OLLAMA_VERSION=0.6.5
OLLAMA_SHA256=<sha256 of ollama-linux-amd64.tgz>

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