Files
gpu-rent/docs/llm.md
T
Leonid PershinandCursor 4081890b4c Support Ollama use: chat|memory and parallel embed beside VL.
Pull nomic-embed-text for Assistent memory, write ollama-roles.json, CPU Modelfile, and raise MAX_LOADED_MODELS/NUM_PARALLEL to 2.

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

5.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 не гасим.

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

# ключ tag / смысл
1 recommended huihui_ai/qwen2.5-vl-abliterated:7b — RU + vision, ~6GB
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

Все пресеты (кроме empty) — abliterated 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 (<16GiB) off 2m q4_0 6GiB 8k
mid (1623) on* 15m q8_0 10GiB 16k
high (2447) on* 15m 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. Env: /mnt/swarm_data/.gpu-rent-ollama.env.

ollama-models.yaml entries:

- name: huihui_ai/qwen2.5-vl-abliterated:7b
  use: chat
  default: true
- 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):

  • ollama pull (маркер младше ~45 мин; старше сбрасывается);
  • загруженная модель в 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.