mirror of
https://github.com/Alkatrazz24/Funk-lab.git
synced 2026-07-08 14:24:42 +02:00
feat(llama_server): heartbeat embed — garde chaud le slot nomic :1238 (#28)
Le grounding RAG du STT ratait par intermittence (docs=0 → réponses génériques) parce que l'instance d'embedding :1238 partait à froid après une pause : la 1ʳᵉ requête mettait 5-8 s et dépassait le timeout 4 s du STT-server (recall + RAG doc). llama-embed-heartbeat : service systemd local sur gpu-01 qui envoie un petit embed à :1238 toutes les 20 s → le slot reste résident/chaud → la 1ʳᵉ vraie requête est rapide → docs>0 fiable. Pendant du llm-heartbeat (slot chat :1234), pour le slot embed. Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
11693e2abf
commit
1b85d4ee65
7 changed files with 140 additions and 0 deletions
|
|
@ -168,3 +168,42 @@ vrac, et sonde au plus près du serveur figé.
|
|||
1. `llm-heartbeat` (storage-01, rôle `litellm`) — garde la connexion chaude (anti-péremption).
|
||||
2. `request_timeout: 20` + `num_retries: 2` (LiteLLM) + retry STT-server — bornent le blip.
|
||||
3. `llama-watchdog` (gpu-01, rôle `llama_server`) — répare le wedge ROCm à la source.
|
||||
|
||||
---
|
||||
|
||||
## 2026-06-19 (suite) — slot d'embedding `:1238` froid → RAG du STT raté (`docs=0`)
|
||||
|
||||
### Symptôme
|
||||
|
||||
Après déploiement du grounding RAG du STT-server (le cerveau interroge `funk-docs`), les
|
||||
réponses sur le homelab étaient **intermittentes** : parfois ancrées dans la doc, parfois
|
||||
génériques (« serveur XMPP », « worker nodes »…). Log du pod `stt-server` :
|
||||
|
||||
```
|
||||
ask … recall=5471ms … docs=6 ← embed OK → 6 extraits doc injectés → réponse ancrée
|
||||
ask … recall=8330ms … docs=0 ← embed à 8 s → timeout → 0 extrait → réponse générique
|
||||
```
|
||||
|
||||
### Cause
|
||||
|
||||
L'instance d'embedding dédiée (`nomic-embed-text`, gpu-01 `:1238`) part **à froid** après une
|
||||
pause : le slot GPU devient inactif, la 1ʳᵉ requête met 5-8 s (réchauffe + VRAM). Or le
|
||||
STT-server borne le recall mémoire **et** la recherche doc à `4 s` (chemin de réponse). Au-delà :
|
||||
`recall` renvoie `([], None)` → `knowledge.search` ré-embed (2ᵉ timeout) → `docs=0` → le cerveau
|
||||
répond sans contexte. Même famille que le wedge chat, sur l'**autre slot** GPU — mais ici pas de
|
||||
freeze, juste une latence à froid. Le slot chat `:1234` est gardé chaud par `llm-heartbeat`,
|
||||
l'embed `:1238` ne l'était **pas**.
|
||||
|
||||
### Correctif — heartbeat embed (rôle `llama_server`)
|
||||
|
||||
`llama-embed-heartbeat` : service systemd local sur gpu-01 qui envoie un petit embed à `:1238`
|
||||
toutes les `llama_embed_heartbeat_interval` s (défaut 20). Le slot reste **résident/chaud** → la
|
||||
1ʳᵉ vraie requête est rapide → recall + RAG doc tiennent dans les 4 s → `docs>0` fiable.
|
||||
|
||||
```bash
|
||||
ansible-playbook -i inventory.yml playbooks/gpu-01.yml --tags llama_server # déploie le heartbeat embed
|
||||
systemctl status llama-embed-heartbeat ; journalctl -u llama-embed-heartbeat -f
|
||||
```
|
||||
|
||||
> Variante moins bonne envisagée : remonter `STT_DOCS_TIMEOUT`/`recall` à ~8 s → couvre le froid
|
||||
> mais **ajoute** la latence à chaque requête froide. Le warming l'**élimine** à la source.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue