Microsoft a lancé DeepSpeed, une bibliothèque d'optimisation deep learning pour PyTorch, qui doit permettre de réduire l’usage mémoire pour entraîner les modèles afin d’obtenir un meilleur traitement parallèle sur le matériel existant. D’après un message posté sur le blog de Microsoft Research pour annoncer le framework, DeepSpeed améliore l’entraînement des modèles PyTorch grâce à une technologie d'optimisation de la mémoire qui augmente le nombre de paramètres possibles d’entraînement des modèles. Elle fait aussi un meilleur usage de la mémoire locale du GPU et a besoin d’effectuer de minimes modifications dans une application PyTorch existante pour être utile.
Cette intervention minimale sur le code PyTorch existant devrait le plus grand impact. À mesure que les bibliothèques d'apprentissage machine se renforcent et que de plus en plus d'applications en dépendent, le besoin en frameworks se réduit et il devient plus intéressant de rendre les frameworks existants plus performants et plus évolutifs. Le code PyTorch est déjà rapide en termes de vitesse de calcul et de développement, mais il est toujours possible de l'améliorer. Les applications écrites pour PyTorch peuvent utiliser DeepSpeed sans avoir besoin de beaucoup réécrire le code. Ce qui évite de repartir de zéro avec un autre framework.
Améliorer le parallélisme natif et économe en mémoire
L’une des solutions utilisées par DeepSpeed pour améliorer PyTorch, consiste à améliorer le parallélisme natif. Dans un exemple, fourni par Microsoft dans la documentation de DeepSpeed, dans la tentative d’entraînement d'un modèle utilisant le système Distributed Data Parallel de PyTorch sur des GPU Nvidia V100 dotés de 32 Go de mémoire, « les 1,5 milliard de modèles de paramètres ont épuisé la mémoire », alors que DeepSpeed a pu atteindre 6 milliards de paramètres sur le même matériel. Autre avantage de DeepSpeed : il sait aussi utiliser la mémoire des GPU de manière plus efficace pour entraîner les modèles de deep learning. En répartissant l’entraînement des modèles entre les GPU, DeepSpeed permet de conserver les données nécessaires à portée de main, de réduire les besoins en mémoire de chaque GPU et de diminuer la surcharge de communication entre les GPU.
Un troisième avantage de la bibliothèque DeepSpeed, c’est qu’elle permet d’utiliser plus de paramètres pendant l'apprentissage du modèle afin d'améliorer la précision des prédictions. Généralement, l'optimisation hyperparamétrique, qui consiste à régler les paramètres ou les variables du processus d’entraînement lui-même, peut améliorer la précision d'un modèle, mais au prix d'un effort manuel et d'une expertise. Pour se passer de cette expertise et de ce travail humain, de nombreux frameworks d'apprentissage machine prennent désormais en charge une sorte d'optimisation automatisée des hyperparamètres. Microsoft affirme que DeepSpeed permet d’entraîner « des modèles d'apprentissage profond avec 100 milliards de paramètres » sur « la génération actuelle de clusters GPU, à un débit de trois à cinq fois supérieur à celui du meilleur système actuel ».
DeepSpeed est disponible sous forme de logiciel open source sous licence du MIT. Les tutoriels dans le référentiel officiel fonctionnent avec Microsoft Azure, même si le cloud public de l’éditeur n'est pas nécessaire pour utiliser DeepSpeed.
Commentaire