16 points par GN⁺ 2024-12-30 | 1 commentaires | Partager sur WhatsApp
  • Parti d’un intérêt pour ChatGPT, l’auteur a décidé de mener lui-même l’entraînement afin de comprendre en profondeur le fonctionnement des LLM
  • Au départ, il utilisait une puce M1, mais face à ses limites, il a monté une machine personnalisée exploitant des GPU NVIDIA 4090

1. Définir les objectifs et planifier le budget

  • Définition des objectifs : les besoins matériels varient selon la taille et le type du modèle à entraîner
  • Planification du budget : trouver un équilibre entre performances et coût, en gardant à l’esprit le prix des composants haut de gamme

2. Choix du matériel

  • Carte mère : recommandation de la SuperMicro M12SWA-TF. Elle fournit suffisamment de lignes PCIe pour utiliser plusieurs GPU
  • CPU : choix de l’AMD Threadripper PRO 5955WX. Il prend en charge 128 lignes PCIe, ce qui résout les problèmes de bande passante
  • RAM : 128 Go de mémoire recommandés. Adaptés aux grands jeux de données et aux charges de calcul importantes
  • GPU : GPU NVIDIA 4090 - idéal pour l’entraînement de LLM
    • 24 Go de VRAM permettent de traiter de grands modèles et jeux de données
    • Les performances en BFloat16 optimisent les charges de travail IA
    • 16 384 cœurs CUDA renforcent les capacités de traitement parallèle
  • Stockage : configuration avec un SSD NVMe de 6 To et un HDD de 8 To
  • Alimentation : 2 PSU de 1500 W pour une alimentation électrique stable
  • Boîtier et refroidissement : utilisation d’un boîtier prenant en charge plusieurs GPU et d’un système de refroidissement efficace

3. Assemblage de la machine

  • Configuration à double PSU : l’un alimente la carte mère et le CPU, l’autre les GPU
  • Vérification de la compatibilité : examen approfondi de la compatibilité entre les composants
  • Comment entraîner son propre modèle LLM avec 4 GPU 4090
  • Les câbles ont été soigneusement rangés afin d’améliorer le flux d’air et de simplifier la maintenance

4. Configuration logicielle

  • Système d’exploitation : utilisation d’un OS Linux (par ex. Ubuntu) pour un environnement d’entraînement stable
  • Pilotes et dépendances : installation des derniers pilotes GPU, ainsi que des bibliothèques CUDA et cuDNN
  • Framework d’entraînement : installation de PyTorch ou TensorFlow
  • Noyau personnalisé : activation de la communication P2P entre GPU via un noyau fourni par Tinygrad

5. Entraînement du LLM

  • Préparation des données : nettoyage et prétraitement du dataset pour obtenir des données d’entrée de haute qualité
  • Choix du modèle : sélection d’un modèle adapté au matériel, comme Llama2 ou GPT
  • Processus d’entraînement : surveillance et optimisation de l’utilisation des ressources

6. Optimisation et montée en charge

  • Entraînement multi-GPU : utilisation de Distributed Data Parallel (DDP) ou de la technologie ZeRO
  • Utilisation d’un patch kernel permettant la communication P2P sur les GPU NVIDIA 4xxx
  • Réglage des performances : optimisation des hyperparamètres, de la taille des batchs et du taux d’apprentissage afin d’obtenir une meilleure convergence et une meilleure efficacité

7. Maintenance et supervision

  • Mises à jour régulières : maintenir le système et les logiciels à jour
  • Supervision du système : vérification de l’état de la machine avec nvidia-smi, Prometheus, etc.

Principaux enseignements et conseils

  • Alternatives matérielles : des GPU comme les A100 ou H100 offrent davantage de VRAM, mais des GPU grand public comme la 4090 fournissent d’excellentes performances dans une configuration rentable
  • Envisager le cloud : l’on-premise est adapté aux projets de long terme, tandis que le cloud convient mieux aux besoins de courte durée
  • Exploiter les ressources de la communauté : consulter les guides de Hugging Face et d’Andrej Karpathy

Construire une machine pour l’entraînement de LLM est un projet exigeant mais gratifiant, qui peut devenir un outil puissant pour explorer de nouvelles possibilités en développement IA

1 commentaires

 
GN⁺ 2024-12-30
Commentaires sur Hacker News
  • Cette configuration est excellente, et c’est la meilleure build utilisant 6 RTX 4090

    • Spécifications : 6 x 24GB NVIDIA GeForce RTX 4090, Intel Xeon W7-3465X, 256GB DDR5 ECC, 2TB Samsung 980 PRO NVMe SSD, 4TB Samsung 870 EVO SSD, Ubuntu 20.04
    • Le choix de 256GB de mémoire DDR5 ECC est intéressant, et on pourrait même viser 1TB de RAM
    • Le coût est astronomique
  • Cet article semble avoir été rédigé par un modèle d’IA, et la dernière partie donne fortement cette impression

    • Un article de suivi sur la préparation des données, le nettoyage et l’entraînement serait plus intéressant que le choix du matériel
  • Un article expliquant quel type d’entraînement peut être réalisé avec ce genre d’équipement serait plus intéressant

  • Quelqu’un partage son expérience personnelle de préentraînement de LLM à domicile après avoir monté son propre matériel de ML

  • Je me demande de quel matériel on a besoin pour affiner un modèle de taille intermédiaire

    • Il existe beaucoup de guides, mais ils se concentrent sur la configuration de la toolchain et manquent d’informations sur les jeux de données nécessaires à un bon fine-tuning
  • Pour la plupart des gens, l’aspect logiciel de l’entraînement des modèles devrait être plus intéressant et plus accessible

    • L’utilisation « complète » des GPU reste encore un sujet ouvert, et il peut être plus avantageux de louer des ressources dans le cloud pour travailler
    • Ce processus était une bonne ressource d’inspiration, et https://efficientml.ai/ est recommandé
  • J’aimerais lire un article écrit par une personne plutôt que par un modèle d’IA

  • Je veux parler des câbles riser

    • Je rencontre des problèmes de performances médiocres avec des connecteurs riser qui prétendent prendre en charge PCIe 4.0
    • Quand je branche des disques NVMe, cela provoque des problèmes et empêche le démarrage
    • Les NVMe semblent mal tolérer des taux d’erreur binaire élevés
  • C’est amusant pour un hobbyiste fortuné, mais pour faire un vrai travail, il vaut mieux louer sur Runpod

    • Bon billet de blog
  • Il suffit de 4 GPU 4090 et d’un circuit dédié de 30 ampères