Tutoriel

Statut éditorial : En attente de relecture

Déployer Mistral Nemo avec vLLM sur un serveur GPU

Servir Mistral Nemo derrière une API compatible OpenAI avec vLLM, puis sécuriser, mesurer et dimensionner le déploiement.

Classification du contenu

Types

  • Modèles et API
Niveau
Avancé
Publié le
24 août 2026
Dernière relecture
Relecture en attente
Prochaine vérification
24 octobre 2026

vLLM expose des modèles de langage derrière une API compatible avec le SDK OpenAI. Ce tutoriel utilise le dépôt "mistralai/Mistral-Nemo-Instruct-2407" comme exemple reproductible. Vérifiez toutefois le catalogue Mistral et la fiche Hugging Face avant un nouveau déploiement : modèle, licence et format de chat peuvent évoluer.

Vérifier la machine

Il vous faut un GPU NVIDIA compatible, des pilotes récents et suffisamment de VRAM pour les poids, le cache KV et la concurrence visée.

~~~bash nvidia-smi python --version ~~~

Installez vLLM dans un environnement isolé en suivant la matrice CUDA officielle :

~~~bash python -m venv .venv source .venv/bin/activate pip install -U vllm openai ~~~

Démarrer le serveur

~~~bash vllm serve mistralai/Mistral-Nemo-Instruct-2407 \ --host 0.0.0.0 \ --port 8000 \ --dtype auto \ --max-model-len 8192 \ --gpu-memory-utilization 0.90 \ --api-key "$VLLM_API_KEY" ~~~

Réduire "max-model-len" diminue la réserve nécessaire au cache KV. Ne recopiez pas la fenêtre maximale annoncée par le modèle sans vérifier que votre GPU et votre charge la supportent.

Tester avec le SDK OpenAI

~~~python import os from openai import OpenAI

client = OpenAI( base_url="http://localhost:8000/v1", api_key=os.environ["VLLM_API_KEY"], )

response = client.chat.completions.create( model="mistralai/Mistral-Nemo-Instruct-2407", messages=[ {"role": "system", "content": "Réponds clairement en français."}, {"role": "user", "content": "Explique le cache KV en deux phrases."}, ], temperature=0.2, max_tokens=160, )

print(response.choices[0].message.content) ~~~

Listez "/v1/models" si le nom servi diffère du dépôt. Testez aussi le streaming et les erreurs de dépassement de contexte.

Ajouter un proxy

N’exposez pas directement le port vLLM. Placez un proxy ou une passerelle devant le serveur pour TLS, authentification, quotas, journalisation et limitation du corps. Conservez la clé vLLM comme seconde barrière et bloquez le port 8000 au niveau réseau.

Dimensionner

Mesurez tokens par seconde, temps au premier token, latence p95, longueur de file et erreurs mémoire. La concurrence consomme du cache KV ; un modèle qui tient au repos peut échouer sous charge. Faites un test avec la distribution réelle des longueurs de prompts.

Si un GPU ne suffit pas, utilisez le tensor parallelism uniquement sur des GPU reliés par une interconnexion adaptée. Une quantification réduit la mémoire, mais doit être évaluée sur vos tâches : précision, format d’outil et stabilité peuvent changer.

Conteneur et démarrage

Épinglez l’image vLLM et le modèle par révision. Montez le cache Hugging Face sur un volume durable. Ajoutez un readiness check qui effectue une petite génération ; un port ouvert ne signifie pas que les poids sont prêts.

Sécurité et conformité

Vérifiez la licence, la provenance des poids et la résidence du serveur. Ne journalisez pas les prompts en clair par défaut. Définissez rétention, chiffrement et contrôle d’accès. Un modèle auto-hébergé évite l’envoi à un fournisseur, mais ne rend pas automatiquement l’ensemble du système conforme.

FAQ

Pourquoi vLLM refuse-t-il une longue requête ?

La somme des tokens d’entrée et de sortie dépasse la limite servie, qui peut être volontairement plus basse que celle du modèle. Tronquez avec une stratégie explicite ou augmentez la limite après test mémoire.

Peut-on changer de modèle sans modifier le client ?

Oui si l’application reste compatible avec l’API et les capacités du nouveau modèle. Revalidez toutefois le template de chat, les outils, la longueur de contexte et vos tests métier.

Sources utilisées