Immer-bereit-Set ehrlich gemacht: vision ttl 0, Warmup inkl. vision, Texte

Nutzer-Fund (Screenshots 03.07.): drei UI-Diskrepanzen im Modell-Manager.
1) Augen (VL-8B) hatten ttl 300 + fehlten im Warmup — standen also entgegen
   dem UI-Versprechen NICHT immer bereit. Jetzt ttl 0 (Box live + Snapshot)
   und Warmup-Default "fast vision".
2) Warn-Text beschrieb das alte Verdraengungs-Verhalten (seit persistent-Fix
   falsch) — jetzt: Set bleibt geladen, bei Ueberlauf scheitert das grosse
   Modell. 3) "Reserviert" als Vorsichts-Schaetzung/Obergrenze gekennzeichnet
   (68,8 GB Schaetzer vs. 25 GB real — Schaetzer-Umbau ist eigener Faden).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Hitonabi
2026-07-03 09:10:44 +02:00
parent 50867b2781
commit d2ab662146
6 changed files with 17 additions and 13 deletions
+2 -1
View File
@@ -44,7 +44,8 @@ models:
Qwen3-VL-8B-Instruct: Qwen3-VL-8B-Instruct:
cmd: | cmd: |
llama-server -m /srv/models/Qwen3-VL-8B-Instruct-GGUF/Qwen3VL-8B-Instruct-Q4_K_M.gguf --host 127.0.0.1 --port ${PORT} -c 32768 -ngl 999 -fa on --no-mmap --mmproj /srv/models/Qwen3-VL-8B-Instruct-GGUF/mmproj-Qwen3VL-8B-Instruct-F16.gguf --jinja llama-server -m /srv/models/Qwen3-VL-8B-Instruct-GGUF/Qwen3VL-8B-Instruct-Q4_K_M.gguf --host 127.0.0.1 --port ${PORT} -c 32768 -ngl 999 -fa on --no-mmap --mmproj /srv/models/Qwen3-VL-8B-Instruct-GGUF/mmproj-Qwen3VL-8B-Instruct-F16.gguf --jinja
ttl: 300 # ttl 0 (03.07.): Mitglied des Immer-bereit-Sets — ein Selbstauslöser widerspräche dem UI-Versprechen.
ttl: 0
aliases: aliases:
- vision - vision
capabilities: capabilities:
+6 -4
View File
@@ -3,14 +3,16 @@
# Anfrage nicht kalt ist (llama-swap lädt sonst lazy bei Bedarf). # Anfrage nicht kalt ist (llama-swap lädt sonst lazy bei Bedarf).
# Eingehängt als ExecStartPost=-/usr/local/bin/llama-swap-warmup.sh in llama-swap. # Eingehängt als ExecStartPost=-/usr/local/bin/llama-swap-warmup.sh in llama-swap.
# #
# `fast` = das Agent-Hirn (Qwen3.6-35B-A3B), `embed` = das Embedding-Modell (Qwen3-Embedding-0.6B, # `fast` = das Agent-Hirn (Qwen3.6-35B-A3B), `vision` = die Augen (Qwen3-VL-8B, ttl 0 seit
# für Mem0/Gedächtnis). Beide sind in der brains-Gruppe (persist), werden aber NICHT automatisch # 03.07. — gehört zum UI-Versprechen „Immer-bereit-Set"), `embed` = das Embedding-Modell
# zusammen geladen — jedes Modell muss einzeln angestoßen werden, sonst bleibt es kalt. # (Qwen3-Embedding-0.6B, für Mem0/Gedächtnis). Alle in der brains-Gruppe (persistent), werden
# aber NICHT automatisch zusammen geladen — jedes Modell einzeln anstoßen, sonst bleibt es kalt.
# Embedding läuft im --embedding-Modus → anderer Endpunkt (/v1/embeddings, nicht chat). # Embedding läuft im --embedding-Modus → anderer Endpunkt (/v1/embeddings, nicht chat).
# Selbst-detachend: blockiert den Service-Start nicht. # Selbst-detachend: blockiert den Service-Start nicht.
# NACH ÄNDERUNG: sudo cp deploy/warmup.sh /usr/local/bin/llama-swap-warmup.sh (root-Kopie!)
set -u set -u
URL="${MC_LLAMA_SWAP_URL:-http://127.0.0.1:8080}" URL="${MC_LLAMA_SWAP_URL:-http://127.0.0.1:8080}"
BRAINS="${MC_WARMUP_MODELS:-fast}" BRAINS="${MC_WARMUP_MODELS:-fast vision}"
EMBEDS="${MC_WARMUP_EMBED:-embed}" EMBEDS="${MC_WARMUP_EMBED:-embed}"
if [ "${1:-}" != "--inner" ]; then if [ "${1:-}" != "--inner" ]; then
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -7,7 +7,7 @@
<link rel="manifest" href="/manifest.webmanifest" /> <link rel="manifest" href="/manifest.webmanifest" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" /> <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<title>Mission Control 2.0</title> <title>Mission Control 2.0</title>
<script type="module" crossorigin src="/assets/index-BwrPCJGM.js"></script> <script type="module" crossorigin src="/assets/index-C3HWS1JY.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-_Rap01H_.css"> <link rel="stylesheet" crossorigin href="/assets/index-_Rap01H_.css">
</head> </head>
<body> <body>
@@ -129,8 +129,8 @@ export function WarmSetManager() {
{/* Speicher-Budget */} {/* Speicher-Budget */}
<div className="rounded-xl border border-border/30 bg-background/20 p-3"> <div className="rounded-xl border border-border/30 bg-background/20 p-3">
<div className="mb-1.5 flex items-center justify-between text-[11px]"> <div className="mb-1.5 flex items-center justify-between text-[11px]">
<span className="flex items-center gap-1.5 font-semibold uppercase tracking-wider text-muted-foreground" title="Modellgewichte + Arbeitsspeicher (KV-Cache)"> <span className="flex items-center gap-1.5 font-semibold uppercase tracking-wider text-muted-foreground" title="Vorsichts-Schätzung (Obergrenze): Modellgewichte + Arbeitsspeicher, falls jedes Modell seinen vollen Kontext ausreizt. Real belegt ist meist deutlich weniger — der echte Ist-Wert steht oben im Speicher-Balken.">
<HardDrive className="h-3.5 w-3.5" /> Reserviert fürs Set <HardDrive className="h-3.5 w-3.5" /> Reserviert fürs Set (Obergrenze)
</span> </span>
<span className="font-mono font-bold text-foreground"> <span className="font-mono font-bold text-foreground">
{reservedGb.toFixed(1)}{totalGb > 0 ? ` / ${totalGb.toFixed(0)}` : ""} GB {reservedGb.toFixed(1)}{totalGb > 0 ? ` / ${totalGb.toFixed(0)}` : ""} GB
@@ -144,8 +144,9 @@ export function WarmSetManager() {
<p className="mt-2 flex items-start gap-1.5 text-[11px] text-amber-400"> <p className="mt-2 flex items-start gap-1.5 text-[11px] text-amber-400">
<AlertTriangle className="mt-0.5 h-3.5 w-3.5 shrink-0" /> <AlertTriangle className="mt-0.5 h-3.5 w-3.5 shrink-0" />
<span> <span>
Zusammen mit dem größten Gelegenheits-Modell (~{bud.largest_ondemand_gb} GB, z.&nbsp;B. das große Hirn) passt das Set Vorsichts-Schätzung: Zusammen mit dem größten Gelegenheits-Modell (~{bud.largest_ondemand_gb} GB) könnte der
nicht gleichzeitig in den Speicher. Beim Laden wird das Set kurz verdrängt und danach automatisch nachgeladen kostet ein paar Sekunden. Speicher knapp werden. Das Set bleibt dabei immer geladen wird es wirklich eng, schlägt das Laden des großen
Modells fehl (es wartet dann, statt das Set zu verdrängen).
</span> </span>
</p> </p>
)} )}