Avancé 12 minAgents et modèles

SGLang : servir un LLM local à plusieurs utilisateurs

Réponse directe

SGLang est un serveur d'inférence pensé pour plusieurs utilisateurs simultanés : il s'installe avec uv, se lance en une commande sur le port 30000, et doit son débit sous charge à RadixAttention (cache de préfixes) et à l'ordonnancement continu des requêtes. Il exige un GPU CUDA récent, ce qui en fait un outil de serveur partagé, pas un remplaçant d'Ollama sur un poste personnel mono-utilisateur.

SGLang est un framework de serveur d'inférence, développé par la communauté LMSYS, conçu pour du service à haut débit et faible latence face à plusieurs requêtes simultanées. Ce guide couvre son installation, le fonctionnement de RadixAttention, les leviers de concurrence à connaître, et les critères pour choisir entre SGLang, vLLM et Ollama selon le nombre d'utilisateurs réels à servir.

Par Mohamed Meguedmi·Màj 2026-09-28·Testé sur Windows, macOS, Linux

#Ce que fait SGLang

SGLang se présente comme un framework de service haute performance pour LLM et modèles multimodaux, conçu pour une inférence à faible latence et haut débit, d'un seul GPU jusqu'à de larges clusters distribués. Le projet revendique des déploiements de production générant des trillions de tokens chaque jour sur plus de 400 000 GPU dans le monde, et est hébergé par l'organisation open source à but non lucratif LMSYS.

Compatible avec les API OpenAI et Hugging Face, SGLang prend en charge une large gamme de modèles (Llama, Qwen, DeepSeek, GLM, Mistral, Gemma) et de matériels (GPU NVIDIA, AMD, CPU Intel Xeon, TPU Google, NPU Ascend). La dernière version au 28 septembre 2026 est v0.5.20, publiée le 18 septembre 2026.

i
SGLang n'est pas un remplaçant direct d'Ollama
SGLang cible le service à plusieurs utilisateurs sur du matériel serveur. Il expose même une API compatible avec le client Ollama pour faciliter la migration d'outils existants, mais il n'installe ni ne remplace Ollama lui-même.

#Installer et lancer le serveur

Le kit Copilote Local

Ce guide t'amène au modèle. Le kit t'amène au copilote qui code dans ton éditeur.

  • Espace en ligne à vie
  • PDF + fichiers
  • Remboursé 30 j

L'installation recommandée par la documentation officielle passe par uv, plus rapide que pip classique. Le drapeau --prerelease=allow est nécessaire car certaines dépendances de SGLang ne publient que des pré-versions sur PyPI.

Installation
pip install --upgrade pip
pip install uv
uv pip install --prerelease=allow sglang

Le lancement en conteneur Docker reste la voie la plus reproductible pour un déploiement serveur, avec le port 30000 utilisé par défaut pour l'API.

Docker
docker run --gpus all \
    --shm-size 32g \
    -p 30000:30000 \
    -v ~/.cache/huggingface:/root/.cache/huggingface \
    --env "HF_TOKEN=<secret>" \
    --ipc=host \
    lmsysorg/sglang:latest \
    python3 -m sglang.launch_server --model-path meta-llama/Llama-3.1-8B-Instruct --host 0.0.0.0 --port 30000

La documentation précise que SGLang exige désormais CUDA 13 : les images et roues CUDA 12 (cu129) sont retirées depuis que PyTorch 2.14 ne publie plus de build CUDA 12.9, et la version 0.5.19 reste la dernière à proposer une voie CUDA 12. Un déploiement sur du matériel plus ancien doit donc figer cette version ou vérifier le pilote GPU avant de mettre à jour.

#RadixAttention et le cache de préfixes

Le cœur de la promesse de débit de SGLang est RadixAttention : les préfixes de séquences déjà calculés (un system prompt partagé, le début d'une conversation multi-tours) sont organisés dans un arbre radix et réutilisés entre requêtes, au lieu d'être recalculés à chaque appel. L'annonce d'origine du projet, en janvier 2024, revendiquait jusqu'à 5x d'inférence plus rapide grâce à ce mécanisme — un chiffre d'annonce du projet sur son propre banc de test de l'époque, pas une mesure indépendante récente sur votre matériel.

Ce gain profite surtout aux scénarios à préfixes partagés : plusieurs utilisateurs interrogeant le même system prompt, un agent qui relit le même contexte à chaque tour, ou du few-shot avec les mêmes exemples. Un flux de requêtes sans aucun préfixe commun (questions totalement indépendantes, sans historique) profite beaucoup moins de RadixAttention.

→
Gradient de surprise
Le gain de RadixAttention dépend directement de la proportion de tokens de préfixe partagés entre requêtes. Un déploiement où chaque utilisateur a son propre system prompt long et différent perd une grande partie de l'intérêt du cache, même si la fonctionnalité reste active.

Le runtime combine RadixAttention à un ordonnanceur CPU à zéro surcoût, une disagrégation prefill-decode, le décodage spéculatif, l'ordonnancement continu des requêtes (continuous batching) et la pagination de l'attention (paged attention) — un empilement de techniques d'optimisation plutôt qu'un mécanisme isolé.

#Régler la concurrence et la mémoire

Trois paramètres de lancement gouvernent la façon dont SGLang absorbe plusieurs utilisateurs en parallèle. --mem-fraction-static fixe la part de mémoire GPU réservée aux poids du modèle et au cache KV ; la documentation recommande de la réduire en cas d'erreur de mémoire saturée, faute de quoi elle est calculée automatiquement à partir de la mémoire GPU disponible.

Paramètres de concurrence à connaître
ParamètreRôle
--max-running-requestsNombre maximal de requêtes traitées en même temps (aucune limite par défaut)
--max-queued-requestsNombre maximal de requêtes en attente avant traitement
--schedule-policyPolitique d'ordonnancement des requêtes : fcfs (premier arrivé, premier servi) par défaut, ou lpm, random, dfs-weight, lof, priority, routing-key
--chunked-prefill-sizeDécoupage du prefill en tronçons pour éviter qu'une longue requête ne bloque les autres

Sans limite explicite sur --max-running-requests, SGLang accepte autant de requêtes que la mémoire du cache KV le permet, ce qui peut dégrader la latence par requête sous forte charge plutôt que de refuser poliment les nouvelles connexions. Fixer une limite explicite, cohérente avec la VRAM disponible, est le premier réglage à faire avant d'ouvrir le serveur à plusieurs utilisateurs réels.

#Quand choisir SGLang plutôt que vLLM ou Ollama

Les trois outils répondent à des besoins différents. Ollama vise l'usage personnel mono-utilisateur avec une prise en main minimale ; SGLang et vLLM ciblent le service à plusieurs utilisateurs sur GPU serveur, avec des philosophies proches (cache de préfixes, batching continu) mais des historiques et des écosystèmes distincts.

Un seul utilisateur, poste personnel
Ollama ou llama.cpp restent plus simples à installer et à faire tourner sur CPU ou GPU grand public, sans configuration de service réseau.
Plusieurs utilisateurs, système déjà construit autour de vLLM
Rester sur vLLM évite une migration ; notre guide dédié couvre son déploiement en production.
Plusieurs utilisateurs, priorité au débit sous préfixes partagés
SGLang, avec RadixAttention, est le candidat naturel — à condition de disposer d'un GPU CUDA compatible.
Compatibilité client Ollama souhaitée sans installer Ollama
SGLang expose une API compatible avec la CLI et la librairie Python Ollama, ce qui permet de réutiliser des scripts existants sans faire tourner le serveur Ollama lui-même.

Pour un panorama plus large des architectures d'inférence (llama.cpp, vLLM, Exllama), le comparatif de backends du site détaille les compromis hors du seul cas SGLang.

#Ce que le matériel impose

Le guide de démarrage rapide de SGLang est explicite : un GPU NVIDIA avec support CUDA sm80 ou supérieur (A10, A100, L4, L40S, H100) est un prérequis pour la voie d'installation standard sous Linux, la plateforme recommandée. Le projet annonce par ailleurs une prise en charge matérielle plus large — GPU AMD (MI355, MI300), CPU Intel Xeon, TPU Google, NPU Ascend — via des voies d'installation dédiées et distinctes du chemin GPU NVIDIA principal.

!
Pas un outil CPU-only par défaut
Contrairement à llama.cpp ou Ollama, SGLang n'est pas pensé en priorité pour tourner sans GPU dédié. Sur un Mac ou un PC sans carte NVIDIA récente, Ollama ou LM Studio restent les choix par défaut ; SGLang prend tout son sens sur un serveur GPU dédié à plusieurs utilisateurs.

#Limites et points de vigilance

Le chiffre « jusqu'à 5x plus rapide » qui accompagne encore la présentation de RadixAttention date de l'annonce initiale du projet en janvier 2024 : il illustre l'apport du mécanisme sur le banc de test de l'époque, pas un gain garanti sur un déploiement récent avec des modèles et des GPU différents. Le dimensionnement réel dépend du taux de partage de préfixes entre requêtes, du modèle choisi et du GPU utilisé — à mesurer sur son propre trafic plutôt qu'à déduire de l'annonce d'origine.

Le passage forcé à CUDA 13 depuis la version 0.5.19 mérite une vérification du pilote GPU et de la version CUDA installée avant toute mise à jour vers une version récente, sous peine d'échec d'installation sur un serveur resté en CUDA 12.

Le cadence de publication du projet est également à surveiller pour un déploiement de production : SGLang enchaîne des versions mineures toutes les deux à trois semaines environ (v0.5.20 le 18 septembre 2026, v0.5.19 le 5 septembre, v0.5.18 le 22 août), ce qui impose de figer une version précise dans les images Docker plutôt que de suivre le tag latest sur un service en production, au risque d'un changement de comportement non anticipé lors d'un redéploiement.

Questions fréquentes
SGLang remplace-t-il Ollama ?+
Non, ce sont deux outils différents. Ollama cible l'usage personnel mono-utilisateur sur poste de travail ; SGLang cible le service à plusieurs utilisateurs simultanés sur GPU serveur. SGLang expose même une API compatible avec le client Ollama, sans qu'Ollama tourne réellement derrière.
Faut-il un GPU pour faire tourner SGLang ?+
Le guide de démarrage rapide officiel exige un GPU NVIDIA avec support CUDA sm80 ou supérieur pour la voie standard sous Linux. Des voies distinctes existent pour AMD, Intel Xeon, TPU ou NPU, mais SGLang n'est pas conçu en priorité pour un usage CPU-only sur un poste personnel.
RadixAttention accélère-t-il toutes les requêtes de la même façon ?+
Non. Le gain dépend du volume de tokens de préfixe partagés entre requêtes : un system prompt commun ou un historique de conversation réutilisé en profitent beaucoup ; des requêtes totalement indépendantes, sans aucun préfixe commun, en profitent beaucoup moins.
Quel paramètre régler en premier pour servir plusieurs utilisateurs avec SGLang ?+
--max-running-requests, pour fixer une limite explicite cohérente avec la VRAM disponible. Sans cette limite, SGLang accepte des requêtes tant que le cache KV le permet, ce qui peut dégrader la latence par requête sous forte charge plutôt que de refuser poliment les connexions supplémentaires.
SGLang fonctionne-t-il avec un GPU plus ancien limité à CUDA 12 ?+
Pas avec les versions récentes. SGLang exige CUDA 13 depuis la 0.5.19, dernière version à proposer encore une voie CUDA 12 ; un serveur resté en CUDA 12 doit rester sur cette version ou mettre à jour son pilote avant d'installer une version plus récente.

Ce guide vous a aidé ?

Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.