Mise en place de l’infrastructure et configuration des scripts
Introduction
- Pendant plusieurs mois, une petite équipe de recherche et d’ingénierie a entraîné depuis zéro un modèle de 70B paramètres sur sa propre infrastructure, au point de surpasser GPT-4o en zero-shot sur des tâches liées au raisonnement.
- Aujourd’hui, elle partage un guide complet de la configuration d’infrastructure nécessaire, depuis la mise en place initiale du cluster et l’installation du système d’exploitation jusqu’à la récupération automatique après les erreurs survenant pendant l’entraînement.
- Les défis rencontrés à chaque étape et les solutions apportées sont expliqués en détail, et les scripts d’infrastructure sont publiés pour aider d’autres équipes à construire plus facilement une infrastructure stable.
Contexte : comment ce système fonctionne
- Des GPU rapides sont nécessaires pour mener rapidement des expériences sur de grands modèles de langage.
- Le cluster utilisé comprend 4 092 GPU H100 répartis sur 511 ordinateurs.
- Le réseau InfiniBand permet une communication à haute vitesse entre les GPU.
Processus : passer du bare metal à un cluster entièrement opérationnel
Provisionnement des machines individuelles
- Une connexion Ethernet initiale au cluster est établie via le réseau de gestion, avec accès au BMC (Baseboard Management Controller).
- Ubuntu 22.04 est installé sur le premier serveur à l’aide d’iDRAC, puis sert à configurer les autres serveurs.
Installation de l’OS sur toutes les machines
- Le logiciel MAAS est utilisé pour provisionner les autres serveurs.
- Le démarrage via le réseau est configuré avec le boot PXE et des outils iDRAC automatisés, afin que MAAS réponde aux requêtes de démarrage PXE.
Diagnostic des machines défectueuses
- Environ 10 % des machines échouent au démarrage, principalement en raison de problèmes matériels.
- Des vérifications automatisées permettent de détecter les problèmes, puis de demander un retest à Dell ou d’ouvrir un ticket auprès du personnel du data center.
Mise en place d’un bare metal observable minimal
- Docker, les pilotes GPU pour data center, le node exporter Prometheus et d’autres composants sont installés sur tous les serveurs.
- Des diagnostics GPU de base sont exécutés afin de vérifier que la plupart des GPU fonctionnent normalement.
Entraînement GPU sur un seul nœud
- Vérification que toutes les machines peuvent exécuter seules des charges GPU.
- Résolution des erreurs liées aux GPU ainsi que des problèmes de connexion entre le bus PCIe et les cartes réseau.
Provisionnement InfiniBand
- UFM (Unified Fabric Manager) est installé, puis les switchs réseau sont détectés et nommés selon leur emplacement physique.
- Les problèmes de câblage réseau sont résolus, ainsi que les alertes de température.
Garantir des machines entièrement saines
- Divers health checks permettent d’identifier les hôtes sains pouvant être utilisés pour l’entraînement.
- De nombreuses vérifications sont effectuées : GPU, espace disque, Docker, dmesg, iDRAC, disques, InfiniBand, NVLink, GDR, VBIOS, Flint, PSB, etc.
Diagnostic des problèmes d’entraînement courants
- Une fois le matériel correctement opérationnel, l’entraînement commence.
- Les problèmes traités incluent les crashs au démarrage, les crashs en cours d’exécution, les blocages sans stack trace et les ralentissements de la vitesse d’entraînement.
Amélioration des outils d’infrastructure
- Divers outils et systèmes sont développés pour garantir le bon déroulement de l’entraînement.
- Les machines défectueuses et les composants réseau en panne sont automatiquement désactivés, et les demandes de réparation sont automatisées.
- Un système de fichiers miroir local et un registre Docker distribué local sont mis en place.
- Des outils de monitoring des performances sont configurés, ainsi que des outils pour détecter les lots d’entraînement lents et en comprendre la cause.
Avis de GN⁺
- Cet article est très utile car il fournit une expérience concrète et des solutions pratiques pour la mise en place et la gestion de clusters à grande échelle.
- Il explique bien la complexité de la construction de l’infrastructure nécessaire à l’entraînement de grands modèles de langage.
- Il fournit divers scripts et outils pouvant servir de référence à d’autres équipes construisant une infrastructure similaire.
- Il explique clairement l’importance du réseau InfiniBand et les problèmes susceptibles de survenir pendant sa configuration.
- Il décrit bien les points à considérer ainsi que les avantages et inconvénients lors de l’adoption de nouvelles technologies ou de l’open source.
1 commentaires
Commentaire Hacker News
Une petite équipe de recherche a entraîné un modèle de 70B de paramètres sur sa propre infrastructure et a dépassé GPT-4 en zero-shot sur des tâches liées au raisonnement
Un cluster compte 4 092 GPU H100 répartis sur 511 ordinateurs
Le sujet a été discuté il y a quelques jours dans le podcast Latent Space
Question sur la raison pour laquelle autant de matériel PC est nécessaire
Il serait intéressant, avec le même matériel, de refaire l’entraînement en utilisant du texte Unicode brut au lieu de données d’entraînement tokenisées
4 092 GPU H100
Intérêt pour la consommation électrique totale nécessaire à la construction du modèle
Question sur le coût total
Cisco travaille sur une nouvelle collaboration avec NVIDIA à la vitesse de ports 800G
Question sur ce qu’il advient du matériel et de l’infrastructure une fois le modèle entraîné