mirror of
https://github.com/Alkatrazz24/Funk-lab.git
synced 2026-07-08 22:34:41 +02:00
140 lines
4.3 KiB
Markdown
140 lines
4.3 KiB
Markdown
# 2026-05-13 — Stabilisation multi-modèles + profils Hermes finalisés
|
||
|
||
## Résumé
|
||
|
||
Stabilisation de l'architecture multi-modèles sur gpu-01. Résolution des OOM kills,
|
||
ajustement des ressources CPU/RAM pour les instances system et monitor. Profils Hermes
|
||
testés et fonctionnels. Architecture finale : 2 instances Qwen3-1.7B sur 14 CPUs
|
||
chacune pour des réponses rapides (<3s).
|
||
|
||
---
|
||
|
||
## Blocages résolus
|
||
|
||
### OOM kill instances CPU à 6 GB
|
||
|
||
**Symptôme** : `llama-server-system` tué par l'OOM killer en boucle (restart counter >45).
|
||
```
|
||
llama-server-system.service: A process of this unit has been killed by the OOM killer.
|
||
```
|
||
|
||
**Cause** : Qwen3-1.7B avec `--ctx-size 65536` consomme ~6.2 GB (modèle + KV cache).
|
||
Le `MemoryMax=6G` était trop juste.
|
||
|
||
**Fix** : `MemoryMax=8G` puis passage à 14 CPUs (voir section suivante).
|
||
|
||
---
|
||
|
||
### --cache-type-k q8_0 crash llama-server GPU
|
||
|
||
**Symptôme** : segfault en boucle dès le démarrage du service GPU.
|
||
```
|
||
Process 24687 (llama-server) dumped core.
|
||
Stack: _ZNK13llama_context5n_ctxEv → load_model
|
||
```
|
||
|
||
**Cause** : La version compilée de llama-server ne supporte pas le flag `--cache-type-k q8_0`.
|
||
Crash immédiat dans la phase d'allocation du KV cache.
|
||
|
||
**Fix** : Retrait du flag. GPU reste à `--ctx-size 32768` sans quantification KV.
|
||
|
||
**À retenir** : Ne pas utiliser `--cache-type-k` sur ce build llama.cpp.
|
||
|
||
---
|
||
|
||
### Qwen2.5-14B OOM avec MemoryMax 14 GB
|
||
|
||
**Tentative** : Utiliser Qwen2.5-14B sur CPU avec 14 GB RAM pour avoir un meilleur modèle.
|
||
|
||
**Cause du fail** : Qwen2.5-14B a `head_dim=256` (vs 128 pour les autres). Le KV cache
|
||
à 65536 tokens = **24 GB** seul. Même à 32768 tokens : 12 GB KV + 8.8 GB modèle = 21 GB.
|
||
Incompatible avec 14 GB MemoryMax quelle que soit la configuration.
|
||
|
||
**Fix** : Retour sur Qwen3-1.7B — modèle ultra-léger (1.1 GB), KV cache à 32768 = ~3.5 GB.
|
||
Total ~4.8 GB, largement dans 14 GB.
|
||
|
||
---
|
||
|
||
## Architecture finale gpu-01
|
||
|
||
### Ressources CPU (5950X 16c/32t)
|
||
|
||
| Zone | CPUs logiques | Cœurs physiques | Usage |
|
||
|---|---|---|---|
|
||
| system | 0-6, 16-22 | 0-6 (× 2 threads) | llama-server-system |
|
||
| monitor | 7-13, 23-29 | 7-13 (× 2 threads) | llama-server-monitor |
|
||
| libre | 14-15, 30-31 | 14-15 | OS + GPU coordination |
|
||
|
||
### Services
|
||
|
||
| Service | Port | Modèle | CPUs | RAM | Vitesse |
|
||
|---|---|---|---|---|---|
|
||
| `llama-server` | 1234 | Qwen3-8B GPU | — | VRAM 12G | ~35 tok/s |
|
||
| `llama-server-system` | 1236 | Qwen3-1.7B | 14 (0-6,16-22) | 6G | ~21 tok/s |
|
||
| `llama-server-monitor` | 1237 | Qwen3-1.7B | 14 (7-13,23-29) | 6G | ~21 tok/s |
|
||
|
||
### Profil dev supprimé
|
||
|
||
`llama-server-dev` (port 1235, Qwen2.5-7B) supprimé. Ses ressources redistribuées.
|
||
`qwen2.5-7b-dev` retiré de LiteLLM. Profil Hermes `dev` gardé mais inutilisé.
|
||
|
||
---
|
||
|
||
## Profils Hermes
|
||
|
||
### Tableau final
|
||
|
||
| Profil | Alias | Modèle | Usage |
|
||
|---|---|---|---|
|
||
| `funk-ai` ◆ | `funk-ai` | qwen3-8b (GPU) | Principal, par défaut |
|
||
| `brain` | `brain` | claude-sonnet-4-6 | Analyse complexe / coûteux |
|
||
| `system` | `system` | qwen3-1.7b-system | Appels rapides depuis funk-ai/brain |
|
||
| `monitor` | `monitor` | qwen3-1.7b-monitor | Appels rapides depuis funk-ai/brain |
|
||
|
||
### Changer de profil
|
||
|
||
Pas de changement à chaud dans le TUI — ouvrir une nouvelle session :
|
||
```bash
|
||
funk-ai # TUI avec Qwen3-8B GPU (défaut)
|
||
brain # TUI avec Claude Sonnet
|
||
system # TUI avec Qwen3-1.7B (appels rapides)
|
||
monitor # TUI avec Qwen3-1.7B (appels rapides)
|
||
```
|
||
|
||
### context_length override
|
||
|
||
Hermes exige 64k context minimum. Les modèles CPU reportent 32768 via `/v1/models`.
|
||
Override dans chaque `profiles/<nom>/config.yaml` :
|
||
```yaml
|
||
model:
|
||
context_length: 65536 # bypass la vérification Hermes
|
||
```
|
||
|
||
---
|
||
|
||
## LiteLLM config finale
|
||
|
||
```yaml
|
||
# GPU
|
||
hermes-default / qwen3-8b → http://192.168.10.20:1234/v1
|
||
# CPU
|
||
qwen3-1.7b-system → http://192.168.10.20:1236/v1
|
||
qwen3-1.7b-monitor → http://192.168.10.20:1237/v1
|
||
# Cloud
|
||
claude-sonnet-4-6 / claude-opus-4-7 → api.anthropic.com
|
||
```
|
||
|
||
---
|
||
|
||
## État final
|
||
|
||
- `funk-ai` : opérationnel, profil par défaut ✅
|
||
- `brain` : opérationnel (Claude API) ✅
|
||
- `system` : Qwen3-1.7B 14 CPUs, ~21 tok/s ✅
|
||
- `monitor` : Qwen3-1.7B 14 CPUs, ~21 tok/s ✅
|
||
|
||
## Prochaines étapes
|
||
|
||
- Tester les appels inter-profils (funk-ai → system/monitor via tool calls)
|
||
- Commit git initial du repo
|
||
- Route statique Freebox `192.168.10.0/24` → `192.168.1.200`
|