Votre premier modèle local avec llama.cpp
llama.cpp est le moteur open source qui fait tourner la plupart des modèles locaux. Son serveur parle la même API que les grands fournisseurs du cloud : la plupart des outils peuvent l'utiliser sans modification.
1. Télécharger un modèle
Qwen3 8B, compressé sur 4 bits (Q4_K_M), 5,0 Go : il tient sur une carte de 8 Go.
mkdir -p ~/models
curl -L -o ~/models/Qwen3-8B-Q4_K_M.gguf \
https://huggingface.co/unsloth/Qwen3-8B-GGUF/resolve/main/Qwen3-8B-Q4_K_M.gguf
2. Le servir
docker run --rm --gpus all \
-p 127.0.0.1:8080:8080 \
-v ~/models:/models \
ghcr.io/ggml-org/llama.cpp:server-cuda \
-m /models/Qwen3-8B-Q4_K_M.gguf \
-ngl 99 -c 8192 -fa on \
--host 0.0.0.0 --port 8080
-ngl 99: toutes les couches sur la carte.-c 8192: le contexte, la quantité de texte que le modèle garde en tête d'un coup. Plus de contexte, plus de VRAM.-fa on: flash attention, plus rapide et plus léger en mémoire.-p 127.0.0.1:8080:8080: joignable depuis cette machine seulement. Ne l'ouvrez pas à votre réseau avant d'avoir mis quelque chose devant.
3. Lui parler
curl http://127.0.0.1:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"messages": [{"role": "user", "content": "Dis bonjour en une phrase."}]}'
Ou ouvrez http://127.0.0.1:8080 dans un navigateur : le serveur fournit une petite page de discussion.
Un piège que nous avons mesuré
Pour gagner de la mémoire, on peut compresser le cache de contexte avec -ctk q8_0 -ctv q8_0. N'allez pas plus loin côté V : avec -ctv q4_0, flash attention se désactive sans prévenir et la lecture d'un long prompt est devenue 21 fois plus lente sur notre carte (62,7 au lieu de 1 330 jetons par seconde), alors que la vitesse de génération n'a pas bougé. Un test qui ne mesure que la génération ne l'aurait jamais vu.