Funk-lab/progress/2026-05-13.md
alkatrazz 24c0bf9e12 docs: progression 2026-05-14 + désignore progress/
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-14 22:28:10 +02:00

140 lines
4.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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`