For the complete documentation index, see llms.txt. This page is also available as Markdown.

Guide de déploiement et d'inférence SGLang

Guide pour enregistrer et déployer des LLM sur SGLang afin de servir des LLM en production

Vous pouvez servir n'importe quel LLM ou modèle affiné via SGLang pour une inférence à faible latence et à haut débit. SGLang prend en charge l'inférence de modèles texte, image/vidéo sur n'importe quelle configuration GPU, avec prise en charge de certains GGUF.

💻Installation de SGLang

Pour installer SGLang et Unsloth sur des GPU NVIDIA, vous pouvez utiliser ce qui suit dans un environnement virtuel (ce qui n'affectera pas vos autres bibliothèques Python)

# OPTIONNEL : utilisez un environnement virtuel
python -m venv unsloth_env
source unsloth_env/bin/activate

# Installez Rust, outlines-core puis SGLang
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env && sudo apt-get install -y pkg-config libssl-dev
pip install --upgrade pip && pip install uv
uv pip install "sglang" && uv pip install unsloth

Pour Docker configurations exécutées :

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 unsloth/Llama-3.1-8B-Instruct --host 0.0.0.0 --port 30000

🐛Débogage des problèmes d'installation de SGLang

Note : si vous voyez ce qui suit, mettez à jour Rust et outlines-core comme indiqué dans SGLang

Si vous voyez un problème Flashinfer comme ci-dessous :

Supprimez le cache flashinfer via rm -rf .cache/flashinfer et aussi le répertoire indiqué dans le message d'erreur, par ex. rm -rf ~/.cache/flashinfer

🚚Déploiement des modèles SGLang

Pour déployer n'importe quel modèle comme par exemple unsloth/Llama-3.2-1B-Instruct, faites ce qui suit dans un terminal séparé (sinon cela bloquera votre terminal actuel - vous pouvez aussi utiliser tmux) :

Vous pouvez ensuite utiliser la bibliothèque OpenAI Chat completions pour appeler le modèle (dans un autre terminal ou en utilisant tmux) :

Et vous obtiendrez 2 + 2 = 4.

🦥Déploiement des finetunes Unsloth dans SGLang

Après le fine-tuning Fine-tuning Guide ou en utilisant nos notebooks à Notebooks Unsloth, vous pouvez sauvegarder ou déployer vos modèles directement via SGLang dans un flux de travail unique. Un exemple de script de finetuning Unsloth par ex. :

Pour sauvegarder en 16 bits pour SGLang, utilisez :

Pour sauvegarder seulement les adaptateurs LoRA, utilisez soit :

Ou utilisez simplement notre fonction intégrée pour le faire :

🚃gpt-oss-20b : Guide de déploiement Unsloth & SGLang

Ci-dessous un tutoriel étape par étape avec des instructions pour entraîner le gpt-oss-20b en utilisant Unsloth et le déployer avec SGLang. Il inclut des benchmarks de performance pour plusieurs formats de quantification.

1

Finetuning Unsloth et formats d'exportation

Si vous débutez en fine-tuning, vous pouvez lire notre guide, ou essayer le notebook de finetuning gpt-oss 20B à gpt-oss Après l'entraînement, vous pouvez exporter le modèle dans plusieurs formats :

2

Déploiement avec SGLang

Nous avons sauvegardé notre finetune gpt-oss dans le dossier "finetuned_model", et donc dans un nouveau terminal, nous pouvons lancer le modèle finetuné comme point de terminaison d'inférence avec SGLang :

Vous pourriez devoir attendre un peu sur Capturing batches (bs=1 avail_mem=20.84 GB) : !

3

Appel du point de terminaison d'inférence :

Pour appeler le point de terminaison d'inférence, lancez d'abord un nouveau terminal. Nous pouvons alors appeler le modèle comme ci-dessous :

💎Quantification FP8 en ligne

Pour déployer des modèles avec quantification FP8 en ligne qui permet 30 à 50 % de débit en plus et 50 % de mémoire en moins avec un support de contexte deux fois plus long dans SGLang, vous pouvez faire ce qui suit :

Vous pouvez également utiliser --kv-cache-dtype fp8_e5m2 qui a une plage dynamique plus grande qui pourrait résoudre des problèmes d'inférence FP8 si vous en rencontrez. Ou utilisez nos quants float8 pré-quantifiés listés dans https://huggingface.co/unsloth/models?search=-fp8 ou certains sont listés ci-dessous :

⚡Benchmarking SGLang

Voici du code que vous pouvez exécuter pour tester la vitesse de performance de votre modèle finetuné :

Puis dans un autre terminal ou via tmux :

Vous verrez le benchmark s'exécuter comme ci-dessous :

Nous avons utilisé un GPU B200x1 avec gpt-oss-20b et obtenu les résultats ci-dessous (~2 500 tokens de débit)

Batch/Entrée/Sortie
TTFT (s)
ITL (s)
Débit d'entrée
Débit de sortie

8/1024/1024

0.40

3.59

20,718.95

2,562.87

8/8192/1024

0.42

3.74

154,459.01

2,473.84

Voir https://docs.sglang.ai/advanced_features/server_arguments.html pour les arguments du serveur pour SGLang.

🏃Mode interactif hors ligne SGLang

Vous pouvez aussi utiliser SGLang en mode hors ligne (c.-à-d. pas un serveur) dans un environnement interactif Python.

🎇GGUFs dans SGLang

SGLang prend aussi, de manière intéressante, en charge les GGUF ! Qwen3 MoE est encore en construction, mais la plupart des modèles denses (Llama 3, Qwen 3, Mistral, etc.) sont pris en charge.

Installez d'abord le dernier paquet gguf python via :

Ensuite, par exemple en mode hors ligne SGLang, vous pouvez faire :

🎬Service GGUF à haut débit avec SGLang

Téléchargez d'abord le fichier GGUF spécifique comme ci-dessous :

Puis servez le fichier spécifique Qwen3-32B-UD-Q4_K_XL.gguf et utilisez --served-model-name unsloth/Qwen3-32B et nous avons aussi besoin du tokenizer compatible HuggingFace via --tokenizer-path

Mis à jour

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