Présentation du parallélisme des modèles - Amazon SageMaker

Présentation du parallélisme des modèles

On appelle parallélisme des modèles le processus consistant à diviser un modèle entre plusieurs périphériques ou nœuds (des instances équipées de GPU, par exemple) et à créer un pipeline efficace pour entraîner le modèle sur ces périphériques et optimiser ainsi l'utilisation du GPU.

Parcourez les sections de cette page pour en savoir plus sur le parallélisme des modèles, notamment sur la façon dont il peut aider à résoudre les problèmes rencontrés lors de l'entraînement de grands modèles ML, et sur les considérations importantes relatives à son intégration dans votre script d'entraînement ML.

Qu'est-ce que le parallélisme des modèles ?

L'augmentation de la taille du modèle de deep learning (couches et paramètres) peut se traduire par une meilleure précision, mais il y a une limite à la taille maximale du modèle que vous pouvez faire tenir dans un seul GPU. Lors de l'entraînement de modèles de deep learning, les limitations de mémoire GPU peuvent constituer un goulet d'étranglement :

  • En limitant la taille du modèle que vous entraînez. Comme les grands modèles ont tendance à être plus précis, cela influe directement sur la précision du modèle entraîné.

  • En limitant la taille du lot avec lequel vous entraînez, ce qui réduit l'utilisation du GPU et ralentit l'entraînement.

Pour surmonter les limitations associées à l'entraînement d'un modèle sur un GPU unique, vous pouvez utiliser le parallélisme des modèles afin de distribuer et d'entraîner votre modèle sur plusieurs périphériques informatiques.

Considérations importantes relatives à l'utilisation du parallélisme des modèles

Lorsque vous utilisez le parallélisme des modèles, vous devez tenir compte des éléments suivants :

  • Comment diviser votre modèle entre les périphériques : pour déterminer la meilleure stratégie de partitionnement, utilisez le graphe de calcul de votre modèle, les tailles des paramètres et des activations du modèle, et vos contraintes en termes de ressources (par exemple, le temps par rapport à la mémoire).

    Pour réduire le temps et les efforts nécessaires pour diviser efficacement votre modèle, vous pouvez utiliser les fonctions de division automatisée de modèle proposées par la bibliothèque de modèles parallèles distribués d'Amazon SageMaker.

  • Exécution du parallélisme : l'entraînement d'un modèle, c'est-à-dire les calculs vers l'avant et la propagation vers l'arrière, est intrinsèquement séquentiel, chaque opération devant attendre que ses entrées soient calculées avant qu'une autre opération puisse commencer. Dans ces conditions, il n'est pas facile de paralléliser les transmissions vers l'avant et vers l'arrière de l'entraînement deep learning, et la simple division d'un modèle entre plusieurs GPU peut conduire à une sous-utilisation des périphériques. Par exemple, comme une couche sur un GPU i+1 doit attendre la sortie d'une couche sur un GPU i, un GPU i+1 reste inactif pendant cette période d'attente.

    La bibliothèque de modèles parallèles peut exécuter un vrai parallélisme via une exécution de pipeline et la création d'un calendrier de calcul efficace dans lequel différents périphériques peuvent travailler simultanément sur des transmissions vers l'avant et vers l'arrière pour différents échantillons de données.

Afin de savoir comment utiliser la bibliothèque pour diviser efficacement votre modèle entre les périphériques et améliorer ainsi leur utilisation pendant l'entraînement, consultez Principales fonctions du parallélisme des modèles distribués SageMaker.