- GPT-OSS-120B, le LLM open source d'OpenAI, a été optimisé pour fonctionner avec une performance de plus de 500 tokens traités par seconde dans un environnement GPU NVIDIA.
- Des frameworks d'inférence variés tels que TensorRT-LLM, vLLM et SGLang ont été testés en parallèle, avec prise en charge des architectures Hopper et Blackwell.
- Les correctifs de compatibilité ont été appliqués, avec intégration de nouveaux formats de réponse comme Harmony, KV cache-aware routing et décodage spéculatif basé sur Eagle.
- Après avoir comparé Tensor Parallelism et Expert Parallelism, Baseten a retenu la tensor parallelism pour une plus faible latence et utilise le backend TensorRT-LLM MoE sur Blackwell.
- Des optimisations supplémentaires sont prévues, notamment l’introduction du decoding spéculatif (Speculative Decoding) utilisant de petits modèles de « draft » pour améliorer encore les performances.
Aperçu
- À la sortie du dernier LLM open source d’OpenAI, GPT-OSS-120B, Baseten a visé une performance de pointe.
- Baseten est le partenaire de lancement officiel d’OpenAI.
- Les données utilisateur réelles publiées sur OpenRouter ont démontré une performance supérieure aux solutions tierces dans un environnement basé sur les GPU NVIDIA.
- Grâce au Flexible Inference Stack et à l’expertise de l’équipe d’ingénierie modèle, des patches d’optimisation ont été appliqués rapidement heure par heure.
- En l’espace de quelques heures d’écriture de l’article, l’augmentation a atteint 100 tokens/s supplémentaires tout en maintenant un uptime de 100 %.
Efforts d’optimisation des performances
- Des tests et benchmarks ont été menés sur divers frameworks d’inférence, dont TensorRT-LLM, vLLM et SGLang.
- Le support de compatibilité avec les architectures GPU Hopper et Blackwell a été assuré en parallèle.
- Baseten a intégré des composants clés comme le Flexible Inference Stack et NVIDIA Dynamo.
- Des techniques d’optimisation éprouvées ont été déployées, dont le KV cache-aware routing et le Speculative decoding (basé sur Eagle).
Voici les étapes clés pour atteindre simultanément des performances SOTA et la prise en charge d’une fenêtre de contexte complète.
Étape 1 : Exécution de l’inférence initiale
- Le point de départ est de lancer rapidement l’inférence initiale (baseline inference) quelle que soit la méthode.
- Plusieurs ingénieurs ont mené en parallèle des expériences sur vLLM, SGLang et TensorRT-LLM.
- TensorRT-LLM, qui affichait les meilleures performances, a été démarré rapidement avec succès.
- La prise en charge de TensorRT-LLM a été obtenue sur Hopper (qui compte le plus grand nombre de GPU H100) et sur Blackwell (où les B200 sont plus rapides).
- Grâce à la flexibilité du Baseten Inference Runtime, l’adaptation à de nouvelles architectures de modèle et le remplacement rapide d’outils dans la stack étaient facilités.
Étape 2 : Correction des bugs de compatibilité
- L’apparition de nouvelles architectures de modèle s’accompagne souvent de bugs fréquents lors de l’intégration aux frameworks.
- GPT OSS a introduit de nouvelles technologies, comme le nouveau format de réponse Harmony, qui ont provoqué des bugs lors de l’intégration avec les frameworks existants.
- Pour garantir vitesse et précision, des cycles répétés de correction et de tests ont été menés, et les correctifs efficaces ont été partagés en open source.
- La collaboration au sein de la communauté open source mondiale permet d’effectuer rapidement diverses optimisations et corrections de bugs.
Étape 3 : Optimisation de la composition du modèle
- OpenAI précise que GPT OSS 120B fonctionne sur une seule H100, mais dans la pratique une parallélisation sur 4 à 8 GPU est plus favorable aux performances.
- La Tensor Parallelism excelle sur la latence, tandis que l’Expert Parallelism excelle sur le throughput système.
- L’objectif de Baseten étant l’optimisation de la latence, elle a choisi la Tensor Parallelism.
- Sur Blackwell, l’adoption du TensorRT-LLM MoE Backend améliore les performances du noyau CUDA par rapport à l’ancien backend Triton.
- Des réglages optimisés pour chaque environnement Hopper et Blackwell ont été publiés, et le Model API a retenu une configuration basée sur Blackwell.
Optimisation des performances additionnelle
- La première phase d’optimisation a déjà permis d’atteindre des niveaux SOTA en throughput et latence, mais il reste une marge de progression.
- Les prochaines mises à jour prévues incluent l’introduction du Speculative Decoding :
- Cette méthode génère des tokens prédictifs avec un modèle « draft » plus rapide, puis le modèle principal les vérifie.
- Baseten recommande Eagle 3, mais exploite de manière flexible plus de 10 algorithmes différents selon les cas d’usage au sein de sa stack d’inférence.
- Le speculative decoding permet d’effectuer l’inférence de plusieurs tokens en une seule fois pour une amélioration de vitesse efficace
2 commentaires
J’aimerais bien qu’on me donne aussi un petit et mignon H100.
Avis sur Hacker News
J’ai lu ça et j’ai fouillé le tiroir des composants chez moi, mais même en cherchant partout je ne trouvais pas pourquoi il n’y a pas de GPU H100 à 25 000 $.
J’ai testé GPT-OSS-120B sur un MacBook Pro (M4, 128 Go de RAM) pendant un vol transatlantique.
Il est rapide seulement quand la fenêtre de contexte est petite et que le nombre total de tokens reste bas. Dès qu’on dépasse 10 000 tokens, presque tout prend du temps et part dans une file d’attente.
Les MCPs, la recherche web, le patch d’URL, etc., sont déjà devenus très importants dans l’expérience d’utilisation d’un LLM. Sans ces fonctionnalités, l’utilité d’un LLM diminue beaucoup.
Les outils de coding CLI/TUI préconfigurés pour le offline (opencode, etc.) ne fonctionnaient pas de manière fiable avec le modèle.
Une autre particularité des modèles OSS, en plus de ce qui a déjà beaucoup été mentionné dans les commentaires précédents, c’est aussi ceci :
Plusieurs ingénieurs ont testé vLLM, SGLang et TensorRT-LLM en parallèle. On dit que TensorRT-LLM est le plus rapide, mais c’est en général le plus difficile à configurer, il intègre mal les architectures récentes, et il faut compiler le modèle directement avec la même stack hardware-driver-librairie qu’en production, ce qui est vraiment fastidieux. Le multimodal était quasiment impossible pendant un moment, même les principaux modèles multimodaux de Llama ne marchaient pas correctement. Je me demande si ça vaut vraiment le coup. Par exemple, avec GPT-OSS-120B sur H100 via vLLM, ça tourne sans souci avec un rythme stable de 130 à 140 t/s. Quand on lit le titre, on peut penser qu’on atteint 500 t/s sur un seul GPU, mais en réalité c’est du tensor parallel. Le fait d’emballer séparément TRT-LLM pour gpt-oss est aussi un peu drôle. TRT-LLM est déjà un outil assez déroutant en soi.
GPT-OSS 20B est vraiment simple à installer. Grâce à Llama, je l’ai fait tourner sur mon Mac en 5 minutes.
J’ai appris en lisant que, pour que le modèle fonctionne correctement, il faut en réalité d’énormes travaux de prétraitement et de tuning. Je pensais naïvement que les réglages par défaut suffisaient.
Dans le AI Action Plan des États-Unis, “encourager l’open source et les IA open-weight” arrive juste après “protéger la liberté d’expression et les valeurs américaines”. Ce n’est pas très logique, mais lire les modèles OSS d’OpenAI à ce stade est un peu glaçant. Cela dit, c’est agréable de voir les équipes OSS parler du hardware ; la barrière d’entrée pour la plupart des développeurs, c’est le matériel, donc c’est bienvenu d’avoir ces discussions.
Je me demande s’il existe un site qui indique clairement quel modèle LLM fonctionne bien selon l’OS et le GPU. La formule empirique la plus fiable pour estimer la VRAM était : paramètres × (precision/8) × 1,2 (référence)
Je veux souligner qu’il est surprenant de ne pas trouver facilement des chiffres précis sur la taille effective des buffers d’un modèle GPT-OSS-120B. Si c’était un langage à type statique, on pourrait estimer la taille des tableaux d’un coup d’œil ; j’aimerais mieux comprendre comment les données réelles (hors poids) circulent et quelle est l’ampleur du flux de sortie. Je me demandais jusqu’à quel débit maximal de “sortie de tokens” en t/s on peut aller en Gigabit Ethernet, et j’ai cherché dans le dépôt GitHub gpt-oss mais je ne trouve pas facilement.
GPT-OSS est plus rapide sur les puces Blackwell avec le support fp4. Je suis en train de développer des moteurs d’entraînement et d’inférence en Rust en ajoutant la prise en charge fp8 et fp4 dans cudarc et candle. Je suis en train de travailler là-dessus pour les supporter dans le moteur Mixlayer (PR cudarc, PR candle, Mixlayer).