Benchmarks GPU de Deep Learning

Nous entraînons constamment des modèles de langue pour notre travail. Notre équipe utilise des dizaines de cartes graphiques différentes choisies pour différentes tâches : parfois, nous avons besoin d'une station DGX puissante, et parfois, une vieille carte de jeu comme la RTX 2080Ti suffit. Le choix d'une configuration GPU optimale vous permettra non seulement d'économiser du temps d'entraînement, mais aussi de l'argent.

Ce qui est intéressant, c’est qu’il y a très peu d’articles sur Internet qui testent les GPU spécifiquement pour la vitesse d’entraînement des modèles de langue. La plupart des tests concernent uniquement l’inférence. Lors de la sortie de la nouvelle puce H100, le rapport de Nvidia indiquait qu'elle était jusqu'à neuf fois plus rapide que l'A100 en termes d'entraînement, mais pour nos tâches, la nouvelle carte n'était que 90 % plus rapide que l'ancienne. En comparaison, nos fournisseurs de cloud avaient une différence de prix de 2x entre ces GPU, il n'y avait donc aucun intérêt à passer à la nouvelle H100 pour économiser de l'argent.

En plus de cela, nous avons testé une station DGX composée de 8 cartes graphiques A100 80GB, coûtant 10 000 dollars par mois. Après le test, il est apparu clairement que le rapport qualité/prix de cette station ne nous convenait pas du tout et que pour cette somme, nous pourrions acquérir 66 cartes RTX 3090, qui au total seraient beaucoup plus utiles.

Nos modèles de traduction de langues ont jusqu'à 500 millions de paramètres (entre 100 et 300 millions en moyenne). Il est possible que si nous augmentions significativement le nombre de paramètres, le rapport qualité/prix de la DGX soit meilleur. Actuellement, nous n'entraînons pas de grands modèles linguistiques capables de traduire entre toutes les langues et leurs variantes simultanément, mais utilisons des modèles linguistiques séparés pour chaque paire de langues, par exemple anglais-allemand. Chacun de ces modèles pèse entre 120 et 300 Mo.

Il convient de noter que différentes langues ont des quantités de données variées disponibles sur Internet et que, par exemple, pour l'espagnol, vous pouvez trouver 500 millions de phrases traduites, tandis que pour le tibétain, il n'y a pas plus d'un million. De ce fait, les modèles pour différentes langues sont entraînés avec un nombre de paramètres différent et le résultat présente des variations dans la qualité de traduction. Pour créer un modèle de traduction de l'anglais vers l'espagnol, nous utilisons un serveur avec 4 RTX 4500 et 256 Go de RAM. Pendant ce temps, le tibétain peut être entraîné sur une RTX 2080 Ti avec 16 Go de RAM, car il est inutile d’augmenter la complexité du réseau neuronal et, par conséquent, d’utiliser un serveur plus puissant avec une petite quantité de données.

Sélection des processeurs graphiques et chiffres théoriques

L'entraînement des modèles linguistiques a été effectué sur notre plateforme interne Data Studio en utilisant le framework OpenNMT-tf. Cette phase comprenait la préparation des données, l’entraînement du modèle, et la comparaison du modèle avec une traduction de référence. L’utilisation du FP16 au lieu du FP32 pendant l'entraînement nous a permis de réduire considérablement le temps d’entraînement des modèles linguistiques sans dégradation de la qualité de traduction, mais tous nos GPU ne supportaient pas cette option.

Lors du choix d'un processeur graphique, il est habituel de considérer des indicateurs tels que la puissance de traitement (TFLOPS), la mémoire vidéo (VRAM), le support des bibliothèques et des frameworks, le budget, et d'autres facteurs (taille de la carte graphique et facteur de forme, exigences d’alimentation, refroidissement, et compatibilité avec votre système). Lors de l'entraînement de modèles de génération de texte, il convient également de garder à l'esprit que différentes langues consommeront différentes quantités de ressources. Par exemple, un caractère pour les langues latines utilise 1 octet, 2 octets pour les langues cyrilliques, et 3 octets pour les langues contenant des idéogrammes. Comprendre les caractéristiques de votre carte graphique a un impact significatif sur la vitesse du processus d'apprentissage.

Lors de l'entraînement des modèles en fonction des GPU utilisés, les cartes vidéo ont été divisées en deux groupes selon la période d'utilisation : les premières cartes vidéo, qui ont été utilisées pour les premières mesures de la vitesse d'apprentissage, et les cartes actuellement en usage. Les principales caractéristiques de ces cartes graphiques peuvent être trouvées dans le tableau 1 et le tableau 2, respectivement.

Tableau 1 - Processeurs graphiques précédemment utilisés et leurs paramètres techniques
 

Nombre de GPUGPUVRAM (Go)CUDAFP16,
TFLOPS
FP32,
TFLOPS
1Tesla V100-SXM2HBM2, 167.031.3316.31
2Tesla V100-SXM2HBM2, 327.031.3315.67
1RTX 4060 TiGDDR6, 88.922.0622.06
1Nvidia A40GDDR6, 488.637.4237.42
2Nvidia A40GDDR6, 968.637.4237.42
1Nvidia A100HBM2, 408.077.9719.49
1Nvidia A100HBM2, 808.077.9719.49
1Nvidia RTX A6000GDDR6, 488.638.7138.71
1Nvidia A10GDDR6, 248.631.2431.24
8Nvidia A10GDDR6, 1928.631.2431.24
1Nvidia H100HBM3, 809.0204.951.22


Notes
1. Avec CUDA supérieur à 7.0, l'utilisation du FP16 donnera un gain de vitesse d'entraînement, en fonction de la version de CUDA et des caractéristiques propres à la carte graphique.
2. Si la spécification de la carte graphique indique que le rapport de performance FP16 à FP32 est supérieur à 1 pour 1, alors l'utilisation de la précision mixte augmentera la vitesse d'entraînement du pourcentage indiqué dans la spécification. Par exemple, pour la Quadro RTX 6000 avec une valeur FP16 TFLOPS de 32.62 (2:1), l'entraînement sera au moins deux fois plus rapide (2,4 fois en pratique).

Tableau 2 - Modèles de GPU actuellement utilisés et leurs principales caractéristiques
 

Nombre de GPU en utilisationGPUVRAM (Go)CUDAFP16,
TFLOPS
FP32,
TFLOPS
1Quadro RTX 6000GDDR6, 247.532.6216.31
2Quadro RTX 6000GDDR6, 487.532.6216.31
4Quadro RTX 6000GDDR6, 967.532.6216.31
2Nvidia TITAN RTXGDDR6, 487.532.6216.31
4Nvidia RTX A4500GDDR6, 968.623.6523.65
1Nvidia GeForce RTX 3090GDDR6X, 248.635.5835.58
1Nvidia GeForce RTX 3070GDDR6, 88.620.3120.31

* - les valeurs pour FP16 TFLOPS et FP32 TFLOPS sont tirées des spécifications par GPU

Processus d'entraînement et de test des GPU

Les modèles ont été entraînés avec un ensemble de 18 GPU. Au cours de l'entraînement des réseaux neuronaux, nous avons utilisé de nombreuses paires de langues (plus d'une centaine de langues). Pendant l'entraînement de nos paires de langues, les paramètres suivants du réseau neuronal ont été pris comme base :
 

  • taille du vocabulaire = 30 000
  • nombre d'unités = 768
  • couches = 6
  • têtes = 16
  • dimension interne = 4 096


Tout d'abord, nous allons caractériser les GPU appartenant au premier groupe en nous basant sur le tableau 1. Le temps en minutes et secondes passé à entraîner le modèle à une vitesse approximative de 1 000 étapes et une taille de lot multiple de 100 000 unités sera pris comme base pour comparer les indicateurs.

Nous soulignons que pour le premier groupe, les mesures de vitesse ont été effectuées en utilisant le mécanisme d'alignement et uniquement avec FP32. Sans l'utilisation de ce mécanisme, la vitesse d'apprentissage sur certains serveurs peut être beaucoup plus rapide.

Le mécanisme d'alignement permet de faire correspondre les sous-chaînes dans le texte de base et le texte traduit. Il est nécessaire pour traduire des textes formatés, tels que des pages web, lorsqu'une sous-chaîne dans une phrase peut être mise en évidence avec une police différente et doit être traduite avec cette mise en évidence.

Compte tenu des paramètres susmentionnés du réseau neuronal, le meilleur temps du premier tableau a été obtenu par le GPU Nvidia H100 avec un temps d'apprentissage de 22 minutes, le temps intermédiaire a été obtenu par le GPU de la même marque GeForce RTX 4060 Ti avec un temps d'apprentissage de 72 minutes, et la dernière place a été occupée par le GPU Tesla V100-SXM 2 avec un temps d'apprentissage de 140 minutes.

Compte tenu des paramètres susmentionnés du réseau neuronal, le meilleur temps du premier tableau a été obtenu par le GPU Nvidia H100 avec un temps d'apprentissage de 22 minutes, le temps intermédiaire a été obtenu par le GPU de la même marque GeForce RTX 4060 Ti avec un temps d'apprentissage de 72 minutes, et la dernière place a été occupée par le GPU Tesla V100-SXM 2 avec un temps d'apprentissage de 140 minutes.

Tableau 3 - Mesures du temps d'entraînement sur les cartes graphiques précédemment utilisée
 

Mécanisme d'alignement utilisé
Taille de lot effective = 100 000
FP 32
Nombre de GPU en utilisationGPUVitesse approximative (min. sec),
1,000 étapes
Taille de lot utilisée
8Nvidia A1020,286 250
1Nvidia H1002225 000
1A100 (80 Gb)4025 000
1A100 (40 Gb)5615 000
2Nvidia A405612 500
1RTX A600068,2512 500
1GeForce RTX 4060 Ti724 167
1Nvidia A4082,0812 500
2Tesla V100-SXM864 167
1Nvidia A10104,505 000
1Tesla V100-SXM21404 167


Ensuite, réalisons une analyse comparative des accélérateurs graphiques actuellement en usage (Tableau 2). Pour ce groupe de processeurs graphiques, les mesures de vitesse ont été effectuées en utilisant le mécanisme d'alignement, ainsi qu'en utilisant FP16 et FP32. Les mesures de vitesse incluant ce mécanisme et la précision mixte seront présentées ci-dessous dans les tableaux 4 et 5 respectivement.

Ainsi, après avoir mesuré la vitesse des GPU de ce tableau, nous pouvons dire que la première place a été prise par le GPU de la série RTX A4500 avec un temps d'apprentissage de 31 minutes, mais il convient de souligner qu'une telle vitesse d'apprentissage des modèles a été obtenue en augmentant le nombre d'unités du GPU utilisé à 4. Si l'on ne tient pas compte de ce fait, la vitesse d'apprentissage du GPU susmentionné serait beaucoup plus élevée, ce qui le placerait en avant-dernière place dans le tableau final.

Le GPU de la série Quadro RTX 6000 avec un temps d'apprentissage de 47 minutes est en deuxième place. Il est à noter qu'une telle vitesse d'apprentissage est inversement conditionnée par le nombre d'unités du processeur utilisé, qui est égal à quatre. L'utilisation d'un seul de ces GPU entraînerait une perte de vitesse d'environ 3,2 fois, et le temps serait alors d'environ 153 minutes, le plaçant en dernière position.

La troisième place a été occupée par le GPU de la série TITAN RTX avec un temps de 75 minutes et 85 secondes. Ce score de vitesse d'apprentissage est dû à l'utilisation de 2 processeurs, ce qui a réduit le temps d'apprentissage du modèle.

Le leader incontestable en termes de vitesse d'apprentissage pour une seule unité est sans aucun doute le GPU de la série GeForce RTX 3090 avec un temps de 78 minutes et 26 secondes. L'augmentation du nombre d'unités de ce GPU accélérera la vitesse d'apprentissage du modèle, ce qui dépassera clairement tous les modèles de GPU mentionnés ci-dessus. Les données sur les mesures du temps d'apprentissage des modèles peuvent être observées dans le tableau 4.

Tableau 4 - Analyse comparative de la vitesse d'apprentissage des modèles de langue sur les GPU précédemment utilisés
 

Mécanisme d'alignement utilisé
Taille de lot effective = 100 000
FP 32
Nombre de GPU en utilisationGPUVitesse approximative (min. sec),
1,000 étapes
Taille de lot utilisée
4Nvidia RTX A4500315 000
4Quadro RTX 6000476 250
2Nvidia TITAN RTX75,856 250
1GeForce RTX 309078,266 250
2Quadro RTX 6000886 250
1GeForce RTX 3070104,172 000
1Quadro RTX 60001536 250


Les mesures suivantes de la vitesse d'apprentissage ont été effectuées en utilisant le FP16. Par rapport au FP32, la précision réduite permet de diminuer la quantité de mémoire consommée lors de l'apprentissage du modèle et d'accélérer les calculs sur le GPU. La précision de la représentation sera plus faible qu'avec l'utilisation du FP32.

En mesurant le temps d'entraînement des modèles en utilisant le FP32 à partir du tableau précédent, nous pouvons dire que le temps d'entraînement du réseau neuronal a été réduit de près de deux fois. Sur la base des résultats des mesures de performance, nous pouvons observer que les positions des GPU dans le tableau 4 n'ont pas beaucoup changé. La carte de la série Quadro RTX 6000 est passée de la cinquième position à la sixième, dépassant le GPU GeForce RTX 3090 de 96 secondes. Les chiffres finaux sont présentés dans le tableau 5.

Tableau 5 - Analyse comparative de la vitesse d'apprentissage des modèles de langue sur les GPU précédemment utilisés
 

Mécanisme d'alignement utilisé
Taille de lot effective = 100 000
FP 16
Number of GPUs in useGPUVitesse approximative (min. sec),
1,000 étapes
Taille de lot utilisée
4Nvidia RTX A450015,8110 000
4Quadro RTX 600020,3412 500
2Nvidia TITAN RTX32,686 250
2Quadro RTX 600037,9310 000
1GeForce RTX 309038,8910 000
1GeForce RTX 307048,512 500
1Quadro RTX 600052,5610 000

Questions fréquemment posées (FAQ)

Vaut-il la peine d’acheter un GPU pour le deep learning ?

L'achat d'un GPU pour l'apprentissage profond peut améliorer considérablement la vitesse et l'efficacité de la formation, ce qui en fait un investissement rentable pour les projets sérieux. Cependant, la décision doit tenir compte de facteurs tels que le budget, les cas d'utilisation spécifiques et la possibilité que les solutions cloud soient plus rentables.

Quel GPU est le meilleur pour l’apprentissage profond ?

La carte graphique NVIDIA A100 est souvent considérée comme le meilleur choix pour l'apprentissage en profondeur, offrant des performances et une mémoire exceptionnelles pour les modèles volumineux. Pour les utilisateurs soucieux de leur budget, la carte graphique NVIDIA RTX 3090 offre de solides capacités pour entraîner efficacement les modèles.

AMD ou NVIDIA est-il le meilleur pour l’apprentissage en profondeur ?

NVIDIA est généralement privilégié pour l'apprentissage profond en raison de son écosystème logiciel robuste, qui améliore les performances et la compatibilité avec les frameworks populaires. Bien que les GPU AMD se soient améliorés, ils restent à la traîne par rapport à NVIDIA en termes d'optimisation et de prise en charge des applications d'apprentissage profond.

Le GPU aide-t-il en PNL ?

Oui, les GPU accélèrent considérablement l'entraînement des réseaux neuronaux dans le traitement du langage naturel (NLP) en gérant efficacement les calculs parallèles. Cette augmentation de vitesse permet une expérimentation et une itération plus rapides, ce qui conduit à des performances de modèle améliorées et à des temps d'entraînement réduits.

Des lectures plus fascinantes attendent

Génération de contenu par l'IA vs. rédacteurs humains : Trouver le bon équilibre

Génération de contenu par l'IA vs. rédacteurs humains : Trouver le bon équilibre

December 18, 2024

Pourquoi chaque entreprise a besoin d’un générateur de contenu basé sur l’IA en 2025

Pourquoi chaque entreprise a besoin d’un générateur de contenu basé sur l’IA en 2025

December 17, 2024

Qu'est-ce que l'analyse de sentiment ?

Qu'est-ce que l'analyse de sentiment ?

December 17, 2024

Contacter le support

* Champs obligatoires

En soumettant ce formulaire, j'accepte que les conditions d'utilisation et la politique de confidentialité régissent respectivement l'utilisation des services que je reçois et les données personnelles que je fournis.

E-mail

Complété

Votre demande a été envoyée avec succès

×