Entraînement et inférence plus rapides Habana Gaudi®2 vs Nvidia A100 80GB
Formation et inférence plus rapides Habana Gaudi®2 contre Nvidia A100 80GB.
Dans cet article, vous apprendrez comment utiliser Habana® Gaudi®2 pour accélérer l’entraînement et l’inférence des modèles, et entraîner des modèles plus grands avec 🤗 Optimum Habana. Ensuite, nous présenterons plusieurs benchmarks, notamment l’entraînement préalable de BERT, l’inférence Stable Diffusion et le fine-tuning de T5-3B, pour évaluer les différences de performance entre la première génération de Gaudi, Gaudi2 et Nvidia A100 80GB. Attention, spoiler – Gaudi2 est environ deux fois plus rapide que Nvidia A100 80GB pour l’entraînement et l’inférence!
Gaudi2 est le deuxième accélérateur matériel AI de génération conçu par Habana Labs. Un seul serveur contient 8 dispositifs accélérateurs avec 96 Go de mémoire chacun (contre 32 Go sur la première génération de Gaudi et 80 Go sur A100 80GB). Le kit de développement logiciel Habana, SynapseAI, est commun aux Gaudi de première génération et à Gaudi2. Cela signifie que 🤗 Optimum Habana, qui offre une interface très conviviale entre les bibliothèques 🤗 Transformers et 🤗 Diffusers et SynapseAI, fonctionne exactement de la même manière sur Gaudi2 que sur Gaudi de première génération! Donc, si vous avez déjà des flux de travail d’entraînement ou d’inférence prêts à l’emploi pour Gaudi de première génération, nous vous encourageons à les essayer sur Gaudi2, car ils fonctionneront sans aucun changement.
Comment accéder à Gaudi2?
L’un des moyens faciles et économiques mis à disposition par Intel et Habana pour accéder à Gaudi2 est le Cloud des développeurs Intel. Pour commencer à utiliser Gaudi2 là-bas, vous devez suivre les étapes suivantes:
-
Accédez à la page d’accueil du Cloud des développeurs Intel et connectez-vous à votre compte ou inscrivez-vous si vous n’en avez pas.
-
Accédez à la console de gestion du Cloud des développeurs Intel.
-
Sélectionnez le serveur d’apprentissage en profondeur Habana Gaudi2 doté de huit cartes mezzanine Gaudi2 HL-225H et des derniers processeurs Intel® Xeon®, puis cliquez sur “Lancer l’instance” dans le coin inférieur droit comme indiqué ci-dessous.
-
Vous pouvez ensuite demander une instance:
-
Une fois votre demande validée, refaites l’étape 3 et cliquez sur “Ajouter une clé publique OpenSSH” pour ajouter un mode de paiement (carte de crédit ou code promotionnel) et une clé publique SSH que vous pouvez générer avec
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa
. Vous pouvez être redirigé vers l’étape 3 à chaque fois que vous ajoutez un mode de paiement ou une clé publique SSH. -
Refaites l’étape 3, puis cliquez sur “Lancer l’instance”. Vous devrez accepter les conditions générales proposées pour réellement lancer l’instance.
-
Accédez à la console de gestion du Cloud des développeurs Intel et cliquez sur l’onglet “Afficher les instances”.
-
Vous pouvez copier la commande SSH pour accéder à distance à votre instance Gaudi2!
Si vous terminez l’instance et souhaitez utiliser à nouveau Gaudi2, vous devrez refaire tout le processus.
Vous pouvez trouver plus d’informations sur ce processus ici.
Benchmarks
Plusieurs benchmarks ont été réalisés pour évaluer les capacités de la première génération de Gaudi, de Gaudi2 et d’A100 80GB pour l’entraînement et l’inférence, et pour des modèles de différentes tailles.
Pré-entraînement de BERT
Il y a quelques mois, Philipp Schmid, responsable technique chez Hugging Face, a présenté comment pré-entraîner BERT sur Gaudi avec 🤗 Optimum Habana. 65 000 étapes d’entraînement ont été effectuées avec une taille de lot de 32 échantillons par dispositif (soit 8*32=256 au total) pour un temps total d’entraînement de 8 heures et 53 minutes (vous pouvez voir les journaux TensorBoard de cette exécution ici).
Nous avons réexécuté le même script avec les mêmes hyperparamètres sur Gaudi2 et avons obtenu un temps d’entraînement total de 2 heures et 55 minutes (voir les journaux ici). Cela représente une accélération de 3,04 fois sur Gaudi2 sans rien changer.
Étant donné que Gaudi2 dispose d’environ 3 fois plus de mémoire par dispositif par rapport à Gaudi de première génération, il est possible de tirer parti de cette capacité supérieure pour avoir des lots plus grands. Cela donnera plus de travail aux HPUs et permettra également aux développeurs d’essayer une gamme de valeurs d’hyperparamètres qui n’était pas atteignable avec Gaudi de première génération. Avec une taille de lot de 64 échantillons par dispositif (512 au total), nous avons obtenu avec 20 000 étapes une convergence de perte similaire aux 65 000 étapes des exécutions précédentes. Cela représente un temps d’entraînement total de 1 heure et 33 minutes (voir les journaux ici). Le débit est 1,16 fois plus élevé avec cette configuration, tandis que cette nouvelle taille de lot accélère fortement la convergence. En fin de compte, avec Gaudi2, le temps d’entraînement total est réduit par un facteur de 5,75 et le débit est 3,53 fois plus élevé par rapport à Gaudi de première génération.
Gaudi2 offre également une accélération par rapport à A100 : 1580,2 échantillons/s contre 981,6 pour une taille de lot de 32 et 1835,8 échantillons/s contre 1082,6 pour une taille de lot de 64, ce qui est conforme à l’accélération x1,8 annoncée par Habana lors de la phase 1 de la pré-formation BERT avec une taille de lot de 64.
Le tableau suivant affiche les débits que nous avons obtenus pour les GPU Gaudi de première génération, Gaudi2 et Nvidia A100 80GB :
BS est la taille du lot par appareil. Les exécutions sur Gaudi ont été effectuées en précision mixte (bf16/fp32) et les exécutions sur A100 en fp16. Toutes les exécutions étaient des exécutions distribuées sur 8 appareils.
Génération d’images à partir de texte avec Diffusion Stable
Une des principales nouvelles fonctionnalités de la version 1.3 de 🤗 Optimum Habana est la prise en charge de la diffusion stable. Il est maintenant très facile de générer des images à partir de texte sur Gaudi. Contrairement à 🤗 Diffusers sur les GPU, les images sont générées par lots. En raison des temps de compilation du modèle, les deux premiers lots seront plus lents que les itérations suivantes. Dans ce benchmark, ces deux premières itérations ont été ignorées pour calculer les débits pour les Gaudi de première génération et Gaudi2.
Ce script a été exécuté pour une taille de lot de 8 échantillons. Il utilise la configuration Gaudi Habana/stable-diffusion
.
Les résultats que nous avons obtenus, qui sont conformes aux chiffres publiés par Habana ici, sont affichés dans le tableau ci-dessous. Gaudi2 présente des latences 3,51 fois plus rapides que celles de Gaudi de première génération (3,25s contre 0,925s) et 2,84 fois plus rapides que Nvidia A100 (2,63s contre 0,925s). Il peut également prendre en charge des tailles de lot plus importantes.
Mise à jour : les chiffres ci-dessus ont été mis à jour car SynapseAI 1.10 et Optimum Habana 1.6 apportent une accélération supplémentaire sur Gaudi de première génération et Gaudi2.
BS est la taille du lot. Les exécutions sur Gaudi ont été effectuées en précision bfloat16 et les exécutions sur A100 en précision fp16 (plus d’informations ici). Toutes les exécutions étaient des exécutions sur un seul appareil.
Réglage fin de T5-3B
Avec 96 Go de mémoire par appareil, Gaudi2 permet d’exécuter des modèles beaucoup plus volumineux. Par exemple, nous avons réussi à affiner T5-3B (contenant 3 milliards de paramètres) avec le point de contrôle de gradient étant la seule optimisation de la mémoire appliquée. Cela n’est pas possible sur Gaudi de première génération. Voici les journaux de cette exécution où le modèle a été affiné sur l’ensemble de données CNN DailyMail pour la résumé de texte en utilisant ce script.
Les résultats que nous avons obtenus sont présentés dans le tableau ci-dessous. Gaudi2 est 2,44 fois plus rapide que A100 80GB. Nous constatons que nous ne pouvons pas utiliser une taille de lot supérieure à 1 sur Gaudi2 ici. Cela est dû à l’espace mémoire occupé par le graphe où les opérations sont accumulées lors de la première itération de l’exécution. Habana travaille sur l’optimisation de l’empreinte mémoire dans les futures versions de SynapseAI. Nous sommes impatients d’étendre ce benchmark en utilisant de nouvelles versions du kit de développement logiciel de Habana et en utilisant également DeepSpeed pour voir si la même tendance se maintient.
BS est la taille du lot par appareil. Les exécutions sur Gaudi2 et A100 ont été effectuées en fp32 avec le point de contrôle de gradient activé. Toutes les exécutions étaient des exécutions distribuées sur 8 appareils.
Conclusion
Dans cet article, nous discutons de notre première expérience avec Gaudi2. La transition de Gaudi de première génération à Gaudi2 est totalement transparente car SynapseAI, le kit de développement logiciel de Habana, est entièrement compatible avec les deux. Cela signifie que les nouvelles optimisations proposées par les futures versions bénéficieront à tous deux.
Vous avez vu que Habana Gaudi2 améliore considérablement les performances par rapport à Gaudi de première génération et offre un débit d’environ deux fois supérieur à celui de Nvidia A100 80GB, tant pour l’entraînement que pour l’inférence.
Vous savez maintenant également comment configurer une instance Gaudi2 via la Zone des développeurs Intel. Découvrez les exemples que vous pouvez facilement exécuter dessus avec 🤗 Optimum Habana.
Si vous êtes intéressé par l’accélération de vos flux de travail d’apprentissage automatique et d’inférence en utilisant les derniers accélérateurs matériels et bibliothèques logicielles d’IA, consultez notre Programme d’accélération expert. Pour en savoir plus sur les solutions Habana, lisez notre partenariat ici et contactez-les. Pour en savoir plus sur les efforts de Hugging Face pour rendre les accélérateurs matériels d’IA faciles à utiliser, consultez notre programme de partenariat matériel.
Sujets connexes
- Démarrer avec les Transformers et Habana Gaudi
- Accélérer l’entraînement du modèle Transformer avec Hugging Face et Habana Labs
Merci d’avoir lu ! Si vous avez des questions, n’hésitez pas à me contacter, que ce soit via Github ou sur le forum. Vous pouvez également me retrouver sur LinkedIn.
We will continue to update IPGirl; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- Segmentation d’image sans apprentissage préalable avec CLIPSeg
- Accélérer les transformateurs PyTorch avec Intel Sapphire Rapids – partie 1
- IA pour le développement de jeux Création d’un jeu de ferme en 5 jours. Partie 1
- Introduction à l’apprentissage machine sur les graphes
- IA pour le développement de jeux Création d’un jeu de ferme en 5 jours. Partie 2
- Similarité d’image avec les ensembles de données et les transformateurs Hugging Face
- Bienvenue à PaddlePaddle sur le Hugging Face Hub