> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tokios.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Tokios exposes private local models through https://api.tokios.com using an outbound-only connector tunnel.
> Use 'connector' for the local tokios-connector process.
> Use 'deployment' for the public model name in the API model field.
> Use 'upstream model id' for the model served by Ollama, llama.cpp, vLLM, LM Studio, or another local backend.
> API keys use the prefix sk-tok-. Connector tokens use the prefix ct-tok-.

# Configuration de SGLang et quand l'utiliser

> Configurez SGLang pour les charges de travail RAG et d'agents — RadixAttention pour la mise en cache des préfixes, matrice de décision vLLM contre SGLang et drapeaux d'optimisation propres à SGLang.

SGLang est un runtime de service haute performance conçu pour le débit. Sa fonctionnalité signature, RadixAttention, utilise un cache KV en arborescence qui réutilise le calcul entre les requêtes partageant des préfixes de jetons communs. Cela fait de SGLang le meilleur choix open-source pour les charges de travail où de nombreuses requêtes portent le même prompt système, schéma d'outil ou contexte récupéré — pipelines RAG, chat multi-tours et boucles d'agents.

Ce guide couvre quand choisir SGLang plutôt que vLLM, les drapeaux de configuration importants et des commandes de lancement prêtes à l'emploi pour les configurations courantes.

> [!NOTE]
>
> Dernière vérification : 2026-10-14. Cette page reflète SGLang **v0.5.21** (sorti le 2 octobre 2026). Les noms de drapeaux et les valeurs par défaut peuvent changer entre les versions — vérifiez par rapport à votre version installée avec `python -m sglang.launch_server --help`.

## RadixAttention

Le cache KV de SGLang n'est pas une table plate — c'est un **arbre radix** indexé par séquences de jetons. Chaque préfixe qu'une requête a traité réside dans l'arbre. Lorsqu'une nouvelle requête arrive, SGLang parcourt l'arbre pour trouver le préfixe correspondant le plus long et réutilise son état KV en cache au lieu de le recalculer.

Concrètement, si 10 requêtes partagent un prompt système de 2,000 jetons, le prompt est pré-rempli une seule fois. Les 9 requêtes restantes passent directement au décodage. Au fur et à mesure que les conversations divergent, chaque branche obtient son propre nœud de cache, et les préfixes partagés à n'importe quelle profondeur sont réutilisés indépendamment.

La différence de performance est significative pour les charges de travail à préfixes lourds. À 50 requêtes concurrentes avec 80% de préfixe partagé, SGLang délivre **37% de temps au premier jeton (TTFT) en moins** par rapport à vLLM. L'avantage augmente avec le chevauchement de préfixes et diminue lorsque chaque requête est unique.

> [!TIP]
>
> RadixAttention n'est pas quelque chose que vous activez — c'est ainsi que le cache KV de SGLang fonctionne par défaut. Chaque requête en bénéficie automatiquement. Les drapeaux de configuration contrôlent la politique d'éviction, les limites de mémoire et le backend de stockage basé sur Rust.

## Quand SGLang gagne

Choisissez SGLang lorsque votre charge de travail a un **fort chevauchement de préfixes** :

* **Pipelines RAG** — le même prompt système et les mêmes morceaux récupérés apparaissent dans de nombreuses requêtes. RadixAttention met en cache le préfixe du prompt + document une fois et le réutilise pour chaque question.
* **Conversations multi-tours** — chaque tour étend le contexte précédent. L'historique complet de la conversation jusqu'au dernier tour est un préfixe partagé.
* **Boucles d'agents avec schémas d'outils** — les agents envoient les mêmes définitions d'outils, exemples few-shot et prompts d'orchestration à chaque appel. SGLang met en cache ces préfixes et ne pré-remplit que les nouveaux résultats d'outils.
* **Longs prompts système partagés** — tout déploiement où des dizaines ou des centaines d'utilisateurs partagent un grand prompt système (bots de support client, assistants de coding, Q\&A de documents).
* **Évaluation par lots** — exécuter le même modèle de prompt avec différentes substitutions de variables. Le préfixe du modèle est mis en cache ; seule la portion remplie est pré-remplie.

## Quand vLLM gagne

Choisissez vLLM lorsque votre charge de travail privilégie **la largeur à la profondeur** :

* **Prompts uniques par requête** — si chaque requête a un prompt complètement différent sans préfixe partagé, RadixAttention n'a rien à réutiliser. Le PagedAttention de vLLM gère les requêtes indépendantes tout aussi bien.
* **Support large de modèles** — vLLM ajoute le support de nouvelles architectures de modèles plus rapidement. Si vous avez besoin d'un modèle sorti la semaine dernière, vLLM le supporte probablement en premier.
* **Optimisation GPU Blackwell** — vLLM a des chemins d'optimisation dédiés pour le matériel NVIDIA Blackwell (B100/B200/GB200). Si vous déployez sur Blackwell, vLLM extrait plus de débit.
* **Décodage spéculatif EAGLE3** — L'intégration EAGLE de vLLM est plus mature. Si le décodage spéculatif est votre levier de latence principal, vLLM est le choix le plus sûr aujourd'hui.
* **Durcissement en production** — vLLM a une base de déploiement plus large et une plus longue expérience en service de production. Si la stabilité et le support communautaire importent plus que le cache de préfixes, vLLM est le choix par défaut.

## Drapeaux de configuration

Drapeaux clés spécifiques à SGLang pour `python -m sglang.launch_server` :

| Drapeau | Par défaut | Objectif |
| - | - | - |
| `--model-path` | (requis) | Identifiant de dépôt HuggingFace ou chemin local vers le modèle |
| `--port` | `30000` | Port d'écoute pour le serveur compatible OpenAI |
| `--host` | `127.0.0.1` | Adresse de liaison — gardez la boucle locale sauf si un proxy inverse précède SGLang |
| `--tp` | `1` | Parallélisme de tenseur sur les GPUs |
| `--mem-fraction-static` | `0.88` | Fraction de la mémoire GPU allouée au cache KV au démarrage. Augmentez à `0.90`-`0.92` pour les charges de travail à contexte long si vous avez de la marge. |
| `--context-length` | max du modèle | Outrepasser la longueur de contexte maximale du modèle. Définissez-la plus basse que le max du modèle pour réduire la mémoire du cache KV par requête. |
| `--chunked-prefill-size` | `-1` (auto) | Diviser les grands pré-remplissages en morceaux pour éviter de bloquer le décodage. Définissez à `2048`-`4096` pour les charges de travail mixtes avec de longues entrées. |
| `--disable-radix-cache` | `false` | Désactive RadixAttention entièrement. Vous ne voulez presque jamais cela — cela supprime l'avantage principal de SGLang. |
| `--enable-metrics` | `false` | Expose les métriques Prometheus à `/metrics`. Activez en production. |
| `--api-key` | (aucun) | Exiger un jeton bearer sur les requêtes vers le serveur propre de SGLang. Utile comme défense en profondeur sur la boucle locale. |

### Cache de préfixes basé sur Rust

À partir de **v0.5.21**, le backend de cache RadixAttention est implémenté en Rust et activé par défaut. Le backend Rust remplace l'implémentation Python antérieure avec une surcharge plus faible pour les recherches de cache, les insertions et l'éviction. Vous n'avez pas besoin d'un drapeau pour l'activer — c'est le chemin par défaut.

Si vous rencontrez des problèmes, vous pouvez revenir à l'implémentation Python avec `--disable-cuda-graph` et consulter les notes de version de SGLang pour le drapeau exact de retour arrière pour votre version. En pratique, le backend Rust est stable et plus rapide.

## Matrice de décision

| Charge de travail | Runtime recommandé | Pourquoi |
| - | - | - |
| RAG avec contexte répété | **SGLang** | RadixAttention met en cache le prompt système + les morceaux récupérés |
| Chat multi-tours (10+ tours) | **SGLang** | Chaque tour étend un préfixe partagé |
| Boucles d'agents avec schémas d'outils | **SGLang** | Définitions d'outils mises en cache après le premier appel |
| Long prompt système partagé | **SGLang** | Un seul pré-remplissage sert de nombreuses requêtes |
| Prompts uniques par requête | **vLLM** | Pas de bénéfice de réutilisation de préfixes ; PagedAttention est tout aussi rapide |
| Dernières architectures de modèles | **vLLM** | Adoption plus rapide des nouveaux modèles |
| GPU Blackwell (B100/B200) | **vLLM** | Chemins d'optimisation Blackwell dédiés |
| Décodage spéculatif EAGLE3 | **vLLM** | Support de décodage spéculatif plus mature |
| Évaluation par lots (même modèle) | **SGLang** | Préfixe du modèle mis en cache pour toutes les variantes |
| Mono-utilisateur, faible concurrence | L'un ou l'autre | Les deux performent bien ; choisissez selon l'habitude |

## Exemples de configurations

### Pipeline RAG avec long contexte récupéré

Servez un modèle de 70B optimisé pour le RAG, où chaque requête porte le même prompt système et de gros morceaux de documents récupérés :

```bash theme={"theme":{"light":"github-light","dark":"css-variables"}}
python -m sglang.launch_server \
  --model-path meta-llama/Llama-3.1-70B-Instruct \
  --port 30000 \
  --tp 4 \
  --mem-fraction-static 0.92 \
  --context-length 16384 \
  --chunked-prefill-size 4096 \
  --enable-metrics
```

`--mem-fraction-static 0.92` alloue plus de mémoire GPU au cache KV pour les longs contextes récupérés. `--chunked-prefill-size 4096` empêche les grands pré-remplissages de documents de bloquer les requêtes de décodage concurrentes. RadixAttention gère le reste — le prompt système et le préfixe du document sont mis en cache après la première requête.

### Agent de chat multi-tours avec schémas d'outils

Servez un modèle pour un agent qui envoie les mêmes définitions d'outils à chaque appel :

```bash theme={"theme":{"light":"github-light","dark":"css-variables"}}
python -m sglang.launch_server \
  --model-path meta-llama/Llama-3.1-8B-Instruct \
  --port 30000 \
  --tp 1 \
  --mem-fraction-static 0.90 \
  --context-length 32768 \
  --chunked-prefill-size 2048 \
  --enable-metrics
```

Le schéma d'outils de l'agent, le prompt système et les exemples few-shot sont identiques à chaque appel. RadixAttention met en cache tout ce préfixe. Seuls les nouveaux résultats d'outils et le message utilisateur à la fin de chaque tour nécessitent un nouveau pré-remplissage. Avec un contexte de 32K, les conversations multi-tours peuvent exécuter des dizaines de tours avant d'atteindre la limite.

### Évaluation par lots à haut débit

Exécutez le même modèle de prompt sur des milliers d'entrées avec un débit maximal :

```bash theme={"theme":{"light":"github-light","dark":"css-variables"}}
python -m sglang.launch_server \
  --model-path meta-llama/Llama-3.1-70B-Instruct \
  --port 30000 \
  --tp 8 \
  --mem-fraction-static 0.90 \
  --context-length 8192 \
  --chunked-prefill-size 4096 \
  --enable-metrics
```

Le modèle de prompt est pré-rempli une fois et mis en cache. Chaque requête ne pré-remplit que sa substitution de variable unique. Sur 8 GPUs avec parallélisme de tenseur, le débit par lots est dominé par le décodage — la surcharge de pré-remplissage est presque éliminée.

> [!WARNING]
>
> **Avis de sécurité — Prétraitement vidéo Qwen VL.** SGLang jusqu'à la v0.5.21 a une vulnérabilité de déni de service par épuisement mémoire dans le prétraitement vidéo Qwen VL. Une requête conçue peut déclencher une allocation mémoire illimitée lors du décodage de trames vidéo. Si vous servez des modèles Qwen VL, appliquez le correctif amont ou mettez à niveau vers une version qui inclut le correctif. Si vous ne pouvez pas mettre à niveau immédiatement, restreignez l'accès au serveur SGLang aux seuls appelants de confiance.

## API de décisions native

SGLang v0.5.21 a ajouté une **API de décisions native** qui suit le même modèle qu'Ollama et LM Studio. Cela permet aux clients de vérifier quels modèles sont disponibles, de vérifier le statut des modèles et de gérer les déploiements via une interface cohérente — utile si vous construisez des outils qui parlent à plusieurs backends locaux.

Consultez les notes de version de SGLang pour les chemins d'accès exacts des points d'accès et le format de requête/réponse, car la surface API est nouvelle et peut évoluer.

## Connectez SGLang via Tokios

Une fois que SGLang fonctionne, le connecteur Tokios l'expose aux clients distants sans ouvrir de ports entrants. Le connecteur compose vers `https://api.tokios.com` et transfère les requêtes vers le point d'accès compatible OpenAI `/v1` de SGLang sur localhost. Voir [Accès distant SGLang](/fr/guides/sglang-remote-access.md) pour la procédure complète de configuration.

> **[Accès distant SGLang](/fr/guides/sglang-remote-access.md)**
>
> Connectez SGLang via Tokios pour un accès distant authentifié.

> **[Accès distant vLLM](/fr/guides/vllm-remote-access.md)**
>
> Même schéma pour vLLM — comparez les configurations côte à côte.

> **[Décodage spéculatif](/fr/guides/speculative-decoding.md)**
>
> Accélérez le décodage avec des modèles brouillon, des n-grammes, MTP et EAGLE.

> **[Benchmarkez votre déploiement](/fr/guides/benchmark-your-deployment.md)**
>
> Mesurez le TTFT, le débit et la latence entre les configurations.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.