1 points par GN⁺ 2024-06-29 | 1 commentaires | Partager sur WhatsApp

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

 
GN⁺ 2024-06-29
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

    • Tous les composants doivent fonctionner parfaitement : InfiniBand, Ethernet, GPU, nœuds, etc.
    • Si une seule des plus de 12 000 connexions est instable, tout l’entraînement peut ralentir
    • Partage d’un guide complet sur la configuration de l’infrastructure et des scripts open source
    • Il s’agit de l’une des trois parties consacrées à l’entraînement d’un modèle 70B, les deux autres étant centrées sur l’évaluation et l’optimisation des hyperparamètres CARBS
  • Un cluster compte 4 092 GPU H100 répartis sur 511 ordinateurs

    • Cela représente plus de 100 millions de dollars de coût en GPU
    • Question sur la possibilité de faire ce type de travail avec le budget d’un PC gaming
  • Le sujet a été discuté il y a quelques jours dans le podcast Latent Space

    • Un bon épisode pour entendre le contexte derrière ces décisions
  • Question sur la raison pour laquelle autant de matériel PC est nécessaire

    • Idée qu’on pourrait peut-être utiliser un backend PCI + InfiniBand avec des GPU et de petits contrôleurs ARM
    • Question sur l’inertie des anciens designs ou sur l’absence de marché pour des contrôleurs GPU spécialisés
  • 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

    • Envie de voir les différences sur les performances en orthographe et en rimes
  • 4 092 GPU H100

    • Travail en cours sur le "self-coding"
    • Cela pourrait être une solution no-code ou minimal code
    • Le site contient beaucoup d’articles et de ressources intéressants
  • Intérêt pour la consommation électrique totale nécessaire à la construction du modèle

    • Question sur l’existence de chiffres concernant l’alimentation et le refroidissement
    • Mention que Mark Zuckerberg a parlé d’un prochain modèle à 1 GW
  • Question sur le coût total

    • Y compris le matériel, le temps de développement, l’électricité et le refroidissement
  • Cisco travaille sur une nouvelle collaboration avec NVIDIA à la vitesse de ports 800G

    • Question sur l’accessibilité d’InfiniBand pour les GPU
    • Remerciement pour le partage
  • Question sur ce qu’il advient du matériel et de l’infrastructure une fois le modèle entraîné