Accélérer les workflows LLM avec SGLang sur Novita AI

Accélérer les workflows LLM avec SGLang sur Novita AI

Points clés

Exécution efficace : SGLang combine un langage frontal co-conçu avec un runtime backend optimisé, proposant des innovations comme RadixAttention pour la réutilisation du cache KV et des automates finis compressés pour un décodage structuré plus rapide.

Amélioration des performances : Les benchmarks montrent que SGLang atteint régulièrement le débit le plus élevé (1,0) et la latence la plus faible (~0,2) sur toutes les tâches.

Efficacité mémoire : Des techniques comme l’attention paginée et la quantification du cache KV réduisent l’utilisation de la mémoire, améliorant l’utilisation des ressources pour les longues séquences et les workflows complexes.

Conviviale pour les développeurs : Intégré en Python, SGLang offre des primitives pour la génération, le parallélisme et la gestion de données multimodales, simplifiant la programmation avancée des LLM.

Intégration flexible : Idéal pour des tâches comme le prompting avancé, le contrôle de flux et les E/S structurées, SGLang fluidifie les workflows LLM tout en maximisant l’efficacité.

Déploiement à haute vitesse : Pour des performances optimales, déployez SGLang dans un environnement à haute vitesse en utilisant les Instances GPU Novita AI, avec des GPU comme le NVIDIA A100 SXM et le RTX 4090.

Les grands modèles de langage sont de plus en plus utilisés pour des tâches complexes impliquant plusieurs appels de génération, un prompting avancé, un contrôle de flux et des entrées/sorties structurées. Cependant, les systèmes existants pour programmer et exécuter de telles applications manquent souvent d’efficacité. SGLang cherche à surmonter ces limitations en offrant une solution rationalisée, avec un langage frontal pour une programmation simplifiée et un runtime optimisé pour une exécution accélérée.

Défis liés au service des LLM

  • Empreinte mémoire élevée : Les moteurs d’inférence de pointe peuvent entraîner des inefficacités importantes dans l’utilisation de la mémoire, en particulier avec le cache Key-Value (KV)21 . Le cache KV, qui stocke des tenseurs intermédiaires réutilisables, n’est souvent pas réutilisé efficacement entre plusieurs appels LLM partageant des préfixes communs, ce qui gaspille de la mémoire21 .
  • Débit limité : Les systèmes existants traitent souvent un jeton à la fois lors du décodage contraint pour des sorties structurées, même lorsque plusieurs jetons pourraient être décodés ensemble, ce qui conduit à des vitesses sous-optimales21 ….
  • Coût computationnel : Des calculs redondants surviennent en raison du manque de réutilisation du cache KV entre différents appels LLM avec des préfixes communs21 ….

Comprendre SGLang et son importance

Qu’est-ce que SGLang ?

Architecture de SGLang : Le langage frontal offre des primitives pour la génération (par ex. extend, gen, select) et le contrôle du parallélisme (par ex. fork, join), permettant aux utilisateurs de créer des workflows de prompting avancés de manière transparente dans la syntaxe Python native. Le runtime améliore l’efficacité de l’exécution grâce à des optimisations innovantes, notamment RadixAttention pour la réutilisation du cache KV et des automates finis compressés pour un décodage de sorties structurées plus rapide. Ces deux composants peuvent fonctionner en collaboration ou indépendamment, selon le cas d’usage.

Technologies principales derrière SGLang

Gestion du cache KV : Une innovation centrale de SGLang est RadixAttention, qui permet une réutilisation automatique et systématique du cache KV pendant l’exécution. En organisant le cache KV dans un arbre radix, il prend en charge la recherche efficace de préfixes, la réutilisation, l’insertion et l’éviction. Cette approche minimise les calculs redondants et l’utilisation de la mémoire en permettant aux requêtes partageant des préfixes de prompt communs de réutiliser le cache KV. De plus, une politique d’ordonnancement sensible au cache privilégie les requêtes avec des préfixes correspondants plus longs, ce qui améliore significativement le taux de succès du cache.

cache kv

D’après ARXIV

Algorithme d’attention et Attention Paginée : SGLang intègre des optimisations avancées telles que l’attention paginée, qui réduit l’utilisation de la mémoire en gérant le cache KV dans des pages mémoire non contiguës. Alors que RadixAttention se concentre sur la maximisation de la réutilisation du cache KV entre plusieurs appels, l’attention paginée optimise l’efficacité mémoire au sein des appels individuels, en particulier pour le traitement de séquences plus longues.

algorithme d’attention

D’après ARXIV

Un moyen à haute vitesse pour améliorer l’efficacité d’exécution de SGLang

L’instance GPU Novita AI est une solution cloud qui excelle dans la fourniture d’une puissance de calcul haute performance. Elle propose des GPU de pointe comme le NVIDIA A100 SXM et le RTX 4090, ce qui en fait un choix idéal pour les tâches exigeantes.

Ce service est particulièrement avantageux pour les utilisateurs de PyTorch, offrant la puissance de calcul immense des GPU sans nécessiter d’investissement initial dans du matériel local. C’est un moyen fluide d’améliorer votre workflow et d’obtenir de meilleures performances avec SGLang ou d’autres applications intensives en GPU.

Comment débuter avec l’instance GPU Novita AI

Étape 1 : Créer un compte

Créez votre compte Novita AI via notre site web. Après l’inscription, allez dans l’onglet « GPUs » pour voir les ressources disponibles et commencer votre parcours.

capture d’écran du site Novita AI

Essayez les GPU haute performance de Novita AI

Étape 2 : Explorer les modèles et les serveurs GPU****

Choisissez parmi des modèles comme PyTorch, TensorFlow ou CUDA qui correspondent aux besoins de votre projet. Sélectionnez ensuite votre configuration GPU préférée – les options incluent le puissant RTX 4090 ou le RTX 6000 Ada, chacun avec des spécifications différentes de VRAM, RAM et stockage.

choisir un modèle

Étape 3 : Personnaliser votre déploiement

Affinez votre déploiement en ajustant des paramètres tels que la version du système d’exploitation et d’autres configurations pour optimiser votre environnement en fonction de vos besoins de charge de travail spécifiques.

capture d’écran du site Novita AI utilisant le cloud GPU

Étape 4 : Lancer une instance**

Cliquez sur « Launch Instance » pour déployer votre environnement configuré. En quelques minutes, vous aurez accès à des ressources GPU haute performance prêtes pour vos tâches de machine learning, de rendu ou de calcul.

capture d’écran du site Novita AI utilisant le cloud GPU

Conclusion

SGLang marque une avancée majeure dans l’exécution efficace de programmes complexes de modèles de langage. En combinant un langage frontal co-conçu avec un runtime backend hautement optimisé, il exploite des techniques innovantes telles que RadixAttention et les automates finis compressés pour obtenir des améliorations significatives à la fois en débit et en latence par rapport aux systèmes d’inférence existants. Grâce à sa flexibilité, son support étendu de modèles et son intégration conviviale pour les développeurs, SGLang s’impose comme un outil précieux pour construire et déployer des applications LLM avancées, rationalisant les workflows et maximisant les performances.

Qu’est-ce que SGLang ?

SGLang (Structured Generation Language) est un langage de programmation et un runtime conçus pour exécuter efficacement des programmes qui interagissent avec les grands modèles de langage (LLM).

Quelle est la première étape pour déployer SGLang ?

La toute première étape pour installer et exécuter SGLang est de déployer un environnement à haute vitesse. Voici une excellente façon — essayez l’instance GPU Novita AI !

Novita AI est la plateforme cloud tout-en-un qui propulse vos ambitions en IA. API intégrées, serverless, instance GPU — les outils rentables dont vous avez besoin. Éliminez l’infrastructure, commencez gratuitement et réalisez votre vision de l’IA.

Lecture recommandée

  1. Libérez la puissance du GPU Nvidia L40
  2. Qu’est-ce que le GPU en location-vente ? - Un guide utile