... | ... | @@ -13,7 +13,7 @@ La prochaine séquence est : |
|
|
|
|
|
|** Passer à la vitesse supérieure : l’accélération matérielle ?**|
|
|
|
|--|
|
|
|
|**L'apprentissage distribué** est une technique d'apprentissage automatique qui permet de diviser la tâche d'apprentissage en plusieurs sous-tâches, qui sont exécutées sur plusieurs machines ou processeurs en parallèle. Cette approche permet de traiter de grandes quantités de données et des modèles complexes plus rapidement qu'avec une seule machine. De plus, le fait de répartir la charge de calcul sur plusieurs ordinateurs permet de réduire le temps de calcul nécessaire pour entraîner un modèle. Cette approche permet de réduire la consommation d'énergie globale nécessaire pour terminer l'apprentissage,donc favorablement écologique pour l'environement. L'apprentissage peut être réalisée de deux manières principales : <br><br>**Le parallélisme des données (Data Parallelism)** consiste à diviser les données d'entraînement entre plusieurs processeurs ou machines, de sorte que chaque processeur traite une partie différente des données. Chaque processeur calcule alors les gradients locaux à partir des données qu'il a traitées, puis les agrège en un gradient global qui est utilisé pour mettre à jour les paramètres du modèle. Cette approche est utile lorsque la taille des données est très grande et que le modèle peut tenir dans la mémoire de chaque processeur. <br><br>**Le parallélisme du modèle (Model Parallelism)** consiste à diviser le modèle en plusieurs parties et à les exécuter sur différents processeurs ou machines. Chaque processeur traite une partie différente du modèle, calculant les gradients locaux et les agrégeant ensuite pour mettre à jour les paramètres globaux. Cette approche est utile lorsque le modèle est trop grand pour tenir dans la mémoire de chaque processeur.<br><br> **L'hybridation du parallélisme** est une approche qui combine différentes formes de parallélisme pour améliorer les performances de l'apprentissage automatique. Parmi les techniques d'hybridation de parallélisme les plus courantes, on peut citer le pipeline de modèles (Model Pipelining), qui utilise à la fois le parallélisme de données et le parallélisme de modèle pour réduire le temps d'entraînement global du modèle.<br><br>Au menu de cette séquence : <br>- Présentation de Jean-Zay et calcul sur GPU<br>- Distribution du calcul - Data Parallelism - Model Parallelism<br>- Hybrid Parallelism - Pipelines<br>- Deepspeed - Optimisation du Data parallelism <br> - Bonnes pratiques pour un apprentissage distribué<br> <br>Séquence animée par Bertrand (CNRS/IDRIS) et Nathan (CNRS/IDRIS)<br>Durée : 2h<br><br> <img width=250 src="uploads/f4ed191c0c1b4b568ec67b03fb812916/Acceleration.jpg">
|
|
|
|**L'apprentissage distribué** est une technique d'apprentissage automatique qui permet de diviser la tâche d'apprentissage en plusieurs sous-tâches, qui sont exécutées sur plusieurs machines ou processeurs en parallèle. Cette approche permet de traiter de grandes quantités de données et des modèles complexes plus rapidement qu'avec une seule machine. De plus, le fait de répartir la charge de calcul sur plusieurs ordinateurs permet de réduire le temps de calcul nécessaire pour entraîner un modèle. Cette approche permet de réduire la consommation d'énergie globale nécessaire pour terminer l'apprentissage, donc favorablement écologique pour l'environement. L'apprentissage peut être réalisée de deux manières principales : <br><br>**Le parallélisme des données (Data Parallelism)** consiste à diviser les données d'entraînement entre plusieurs processeurs ou machines, de sorte que chaque processeur traite une partie différente des données. Chaque processeur calcule alors les gradients locaux à partir des données qu'il a traitées, puis les agrège en un gradient global qui est utilisé pour mettre à jour les paramètres du modèle. Cette approche est utile lorsque la taille des données est très grande et que le modèle peut tenir dans la mémoire de chaque processeur. <br><br>**Le parallélisme du modèle (Model Parallelism)** consiste à diviser le modèle en plusieurs parties et à les exécuter sur différents processeurs ou machines. Chaque processeur traite une partie différente du modèle, calculant les gradients locaux et les agrégeant ensuite pour mettre à jour les paramètres globaux. Cette approche est utile lorsque le modèle est trop grand pour tenir dans la mémoire de chaque processeur.<br><br> **L'hybridation du parallélisme** est une approche qui combine différentes formes de parallélisme pour améliorer les performances de l'apprentissage automatique. Parmi les techniques d'hybridation de parallélisme les plus courantes, on peut citer le pipeline de modèles (Model Pipelining), qui utilise à la fois le parallélisme de données et le parallélisme de modèle pour réduire le temps d'entraînement global du modèle.<br><br>Au menu de cette séquence : <br>- Présentation de Jean-Zay et calcul sur GPU<br>- Distribution du calcul - Data Parallelism - Model Parallelism<br>- Hybrid Parallelism - Pipelines<br>- Deepspeed - Optimisation du Data parallelism <br> - Bonnes pratiques pour un apprentissage distribué<br> <br>Séquence animée par Bertrand (CNRS/IDRIS) et Nathan (CNRS/IDRIS)<br>Durée : 2h<br><br> <img width=250 src="uploads/f4ed191c0c1b4b568ec67b03fb812916/Acceleration.jpg">
|
|
|
|
|
|
A propos de la **[formation Fidle](https://fidle.cnrs.fr/presentation)**
|
|
|
Découvrez le **[programme 2022/23](Fidle à distance/Programme)**
|
... | ... | |