Aller au contenu principal

Déployer Devstral en local avec vLLM

Préparer le déploiement

Déployer Devstral en local consiste à lancer un serveur d’inférence sur votre machine qui expose une API compatible OpenAI. Vibe se connecte ensuite à ce serveur comme s’il parlait au cloud Mistral.

Le framework recommandé est vLLM, un moteur d’inférence haute performance développé par la communauté open-source.

Prérequis matériels

Le choix du GPU détermine la précision et la fenêtre de contexte disponibles :

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.

Installation de vLLM

Prérequis logiciels

# Python 3.10+ requis
python3 --version

# Installer vLLM
pip install vllm

Assurez-vous que les drivers NVIDIA et CUDA sont installés et fonctionnels :

nvidia-smi
# Doit afficher votre GPU et la version CUDA

Lancer le serveur Devstral

La commande principale pour démarrer le serveur d’inférence :

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

Flags optionnels importants

Multi-GPU

Si vous avez plusieurs GPU, activez le parallélisme tensoriel :

vllm serve mistralai/Devstral-Small-2-24B-Instruct-2512 \
  --tool-call-parser mistral \
  --enable-auto-tool-choice \
  --tensor-parallel-size 2 \
  --port 8080

--tensor-parallel-size 2 distribue le modèle sur 2 GPU. La VRAM combinée permet une fenêtre de contexte plus grande.

Précision réduite

Pour les GPU avec moins de VRAM :

# 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

Limiter la fenêtre de contexte

Si votre VRAM est limitée, réduisez la longueur de contexte maximale :

vllm serve mistralai/Devstral-Small-2-24B-Instruct-2512 \
  --tool-call-parser mistral \
  --enable-auto-tool-choice \
  --max-model-len 16384 \
  --port 8080

Connecter Vibe au serveur local

Une fois le serveur lancé, configurez Vibe pour l’utiliser :

vibe
# Dans la session interactive :
/config
# Sélectionner "local" comme modèle
# Le port 8080 est utilisé par défaut

Vibe détecte automatiquement le serveur local sur le port 8080 et bascule en mode local.

Vérifier que tout fonctionne

Testez avec une requête simple :

# Test direct de l'API
curl http://localhost:8080/v1/models

# Test dans Vibe
vibe --agent plan
> Liste les fichiers du répertoire courant

Lancer en tant que service

Pour un usage quotidien, lancez vLLM comme un service système :

# 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

Résolution de problèmes

Erreur CUDA out of memory

Réduisez --max-model-len ou passez en quantification 4-bit.

Serveur lent au premier lancement

Le premier démarrage télécharge et charge le modèle (~14 Go). Les lancements suivants sont plus rapides grâce au cache.

Vibe ne trouve pas le serveur local

Vérifiez que le port 8080 est bien en écoute :

curl http://localhost:8080/health

Points clés à retenir

  • vLLM est le framework recommandé pour servir Devstral en local
  • Les flags --tool-call-parser mistral et --enable-auto-tool-choice sont obligatoires
  • Un H100/A100 offre FP8 et 128K de contexte, une RTX 4090 offre 4-bit et 32K
  • Réduisez --max-model-len si la VRAM est insuffisante
  • Connectez Vibe avec /config → sélectionner “local”
  • Lancez vLLM comme service systemd pour un usage quotidien