Comment Hugging Face utilise PyTorch pour les grands modèles IA
Découvrez comment Hugging Face permet de faire fonctionner des modèles IA massifs même sur des appareils limités grâce à PyTorch.
La capacité de charger et d’exécuter des modèles de langage de grande envergure, comme ceux conçus par Meta AI et BigScience, dépasse souvent les capacités matérielles des utilisateurs lambda. Hugging Face a relevé ce défi en élargissant l’accès à ces modèles via des optimisations ingénieuses utilisant PyTorch, même sur du matériel peu puissant comme Colab, où la RAM et l’espace disque sont restreints.
Optimisation du chargement des modèles avec PyTorch
Tenter de charger directement un modèle tel que le OPT-6.7B sur un serveur standard est souvent impossible sans ressources exceptionnelles. Un modèle avec 6,7 milliards de paramètres exige tout d’abord environ 26,8 Go en RAM pour créer le modèle, à précision standard. Avec une approche innovante utilisant PyTorch, Hugging Face permet de créer un modèle vide, sans poids, réduisant considérablement les exigences en mémoire lors de l’initialisation.
Utilisation du dispositif ‘meta’ dans PyTorch
Depuis PyTorch 1.9, le dispositif ‘meta’ a été introduit, permettant de créer des tenseurs simplement définis par leur forme sans occuper d’espace en RAM. Cela permet donc de contourner les limitations mémoire tout en facilitant la manipulation de modèles géants comme le BLOOM avant de charger progressivement les poids nécessaires en mémoire.
Création de cartes de dispositifs pour les modèles lourds
Pour organiser efficacement la distribution des poids du modèle sur les ressources disponibles (GPU et CPU), Hugging Face utilise une méthode calculant automatiquement une ‘carte de dispositifs’. Celle-ci maximise l’utilisation des GPU avant de solliciter la RAM du CPU et enfin de prévoir un déchargement sur disque si nécessaire. Pour le modèle OPT-13B par exemple, une distribution optimisée place la majorité des opérations critiques sur le GPU.
Hugging Face démocratise l’accès aux modèles IA massifs grâce à PyTorch et des innovations techniques astucieuses. Les professionnels peuvent désormais exploiter ces ressources sans matériel avancé.
« Avec la capacité de PyTorch à gérer des modèles via des dispositifs ‘meta’, Hugging Face étend les possibilités pour les développeurs. »
Hugging Face Blog
La démarche d’Hugging Face et PyTorch permet de redéfinir les standards du développement de l’IA en rendant les modèles complexes accessibles et utilisables de manière plus abordable et efficiente.