mirror of
https://github.com/Alkatrazz24/Funk-lab.git
synced 2026-07-08 03:34:43 +02:00
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:
parent
ef15ba25e0
commit
470c69881c
17 changed files with 90 additions and 147 deletions
|
|
@ -23,15 +23,19 @@ ask-agent monitor "Alertes Prometheus reçues à HH:MM:SS : ..."
|
|||
│ POST http://127.0.0.1:4000/v1/chat/completions
|
||||
▼
|
||||
LiteLLM Proxy (:4000)
|
||||
│ modèle : qwen3-1.7b-monitor
|
||||
│ modèle : qwen3-1.7b-monitor ⚠️ backend retiré le 2026-06-20
|
||||
▼
|
||||
llama-server-monitor (gpu-01:1237, CPU 14 threads)
|
||||
(ex-llama-server-monitor gpu-01:1237 — SUPPRIMÉ)
|
||||
│ Répond dans les logs du service
|
||||
▼
|
||||
journalctl -u alertmanager-webhook
|
||||
"ask-agent response: SERVICE SAIN — aucune action requise"
|
||||
```
|
||||
|
||||
> ⚠️ **2026-06-20** : le serveur CPU `monitor` (:1237) a été supprimé. Le résumé d'alerte par
|
||||
> `ask-agent monitor` ne fonctionne donc plus tel quel — pour le réactiver, ajouter dans LiteLLM
|
||||
> un alias `qwen3-1.7b-monitor` (ou changer l'agent du webhook) pointant sur `qwen3-8b` (GPU).
|
||||
|
||||
**Point clé** : le webhook répond HTTP 200 immédiatement, avant d'appeler `ask-agent`.
|
||||
`ask-agent` tourne en arrière-plan (~20-60s) — AlertManager ne reste pas bloqué en attente.
|
||||
|
||||
|
|
|
|||
|
|
@ -23,8 +23,8 @@ Déployés sur storage-01 :
|
|||
| Profil | Modèle | Vitesse | Coût | Rôle |
|
||||
|---|---|---|---|---|
|
||||
| `funk-ai` | Qwen3-8B GPU (:1234) | ~35 tok/s | gratuit | Agent principal — orchestration, réponses générales, délégation |
|
||||
| `monitor` | Qwen3-1.7B CPU (:1237) | ~21 tok/s | gratuit | Surveillance — logs, métriques, alertes Prometheus |
|
||||
| `system` | Qwen3-1.7B CPU (:1236) | ~21 tok/s | gratuit | Utilitaire — résumés, commandes, calculs, formatage |
|
||||
| `monitor` | ⚠️ backend retiré 2026-06-20 (ex-CPU :1237) | — | gratuit | Surveillance — logs, métriques, alertes Prometheus (repointer sur qwen3-8b) |
|
||||
| `system` | ⚠️ backend retiré 2026-06-20 (ex-CPU :1236) | — | gratuit | Utilitaire — résumés, commandes, calculs, formatage (repointer sur qwen3-8b) |
|
||||
| `brain` | Claude Sonnet 4.6 (API) | ~60 tok/s | **facturé** | Analyse avancée — architecture, incidents critiques, trade-offs |
|
||||
|
||||
---
|
||||
|
|
@ -74,7 +74,7 @@ Concis, technique, actif. Montre les commandes avant les résultats. En françai
|
|||
|
||||
## monitor — Agent de surveillance
|
||||
|
||||
**Modèle** : Qwen3-1.7B Q4_K_M — CPU 14 threads — port 1237
|
||||
**Modèle** : ⚠️ backend retiré le 2026-06-20 (ex-Qwen3-1.7B CPU port 1237) — repointer l'alias LiteLLM sur `qwen3-8b` pour réactiver
|
||||
|
||||
### Identité
|
||||
|
||||
|
|
@ -113,7 +113,7 @@ Pas de commandes shell. Pas d'architecture. Analyse uniquement le texte fourni.
|
|||
|
||||
## system — Agent utilitaire
|
||||
|
||||
**Modèle** : Qwen3-1.7B Q4_K_M — CPU 14 threads — port 1236
|
||||
**Modèle** : ⚠️ backend retiré le 2026-06-20 (ex-Qwen3-1.7B CPU port 1236) — repointer l'alias LiteLLM sur `qwen3-8b` pour réactiver
|
||||
|
||||
### Identité
|
||||
|
||||
|
|
|
|||
|
|
@ -14,10 +14,9 @@ Les données persistantes sont dans `/srv/data/hermes` (NVMe bind-mount depuis 2
|
|||
```
|
||||
Profils Hermes → LiteLLM Proxy (:4000) → llama-server / API Anthropic
|
||||
├── qwen3-8b → gpu-01:1234 (GPU RX 6700XT)
|
||||
├── qwen3-1.7b-system → gpu-01:1236 (CPU 14 threads)
|
||||
├── qwen3-1.7b-monitor → gpu-01:1237 (CPU 14 threads)
|
||||
├── claude-sonnet-4-6 → api.anthropic.com
|
||||
└── claude-opus-4-7 → api.anthropic.com
|
||||
# qwen3-1.7b-system/-monitor (CPU :1236/:1237) RETIRÉS le 2026-06-20
|
||||
|
||||
Depuis Hermes (TUI ou ask-agent) :
|
||||
funk-ai (principal) ──┐
|
||||
|
|
@ -34,11 +33,15 @@ Depuis Hermes (TUI ou ask-agent) :
|
|||
|---|---|---|---|
|
||||
| `funk-ai` ◆ | `funk-ai` | qwen3-8b (GPU, ~35 tok/s) | Principal — par défaut |
|
||||
| `brain` | `brain` | claude-sonnet-4-6 (API) | Analyse complexe — facturé |
|
||||
| `system` | `system` | qwen3-1.7b-system (CPU, ~21 tok/s) | Traitement texte rapide |
|
||||
| `monitor` | `monitor` | qwen3-1.7b-monitor (CPU, ~21 tok/s) | Évaluation état services |
|
||||
| `system` | `system` | ⚠️ backend retiré (ex-qwen3-1.7b CPU) | Traitement texte rapide — à repointer sur qwen3-8b |
|
||||
| `monitor` | `monitor` | ⚠️ backend retiré (ex-qwen3-1.7b CPU) | Évaluation état services — à repointer sur qwen3-8b |
|
||||
|
||||
`◆` = profil actif par défaut
|
||||
|
||||
> **2026-06-20** : les serveurs CPU `system` (:1236), `monitor` (:1237) et `dev` (:1235) ont été
|
||||
> supprimés (inutilisés). Les profils existent toujours mais leur alias LiteLLM n'a plus de
|
||||
> backend → repointer sur `qwen3-8b` (GPU) pour les réactiver. Cf. `admin/ia/llama_server.md`.
|
||||
|
||||
```bash
|
||||
# Lancer un profil (nouvelle session TUI)
|
||||
funk-ai # Qwen3-8B GPU
|
||||
|
|
@ -263,20 +266,19 @@ ask-agent (/usr/local/bin/ask-agent)
|
|||
│ POST http://127.0.0.1:4000/v1/chat/completions
|
||||
▼
|
||||
LiteLLM Proxy (:4000)
|
||||
├── ask-agent system → qwen3-1.7b-system (CPU :1236)
|
||||
├── ask-agent monitor → qwen3-1.7b-monitor (CPU :1237)
|
||||
├── ask-agent brain → claude-sonnet-4-6 (API Anthropic)
|
||||
└── ask-agent funk-ai → qwen3-8b (GPU :1234)
|
||||
# ask-agent system/monitor : backend CPU retiré le 2026-06-20 (repointer sur qwen3-8b)
|
||||
```
|
||||
|
||||
### Agents disponibles
|
||||
|
||||
| Agent | Modèle | Usage idéal |
|
||||
|---|---|---|
|
||||
| `system` | Qwen3-1.7B CPU (:1236) | Traitement texte : résumés, formatage, parsing, calculs Linux |
|
||||
| `monitor` | Qwen3-1.7B CPU (:1237) | Évaluation santé : logs systemd, métriques, état des services |
|
||||
| `brain` | Claude Sonnet 4.6 (API) | Raisonnement complexe, architecture — facturé |
|
||||
| `funk-ai` | Qwen3-8B GPU (:1234) | Tâches générales (agent principal lui-même) |
|
||||
| `system` ⚠️ | backend retiré 2026-06-20 | Ex-Qwen3-1.7B CPU — repointer l'alias sur qwen3-8b pour réactiver |
|
||||
| `monitor` ⚠️ | backend retiré 2026-06-20 | Ex-Qwen3-1.7B CPU — repointer l'alias sur qwen3-8b pour réactiver |
|
||||
|
||||
### system vs monitor
|
||||
|
||||
|
|
@ -383,7 +385,7 @@ sudo systemctl restart hermes-dashboard
|
|||
|
||||
Modèle GGUF potentiellement corrompu (signe d'erreur disque).
|
||||
```bash
|
||||
ssh g01 "sudo systemctl status llama-server-system"
|
||||
ssh g01 "sudo systemctl status llama-server"
|
||||
ssh g01 "md5sum /mnt/models/<chemin-gguf>"
|
||||
```
|
||||
|
||||
|
|
@ -392,7 +394,7 @@ ssh g01 "md5sum /mnt/models/<chemin-gguf>"
|
|||
LiteLLM ou llama-server ne répond pas.
|
||||
```bash
|
||||
ssh s01 "curl -s http://localhost:4000/health -H 'Authorization: Bearer lm-studio'"
|
||||
ssh g01 "systemctl status llama-server-system llama-server-monitor"
|
||||
ssh g01 "systemctl status llama-server llama-embed"
|
||||
```
|
||||
|
||||
### Le skill n'est pas chargé
|
||||
|
|
|
|||
|
|
@ -14,8 +14,6 @@ Hermes / ask-agent / Open WebUI / n8n
|
|||
LiteLLM Proxy
|
||||
├── hermes-default → qwen3-8b → llama-server gpu-01 :1234 (GPU)
|
||||
├── qwen3-8b → llama-server gpu-01 :1234 (GPU, gratuit)
|
||||
├── qwen3-1.7b-system → llama-server gpu-01 :1236 (CPU 14 threads, gratuit)
|
||||
├── qwen3-1.7b-monitor → llama-server gpu-01 :1237 (CPU 14 threads, gratuit)
|
||||
├── claude-sonnet-4-6 → api.anthropic.com (cloud, payant)
|
||||
└── claude-opus-4-7 → api.anthropic.com (cloud, payant)
|
||||
```
|
||||
|
|
@ -40,13 +38,13 @@ sudo journalctl -u litellm -n 50
|
|||
|---|---|---|
|
||||
| `hermes-default` | qwen3-8b sur gpu-01 :1234 (GPU) | Gratuit |
|
||||
| `qwen3-8b` | llama-server gpu-01 :1234 (ROCm 7.x) | Gratuit |
|
||||
| `qwen3-1.7b-system` | llama-server gpu-01 :1236 (CPU, 14 threads) | Gratuit |
|
||||
| `qwen3-1.7b-monitor` | llama-server gpu-01 :1237 (CPU, 14 threads) | Gratuit |
|
||||
| `claude-sonnet-4-6` | Anthropic API | ~$3/$15 par million tokens in/out |
|
||||
| `claude-opus-4-7` | Anthropic API | Plus cher, meilleur raisonnement |
|
||||
|
||||
> `qwen3-1.7b-system` et `qwen3-1.7b-monitor` sont utilisés par `ask-agent system` et
|
||||
> `ask-agent monitor` — voir [hermes.md](hermes.md).
|
||||
> **Alias CPU retirés (2026-06-20)** : `qwen3-1.7b-system` et `qwen3-1.7b-monitor` (serveurs CPU
|
||||
> gpu-01 :1236/:1237) ont été supprimés avec leurs serveurs. Ils étaient déjà absents de
|
||||
> `/etc/litellm/config.yaml` (d'où le bruit `Invalid model name` historique). `ask-agent system`
|
||||
> et `ask-agent monitor` n'ont donc plus de backend — repointer sur `qwen3-8b` pour les réactiver.
|
||||
|
||||
> ⚠️ **Qwen3 = modèle « thinking »** : il raisonne avant de répondre. Avec un `max_tokens`
|
||||
> faible, il peut renvoyer un `content` **vide** (budget épuisé en `reasoning_content`) ou
|
||||
|
|
@ -111,19 +109,15 @@ elle vient du vault Ansible (`vault_anthropic_api_key`). Jamais en clair dans co
|
|||
|
||||
---
|
||||
|
||||
## ⚠️ Gap IaC — modèles CPU absents du template Ansible
|
||||
## Modèles servis (2026-06-20)
|
||||
|
||||
`ansible/roles/litellm/templates/config.yaml.j2` n'inclut que 4 modèles :
|
||||
`hermes-default`, `qwen3-8b`, `claude-sonnet-4-6`, `claude-opus-4-7`.
|
||||
`ansible/roles/litellm/templates/config.yaml.j2` et `/etc/litellm/config.yaml` exposent
|
||||
4 modèles : `hermes-default`, `qwen3-8b`, `claude-sonnet-4-6`, `claude-opus-4-7`.
|
||||
|
||||
Les entrées `qwen3-1.7b-system` (:1236) et `qwen3-1.7b-monitor` (:1237) ont été ajoutées
|
||||
**manuellement** dans `/etc/litellm/config.yaml` sur storage-01.
|
||||
|
||||
Un `make apply-storage` sur un hôte vierge ne déploierait PAS les routes CPU nécessaires
|
||||
à `ask-agent system` et `ask-agent monitor`.
|
||||
|
||||
**Axe d'amélioration** : ajouter les 2 entrées CPU dans `config.yaml.j2` avec des variables
|
||||
dans `defaults/main.yml` (`litellm_cpu_system_url`, `litellm_cpu_monitor_url`).
|
||||
Les anciennes entrées CPU `qwen3-1.7b-system` (:1236) et `qwen3-1.7b-monitor` (:1237) ont été
|
||||
**retirées** avec leurs serveurs (cf. `admin/ia/llama_server.md`). Elles étaient déjà absentes
|
||||
du fichier live → `ask-agent system`/`monitor` n'avaient déjà plus de route. Pour les réactiver,
|
||||
ajouter un alias pointant sur `qwen3-8b` (GPU) plutôt que de recréer des serveurs CPU.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -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 (0–1) |
|
||||
| `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 |
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ KNOWLEDGE = [
|
|||
{
|
||||
"category": "litellm",
|
||||
"tags": ["litellm", "config", "modèles", "anthropic"],
|
||||
"text": "LiteLLM config /etc/litellm/config.yaml expose: hermes-default (alias switchable), qwen3-8b (gpu-01:1234 GPU), qwen3-1.7b-system (gpu-01:1236 CPU), qwen3-1.7b-monitor (gpu-01:1237 CPU), claude-sonnet-4-6 (API Anthropic), claude-opus-4-7 (API Anthropic). ANTHROPIC_API_KEY dans l'environnement systemd via vault Ansible.",
|
||||
"text": "LiteLLM config /etc/litellm/config.yaml expose: hermes-default (alias switchable), qwen3-8b (gpu-01:1234 GPU), claude-sonnet-4-6 (API Anthropic), claude-opus-4-7 (API Anthropic). Les alias CPU qwen3-1.7b-system/-monitor ont été retirés le 2026-06-20 avec leurs serveurs. ANTHROPIC_API_KEY dans l'environnement systemd via vault Ansible.",
|
||||
},
|
||||
{
|
||||
"category": "hermes",
|
||||
|
|
@ -77,7 +77,7 @@ KNOWLEDGE = [
|
|||
{
|
||||
"category": "gpu",
|
||||
"tags": ["modèles", "qwen", "gemma", "performance"],
|
||||
"text": "Modèle actif gpu-01: Qwen3-8B Q4_K_M (~60 tok/s génération, ~300 tok/s prefill, ROCm 7.x natif). Contexte 32768 tokens (VRAM: ~5GB modèle + ~4GB KV cache = ~9GB sur 12GB). Alias API: qwen3-8b. Instances CPU: qwen3-1.7b-system sur :1236 et qwen3-1.7b-monitor sur :1237 (~21 tok/s CPU). Ne pas utiliser Gemma 4: crash ROCm >800 tokens. Dimension embeddings: 3584.",
|
||||
"text": "Modèle actif gpu-01: Qwen3-8B Q4_K_M (~60 tok/s génération, ~300 tok/s prefill, ROCm 7.x natif). Contexte 32768 tokens (VRAM: ~5GB modèle + ~4GB KV cache = ~9GB sur 12GB). Alias API: qwen3-8b. Instance embed: nomic-embed-text sur :1238 (CPU, dim 768) pour mémoire STT + RAG funk-docs. Les anciennes instances CPU qwen3-1.7b-system (:1236), qwen3-1.7b-monitor (:1237) et dev (:1235) ont été RETIRÉES le 2026-06-20 (inutilisées). Ne pas utiliser Gemma 4: crash ROCm >800 tokens.",
|
||||
},
|
||||
{
|
||||
"category": "postgresql",
|
||||
|
|
|
|||
|
|
@ -31,9 +31,8 @@ Prometheus (k8s, namespace monitoring)
|
|||
├── scrape storage-01:9100 → métriques système storage-01 (job=storage-01)
|
||||
├── scrape gpu-01:9100 → métriques système + ROCm gpu-01 (job=gpu-01-node)
|
||||
│ └── textfile_collector → rocm_gpu_temperature/utilization/vram (rocm_scraper.timer)
|
||||
├── scrape gpu-01:1234 → llama-server GPU Qwen3-8B (job=llama-server-gpu)
|
||||
├── scrape gpu-01:1236 → llama-server CPU system (job=llama-server-system)
|
||||
└── scrape gpu-01:1237 → llama-server CPU monitor (job=llama-server-monitor)
|
||||
└── scrape gpu-01:1234 → llama-server GPU Qwen3-8B (job=llama-server-gpu)
|
||||
# scrape :1236/:1237 (CPU system/monitor) retirés le 2026-06-20 (serveurs supprimés)
|
||||
↓
|
||||
AlertManager
|
||||
├── receiver "null" → alerte Watchdog (heartbeat interne — silencé)
|
||||
|
|
@ -117,8 +116,6 @@ Déclenchent AlertManager → webhook storage-01:9093 → profil `monitor` Herme
|
|||
| Alerte | Seuil | Sévérité |
|
||||
|---|---|---|
|
||||
| `LlamaServerGPUDown` | `up{job="llama-server-gpu"} == 0` pendant 2 min | critical |
|
||||
| `LlamaServerSystemDown` | `up{job="llama-server-system"} == 0` pendant 2 min | warning |
|
||||
| `LlamaServerMonitorDown` | `up{job="llama-server-monitor"} == 0` pendant 2 min | warning |
|
||||
| `GPUTemperatureHigh` | Temp GPU > 80°C pendant 5 min | warning |
|
||||
| `GPUTemperatureCritical` | Temp GPU > 90°C pendant 2 min | critical |
|
||||
| `GPUVRAMAlmostFull` | VRAM > 95% pendant 5 min | warning |
|
||||
|
|
@ -221,11 +218,9 @@ llama.cpp expose ses métriques sur `/metrics` — activé via `--metrics` dans
|
|||
# Métriques GPU (Qwen3-8B)
|
||||
curl -s http://192.168.10.20:1234/metrics | grep llamacpp
|
||||
|
||||
# Métriques CPU system
|
||||
curl -s http://192.168.10.20:1236/metrics | grep llamacpp
|
||||
|
||||
# Métriques CPU monitor
|
||||
curl -s http://192.168.10.20:1237/metrics | grep llamacpp
|
||||
# Métriques embed (nomic, CPU)
|
||||
curl -s http://192.168.10.20:1238/metrics | grep llamacpp
|
||||
# (serveurs CPU :1236/:1237 retirés le 2026-06-20)
|
||||
```
|
||||
|
||||
---
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ Chaque rôle a un `README.md` détaillé dans `ansible/roles/<nom>/` (variables,
|
|||
| `common` | `common` | Paquets de base, sécurité, NTP |
|
||||
| `rocm` | `rocm` | Stack GPU AMD (ROCm 7.x, `HSA_OVERRIDE_GFX_VERSION=10.3.0`) |
|
||||
| `nfs_client` | `nfs_client` | Montage `/mnt/models` depuis storage-01 |
|
||||
| `llama_server` | `llama_server` | llama-server **GPU `:1234` uniquement** — ⚠️ les instances CPU `:1236`/`:1237` (system/monitor) sont des services créés à la main sur gpu-01, hors IaC |
|
||||
| `llama_server` | `llama_server` | llama-server **GPU `:1234`** + embed **CPU `:1238`** (nomic). Les ex-instances CPU `:1235`/`:1236`/`:1237` (dev/system/monitor) ont été supprimées le 2026-06-20 |
|
||||
| `node_exporter` | `node_exporter` | Métriques Prometheus (+ rocm power) |
|
||||
|
||||
> ⚠️ Le rôle `lm_studio` existe encore dans `ansible/roles/` mais n'est référencé par **aucun** playbook (remplacé par `llama_server` en mai 2026). Candidat à la suppression.
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ Ordre de démarrage : storage-01 déjà up → gpu-01 (WOL) → compute-01/02/03
|
|||
Vérifie dans l'ordre :
|
||||
- Services storage-01 : postgresql-16, qdrant, litellm, hermes-agent
|
||||
- Santé : PostgreSQL (connexion réelle), Qdrant (collections), LiteLLM (modèles), Hermes, NFS export
|
||||
- gpu-01 : ping, NFS /mnt/models, llama-server GPU (:1234), embeddings, llama-server CPU (:1236/:1237)
|
||||
- gpu-01 : ping, NFS /mnt/models, llama-server GPU (:1234), embed nomic CPU (:1238)
|
||||
- Cluster k8s : ping compute-01/02/03, kubectl get nodes Ready
|
||||
|
||||
### `funk-start [--k8s]`
|
||||
|
|
|
|||
|
|
@ -36,8 +36,8 @@ sudo systemctl list-units --type=service --state=running
|
|||
| gpu-01 | `chronyd` | NTP |
|
||||
| gpu-01 | `sshd` | SSH |
|
||||
| gpu-01 | `llama-server` | Inférence GPU — Qwen3-8B via ROCm 7.x (port 1234) |
|
||||
| gpu-01 | `llama-server-system` | Inférence CPU — Qwen3-1.7B (port 1236, 14 threads) |
|
||||
| gpu-01 | `llama-server-monitor` | Inférence CPU — Qwen3-1.7B (port 1237, 14 threads) |
|
||||
| gpu-01 | `llama-embed` | Embeddings nomic-embed-text CPU (port 1238, dim 768) |
|
||||
| gpu-01 | `llama-embed-heartbeat` | Sonde de vivacité du slot embed :1238 |
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -69,17 +69,22 @@ Compile llama.cpp (backend HIP/ROCm) et déploie le service **llama-server GPU**
|
|||
| `llama_embed_model_alias` | `nomic-embed-text` | — |
|
||||
| `llama_embed_n_gpu_layers` | `0` (CPU — évite la contention GPU avec `:1234`) | — |
|
||||
|
||||
## ⚠️ Gap IaC — instances CPU hors Ansible
|
||||
## Instances CPU retirées (2026-06-20)
|
||||
|
||||
Le rôle ne gère que l'instance **GPU** (`llama-server.service`). Les services suivants existent sur gpu-01 mais ont été créés **à la main** (non reproductibles par `make apply-gpu`) :
|
||||
Trois serveurs llama CPU **manuels** (hors Ansible) tournaient sur gpu-01 et ont été
|
||||
**supprimés** (stop + disable + `rm` des units + ports firewall fermés) car inutilisés —
|
||||
ils n'étaient même plus routés par LiteLLM (alias absents de `/etc/litellm/config.yaml`) :
|
||||
|
||||
| Service | Port | Modèle | Usage |
|
||||
| Service (supprimé) | Port | Modèle | Ex-usage |
|
||||
|---|---|---|---|
|
||||
| `llama-server-system.service` | 1236 | Qwen3-1.7B CPU | profil `system` |
|
||||
| `llama-server-monitor.service` | 1237 | Qwen3-1.7B CPU | profil `monitor` |
|
||||
| `llama-server-dev.service` | — | (non documenté, présent dans /etc/systemd/system) | ? |
|
||||
| `llama-server-dev.service` | 1235 | Qwen3-4B CPU | profil `dev` |
|
||||
|
||||
**À faire** : templatiser ces instances dans le rôle (liste d'instances avec port/modèle/threads) pour qu'une réinstallation de gpu-01 restaure les 3 serveurs.
|
||||
> Le rôle ne gère désormais **que** l'instance GPU (`llama-server.service`, `:1234`) et
|
||||
> l'embed CPU (`llama-embed.service`, `:1238`). Les profils Hermès `system`/`monitor`
|
||||
> n'ont plus de backend dédié — repointer leurs alias LiteLLM sur `qwen3-8b` (GPU) si on
|
||||
> veut les réactiver.
|
||||
|
||||
## Caveats
|
||||
|
||||
|
|
|
|||
|
|
@ -87,11 +87,12 @@ terminal: ask-agent system "est-ce que cette utilisation disque est préoccupant
|
|||
|
||||
| Agent | Modèle | Usage |
|
||||
|---|---|---|
|
||||
| `system` | Qwen3-1.7B CPU (:1236) | Calculs, formatage, résumés courts, questions Linux |
|
||||
| `monitor` | Qwen3-1.7B CPU (:1237) | Analyse logs, métriques, santé système |
|
||||
| `brain` | Claude Sonnet 4.6 API | Raisonnement complexe, architecture |
|
||||
| `funk-ai` | Qwen3-8B GPU (:1234) | Toi-même — rarement utile |
|
||||
|
||||
> Agents `system` et `monitor` retirés le 2026-06-20 (serveurs CPU :1236/:1237 supprimés).
|
||||
> Pour les réactiver, repointer leur alias LiteLLM sur `qwen3-8b`.
|
||||
|
||||
---
|
||||
|
||||
## Syntaxe complète
|
||||
|
|
|
|||
|
|
@ -19,8 +19,8 @@ qui nécessitent un raisonnement approfondi.
|
|||
|
||||
### Stack IA
|
||||
|
||||
- **llama-server** (gpu-01) — llama.cpp compilé ROCm 7.x, 4 instances : GPU :1234, CPU :1236/:1237, embeddings nomic-embed-text :1238
|
||||
- **Modèles** : Qwen3-8B Q4_K_M (GPU), Qwen3-1.7B Q4_K_M (CPU ×2)
|
||||
- **llama-server** (gpu-01) — llama.cpp compilé ROCm 7.x, 2 instances : GPU :1234 (chat), CPU :1238 (embed nomic-embed-text). Serveurs CPU :1235/:1236/:1237 retirés le 2026-06-20.
|
||||
- **Modèles** : Qwen3-8B Q4_K_M (GPU), nomic-embed-text (CPU, embeddings dim 768)
|
||||
- **LiteLLM** (storage-01:4000) — proxy multi-modèles + Claude API
|
||||
- **Hermes Agent** — 4 profils : funk-ai (principal), brain (toi), system, monitor
|
||||
- **Qdrant** (storage-01:6333) — base vectorielle RAG, collection `funk-docs`
|
||||
|
|
|
|||
|
|
@ -37,8 +37,9 @@ ssh hermes@192.168.10.20 # clé ed25519 dans ~/.ssh/
|
|||
| Service | Port | Modèle |
|
||||
|---|---|---|
|
||||
| llama-server | :1234 | Qwen3-8B Q4_K_M — GPU RX 6700XT (~35 tok/s) |
|
||||
| llama-server-system | :1236 | Qwen3-1.7B Q4_K_M — CPU 14 threads (~21 tok/s) |
|
||||
| llama-server-monitor | :1237 | Qwen3-1.7B Q4_K_M — CPU 14 threads (~21 tok/s) |
|
||||
| llama-embed | :1238 | nomic-embed-text — CPU (embeddings dim 768) |
|
||||
|
||||
> Les serveurs CPU `system` (:1236), `monitor` (:1237) et `dev` (:1235) ont été retirés le 2026-06-20.
|
||||
|
||||
### Cluster Kubernetes
|
||||
|
||||
|
|
@ -77,10 +78,11 @@ Terminal: ask-agent monitor "logs litellm : <résultat ci-dessus> — erreurs ?"
|
|||
|
||||
| Agent | Modèle | Quand l'appeler |
|
||||
|---|---|---|
|
||||
| `system` | Qwen3-1.7B CPU :1236 | Résumer, expliquer, formater, calculer, question Linux |
|
||||
| `monitor` | Qwen3-1.7B CPU :1237 | Analyser logs, métriques, état des services |
|
||||
| `brain` | Claude Sonnet API | Architecture complexe, décisions critiques — facturé |
|
||||
|
||||
> Agents `system`/`monitor` désactivés depuis le 2026-06-20 (serveurs CPU retirés) — pour les
|
||||
> réactiver, repointer leur alias LiteLLM sur `qwen3-8b`.
|
||||
|
||||
### 2. rag-query — documentation du cluster
|
||||
|
||||
Interroge la base vectorielle Qdrant (collection `funk-docs`) indexée depuis `admin/`.
|
||||
|
|
|
|||
|
|
@ -21,24 +21,6 @@ spec:
|
|||
summary: "llama-server GPU (Qwen3-8B) inaccessible"
|
||||
description: "Le serveur LLM GPU sur gpu-01:1234 ne répond plus depuis 2 min. Inférence GPU unavailable."
|
||||
|
||||
- alert: LlamaServerSystemDown
|
||||
expr: up{job="llama-server-system"} == 0
|
||||
for: 2m
|
||||
labels:
|
||||
severity: warning
|
||||
annotations:
|
||||
summary: "llama-server CPU system (Qwen3-1.7B) inaccessible"
|
||||
description: "Le serveur LLM CPU system sur gpu-01:1236 ne répond plus. Profil Hermes system degraded."
|
||||
|
||||
- alert: LlamaServerMonitorDown
|
||||
expr: up{job="llama-server-monitor"} == 0
|
||||
for: 2m
|
||||
labels:
|
||||
severity: warning
|
||||
annotations:
|
||||
summary: "llama-server CPU monitor (Qwen3-1.7B) inaccessible"
|
||||
description: "Le serveur LLM CPU monitor sur gpu-01:1237 ne répond plus. Profil Hermes monitor degraded."
|
||||
|
||||
# --- GPU temperature (ROCm via textfile_collector) ---
|
||||
- alert: GPUTemperatureHigh
|
||||
expr: rocm_gpu_temperature_celsius > 80
|
||||
|
|
|
|||
|
|
@ -1413,33 +1413,15 @@ data:
|
|||
"color": {"mode": "thresholds"},
|
||||
"thresholds": {"mode": "absolute", "steps": [{"color": "red", "value": null}, {"color": "green", "value": 1}]},
|
||||
"unit": "none",
|
||||
"mappings": [{"type": "value", "options": {"1": {"text": "llama-server system", "color": "green", "index": 0}, "0": {"text": "ARRÊTÉ", "color": "red", "index": 1}}}]
|
||||
"mappings": [{"type": "value", "options": {"1": {"text": "llama-embed nomic", "color": "green", "index": 0}, "0": {"text": "ARRÊTÉ", "color": "red", "index": 1}}}]
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"gridPos": {"h": 3, "w": 6, "x": 6, "y": 61},
|
||||
"id": 61,
|
||||
"options": {"reduceOptions": {"calcs": ["lastNotNull"], "fields": "", "values": false}, "textMode": "auto", "colorMode": "background", "graphMode": "none"},
|
||||
"title": "llama-server CPU system (:1236)",
|
||||
"targets": [{"datasource": {"type": "prometheus", "uid": "${datasource}"}, "expr": "node_systemd_unit_state{job=\"gpu-01-node\",name=\"llama-server-system.service\",state=\"active\"}", "legendFormat": "", "refId": "A"}],
|
||||
"type": "stat"
|
||||
},
|
||||
{
|
||||
"datasource": {"type": "prometheus", "uid": "${datasource}"},
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"color": {"mode": "thresholds"},
|
||||
"thresholds": {"mode": "absolute", "steps": [{"color": "red", "value": null}, {"color": "green", "value": 1}]},
|
||||
"unit": "none",
|
||||
"mappings": [{"type": "value", "options": {"1": {"text": "llama-server monitor", "color": "green", "index": 0}, "0": {"text": "ARRÊTÉ", "color": "red", "index": 1}}}]
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"gridPos": {"h": 3, "w": 6, "x": 12, "y": 61},
|
||||
"id": 62,
|
||||
"options": {"reduceOptions": {"calcs": ["lastNotNull"], "fields": "", "values": false}, "textMode": "auto", "colorMode": "background", "graphMode": "none"},
|
||||
"title": "llama-server CPU monitor (:1237)",
|
||||
"targets": [{"datasource": {"type": "prometheus", "uid": "${datasource}"}, "expr": "node_systemd_unit_state{job=\"gpu-01-node\",name=\"llama-server-monitor.service\",state=\"active\"}", "legendFormat": "", "refId": "A"}],
|
||||
"title": "llama-embed nomic (:1238)",
|
||||
"targets": [{"datasource": {"type": "prometheus", "uid": "${datasource}"}, "expr": "node_systemd_unit_state{job=\"gpu-01-node\",name=\"llama-embed.service\",state=\"active\"}", "legendFormat": "", "refId": "A"}],
|
||||
"type": "stat"
|
||||
},
|
||||
{
|
||||
|
|
|
|||
|
|
@ -81,22 +81,6 @@ prometheus:
|
|||
model: qwen3-8b
|
||||
type: gpu
|
||||
|
||||
- job_name: llama-server-system
|
||||
static_configs:
|
||||
- targets: ['192.168.10.20:1236']
|
||||
labels:
|
||||
instance: gpu-01
|
||||
model: qwen3-1.7b-system
|
||||
type: cpu
|
||||
|
||||
- job_name: llama-server-monitor
|
||||
static_configs:
|
||||
- targets: ['192.168.10.20:1237']
|
||||
labels:
|
||||
instance: gpu-01
|
||||
model: qwen3-1.7b-monitor
|
||||
type: cpu
|
||||
|
||||
alertmanager:
|
||||
ingress:
|
||||
enabled: true
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue