SGLang

Déployer SGLang pour un service LLM haute performance avec RadixAttention sur les GPU Clore.ai

SGLang (Structured Generation Language) est un cadre de service LLM haute performance développé par l'équipe LMSYS, connue pour leurs travaux sur Vicuna et Chatbot Arena. Il intègre RadixAttention pour le partage du cache KV, prend en charge efficacement MoE (Mixture of Experts) et propose une API compatible OpenAI — ce qui en fait l'un des moteurs d'inférence open-source les plus rapides disponibles sur les serveurs GPU de CLORE.AI.

circle-check

Exigences du serveur

Paramètre
Minimum
Recommandé

RAM

16 Go

32 Go+

VRAM

8 Go

24 Go+

Disque

50 Go

200 Go+

GPU

NVIDIA Turing+ (RTX 2000+)

A100, H100, RTX 4090

circle-info

SGLang obtient ses meilleures performances sur les GPU Ampere+ avec FlashInfer activé. Pour les modèles MoE comme Mixtral ou DeepSeek, des configurations multi-GPU sont recommandées.

Déploiement rapide sur CLORE.AI

Image Docker : lmsysorg/sglang:latest

Ports : 22/tcp, 30000/http

Variables d'environnement :

Variable
Exemple
Description

HF_TOKEN

hf_xxx...

Jeton HuggingFace pour les modèles protégés

CUDA_VISIBLE_DEVICES

0,1

GPUs à utiliser

Configuration étape par étape

1. Louez un serveur GPU sur CLORE.AI

Visitez CLORE.AI Marketplacearrow-up-right et sélectionnez un serveur :

  • Modèles 7B: minimum 16 Go de VRAM (RTX 4080, A10)

  • Modèles 13B: 24 Go de VRAM (RTX 3090, RTX 4090, A5000)

  • Modèles 70B: 80 Go+ de VRAM (A100 80GB) ou multi-GPU

  • Modèles MoE (Mixtral 8x7B): 48 Go de VRAM ou 2× 24 Go

2. SSH sur votre serveur

3. Récupérez l'image Docker SGLang

4. Lancez le serveur SGLang

Lancement basique (Llama 3.1 8B) :

Avec le jeton HuggingFace :

Qwen2.5 72B sur multi-GPU :

DeepSeek-V2 (modèle MoE) :

5. Vérifiez la santé du serveur

6. Accès externe via le proxy CLORE.AI

Votre tableau de bord CLORE.AI fournit un http_pub URL pour le port 30000 :

Utilisez cette URL comme URL de base dans tout client compatible OpenAI.


Exemples d'utilisation

Exemple 1 : Chat Completions compatibles OpenAI

Exemple 2 : Réponse en streaming

Exemple 3 : Client Python OpenAI

Exemple 4 : Inférence par lot avec l'API native SGLang

L'API native de SGLang offre un contrôle supplémentaire :

Exemple 5 : Sortie JSON contrainte

SGLang prend en charge la génération de sorties structurées :


Configuration

Principaux paramètres de lancement

Paramètre
Par défaut
Description

--model-path

requis

ID du modèle HuggingFace ou chemin local

--host

127.0.0.1

Hôte de liaison (utiliser 0.0.0.0 pour l'externe)

--port

30000

Port du serveur

--tp

1

Degré de parallélisme tensoriel (nombre de GPUs)

--dp

1

Degré de parallélisme de données

--dtype

auto

float16, bfloat16, float32

--mem-fraction-static

0.88

Fraction de la VRAM pour le cache KV

--max-prefill-tokens

auto

Nombre maximal de tokens dans une étape de pré-remplissage

--context-length

max du modèle

Remplacer la longueur de contexte maximale

--trust-remote-code

false

Autoriser le code personnalisé du modèle

--quantization

aucune

awq, gptq, fp8

--load-format

auto

auto, pt, safetensors

--tokenizer-path

identique au modèle

Chemin du tokenizer personnalisé

Options de quantification

AWQ (recommandé pour la vitesse) :

FP8 (pour H100/A100) :


Conseils de performance

1. RadixAttention — L'avantage clé

La RadixAttention de SGLang réutilise automatiquement le cache KV pour les préfixes d'invite partagés. Cela est particulièrement puissant pour :

  • Chatbots avec de longues instructions système

  • Applications RAG avec contexte répété

  • Appels d'API en lot partageant le même préfixe

Aucune configuration supplémentaire nécessaire — c'est toujours activé.

2. Augmenter la taille du cache KV

Faites attention à ne pas trop augmenter — laissez de la place pour les poids du modèle.

3. Pré-remplissage en morceaux pour les contextes longs

4. Activer le backend FlashInfer

SGLang utilise automatiquement FlashInfer lorsqu'il est disponible (GPU Ampere+) :

5. Parallélisme tensoriel multi-GPU

Pour les modèles qui ne tiennent pas sur un seul GPU :

Chaque GPU doit avoir suffisamment de VRAM pour une portion (shard) du modèle.

6. Ajuster pour le débit vs la latence

Faible latence (utilisateur unique) :

Haut débit (plusieurs utilisateurs) :


Dépannage

Problème : "torch.cuda.OutOfMemoryError"

Solution : Réduire la fraction de mémoire ou utiliser la quantification :

Problème : Le serveur ne démarre pas (bloqué au chargement)

Problème : "trust_remote_code required"

Ajouter --trust-remote-code à la commande de lancement pour les modèles avec architectures personnalisées (DeepSeek, Falcon, etc.).

Problème : Génération lente sur les modèles MoE

Les modèles MoE (Mixtral, DeepSeek) sont limités par la bande passante mémoire. Assurez-vous d'utiliser :

Problème : Erreurs de longueur de contexte

Problème : Le port 30000 n'est pas accessible

Vérifiez que le port est exposé dans la configuration de votre commande CLORE.AI. Consultez l'URL http_pub dans le tableau de bord de votre commande, pas localhost.


Liens


Recommandations GPU Clore.ai

Cas d'utilisation
GPU recommandé
Coût estimé sur Clore.ai

Développement/Test

RTX 3090 (24GB)

~0,12 $/GPU/heure

Production (7B–13B)

RTX 4090 (24GB)

~0,70 $/GPU/heure

Grands modèles (70B+)

A100 80GB / H100

~1,20 $/GPU/heure

💡 Tous les exemples de ce guide peuvent être déployés sur Clore.aiarrow-up-right serveurs GPU. Parcourez les GPU disponibles et louez à l'heure — sans engagement, accès root complet.

Mis à jour

Ce contenu vous a-t-il été utile ?