Make local inference limits and workstation setup reproducible
This commit is contained in:
1 parent
7006991843
commit
8544abd2d4
28 files changed
+1022
-21
No files matched your search
@@ -0,0 +1,66 @@
|
||||
# Lokale Inferenz begrenzen
|
||||
|
||||
Die Workstation verwendet `hermes-local` als stabilen API-Modellnamen. Das
|
||||
Routineprofil lädt Qwen3.5-4B Q4_K_M (Unsloth-Revision
|
||||
`e87f176479d0855a907a41277aca2f8ee7a09523`), das große Profil weiterhin das
|
||||
vorhandene Qwen3.8-27B. Die tatsächliche Auswahl steht in
|
||||
`~/.config/hermes-stack-maintenance/llama.env`.
|
||||
|
||||
`hermes-stack-model routine` bzw. `hermes-stack-model large` schaltet explizit um
|
||||
und beendet dabei laufende Gateway-Anfragen. Beide Dateien bleiben erhalten.
|
||||
Es wird nur ein Hauptmodell gleichzeitig geladen. Die lokalen profilspezifischen
|
||||
Konfigurationen `llama-routine.env` und `llama-large.env` enthalten absolute
|
||||
Modellpfade. `scripts/prepare-workstation.py` prüft bzw. lädt die fest versionierten
|
||||
Modelldateien und erzeugt fehlende Profile. Die vollständige Neuinstallation ist
|
||||
in [NEW_WORKSTATION.md](NEW_WORKSTATION.md) beschrieben. Der normale Installer
|
||||
allein lädt keine Gewichte und erzeugt diese Profile nicht.
|
||||
|
||||
Die alten Aliasse `qwen38-27b-local` und `qwen36-27b-local` bleiben als
|
||||
Kompatibilitätsnamen für bestehende Sitzungen erreichbar. Sie bezeichnen dann
|
||||
ebenfalls das aktiv ausgewählte Modell; die tatsächliche Modelldatei zeigt
|
||||
`/props.model_path`. Neue Sitzungen und entbundene Cronjobs verwenden `hermes-local`.
|
||||
|
||||
## Drei Schutzebenen
|
||||
|
||||
- Der Runner setzt `--n-predict 2048` als Serverstandard. Das ist kein harter
|
||||
Schutz gegen abweichende Clientparameter.
|
||||
- In Hermes bekommt der lokale Custom-Provider `extra_body.max_tokens: 2048`,
|
||||
`t_max_predict_ms: 540000` und ein Request-Timeout von 600 Sekunden. Der native
|
||||
Generierungszeitgeber von llama.cpp prüft nur bei Zeilenumbrüchen und ersetzt
|
||||
deshalb keine unabhängige Überwachung. `agent.run_budget_seconds: 1800` begrenzt
|
||||
einen ganzen Auftrag einschließlich mehrerer Modellaufrufe und Wiederholungen.
|
||||
- `hermes-stack-llama-watchdog.timer` prüft alle 15 Sekunden `/slots`. Bleibt
|
||||
dieselbe Anfrage 600 Sekunden beobachtet aktiv oder überschreitet sie 2048
|
||||
Tokens, startet die Überwachung den Hauptmodellserver neu. Dieses letzte
|
||||
Auffangnetz hat eine Verzögerung von bis zu einem Prüfintervall nach erstmaliger
|
||||
Beobachtung. Die Tokenzahl kann zwischen zwei Prüfungen überschritten werden.
|
||||
|
||||
Der Watchdog startet keine absichtlich gestoppten Dienste. Einzelne fehlgeschlagene
|
||||
Proben führen nicht zum Neustart; erst 600 Sekunden zusammenhängende Fehler bei
|
||||
demselben aktiven Server. Wartung, Modellwechsel und Updater verwenden dieselbe
|
||||
Sperre. Neustarts haben mindestens 600 Sekunden Abstand. Ein Bootwechsel setzt
|
||||
monotone Zeitstempel zurück. Der Status speichert keine Prompts oder Antworten;
|
||||
Diagnosen stehen ausschließlich im lokalen Journal, ohne Chatbenachrichtigung.
|
||||
|
||||
Die Grenzen stehen in `config.env` (Watchdog), `llama.env` (Serverstandard) und
|
||||
`~/.hermes/config.yaml` (Hermes). Bei Änderungen diese Werte gemeinsam pflegen.
|
||||
Grenzen gelten pro Hauptmodell; das CPU-Kompressionsmodell bleibt getrennt.
|
||||
|
||||
## Prüfung und Rücknahme
|
||||
|
||||
```
|
||||
systemctl --user status hermes-stack-llama-watchdog.timer
|
||||
journalctl --user -u hermes-stack-llama-watchdog.service
|
||||
cat ~/.local/state/hermes-stack-maintenance/llama-watchdog.json
|
||||
```
|
||||
|
||||
Die Bereitstellung sichert vorherige Konfigurationen unter
|
||||
`~/.local/state/hermes-stack-maintenance/inference-limits-*`. Ein Rückwechsel
|
||||
auf `large` behält die Schutzmaßnahmen bei. Zum vollständigen Rückbau Timer
|
||||
deaktivieren, die gesicherten Konfigurationen wiederherstellen und Modellserver
|
||||
sowie Gateway neu starten. Cronjob-Modellbindungen sind über `hermes cron edit
|
||||
JOB_ID --model MODELL --provider custom` wiederherstellbar.
|
||||
|
||||
Quellen: [llama.cpp Serverparameter](https://github.com/ggml-org/llama.cpp/blob/master/tools/server/README.md),
|
||||
[Qwen3.5-4B](https://huggingface.co/Qwen/Qwen3.5-4B),
|
||||
[verwendete GGUF-Dateien](https://huggingface.co/unsloth/Qwen3.5-4B-GGUF/tree/e87f176479d0855a907a41277aca2f8ee7a09523).
|
||||
Reference in new issue
Block a user