Files
hermes-arch-stack/docs/INFERENCE_LIMITS.md
T

5.1 KiB

Lokale Inferenz begrenzen

Die Workstation verwendet hermes-local als stabilen API-Modellnamen. Das Routineprofil lädt Qwen3.5-9B IQ4_XS (Unsloth-Revision 3885219b6810b007914f3a7950a8d1b469d598a5), 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, fallback bzw. 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 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.

Kontextgröße und Kompression

Das Routineprofil verwendet --ctx-size 65536, das bisherige 4B-Profil (fallback) und das große Profil jeweils 65536. Der Modellschalter setzt model.context_length und compression.threshold_tokens zusammen mit dem Modell: 65536/24000 für alle drei Profile. Er sichert beide Konfigurationen und stellt bei einem Wechsel-Fehler beide wieder her. Legacy-Profile ohne LLAMA_CONTEXT_TOKENS werden als 64K behandelt; eigene Profile müssen diese Metadaten passend zu --ctx-size setzen.

Die CPU-Kompression bleibt bei threshold: 0.5 und der absoluten Schwelle von 24.000 Tokens. target_ratio: 0.2, Schutz der ersten drei und letzten zehn Nachrichten sowie die bestehenden Zeitbudgets bleiben erhalten. Die Schwelle ist ein Auslöser, keine harte Obergrenze für einzelne Nachrichten oder Werkzeugergebnisse.

Für eine bestehende Installation genügt nach Abschluss laufender Aufträge:

hermes-stack-model routine   # 9B, 64K
hermes-stack-model fallback  # 4B, 64K inklusive Kompressionsschwelle

Der Modellschalter startet Hauptmodell und Gateway kontrolliert neu. Bereits laufende Anfragen werden beendet; CPU-Kompression läuft unverändert weiter. Die aktuellen Messungen und der Rückweg stehen in QWEN9B_TRIAL.md.

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, Qwen3.5-9B, verwendete GGUF-Dateien.