Skip to content

v0.1.0-beta.7 — Backend LLM multi-moteur (Ollama / llama.cpp / vLLM) piloté par le matériel

Choose a tag to compare

@Martossien Martossien released this 02 Jul 15:52

Feature phare : la LLM d'arbitrage (résumé / correction / relecture) devient multi-backend et le choix « palier VRAM → modèle » sort du code vers un catalogue de données unique, piloté par le matériel physiquement présent.

✨ Nouveautés

  • Backend Ollama « facile » — installation curl … | sh auto-suffisante (runtime CUDA embarqué : aucune compilation, aucun nvcc, aucun token HF), modèle tiré par ollama pull, répartition multi-GPU (OLLAMA_SCHED_SPREAD).
  • Catalogue de profils en données (transcria/data/llm_profiles.yaml) — par moteur (llama.cpp / Ollama / vLLM) et par palier : identifiant du modèle + contexte variable + placement + dtype KV. Aucune taille de modèle en dur. Surchargeable via workflow.arbitration_llm.profiles_file.
  • Sélection pilotée par le matériel (select_profile) — mono-GPU → meilleur modèle sur 1 carte ; multi-GPU (≥ 2) → multi-GPU activé (llama.cpp tensor-split, Ollama spread, vLLM TP auto).
  • Empreinte VRAM dérivée — poids réel du fichier + KV calculé (archi × contexte), puis recalée par la mesure au 1ᵉʳ chargement (/api/ps) → gpu.llm_vram_mion manuelle.
  • Voie llama.cpp CUDA à 3 niveaux — détecter → binaire précompilé ai-dock (sha256 vérifié, auto-téléchargé en non-interactif) → compiler si nvcc → échec propre. S'installe sur distro vierge sans compiler.
  • Cycle de vie LLM unifié derrière LLMBacasured_vram_mb) — le démon Ollama n'estjamais tué (seul le modèle est déchargé).

✅ Validation E2E réelle (8× RTX 3090)

  • All-in-one Ollama mono-GPU (gemma4:12b) et multi-GPU (qwen3.6:35b spread), llama.cpp (Qwen3.6-35B-A3B), split vLLM (Qwen3.6-27B-FP8, TP=4) — sur Ubuntu 22.04/24.04, Debian 12, Fedora 41, Rocky 9.
  • Qualité lue à la main (pas seulement sc35b 98/100, llama.cpp 35B Q8 97/100.
  • Détails : docs/LLM_PROFILS_VALIDATION.md · backends : docs/LLM_BACKENDS.md.

🔧 Durcissement install (findings E2E sur

  • Calibration gpu.llm_vram_mb dérivée de la taille réelle du modèle (débloque waiting_vram).
  • Téléchargement GGUF + binaire ai-dock automatique en non-interactif ; détection PYTHON_BIN avancée (Rocky 9).
  • detect_llama_server.py (f-string) ; profil 64 Go compatible conteneur (numactl seccomp / CUDA_HOME /
    LD_LIBRARY_PATH).
  • distro_bootstrap (deadsnakes py3.11, --allowerasing) ; CDI multi-GPU (un --device par GPU).

📊 Qualité

2 983 tests verts (ruff, mypy, pytest comure 80 %.

⚠️ Note SemVer
La série 0.x est une phase de stabilisatiiguration et le modèle de données peuventencore évoluer sans garantie de compatibi. À évaluer, à piloter — pas à mettre en
production sans votre propre validation.