Décision· ADR-004
Démarrer avec llama.cpp (llama-server) comme runtime d'inférence
Runtime initial du prototype : llama-server, API OpenAI-compatible, slots parallèles ; vLLM sera évalué ensuite.
Confirmée#llama-cpp#vllm#ollama#inference#amd#rocm#vulkanPublié le 16 sept. 2026Mis à jour le 16 sept. 2026Vérifié le 16 sept. 2026À revérifier le 15 déc. 2026
- Identifiant
- ADR-004
- Statut
- Acceptée
- Date
- 16 septembre 2026
- Décision
- Le prototype utilise llama-server (llama.cpp) derrière une API OpenAI-compatible. Le backend (Vulkan ou ROCm) sera choisi par benchmark (Q-008). vLLM/SGLang sont évalués en second temps.
- Options étudiées
- llama.cpp / llama-server
- Ollama
- LM Studio
- vLLM
- SGLang
- AMD Lemonade
Contexte
Il faut un serveur d'inférence exposant une API OpenAI-compatible (contrat avec l'interface et le RAG), capable de servir plusieurs utilisateurs, fonctionnant sur GPU AMD gfx1151 sous Linux, et simple à exploiter.
Options étudiées
| Runtime | gfx1151 | Multi-utilisateur | Exploitation | Verdict initial |
|---|---|---|---|---|
| llama-server | Vulkan et ROCm, binaires AMD validés | slots -np, continuous batching, KV unifié, métriques Prometheus | binaire ou image Docker, MIT | Point de départ |
| Ollama | ROCm listé (Linux) | OLLAMA_NUM_PARALLEL, file FIFO, contexte 4096 par défaut | très simple, moins de contrôle | secours / tests rapides |
| LM Studio | ROCm / Vulkan | 4 prédictions concurrentes | propriétaire, orienté poste de travail | non retenu pour un serveur |
| vLLM | documenté sur ROCm ≥ 7.0.2 mais images communautaires encore patchées | continuous batching mature, métriques riches | lourd en mémoire et en complexité | à évaluer en phase 2 |
| SGLang | non officiel sur gfx1151 | idem | communautaire | veille |
| Lemonade (AMD) | builds ROCm nightly gfx1151 | concurrence non documentée | jeune | veille |
Décision
llama-server est le runtime du prototype. Le backend Vulkan (RADV) ou ROCm (HIP) sera choisi par mesure. L'API OpenAI-compatible est le contrat entre briques : changer de runtime plus tard ne doit rien casser côté interface ou RAG.
Pourquoi
- Seul runtime dont le support Strix Halo est à la fois officiel (binaires AMD) et éprouvé par la communauté, avec les meilleurs chiffres publiés (environ 50 tok/s en génération pour gpt-oss-120b).
- Il expose ce qu'il faut pour le multi-utilisateur (slots, batching) et pour le monitoring (
--metrics,/slots). - Empreinte d'exploitation minimale : un binaire, un modèle GGUF, une ligne de commande versionnée.
Conséquences
- Pas de priorité de file documentée dans llama-server : la gestion de priorité, si nécessaire, se fera dans une passerelle en amont.
- La comparaison Vulkan/ROCm et l'évaluation de vLLM sont des expérimentations planifiées.
- Cette décision est volontairement réversible : elle sera revue après les benchmarks multi-utilisateurs.