chore(gpu-01): retire les serveurs llama CPU system/monitor/dev (inutilisés) (#31)

Trois instances llama-server CPU manuelles (hors Ansible) tournaient sur gpu-01
sans servir : déjà orphelines de LiteLLM (alias absents de config.yaml, d'où le
bruit "Invalid model name"). Suppression complète :

gpu-01 (opérationnel, déjà fait) :
- systemctl disable --now + rm des units llama-server-{system,monitor,dev}
- ports firewall 1235/1236/1237 fermés

Repo :
- monitoring : scrape jobs (values.yaml) + alertes LlamaServer{System,Monitor}Down
  (alerts-ai.yaml) retirés → plus de "target down"/alertes fantômes ; panneaux de
  statut dashboard-infrastructure recyclés (system→llama-embed, monitor supprimé).
- docs admin/ + hermes-skills (souls funk-ai/brain, SKILL agent-delegation) mises à
  jour : inventaire modèles, profils Hermès system/monitor sans backend (à repointer
  sur qwen3-8b), litellm, ops, monitoring.

Les profils Hermès system/monitor existent toujours mais sans backend dédié.
Dashboards Grafana dashboard-ai (panneaux graphiques CPU) laissés tels quels
(cosmétique, séries vides, aucune alerte).

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
ALI YESILKAYA 2026-06-20 13:25:50 +02:00 committed by GitHub
parent ef15ba25e0
commit 470c69881c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
17 changed files with 90 additions and 147 deletions

View file

@ -1,26 +1,28 @@
# llama-server — Inférence LLM (gpu-01)
llama-server (llama.cpp compilé with ROCm 7.x) tourne en **quatre instances systemd** sur **gpu-01** (`192.168.10.20`).
llama-server (llama.cpp compilé with ROCm 7.x) tourne en **deux instances systemd** sur **gpu-01** (`192.168.10.20`).
API 100% compatible OpenAI — remplace LM Studio pour l'inférence.
---
## Quatre instances
## Deux instances
| Service systemd | Port | Modèle | Backend | Usage |
|---|---|---|---|---|
| `llama-server` | 1234 | Qwen3-8B Q4_K_M | GPU (RX 6700XT) | Inférence principale — Hermes + LiteLLM |
| `llama-server-system` | 1236 | Qwen3-1.7B Q4_K_M | CPU | Profil Hermes `system` (tâches légères) |
| `llama-server-monitor` | 1237 | Qwen3-1.7B Q4_K_M | CPU | Profil Hermes `monitor` (supervision) |
| `llama-embed` | 1238 | nomic-embed-text-v1.5 f16 | GPU | Embeddings dédiés (mémoire STT, dim 768) |
| `llama-embed` | 1238 | nomic-embed-text-v1.5 f16 | CPU | Embeddings dédiés (mémoire STT + RAG funk-docs, dim 768) |
Les instances CPU (`system`, `monitor`) partagent le même binaire mais des configs distinctes.
Les modèles sont sur NFS monté depuis storage-01 (`/mnt/models`).
> `llama-embed` (`:1238`) est **géré par Ansible** (rôle `llama_server`, `llama_embed_enabled`) —
> contrairement aux instances CPU (gap IaC, voir plus bas). Sert un modèle d'embedding **dédié**
> (`nomic-embed-text`, dim 768), bien plus discriminant que Qwen3-8B réutilisé. Partage le GPU
> avec `:1234` (~300 Mo VRAM).
> **Instances CPU retirées (2026-06-20)** : `llama-server-system` (:1236), `llama-server-monitor`
> (:1237) et `llama-server-dev` (:1235) — services **manuels** inutilisés (déjà orphelins de
> LiteLLM) — ont été supprimés. Les profils Hermès `system`/`monitor` n'ont plus de backend dédié.
> `llama-embed` (`:1238`) est **géré par Ansible** (rôle `llama_server`, `llama_embed_enabled`).
> Sert un modèle d'embedding **dédié** (`nomic-embed-text`, dim 768), bien plus discriminant que
> Qwen3-8B réutilisé. Tourne en **CPU** (`--n-gpu-layers 0`) pour ne pas entrer en contention GPU
> avec `:1234` (la contention causait une latence bimodale 16 ms/9-12 s → `docs=0` du STT, cf.
> `admin/incidents-llm-gpu.md`).
---
@ -32,17 +34,9 @@ sudo systemctl status llama-server
sudo systemctl restart llama-server
sudo journalctl -u llama-server -f
# Instance CPU — profil system
sudo systemctl status llama-server-system
sudo systemctl restart llama-server-system
sudo journalctl -u llama-server-system -f
# (instances CPU system/monitor/dev retirées le 2026-06-20)
# Instance CPU — profil monitor
sudo systemctl status llama-server-monitor
sudo systemctl restart llama-server-monitor
sudo journalctl -u llama-server-monitor -f
# Instance GPU — embeddings dédiés (nomic-embed-text :1238)
# Instance CPU — embeddings dédiés (nomic-embed-text :1238)
sudo systemctl status llama-embed
sudo systemctl restart llama-embed
sudo journalctl -u llama-embed -f
@ -131,9 +125,8 @@ curl http://192.168.10.20:1234/v1/chat/completions \
"max_tokens": 50
}'
# Test instances CPU
curl -s http://192.168.10.20:1236/v1/models | jq '.data[].id'
curl -s http://192.168.10.20:1237/v1/models | jq '.data[].id'
# Test instance embed (CPU)
curl -s http://192.168.10.20:1238/v1/models | jq '.data[].id'
```
---
@ -162,7 +155,7 @@ curl -s http://192.168.10.20:1234/metrics | grep -E \
| `llamacpp:kv_cache_usage_ratio` | Occupation KV cache (01) |
| `llamacpp:kv_cache_tokens` | Tokens actuellement en KV cache |
Ces métriques sont scrapées par Prometheus via les jobs `llama-server-gpu`, `llama-server-system`, `llama-server-monitor` définis dans `k8s/infra/monitoring/values.yaml`.
Ces métriques sont scrapées par Prometheus via le job `llama-server-gpu` défini dans `k8s/infra/monitoring/values.yaml` (jobs `llama-server-system`/`-monitor` retirés le 2026-06-20).
---
@ -205,12 +198,11 @@ sudo systemctl restart llama-server
---
## ⚠️ Gap IaC — instances CPU non couvertes par Ansible
## Instances CPU retirées (2026-06-20)
Le rôle `ansible/roles/llama_server/` déploie l'instance **GPU** (`llama-server.service` :1234) et l'instance **embeddings** (`llama-embed` :1238, activée par `llama_embed_enabled`).
Les instances CPU (`llama-server-system` :1236 et `llama-server-monitor` :1237) ont été créées **manuellement** et ne sont pas encore dans le code Ansible.
Conséquence : un `make apply-gpu` complet sur un hôte vierge ne déploierait PAS les instances CPU.
Les anciennes instances CPU **manuelles** `llama-server-system` (:1236), `llama-server-monitor` (:1237) et `llama-server-dev` (:1235) ont été **supprimées** : inutilisées et déjà orphelines de LiteLLM (aucun alias dans `/etc/litellm/config.yaml`). Suppression = `systemctl disable --now` + `rm` des units + ports firewall 1235/1236/1237 fermés + scrape/alertes Prometheus retirés. Pour réactiver un profil `system`/`monitor`, repointer son alias LiteLLM sur `qwen3-8b` (GPU).
**Axe d'amélioration** : étendre le rôle `llama_server` pour déployer aussi les 2 instances CPU via une boucle (`with_items` ou `loop` Ansible), avec des variables dédiées dans `host_vars/gpu-01/vars.yml`.
@ -227,6 +219,6 @@ Conséquence : un `make apply-gpu` complet sur un hôte vierge ne déploierait P
| pooling mean obligatoire | Sans `--pooling mean`, l'endpoint `/v1/embeddings` retourne erreur 400 |
| Qwen3 = modèle « thinking » | Par défaut Qwen3 raisonne avant de répondre → consomme le budget `max_tokens` en `reasoning_content` (`content` vide) ou réfléchit longtemps (timeout). Ajouter **`/no_think`** au prompt système pour le désactiver. STT le fait (`STT_DISABLE_THINKING`) ; à considérer pour tout consommateur de Qwen3 à `max_tokens` faible (ask-agent, profils Hermes). |
| Gemma 4 interdit | Crash ROCm sur prompts >800 tokens |
| Modèles sur NFS | `/mnt/models` monté depuis storage-01 (NFS) — si NFS down, les 3 services échouent au démarrage |
| 3 services indépendants | Chaque instance a son propre service systemd — redémarrer l'un n'affecte pas les autres |
| Instances CPU hors Ansible | llama-server-system et llama-server-monitor créés manuellement — voir section Gap IaC ci-dessus |
| Modèles sur NFS | `/mnt/models` monté depuis storage-01 (NFS) — si NFS down, les services échouent au démarrage |
| 2 services indépendants | `llama-server` (:1234 GPU) et `llama-embed` (:1238 CPU) ont chacun leur service systemd |
| Instances CPU retirées | llama-server-system/-monitor/-dev supprimés le 2026-06-20 (inutilisés) — voir section dédiée ci-dessus |