Pour gérer vos consentements :

Machine learning : comment AWS aborde l’entraînement distribué

Distribuer le modèle ou les données ? C’est l’une des questions inhérentes à l’entraînement de modèles d’apprentissage automatique. En particulier de deep learning. AWS y a consacré plusieurs annonces dans le cadre de sa conférence re:Invent, en cours jusqu’au 18 décembre.

L’hyperscaler américain a dans sa « boîte à outils » SageMaker deux bibliothèques logicielles qui permettent d’implémenter l’une et l’autre approche. Elles couvrent pour le moment les frameworks PyTorch et TensorFlow.

La méthode la plus commune pour l’entraînement distribué consiste à faire travailler un modèle sur des sous-ensembles (mini-batchs) d’un jeu de données. Et d’estimer à chaque fois un gradient d’erreur qui permet de mettre à jour le coefficient.

Sur le papier, ce modèle itératif assure une croissance linéaire du temps d’entraînement, fonction de la taille du jeu de données. Surtout, il se prête à la parallélisation, le modèle traitant individuellement chaque élément des mini-batchs.

Partitionner les données…

Généralement, on commence par distribuer les sous-ensembles de données. Cela a pour effet d’accélérer leur traitement. Mais fait aussi naître une difficulté : il faut centraliser les gradients de toutes les tâches qui composent chaque mini-batch. Ce processus, nommé allreduce,  prend d’autant plus d’empreinte que le cluster d’entraînement grandit.

Le projet Horovod, aujourd’hui intégré aux principales bibliothèques de machine learning, implémente un algorithme asynchrone appelé ring-allreduce. L’image de l’anneau (ring) reflète son fonctionnement : cyclique et directionnel. Chaque nœud reçoit le gradient de son « prédécesseur », l’applique en même temps que celui qu’il a lui-même calculé, puis transmet le tout à son voisin. Un tel système a l’avantage de réduire les communications entre nœuds. Pour n GPU, chacun traite en l’occurrence 2 x (n-1) messages.

AWS s’appuie sur ce modèle, mais va plus loin, en supprimant toute communication directe entre les GPU. Chacun stocke son gradient en mémoire et, passé un certain palier de capacité, le divise en autant de parties qu’il existe de serveurs de paramètres. Ces serveurs sont pris en charge par les CPU des instances d’entraînement, qui centralisent les gradients et les redistribuent à tous les GPU. Tous participent de manière égale (ils traitent le même volume de données).

… ou les modèles

Il arrive qu’un modèle ne puisse se satisfaire d’un seul CPU ou GPU (GPT-3, le dernier-né d’OpenAI, entre dans cette catégorie avec ses 175 milliards de paramètres). Dans ce cas, on peut tenter d’en modifier les hyperparamètres, de réduire la taille des mini-batchs ou encore de compresser le gradient. Mais parfois, il faut distribuer le modèle lui-même… et envoyer à chacune de ses parties tous les mini-batchs.

Cette approche, sérialisée par essence, entraîne souvent une sous-utilisation des GPU. Les principaux frameworks de machine learning y ont apporté une solution partielle à travers l’exécution planifiée. Pour aller un peu plus vers le parallélisme, AWS reprend cette brique et y associe une architecture de micro-batchs entrelacés. Il y ajoute une option de partitionnement automatique des modèles, avec deux critères au choix : privilégier la vitesse ou les économies de mémoire.

re:Invent 2020 : ode à SageMaker
AWS a multiplié, ces derniers jours, les annonces relatives à SageMaker. Parmi elles :
  • Extension du débogueur, avec la possibilité de suivre l’usage des ressources système (fonctionne avec PyTorch et TensorFlow)
  • Clarify, une marque qui regroupe des outils dédiés à la détection des biais et à la compréhension des résultats que fournissent les modèles
  • Edge Manager, une offre de gestion du machine learning en périphérie
  • Feature Store, un datastore destiné à centraliser les paramètres utilisés pour la préparation des données
  • Jumpstart, qui donne accès à un catalogue de modèles et de workflows prêts à l’emploi
  • Pipelines, pour la mise en place du CI/CD
  • Data Wrangler, une interface visuelle pour la préparation de données

Illustration principale © psdesign1 – Fotolia

Recent Posts

AWS abandonne WorkDocs, son concurrent de Dropbox

Un temps pressenti pour constituer le socle d'une suite bureautique AWS, Amazon WorkDocs arrivera en…

16 heures ago

Eviden structure une marque de « serveurs IA »

Eviden regroupe cinq familles de serveurs sous la marque BullSequana AI. Et affiche le supercalculateur…

20 heures ago

SSE : l’expérience se simplifie plus que les prix

Le dernier Magic Quadrant du SSE (Secure Service Edge) dénote des tarifications et des modèles…

22 heures ago

IA générative : les lignes directrices de l’ANSSI

Formats de paramètres, méthodes d'apprentissage, mutualisation GPU... Voici quelques-unes des recommandations de l'ANSSI sur l'IA…

2 jours ago

De la marque blanche à l’« exemption souveraine », Broadcom fait des concessions aux fournisseurs cloud

À la grogne des partenaires VMware, Broadcom répond par diverses concessions.

2 jours ago

iPadOS finalement soumis au DMA

iPadOS a une position suffisamment influente pour être soumis au DMA, estime la Commission européenne.

2 jours ago