Déployer Devstral en local avec vLLM
Mis à jour le 29 juillet 2026
Préparer le déploiement
Déployer Devstral en local revient à lancer sur votre machine un serveur d’inférence qui expose une API compatible OpenAI. Vibe s’y connecte ensuite exactement comme s’il parlait au cloud Mistral : c’est cette compatibilité d’interface qui rend la bascule indolore, votre outillage n’ayant aucune raison de savoir d’où viennent les réponses. Le framework recommandé pour ce rôle est vLLM, un moteur d’inférence haute performance développé par la communauté open-source.
Ce que votre matériel autorise
Avant toute installation, regardez votre GPU : c’est lui qui détermine la précision utilisable et, par conséquent, la taille de la fenêtre de contexte dont vous disposerez.
| Configuration | GPU | VRAM | Précision | Contexte |
|---|---|---|---|---|
| Recommandée | NVIDIA H100 / A100 | 80 Go | FP8 | ~128K tokens |
| Alternative | RTX 4090 / RTX 6000 | 24-48 Go | 4-bit (quantifié) | ~32K tokens |
| CPU-only | Aucun GPU | 64+ Go RAM | - | Lent (non recommandé) |
Note importante : la configuration CPU-only est fonctionnelle mais extrêmement lente pour un modèle 24B. Elle convient uniquement pour des tests, pas pour un usage quotidien. Autrement dit, elle vous permettra de vérifier que la chaîne fonctionne, pas de travailler avec.
Installer vLLM
Le prérequis logiciel est mince : Python 3.10 ou supérieur, puis un pip install.
# Python 3.10+ requis
python3 --version
# Installer vLLM
pip install vllm
Vérifiez ensuite que les drivers NVIDIA et CUDA sont installés et opérationnels. Cette commande est le meilleur test de bout en bout : si elle affiche votre GPU et une version de CUDA, la couche basse est saine et les erreurs ultérieures viendront d’ailleurs.
nvidia-smi
# Doit afficher votre GPU et la version CUDA
Lancer le serveur
La commande de démarrage tient en quatre arguments, dont deux sont indispensables au fonctionnement avec Vibe.
vllm serve mistralai/Devstral-Small-2-24B-Instruct-2512 \
--tool-call-parser mistral \
--enable-auto-tool-choice \
--port 8080
Décortiquons les flags :
mistralai/Devstral-Small-2-24B-Instruct-2512: le modèle Hugging Face à charger--tool-call-parser mistral: active le parsing des appels d’outils au format Mistral--enable-auto-tool-choice: permet au modèle de choisir automatiquement ses outils--port 8080: le port d’écoute du serveur
Les deux flags relatifs aux outils méritent qu’on s’y arrête. Sans eux, le serveur répondrait bien à vos questions, mais le modèle ne pourrait plus lire un fichier ni lancer une commande : Vibe deviendrait un simple chat, ce qui n’est pas l’objet.
Adapter la commande à votre machine
Si vous disposez de plusieurs GPU, le parallélisme tensoriel répartit le modèle sur l’ensemble des cartes. La VRAM combinée autorise alors une fenêtre de contexte plus large.
vllm serve mistralai/Devstral-Small-2-24B-Instruct-2512 \
--tool-call-parser mistral \
--enable-auto-tool-choice \
--tensor-parallel-size 2 \
--port 8080
Sur une configuration plus modeste, c’est la précision qu’il faut abaisser. Une H100 ou une A100 encaissent le FP8 ; une RTX 4090 passera par une quantification 4-bit avec AWQ, au prix d’une légère perte de qualité largement compensée par le fait que le modèle tienne enfin en mémoire.
# FP8 sur H100/A100
vllm serve mistralai/Devstral-Small-2-24B-Instruct-2512 \
--tool-call-parser mistral \
--enable-auto-tool-choice \
--dtype float16 \
--port 8080
# 4-bit sur RTX 4090
vllm serve mistralai/Devstral-Small-2-24B-Instruct-2512 \
--tool-call-parser mistral \
--enable-auto-tool-choice \
--quantization awq \
--port 8080
Dernier levier quand la VRAM reste insuffisante : réduire la longueur de contexte maximale. Le cache d’attention consomme de la mémoire proportionnellement au contexte, et descendre à 16 384 tokens libère souvent ce qui manquait pour démarrer.
vllm serve mistralai/Devstral-Small-2-24B-Instruct-2512 \
--tool-call-parser mistral \
--enable-auto-tool-choice \
--max-model-len 16384 \
--port 8080
Brancher Vibe et vérifier
Le serveur tourne ; il reste à dire à Vibe de l’utiliser. La configuration se fait depuis la session interactive, et le port 8080 étant celui attendu par défaut, la détection est automatique.
vibe
# Dans la session interactive :
/config
# Sélectionner "local" comme modèle
# Le port 8080 est utilisé par défaut
Testez la chaîne à deux niveaux : d’abord l’API brute, qui vous confirme que le modèle est bien chargé, puis une vraie requête dans Vibe pour valider que les appels d’outils fonctionnent.
# Test direct de l'API
curl http://localhost:8080/v1/models
# Test dans Vibe
vibe --agent plan
> Liste les fichiers du répertoire courant
Pour un usage quotidien, relancer la commande à la main devient vite pénible. Un service systemd démarre le serveur au boot et le relance en cas de crash.
# Créer un service systemd
sudo tee /etc/systemd/system/vllm-devstral.service << EOF
[Unit]
Description=vLLM Devstral Server
After=network.target
[Service]
Type=simple
User=$USER
ExecStart=/usr/local/bin/vllm serve mistralai/Devstral-Small-2-24B-Instruct-2512 --tool-call-parser mistral --enable-auto-tool-choice --port 8080
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl enable --now vllm-devstral
Les trois problèmes que vous rencontrerez
Une erreur CUDA out of memory signifie que le modèle ne tient pas : réduisez --max-model-len ou passez en quantification 4-bit. Une lenteur au tout premier lancement est normale et non un symptôme — le démarrage initial télécharge et charge le modèle, environ 14 Go, et les lancements suivants profitent du cache. Enfin, si Vibe ne trouve pas le serveur local, vérifiez simplement que le port 8080 écoute avant de chercher plus loin.
curl http://localhost:8080/health
Points clés à retenir
- vLLM est le framework recommandé pour servir Devstral en local
- Les flags
--tool-call-parser mistralet--enable-auto-tool-choicesont obligatoires - Un H100/A100 offre FP8 et 128K de contexte, une RTX 4090 offre 4-bit et 32K
- Réduisez
--max-model-lensi la VRAM est insuffisante - Connectez Vibe avec
/config→ sélectionner “local” - Lancez vLLM comme service systemd pour un usage quotidien