Aller au contenu principal

Héberger Devstral en Local

Pourquoi héberger Devstral localement ?

Devstral appartient à l’Open tier de Mistral AI : ses poids sont disponibles en open-source sous licence Apache 2.0. Cela signifie que vous pouvez le déployer sur vos propres serveurs, sans envoyer une seule ligne de votre code à une API externe.

Les raisons de l’auto-hébergement sont nombreuses :

  • Confidentialité — votre code ne quitte jamais votre infrastructure
  • Latence — pas de round-trip réseau vers l’API Mistral
  • Coût prévisible — un coût fixe de GPU au lieu d’une facturation à l’usage
  • Conformité — exigence de certaines réglementations (RGPD, secteur bancaire, défense)
  • Disponibilité — aucune dépendance à un service tiers

Le modèle recommandé

Devstral Small 2 (24B-Instruct-2512) est le modèle recommandé pour l’hébergement local. Avec 24 milliards de paramètres, il offre un excellent rapport performance/ressources.

Le modèle est disponible sur Hugging Face : mistralai/Devstral-Small-2-24B-Instruct-2512

Prérequis GPU

Le choix du matériel détermine la qualité de l’expérience :

Configuration recommandée — H100 ou A100

  • GPU : NVIDIA H100 (80 Go) ou A100 (80 Go)
  • Précision : FP8
  • Contexte : jusqu’à ~128k tokens
  • Performance : excellente, comparable à l’API Mistral
  • Coût : serveur dédié ou cloud (environ 2-4 EUR/heure sur les clouds publics)

Configuration alternative — RTX 4090

  • GPU : NVIDIA RTX 4090 (24 Go VRAM)
  • Précision : 4-bit (quantization)
  • Contexte : environ 32k tokens
  • Performance : bonne pour le développement, latence légèrement plus élevée
  • Coût : environ 500-700 EUR pour un PC de bureau ou 0.5-1 EUR/heure en cloud

Configuration CPU-only

  • Matériel : suffisamment de RAM (64 Go+)
  • Performance : lente, acceptable pour des tâches ponctuelles
  • Usage : prototypage uniquement, pas pour la production

Déploiement avec vLLM

vLLM est le framework d’inférence recommandé par Mistral AI. Il offre les meilleures performances pour servir des modèles de langage.

Installation

pip install vllm

Lancer le serveur

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

Paramètres importants

# Multi-GPU (si vous avez 2+ GPU)
vllm serve mistralai/Devstral-Small-2-24B-Instruct-2512 \
  --tool-call-parser mistral \
  --enable-auto-tool-choice \
  --tensor-parallel-size 2 \
  --port 8080

# Précision réduite (pour GPU avec moins de VRAM)
vllm serve mistralai/Devstral-Small-2-24B-Instruct-2512 \
  --tool-call-parser mistral \
  --enable-auto-tool-choice \
  --dtype float16 \
  --port 8080

# Contexte réduit (pour économiser la VRAM)
vllm serve mistralai/Devstral-Small-2-24B-Instruct-2512 \
  --tool-call-parser mistral \
  --enable-auto-tool-choice \
  --max-model-len 32768 \
  --port 8080

Explication des flags

  • --tool-call-parser mistral — active le parsing des appels d’outils au format Mistral
  • --enable-auto-tool-choice — permet au modèle de décider quand appeler un outil
  • --tensor-parallel-size — répartit le modèle sur plusieurs GPU
  • --dtype — contrôle la précision (float16, bfloat16, float32)
  • --max-model-len — limite la taille du contexte pour économiser la VRAM

Utiliser le serveur local

Une fois vLLM lancé, le serveur expose une API compatible OpenAI sur le port 8080 :

from mistralai import Mistral

# Pointer vers le serveur local
client = Mistral(
    api_key="dummy",  # Pas de clé nécessaire en local
    server_url="http://localhost:8080",
)

response = client.chat.complete(
    model="mistralai/Devstral-Small-2-24B-Instruct-2512",
    messages=[
        {"role": "user", "content": "Analyse ce code et propose des améliorations."}
    ],
)

Vous pouvez aussi utiliser le SDK OpenAI directement :

from openai import OpenAI

client = OpenAI(
    api_key="dummy",
    base_url="http://localhost:8080/v1",
)

response = client.chat.completions.create(
    model="mistralai/Devstral-Small-2-24B-Instruct-2512",
    messages=[
        {"role": "user", "content": "Explique ce code."}
    ],
)

Frameworks alternatifs

llama.cpp

Pour les configurations avec peu de VRAM, llama.cpp propose une quantification agressive :

# Télécharger le modèle quantifié GGUF
# Lancer le serveur
./llama-server -m devstral-small-2-Q4_K_M.gguf --port 8080

Ollama

Ollama simplifie le déploiement pour les développeurs individuels :

ollama run devstral

LM Studio

LM Studio offre une interface graphique pour télécharger et exécuter des modèles localement, sans ligne de commande.

Connecter Vibe au serveur local

Pour utiliser Devstral local avec Mistral Vibe CLI :

  1. Lancez le serveur vLLM (port 8080)
  2. Dans Vibe, tapez /config
  3. Sélectionnez “local” comme modèle
  4. Le port 8080 est utilisé par défaut

Vous bénéficiez alors de l’expérience agentique complète de Vibe, sans aucune donnée envoyée à l’extérieur.

Points clés à retenir

  • Devstral Small 2 (24B) est déployable en local grâce à sa licence Apache 2.0
  • vLLM est le framework recommandé pour servir le modèle
  • Un H100/A100 offre la meilleure expérience ; un RTX 4090 en 4-bit est viable
  • Le serveur vLLM expose une API compatible OpenAI, utilisable avec tout SDK
  • Les alternatives (llama.cpp, Ollama, LM Studio) conviennent pour des usages plus légers
  • Vibe CLI se connecte nativement au serveur local