Technologie
Date de publication : 17 août 2024 à 12h15
De nombreuses entreprises nourrissent de grands espoirs quant à l’impact de l’intelligence artificielle (IA) sur leur activité. Cependant, ces attentes peuvent rapidement être douchées par les coûts exorbitants liés à la formation de systèmes d’IA sophistiqués. Elon Musk a souligné que les problèmes d’ingénierie sont souvent à l’origine des ralentissements dans les progrès. Cela est particulièrement vrai lorsqu’il s’agit d’optimiser le matériel, comme les GPU, pour répondre aux exigences computationnelles massives nécessaires à l’entraînement et à l’ajustement des grands modèles de langage.
Alors que les grandes entreprises technologiques peuvent se permettre de dépenser des millions, voire des milliards, pour la formation et l’optimisation, les petites et moyennes entreprises ainsi que les startups, souvent à court de ressources, se retrouvent souvent en difficulté. Cet article examine quelques stratégies qui pourraient permettre même aux développeurs les plus limités en ressources de former des modèles d’IA sans se ruiner.
Investir intelligemment
La création et le lancement d’un produit d’IA, qu’il s’agisse d’un modèle de base ou d’une application spécialisée, reposent largement sur des puces d’IA spécifiques, notamment les GPU. Ces derniers sont si coûteux et difficiles à obtenir que la communauté de l’apprentissage automatique a commencé à utiliser les termes « riche en GPU » et « pauvre en GPU ». Les coûts associés à la formation de grands modèles de langage proviennent principalement des dépenses liées au matériel, y compris l’acquisition et la maintenance, plutôt que des algorithmes d’apprentissage automatique ou de l’expertise.
La formation de ces modèles nécessite une puissance de calcul considérable sur des clusters performants, les modèles plus grands prenant encore plus de temps. Par exemple, l’entraînement de LLaMA 2 70B a impliqué 70 milliards de paramètres exposés à 2 trillions de tokens, nécessitant au moins 10^24 opérations en virgule flottante. Faut-il abandonner si vous êtes pauvre en GPU ? Absolument pas.
Stratégies alternatives
Aujourd’hui, plusieurs stratégies sont mises en œuvre par les entreprises technologiques pour trouver des solutions alternatives, réduire leur dépendance à un matériel coûteux et, en fin de compte, économiser de l’argent.
Une approche consiste à ajuster et à rationaliser le matériel d’entraînement. Bien que cette voie soit encore largement expérimentale et nécessite des investissements importants, elle offre des perspectives prometteuses pour l’optimisation future de l’entraînement des modèles de langage. Parmi les solutions liées au matériel, on trouve des puces d’IA personnalisées de Microsoft et Meta, de nouvelles initiatives de semi-conducteurs de Nvidia et OpenAI, des clusters de calcul uniques de Baidu, des GPU en location de Vast, et des puces Sohu par Etched, entre autres.
Bien que cela représente une avancée importante, cette méthodologie est encore plus adaptée aux grands acteurs capables d’investir massivement maintenant pour réduire les coûts plus tard. Elle ne convient pas aux nouveaux venus disposant de ressources financières limitées souhaitant créer des produits d’IA dès aujourd’hui.
Solutions logicielles innovantes
Pour ceux qui ont un budget restreint, il existe une autre manière d’optimiser l’entraînement des modèles de langage et de réduire les coûts : par le biais de logiciels innovants. Cette approche est plus abordable et accessible à la plupart des ingénieurs en apprentissage automatique, qu’ils soient expérimentés ou aspirants développeurs d’IA cherchant à entrer dans le domaine. Examinons plus en détail certains de ces outils d’optimisation basés sur le code.
Entraînement à précision mixte
Définition : Imaginez que votre entreprise compte 20 employés, mais que vous louez un espace de bureau pour 200. Cela représenterait un gaspillage évident de vos ressources. Une inefficacité similaire se produit lors de l’entraînement des modèles, où les frameworks d’apprentissage automatique allouent souvent plus de mémoire que nécessaire. L’entraînement à précision mixte corrige cela par l’optimisation, améliorant à la fois la vitesse et l’utilisation de la mémoire.
Fonctionnement : Pour y parvenir, des opérations à faible précision (b/float16) sont combinées avec des opérations standard (float32), ce qui réduit le nombre d’opérations de calcul à un moment donné. Cela peut sembler technique, mais en réalité, cela signifie qu’un modèle d’IA peut traiter des données plus rapidement et nécessiter moins de mémoire sans compromettre la précision.
Améliorations : Cette technique peut entraîner des améliorations de temps d’exécution allant jusqu’à 6 fois sur les GPU et de 2 à 3 fois sur les TPU (unité de traitement Tensor de Google). Des frameworks open-source comme APEX de Nvidia et PyTorch de Meta prennent en charge l’entraînement à précision mixte, ce qui le rend facilement intégrable dans les pipelines. En mettant en œuvre cette méthode, les entreprises peuvent réduire considérablement les coûts liés aux GPU tout en maintenant un niveau de performance acceptable du modèle.
Point de contrôle d’activation
Définition : Si vous êtes limité par une mémoire restreinte mais que vous êtes prêt à investir plus de temps, le point de contrôle pourrait être la technique qu’il vous faut. cela permet de réduire considérablement la consommation de mémoire en minimisant les calculs, permettant ainsi l’entraînement de modèles de langage sans mise à niveau de votre matériel.
Fonctionnement : L’idée principale du point de contrôle d’activation est de stocker un sous-ensemble de valeurs essentielles pendant l’entraînement du modèle et de recalculer le reste uniquement lorsque cela est nécessaire. Cela signifie qu’au lieu de conserver toutes les données intermédiaires en mémoire, le système ne garde que ce qui est vital, libérant ainsi de l’espace mémoire. C’est un peu comme le principe « nous traverserons ce pont quand nous y arriverons », qui implique de ne pas se soucier des questions moins urgentes jusqu’à ce qu’elles nécessitent une attention.
Améliorations : Dans la plupart des cas, le point de contrôle d’activation réduit l’utilisation de la mémoire jusqu’à 70 %, bien qu’il prolonge également la phase d’entraînement d’environ 15 à 25 %. Ce compromis raisonnable permet aux entreprises de former de grands modèles d’IA sur leur matériel existant sans investir davantage dans l’infrastructure. La bibliothèque PyTorch mentionnée précédemment prend en charge le point de contrôle, facilitant ainsi sa mise en œuvre.
Entraînement multi-GPU
Définition : Imaginez qu’une petite boulangerie doit produire rapidement une grande quantité de baguettes. Si un seul boulanger travaille, cela prendra probablement beaucoup de temps. Avec deux boulangers, le processus s’accélère. En ajoutant un troisième boulanger, cela va encore plus vite. L’entraînement multi-GPU fonctionne de manière similaire.
Fonctionnement : Au lieu d’utiliser un seul GPU, vous utilisez plusieurs GPU simultanément. L’entraînement du modèle d’IA est donc réparti entre ces GPU, leur permettant de travailler ensemble. Logiquement, cela est un peu l’opposé de la méthode précédente, le point de contrôle, qui réduit les coûts d’acquisition de matériel en échange d’un temps d’exécution prolongé. Ici, nous utilisons plus de matériel mais en tirons le meilleur parti, maximisant ainsi l’efficacité et réduisant les coûts opérationnels.
Améliorations : Voici trois outils robustes pour l’entraînement de modèles de langage avec une configuration multi-GPU, classés par ordre croissant d’efficacité basée sur des résultats expérimentaux :
-
DeepSpeed : Une bibliothèque conçue spécifiquement pour l’entraînement de modèles d’IA avec plusieurs GPU, capable d’atteindre des vitesses jusqu’à 10 fois plus rapides que les méthodes d’entraînement traditionnelles.
-
FSDP : L’un des frameworks les plus populaires dans PyTorch qui aborde certaines des limitations inhérentes de DeepSpeed, augmentant l’efficacité de calcul de 15 à 20 % supplémentaires.
-
YaFSDP : Une version améliorée récemment publiée de FSDP pour l’entraînement de modèles, offrant des gains de vitesse de 10 à 25 % par rapport à la méthodologie FSDP originale.
Conclusion
En utilisant des techniques telles que l’entraînement à précision mixte, le point de contrôle d’activation et l’utilisation de plusieurs GPU, même les petites et moyennes entreprises peuvent réaliser des avancées significatives dans l’entraînement de l’IA, tant pour le réglage que pour la création de modèles. Ces outils améliorent l’efficacité computationnelle, réduisent le temps d’exécution et abaissent les coûts globaux. De plus, ils permettent de former des modèles plus grands sur le matériel existant, réduisant ainsi le besoin de mises à niveau coûteuses. En démocratisant l’accès à des capacités avancées en IA, ces approches permettent à un plus large éventail d’entreprises technologiques d’innover et de rivaliser dans ce domaine en rapide évolution.
Comme le dit le proverbe, « l’IA ne vous remplacera pas, mais quelqu’un utilisant l’IA le fera. » Il est temps d’adopter l’IA, et avec les stratégies ci-dessus, cela est possible même avec un budget limité.