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:
@@ -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
@@ -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
|
||||||
|
|||||||
+1
-1
File diff suppressed because one or more lines are too long
+2
-2
File diff suppressed because one or more lines are too long
Vendored
+1
-1
@@ -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. 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>
|
||||||
)}
|
)}
|
||||||
|
|||||||
Reference in New Issue
Block a user