GPT-2 (XL) possède 1,5 milliard de paramètres et ses paramètres consomment environ 3 Go de mémoire avec une précision de 16 bits.
Cependant, on peut difficilement l’entraîner sur un seul GPU doté de 30 Go de mémoire.
Cela représente 10 fois la mémoire du modèle, et vous vous demandez peut-être comment cela pourrait être possible.
Bien que cet article ne se concentre pas sur la consommation de mémoire LLM (
En fait, dans l’exemple ci-dessus, nous avons considéré un modèle assez petit : GPT-2 (XL), avec seulement 1,5 milliard de paramètres.
Voici une comparaison de taille du GPT-2 (XL) avec le GPT-3 afin que vous puissiez imaginer ce qui se passerait là-bas :
L'une des choses qui différencient grandement la formation LLM de la formation classique sur modèles est l'ampleur de ces modèles, qui nécessitent des ressources informatiques et des techniques substantielles pour être développés, formés et déployés efficacement.
C'est pourquoi une formation LLM typique est bien plus une question d'« ingénierie » que de « formation ».
Heureusement, nous disposons aujourd'hui de diverses bibliothèques et outils spécialisés conçus pour gérer les différentes étapes des projets LLM, du développement initial et de la formation aux tests, à l'évaluation, au déploiement et à la journalisation.
Cet article présente certaines des meilleures bibliothèques disponibles pour le développement LLM, classées selon leurs rôles spécifiques dans le cycle de vie du projet, comme le montre la figure ci-dessus.
Bien qu'il existe de nombreuses bibliothèques et outils pour le développement LLM, nous avons décidé de garder notre liste relativement concise et avons sélectionné 9 bibliothèques en fonction de facteurs tels que l'adoption, le soutien de la communauté, la fiabilité, l'utilité pratique, etc. N'hésitez pas à utiliser la table des matières pour accéder aux bibliothèques sur lesquelles vous souhaitez en savoir plus.
Formation et mise à l'échelle
Un test de réalité
# 1) Mégatron-LM
# 2) Vitesse profonde
# 3) YaFSDP
Tests et évaluation
#1) Giskard
# 2) harnais d'évaluation lm
Déploiement et inférence
# 1) vLLM
# 2) CTraduire2
Enregistrement
# 1) Vraira
# 2) Vérifications approfondies
Compte tenu de son ampleur, l'apprentissage distribué (une procédure de formation qui implique plusieurs GPU) est à l'avant-garde de la formation des LLM.
Une façon évidente d'utiliser l'apprentissage distribué consiste à distribuer les données sur plusieurs GPU, à exécuter la transmission directe sur chaque appareil et à calculer les gradients :
Les données peuvent également être non structurées. Les données structurées ne sont affichées que par souci de simplicité.
Pour y parvenir, chaque GPU stocke sa propre copie des poids du modèle et des états de l'optimiseur :
Cependant, le plus gros problème est que ces modèles sont ÉNORMES. Répliquer l’intégralité du modèle sur chaque périphérique GPU est pratiquement impossible.
Qu’en est-il également de la mémoire consommée par les états de l’optimiseur ? Nous n’y avons même pas encore pensé.
Pour plus de contexte, la mémoire consommée par l'optimiseur Adam (l'un des optimiseurs les plus utilisés) équivaut à deux fois les poids du modèle (en précision 32 bits).
En supposant que nous ayons réussi d'une manière ou d'une autre à calculer les gradients, le prochain goulot d'étranglement consiste à les transférer vers d'autres GPU pour synchroniser les modèles.
La méthode naïve (illustré ci-dessous) consiste à transférer les dégradés d'un GPU vers tous les autres GPU, et chaque transfert est équivalent à la taille du modèle.
Bien sûr, il existe des moyens d’optimiser cela, mais ils sont également pratiquement irréalisables à cette échelle.
Voici quelques bibliothèques qui résolvent ce problème.
Megatron est une bibliothèque d'optimisation développée par NVIDIA pour former des modèles de transformateurs à grande échelle tout en répondant aux limites de l'apprentissage distribué traditionnel.
La bibliothèque affirme que l'on peut former des LLM de plusieurs milliards de paramètres en utilisant le parallélisme de modèles . L'idée principale est de répartir les paramètres du modèle sur plusieurs GPU.
Le parallélisme des modèles peut être combiné avec le parallélisme des données (discuté dans la section ci-dessus).
L'article correspondant publié par NVIDIA mentionne qu'ils ont entraîné efficacement des modèles basés sur des transformateurs jusqu'à 8,3 milliards de paramètres sur 512 GPU NVIDIA.
Franchement, ce n’est pas raisonnablement important, compte tenu de l’ampleur des modèles actuels.
Mais cela a été considéré comme un grand exploit car Megatron a été lancé pour la première fois en 2019 (ère pré-GPT-3) et construire des modèles d’une telle échelle était intrinsèquement difficile à l’époque.
En fait, depuis 2019, quelques itérations supplémentaires de Megatron ont été proposées.
Commencez ici:
DeepSpeed est une bibliothèque d'optimisation développée par Microsoft qui résout les problèmes de l'apprentissage distribué.
Le
Rappelez-vous que dans la discussion ci-dessus, la configuration d'apprentissage distribué impliquait beaucoup de redondance :
Chaque GPU avait les mêmes poids de modèle.
Chaque GPU conservait une copie de l'optimiseur.
Chaque GPU stockait la même copie dimensionnelle des états de l'optimiseur.
L'algorithme ZeRO (Zero Redundancy Optimizer), comme son nom l'indique, élimine entièrement cette redondance en répartissant complètement les poids, les gradients et les états de l'optimiseur entre tous les GPU.
Ceci est illustré ci-dessous :
Sans entrer dans les détails techniques, cette idée intelligente a permis d’accélérer le processus d’apprentissage avec une charge mémoire considérablement réduite.
De plus, il accélère l’étape d’optimisation d’un facteur N (nombre de GPU).
Le document affirme que ZeRO peut évoluer au-delà de 1 000 milliards de paramètres .
Cependant, dans leurs propres expériences, les chercheurs ont construit un modèle à paramètres 17B – Turing-NLG , le plus grand modèle au monde au 12 mai 2020.
Commencez ici:
En 2022 (après GPT-3), NVIDIA (le créateur de Megatron) et Microsoft (le créateur de DeepSpeed) ont travaillé ensemble pour proposer
Ils l'ont utilisé pour construire le Megatron-Turing NLG, qui avait des paramètres de 530B, soit trois fois plus grands que le GPT-3.
Bien que DeepSpeed soit assez puissant, il possède également diverses limitations pratiques.
Par exemple:
La mise en œuvre de DeepSpeed peut devenir inefficace sur de grands clusters en raison des frais de communication et de la dépendance à l'égard du système.
De plus, DeepSpeed transforme considérablement le pipeline de formation, ce qui peut introduire des bugs et nécessiter des tests importants.
YaFSDP est une nouvelle bibliothèque de parallélisme de données qui est une version améliorée de
En un mot, comparé à FSDP et DeepSpeed, YaFSDP :
FlattenParameter
, qui combine plusieurs paramètres de couche en un seul grand paramètre avant le partitionnement, ce qui améliore encore l'efficacité et l'évolutivité de la communication.
Le tableau suivant compare les résultats de YaFSDP avec les techniques actuelles :
Commencez ici:
Avec cela, nous en avons fini avec la formation et la mise à l’échelle. La prochaine étape consiste à tester et évaluer :
Un défi inhérent à l'évaluation des LLM est qu'ils ne peuvent pas être évalués sur la base de quelques mesures telles que la précision, le score F1, le rappel, etc.
Au lieu de cela, ils doivent être évalués selon plusieurs dimensions telles que la fluidité, la cohérence, l’exactitude factuelle et la robustesse face aux attaques adverses, et cette évaluation est souvent subjective.
Différents outils nous y aident :
Giskard est une bibliothèque open source qui nous aide à détecter les problèmes suivants avec les LLM :
Il fonctionne avec tous les frameworks populaires, tels que PyTorch, TensorFlow, HuggingFace, Scikit-Learn, XGBoost et LangChain. De plus, on peut également l'intégrer avec HuggingFace, Weights & Biases et MLFlow.
Commencez ici:
Evaluation Harness est un autre outil open source qui soumet les LLM à un processus d'évaluation robuste.
Essentiellement, chacun peut choisir les références par rapport auxquelles il souhaite tester son modèle, les exécuter dans le système, puis recevoir les résultats.
Depuis mai 2024, il propose plus de 60 références académiques standard pour les LLM et une prise en charge simple des invites personnalisées et des mesures d'évaluation, ce qui est difficile avec Giskard.
Voici quelques points de repère courants :
Commencez ici:
Il existe quelques outils supplémentaires, comme Truera et DeepChecks, mais ils sont beaucoup plus complets car ils fournissent des solutions d'évaluation et d'observabilité de bout en bout. Nous les aborderons dans la dernière section.
Si vous souhaitez entrer plus en détail sur l’évaluation LLM, je vous recommande cet article :
Sur cette base, nous avons évalué notre modèle et l'avons déployé en toute confiance :
Notez que lorsque nous parlons de « déploiement », nous n’entendons pas pousser le modèle vers le cloud. N’importe qui peut faire ça.
Il s'agit plutôt d'atteindre l'efficacité lors des étapes d'inférence afin de réduire les coûts.
vLLM est probablement l'un des meilleurs outils open source pour améliorer l'efficacité de l'inférence LLM.
En un mot, vLLM utilise un nouvel algorithme d'attention pour accélérer l'inférence sans compromettre les performances du modèle.
Les résultats suggèrent qu'il peut offrir un débit environ 24 fois supérieur à celui des HuggingFace Transformers sans nécessiter de modification du modèle.
En conséquence, cela rend les services LLM beaucoup plus abordables pour tout le monde.
Commencez ici:
CTranslate2 est un autre moteur d'inférence rapide populaire pour les modèles Transformer.
Pour faire court, la bibliothèque implémente de nombreuses techniques d'optimisation des performances pour les LLM, telles que :
L'utilisation de techniques accélère et réduit considérablement l'utilisation de la mémoire des modèles Transformer, à la fois sur le CPU et le GPU.
Commencez ici:
Le modèle a été mis à l'échelle, testé, produit et déployé et traite désormais les demandes des utilisateurs.
Cependant, il est essentiel de disposer de mécanismes de journalisation robustes pour surveiller les performances du modèle, suivre son comportement et garantir qu'il fonctionne comme prévu dans l'environnement de production.
Cela s'applique non seulement aux LLM, mais à tous les modèles ML du monde réel.
Voici quelques outils et techniques essentiels pour la journalisation dans le cadre des LLM.
Truera n'est pas seulement une solution de journalisation.
Au lieu de cela, il fournit également des fonctionnalités supplémentaires pour tester et évaluer les LLM.
Cela en fait une solution d'observabilité beaucoup plus complète, qui fournit des outils pour suivre les performances de production, minimiser les problèmes tels que les hallucinations et garantir des pratiques d'IA responsables.
Voici quelques fonctionnalités clés :
Observabilité LLM : TruEra fournit une observabilité détaillée pour les applications LLM. Les utilisateurs peuvent évaluer leurs applications LLM à l'aide de fonctions de retour d'information et de suivi des applications, ce qui permet d'optimiser les performances et de minimiser les risques tels que les hallucinations.
Surveillance et reporting évolutifs : la plate-forme offre une surveillance, des rapports et des alertes complets en termes de performances, d'entrées et de sorties du modèle. Cette fonctionnalité garantit que tous les problèmes tels que la dérive du modèle, le surajustement ou les biais sont rapidement identifiés et résolus grâce à une analyse unique des causes profondes de l'IA.
[IMPORTANT] TruLens : TruLens de TruEra est une bibliothèque open source qui permet aux utilisateurs de tester et de suivre leurs applications LLM.
Et plus.
L'un des avantages de TruEra est qu'il peut s'intégrer de manière transparente aux piles d'IA existantes, y compris les solutions de développement de modèles prédictifs telles qu'AWS SageMaker, Microsoft Azure, Vertex.ai, etc.
Il prend également en charge le déploiement dans divers environnements, notamment le cloud privé, AWS, Google ou Azure, et s'adapte pour répondre à des volumes de modèles élevés.
Commencez ici:
Deepchecks est une autre solution complète comme TruEra, qui fournit des solutions d'évaluation, de test et de surveillance LLM.
Cependant, la bibliothèque ne se limite pas aux LLM. Au lieu de cela, de nombreux data scientists et ingénieurs en apprentissage automatique exploitent DeepChecks pour divers modèles d'apprentissage automatique dans divers domaines.
Cela dit, leur cadre d’évaluation n’est pas aussi complet et approfondi que celui de Giskard, l’outil dont nous avons parlé plus tôt.
Commencez ici:
Comme nous voulions que cet article soit concis et rapide, nous n'avons pas couvert tous les outils disponibles, mais nous avons présenté les outils qui seront suffisants pour 90 % des cas d'utilisation.
Voici quelques exemples d’outils que nous avons décidé d’omettre.
Si vous souhaitez approfondir davantage de piles d'outils, consultez ceci
Merci d'avoir lu!