Les « pauvres en GPU » sont sur le point de faire leurs adieux à leur situation difficile ! NVIDIA vient de publier un logiciel open source TensorRT-LLM, qui peut accélérer le raisonnement de grands modèles de langage sur le H100. Alors, combien de fois peut-il être amélioré ? Après l'ajout de TensorRT-LLM et de sa série de fonctions d'optimisation (y compris le traitement par lots en vol), le débit total du modèle a été multiplié par 8.
Visitez la page d'achat :
Jingdong NVIDIA series Column product résumé
TAGPH 17
Comparaison des GPT-J-6BA100 et H100 avec et sans TensorRT-LLM
De plus, en prenant Llama2 comme exemple, TensorRT-LLM peut améliorer les performances d'inférence de 4,6 fois par rapport à l'utilisation d'A100 seul.
Llama270B, A avec et sans TensorRT-LLM Comparaison entre 100 et H100
Les internautes ont déclaré que le H100 super puissant, combiné avec TensorRT-LLM, changera sans aucun doute complètement la situation actuelle de l'inférence de grands modèles de langage !
TensorRT-LLM : artefact d'accélération d'inférence de grand modèle
Actuellement, en raison de l'énorme échelle de paramètres des grands modèles, la difficulté et le coût du « déploiement et de l'inférence » ont toujours été élevé.
Le TensorRT-LLM développé par NVIDIA vise à améliorer considérablement le débit LLM et à réduire les coûts grâce au GPU.
Plus précisément, TensorRT-LLM encapsule le compilateur d'apprentissage profond de TensorRT, le noyau optimisé de FasterTransformer, le pré- et post-traitement et la communication multi-GPU/multi-nœuds dans une simple API Python open source.
NVIDIA a encore amélioré FasterTransformer pour en faire une solution produit.
On peut voir que TensorRT-LLM fournit une interface de programmation d'applications Python facile à utiliser, open source et modulaire.
Les codeurs n'ont pas besoin de connaissances professionnelles approfondies en C++ ou CUDA. Ils peuvent déployer, exécuter et déboguer divers grands modèles de langage, et peuvent également obtenir des performances optimales et des fonctions de personnalisation rapides.
Selon le blog officiel de NVIDIA, TensorRT-LLM optimise les performances d'inférence LLM sur les GPU NVIDIA de quatre manières.
Tout d'abord, TensorRT-LLM est introduit pour les plus de 10 grands modèles actuels, permettant aux développeurs de les exécuter immédiatement.
Deuxièmement, TensorRT-LLM, en tant que bibliothèque logicielle open source, permet à LLM d'effectuer une inférence sur plusieurs GPU et plusieurs serveurs GPU simultanément.
Ces serveurs sont connectés respectivement via les interconnexions NVLink et InfiniBand de NVIDIA.
Le troisième est le « Traitement par lots en vol », qui est une toute nouvelle technologie de planification qui permet à différentes tâches de modèle d'entrer et de sortir du GPU indépendamment des autres tâches.
Enfin, TensorRT-LLM a été optimisé pour utiliser H100TransformerEngine afin de réduire l'utilisation de la mémoire et la latence lors de l'inférence de modèle.
Ensuite, examinons de plus près comment TensorRT-LLM améliore les performances du modèle.
Prend en charge un riche écosystème LLM
TensorRT-LLM fournit un très bon support pour l'écosystème de modèles open source.
Les modèles de langage les plus grands et les plus avancés, tels que Llama2-70B lancé par Meta, nécessitent que plusieurs GPU fonctionnent ensemble pour fournir des réponses en temps réel.
Auparavant, s'ils souhaitaient obtenir des performances optimales pour l'inférence LLM, les développeurs devaient réécrire le modèle d'IA, le diviser manuellement en plusieurs fragments et coordonner l'exécution sur les GPU.
TensorRT-LLM utilise la technologie de parallélisme tensoriel (tensorparallélisme) pour distribuer la matrice de poids à chaque appareil, simplifiant ainsi le processus et permettant une inférence efficace à grande échelle.
Chaque modèle peut fonctionner en parallèle sur plusieurs GPU et plusieurs serveurs connectés via NVLink, sans intervention du développeur ni modification du modèle.
Avec l'introduction de nouveaux modèles et architectures de modèles, les développeurs peuvent utiliser le dernier noyau open source NVIDIA AI (Kernal) dans TensorRT-LLM pour optimiser les modèles.
Fusion de noyau prise en charge (KernalFusion), y compris l'implémentation FlashAttention la plus avancée et une attention multi-tête masquée pour le contexte et les étapes de génération de l'exécution du modèle GPT, etc.
De plus, TensorRT-LLM comprend également des versions entièrement optimisées et prêtes à l'emploi de nombreux grands modèles de langage qui sont actuellement populaires.
Y compris MetaLlama2, OpenAIGPT-2 et GPT-3, Falcon, MosaicMPT, BLOOM et plus de 10 modèles, qui peuvent tous être appelés à l'aide de l'API TensorRT-LLMPython simple et facile à utiliser.
Ces fonctionnalités peuvent aider les développeurs à créer de grands modèles de langage personnalisés plus rapidement et avec plus de précision pour répondre aux différents besoins de diverses industries.
Traitement par lots en vol
Les grands modèles linguistiques sont extrêmement polyvalents de nos jours.
Un seul modèle peut être utilisé simultanément pour plusieurs tâches apparemment disparates : des simples réponses aux questions et réponses dans un chatbot, au résumé de documents ou à la génération de longs blocs de code, les charges de travail sont très dynamiques et les tailles de sortie doivent être de différents ordres de grandeur pour répondre aux exigences de la tâche.
La diversité des tâches peut rendre difficile le regroupement efficace des requêtes et l'exécution d'une exécution parallèle efficace, ce qui peut entraîner l'exécution de certaines requêtes plus tôt que d'autres.
Pour gérer ces charges dynamiques, TensorRT-LLM inclut une technologie de planification optimisée appelée « In-flight batching ».
Son principe de base est que l'ensemble du processus de génération de texte d'un grand modèle de langage peut être décomposé en plusieurs itérations d'exécution sur le modèle.
Avec le traitement par lots en vol, le moteur d'exécution TensorRT-LLM libère immédiatement les séquences terminées du lot, plutôt que d'attendre que l'ensemble du lot soit terminé avant de continuer à traiter l'ensemble de requêtes suivant.
Lors de l'exécution d'une nouvelle requête, d'autres requêtes du lot précédent qui n'ont pas été complétées sont toujours en cours de traitement.
Le traitement par lots en vol et les optimisations supplémentaires au niveau du noyau améliorent l'utilisation du GPU, ce qui peut au moins doubler le débit du benchmark de requêtes LLM réel sur le H100.
Utilisation du moteur H100Transformer de FP8
TensorRT-LLM fournit également une fonction appelée H100TransformerEngine, qui peut réduire efficacement la consommation de mémoire et la latence lors de l'inférence de grands modèles.
Étant donné que LLM contient des milliards de poids de modèle et de fonctions d'activation, il est généralement entraîné et représenté avec des valeurs FP16 ou BF16, chacune occupant 16 bits de mémoire.
Cependant, au moment de l'inférence, la plupart des modèles peuvent être représentés efficacement avec une précision inférieure à l'aide de techniques de quantification, telles que des entiers de 8 bits ou même de 4 bits (INT8 ou INT4).
La quantification est le processus de réduction des poids du modèle et de la précision d'activation sans sacrifier la précision. L’utilisation d’une précision inférieure signifie que chaque paramètre est plus petit et que le modèle occupe moins d’espace dans la mémoire GPU.
Cela permet l'inférence sur des modèles plus grands utilisant le même matériel tout en consacrant moins de temps aux opérations de mémoire pendant l'exécution.
Grâce à la technologie H100TransformerEngine, le H100GPU avec TensorRT-LLM permet aux utilisateurs de convertir facilement les poids du modèle au nouveau format FP8 et de compiler automatiquement le modèle pour profiter du noyau FP8 optimisé.
Et ce processus ne nécessite aucun code ! Le format de données FP8 introduit par H100 permet aux développeurs de quantifier leurs modèles et de réduire considérablement la consommation de mémoire sans réduire la précision du modèle.
Par rapport à d'autres formats de données tels que INT8 ou INT4, la quantification FP8 conserve une plus grande précision tout en atteignant les performances les plus rapides et est la plus pratique à mettre en œuvre.
Comment obtenir TensorRT-LLM
Bien que TensorRT-LLM n'ait pas encore été officiellement publié, les utilisateurs peuvent désormais bénéficier d'un accès anticipé.
Le lien de l'application est le suivant :
https://developer.nvidia.com/tensorr t-llm-early-access/join
NVIDIA a également déclaré que TensorRT-LLM serait intégré à NVIDIANeMo. cadre bientôt.
Ce framework fait partie d'AIEnterprise récemment lancé par NVIDIA, offrant aux entreprises clientes une plate-forme logicielle d'IA de niveau entreprise sécurisée, stable et hautement gérable.
Les développeurs et les chercheurs peuvent accéder à TensorRT-LLM via le framework NeMo sur NVIDIA NGC ou en tant que projet sur GitHub.
Cependant, il convient de noter que les utilisateurs doivent s'inscrire au programme pour développeurs NVIDIA pour postuler à la version à accès anticipé.
Les internautes discutent vivement
Les internautes sur Reddit ont lancé une discussion animée sur le lancement de TensorRT-LLM.
Il est difficile d'imaginer à quel point l'effet sera amélioré après l'optimisation du matériel spécifiquement pour LLM.
Mais certains internautes pensent que le but de cette chose est d'aider Lao Huang à vendre plus de H100.
Cependant, certains internautes ne sont pas très d'accord. Il pense que TensorRT est également utile pour les utilisateurs qui déploient SD localement, donc tant qu'il existe un GPU RTX, il devrait être possible de bénéficier de produits similaires à l'avenir.
D'un point de vue plus macro, peut-être pour LLM, il y aura également une série d'optimisations au niveau matériel, et même du matériel conçu spécifiquement pour LLM apparaîtra à l'avenir pour améliorer les performances de LLM. Cette situation s'est effectivement produite dans de nombreuses applications populaires, et LLM ne fait pas exception.