Chiosa
AI & Agents

Des chemins GPU distincts accélèrent invites et jetons

2 min
Publié sur Chiosa Mis à jour

En termes simples

FuTransformer est un logiciel qui exécute un Transformer de type Llama sur des GPU NVIDIA Hopper. Il utilise un ensemble d’opérations pour traiter une invite et un autre pour générer les jetons un par un, car ces deux tâches lisent et réutilisent les données différemment.

Dans les tests réalisés sur un seul H100, le chemin de traitement des invites était plus rapide que PyTorch compilé dans la plupart des cas testés avec une taille de lot de un, mais pas dans tous. Sur un modèle de langage, l’utilisation de poids plus compacts pour le decode a aussi augmenté la perte de prédiction de texte du modèle.

La recherche

Comment traiter efficacement une longue invite avec un Transformer, puis générer un jeton à la fois, alors que ces deux phases passent leur temps à lire et réutiliser les données de façons différentes ?

La réponse compte pour la conception des noyaux d’inférence, mais les comparaisons de vitesse ne suffisent pas à montrer le coût que la génération à faible précision peut avoir sur la qualité du modèle.

FuTransformer fournit des chemins GPU Hopper distincts pour le traitement des invites et la génération d’un jeton, avec des opérations FP8 fusionnées pour les invites et des données INT4 compactées pour la génération.

L’article cherche à accélérer l’inférence des Transformers lorsque le traitement d’une invite et la génération d’un jeton à la fois sont limités par des déplacements de données différents. FuTransformer est une implémentation pour GPU Hopper qui prévoit un chemin pour chaque phase : elle regroupe des opérations de prefill et organise les poids de decode et les valeurs du cache dans des formats adaptés au calcul.

Sur un seul H100, selon les configurations testées, le chemin de prefill avec une taille de lot de un atteignait de 0,92x à 1,48x la vitesse de PyTorch compilé, avec des règles différentes de mise à l’échelle des activations.

En decode, le bloc INT4 dépassait le plus rapide de deux blocs PyTorch à chaque point testé, même si la précision et le format du cache différaient. Sur Llama-3.1-8B, l’INT4 augmentait aussi la perplexité sur WikiText-2, ce qui révèle un coût mesurable en qualité.

Ces résultats proviennent de tests limités à un seul H100 et à certaines couches et certains modèles. Ils ne permettent pas d’établir les performances d’un service complet, celles d’autres générations de GPU ni la qualité sur d’autres modèles et tâches.

Analyse

Détails

Article suivantRoleQ adapte les échelles des poids ternaires au rôle des unités