Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
@Xebiconfr #Xebicon18 @YoannBENOIT
Build the future
Boostez vos modèles avec du Deep Learning distribué
Yoann BENOIT, Data...
@Xebiconfr #Xebicon18 @YoannBENOIT
Yoann BENOIT
Data Scientist
@YoannBENOIT
@Xebiconfr #Xebicon18 @YoannBENOIT
Deep Learning
@Xebiconfr #Xebicon18 @YoannBENOIT
Un vaste champ des possibilités
@Xebiconfr #Xebicon18 @YoannBENOIT
Deep Learning … sur mon laptop
modèle
transfert de
connaissance modèle
Réseaux de neuro...
@Xebiconfr #Xebicon18 @YoannBENOIT
Les limites de mon laptop
Temps
d’entraînement
trop long
@Xebiconfr #Xebicon18 @YoannBENOIT
Les limites de mon laptop
Tuning difficile
@Xebiconfr #Xebicon18 @YoannBENOIT
Les limites de mon laptop
Taille du
modèle trop
grande
@Xebiconfr #Xebicon18 @YoannBENOIT
Du CPU … au GPU
@Xebiconfr #Xebicon18 @YoannBENOIT
Du CPU … au GPU
Distributed Deep Learning
@Xebiconfr #Xebicon18 @YoannBENOIT
Distributed Deep Learning
@Xebiconfr #Xebicon18 @YoannBENOIT
Un réseau de neurones est composé d’opérations mathématiques enchaînées
Op. 1
Op. 2.1 O...
@Xebiconfr #Xebicon18 @YoannBENOIT
Data Parallelism vs Model Parallelism
Data Parallelism
Réplication du modèle sur plusie...
@Xebiconfr #Xebicon18 @YoannBENOIT
Data Parallelism
@Xebiconfr #Xebicon18 @YoannBENOIT
Data Parallelism - Duplication du modèle sur chaque machine
Machine 1
Op. 1
Op. 2.1 Op....
@Xebiconfr #Xebicon18 @YoannBENOIT
Data Parallelism - Duplication du modèle sur chaque machine
Machine 1
Op. 1
Op. 2.1 Op....
@Xebiconfr #Xebicon18 @YoannBENOIT
Data Parallelism - Duplication du modèle sur chaque machine
Machine 1
Op. 1
Op. 2.1 Op....
@Xebiconfr #Xebicon18 @YoannBENOIT
Data Parallelism - Propriétés
Copie du même modèle sur chaque machine
Une partie du bat...
@Xebiconfr #Xebicon18 @YoannBENOIT
Data Parallelism - Combiner les résultats
Synchronisation
poids gradients
synchrone asy...
@Xebiconfr #Xebicon18 @YoannBENOIT
Machine 4Machine 3Machine 2Machine 1
Data Parallelism - Synchronisation
Op. 1
Op. 2.1 O...
@Xebiconfr #Xebicon18 @YoannBENOIT
Machine 4Machine 3Machine 2Machine 1
Data Parallelism - Synchronisation
Op. 1
Op. 2.1 O...
@Xebiconfr #Xebicon18 @YoannBENOIT
Machine 4Machine 3Machine 2Machine 1
Data Parallelism - Synchronisation des poids
Op. 1...
@Xebiconfr #Xebicon18 @YoannBENOIT
Machine 4Machine 3Machine 2Machine 1
Data Parallelism - Synchronisation des poids
Op. 1...
@Xebiconfr #Xebicon18 @YoannBENOIT
Machine 4Machine 3Machine 2Machine 1
Data Parallelism - Moyenne des poids
Op. 1
Op. 2.1...
@Xebiconfr #Xebicon18 @YoannBENOIT
Machine 4Machine 3Machine 2Machine 1
Data Parallelism - Descente de gradient stochastiq...
@Xebiconfr #Xebicon18 @YoannBENOIT
Data Parallelism - Quand l’utiliser ?
Peu de paramètres
Calculs de gradients complexes
...
@Xebiconfr #Xebicon18 @YoannBENOIT
Model Parallelism
@Xebiconfr #Xebicon18 @YoannBENOIT
Model Parallelism
Op. 1
Op. 2.1 Op. 2.2
Op. 3
@Xebiconfr #Xebicon18 @YoannBENOIT
Machine 4
Machine 2 Machine 3
Machine 1
Model Parallelism
Op. 1
Op. 2.1 Op. 2.2
Op. 3
@Xebiconfr #Xebicon18 @YoannBENOIT
Model Parallelism - Propriétés
Opérations et poids répartis sur chaque machine
Tout le ...
@Xebiconfr #Xebicon18 @YoannBENOIT
Model Parallelism - Quand l’utiliser ?
Beaucoup de paramètres
Ne tient pas en mémoire
E...
@Xebiconfr #Xebicon18 @YoannBENOIT
Data + Model Parallelism
@Xebiconfr #Xebicon18 @YoannBENOIT
Data + Model Parallelism
Op. 1
Op. 2.1 Op. 2.2
Op. 3
@Xebiconfr #Xebicon18 @YoannBENOIT
Data + Model Parallelism
G4
G2 G3
G1
Op. 1
Op. 2.1 Op. 2.2
Op. 3
Machine 3Machine 2Mach...
@Xebiconfr #Xebicon18 @YoannBENOIT
Distributed Deep Learning
@Xebiconfr #Xebicon18 @YoannBENOIT
Machines multi-GPU
@Xebiconfr #Xebicon18 @YoannBENOIT
Frameworks pour le Deep Learning distribué
@Xebiconfr #Xebicon18 @YoannBENOIT
Clusters Hadoop
@Xebiconfr #Xebicon18 @YoannBENOIT
Deep Learning distribué sur des clusters Hadoop
➔ Elephas
➔ Distributed Keras
➔ TensorF...
@Xebiconfr #Xebicon18 @YoannBENOIT
Deep Learning distribué sur des clusters Hadoop
➔ Deep Learning Pipelines
➔ DeepLearnin...
@Xebiconfr #Xebicon18 @YoannBENOIT
Cloud
@Xebiconfr #Xebicon18 @YoannBENOIT
Distributed Deep Learning
@Xebiconfr #Xebicon18 @YoannBENOIT
Quand l’utiliser ?
Réseaux de neurones avec contraintes de poids partagés
Réseaux de ne...
@Xebiconfr #Xebicon18 @YoannBENOIT
Que choisir ?
Multi-GPU
Distribué
Distribué
Machine seule
Multi-GPU
Distribué
Data Size...
@Xebiconfr #Xebicon18 @YoannBENOIT
Build the future
MERCI
@Xebiconfr #Xebicon18 @YoannBENOIT
Références
➔ http://timdettmers.com/2014/10/09/deep-learning-data-parallelism/
➔ https:...
@Xebiconfr #Xebicon18 @YoannBENOIT
Frameworks
➔ http://maxpumperla.com/elephas/
➔ https://github.com/yahoo/TensorFlowOnSpa...
Upcoming SlideShare
Loading in …5
×

XebiCon'18 - Boostez vos modèles avec du Deep Learning distribué

47 views

Published on

Lorsque la quantité de données est très grande et que l'architecture de votre réseau de neurones est complexe, la question du temps d'entraînement et de la capacité de votre machine deviennent primordiales. Un entraînement de modèle peut vite prendre plusieurs heures voire jours, ou même ne pas tenir en mémoire. Il est alors temps de parler de Deep Learning distribué !

Au cours de cette présentation, nous allons voir différentes solutions et bonnes pratiques pour accélérer l'entraînement de modèles de Deep Learning en les distribuant sur un cluster ou sur des plateformes multi-GPUs.

Par Yoann Benoit, Data Scientist et Technical Officer chez Xebia

Toutes les informations sur xebicon.fr

Published in: Technology
  • Be the first to comment

  • Be the first to like this

XebiCon'18 - Boostez vos modèles avec du Deep Learning distribué

  1. 1. @Xebiconfr #Xebicon18 @YoannBENOIT Build the future Boostez vos modèles avec du Deep Learning distribué Yoann BENOIT, Data Scientist Xebia
  2. 2. @Xebiconfr #Xebicon18 @YoannBENOIT Yoann BENOIT Data Scientist @YoannBENOIT
  3. 3. @Xebiconfr #Xebicon18 @YoannBENOIT Deep Learning
  4. 4. @Xebiconfr #Xebicon18 @YoannBENOIT Un vaste champ des possibilités
  5. 5. @Xebiconfr #Xebicon18 @YoannBENOIT Deep Learning … sur mon laptop modèle transfert de connaissance modèle Réseaux de neurones peu profonds Transfer Learning
  6. 6. @Xebiconfr #Xebicon18 @YoannBENOIT Les limites de mon laptop Temps d’entraînement trop long
  7. 7. @Xebiconfr #Xebicon18 @YoannBENOIT Les limites de mon laptop Tuning difficile
  8. 8. @Xebiconfr #Xebicon18 @YoannBENOIT Les limites de mon laptop Taille du modèle trop grande
  9. 9. @Xebiconfr #Xebicon18 @YoannBENOIT Du CPU … au GPU
  10. 10. @Xebiconfr #Xebicon18 @YoannBENOIT Du CPU … au GPU Distributed Deep Learning
  11. 11. @Xebiconfr #Xebicon18 @YoannBENOIT Distributed Deep Learning
  12. 12. @Xebiconfr #Xebicon18 @YoannBENOIT Un réseau de neurones est composé d’opérations mathématiques enchaînées Op. 1 Op. 2.1 Op. 2.2 Op. 3
  13. 13. @Xebiconfr #Xebicon18 @YoannBENOIT Data Parallelism vs Model Parallelism Data Parallelism Réplication du modèle sur plusieurs machines Model Parallelism Opérations du modèle réparties entre plusieurs machines Op. 1 Op. 2.1 Op. 2.2 Op. 3
  14. 14. @Xebiconfr #Xebicon18 @YoannBENOIT Data Parallelism
  15. 15. @Xebiconfr #Xebicon18 @YoannBENOIT Data Parallelism - Duplication du modèle sur chaque machine Machine 1 Op. 1 Op. 2.1 Op. 2.2 Op. 3 Machine 3 Op. 1 Op. 2.1 Op. 2.2 Op. 3 Machine 4 Op. 1 Op. 2.1 Op. 2.2 Op. 3 Machine 2 Op. 1 Op. 2.1 Op. 2.2 Op. 3 Op. 1 Op. 2.1 Op. 2.2 Op. 3
  16. 16. @Xebiconfr #Xebicon18 @YoannBENOIT Data Parallelism - Duplication du modèle sur chaque machine Machine 1 Op. 1 Op. 2.1 Op. 2.2 Op. 3 Machine 3 Op. 1 Op. 2.1 Op. 2.2 Op. 3 Machine 4 Op. 1 Op. 2.1 Op. 2.2 Op. 3 Machine 2 Op. 1 Op. 2.1 Op. 2.2 Op. 3 N images
  17. 17. @Xebiconfr #Xebicon18 @YoannBENOIT Data Parallelism - Duplication du modèle sur chaque machine Machine 1 Op. 1 Op. 2.1 Op. 2.2 Op. 3 Machine 3 Op. 1 Op. 2.1 Op. 2.2 Op. 3 Machine 4 Op. 1 Op. 2.1 Op. 2.2 Op. 3 Machine 2 Op. 1 Op. 2.1 Op. 2.2 Op. 3 N images N/4 N/4 N/4 N/4
  18. 18. @Xebiconfr #Xebicon18 @YoannBENOIT Data Parallelism - Propriétés Copie du même modèle sur chaque machine Une partie du batch à chaque itération Pas de communication entre les différents threads en phase d’inférence Calcul des gradients indépendamment pour chaque copie
  19. 19. @Xebiconfr #Xebicon18 @YoannBENOIT Data Parallelism - Combiner les résultats Synchronisation poids gradients synchrone asynchrone centralisée distribuée
  20. 20. @Xebiconfr #Xebicon18 @YoannBENOIT Machine 4Machine 3Machine 2Machine 1 Data Parallelism - Synchronisation Op. 1 Op. 2.1 Op. 2.2 Op. 3 Op. 1 Op. 2.1 Op. 2.2 Op. 3 Op. 1 Op. 2.1 Op. 2.2 Op. 3 Op. 1 Op. 2.1 Op. 2.2 Op. 3
  21. 21. @Xebiconfr #Xebicon18 @YoannBENOIT Machine 4Machine 3Machine 2Machine 1 Data Parallelism - Synchronisation Op. 1 Op. 2.1 Op. 2.2 Op. 3 Op. 1 Op. 2.1 Op. 2.2 Op. 3 Op. 1 Op. 2.1 Op. 2.2 Op. 3 Op. 1 Op. 2.1 Op. 2.2 Op. 3 Serveur de paramètres
  22. 22. @Xebiconfr #Xebicon18 @YoannBENOIT Machine 4Machine 3Machine 2Machine 1 Data Parallelism - Synchronisation des poids Op. 1 Op. 2.1 Op. 2.2 Op. 3 Op. 1 Op. 2.1 Op. 2.2 Op. 3 Op. 1 Op. 2.1 Op. 2.2 Op. 3 Op. 1 Op. 2.1 Op. 2.2 Op. 3 Serveur de paramètres Wi Wi Wi Wi
  23. 23. @Xebiconfr #Xebicon18 @YoannBENOIT Machine 4Machine 3Machine 2Machine 1 Data Parallelism - Synchronisation des poids Op. 1 Op. 2.1 Op. 2.2 Op. 3 Op. 1 Op. 2.1 Op. 2.2 Op. 3 Op. 1 Op. 2.1 Op. 2.2 Op. 3 Op. 1 Op. 2.1 Op. 2.2 Op. 3 Serveur de paramètres
  24. 24. @Xebiconfr #Xebicon18 @YoannBENOIT Machine 4Machine 3Machine 2Machine 1 Data Parallelism - Moyenne des poids Op. 1 Op. 2.1 Op. 2.2 Op. 3 Op. 1 Op. 2.1 Op. 2.2 Op. 3 Op. 1 Op. 2.1 Op. 2.2 Op. 3 Op. 1 Op. 2.1 Op. 2.2 Op. 3 Serveur de paramètres : Wi+1 = ¼ ∑Wi+1,j Wi+1,1 Wi+1,2 Wi+1,3 Wi+1,4
  25. 25. @Xebiconfr #Xebicon18 @YoannBENOIT Machine 4Machine 3Machine 2Machine 1 Data Parallelism - Descente de gradient stochastique synchrone / asynchrone Op. 1 Op. 2.1 Op. 2.2 Op. 3 Op. 1 Op. 2.1 Op. 2.2 Op. 3 Op. 1 Op. 2.1 Op. 2.2 Op. 3 Op. 1 Op. 2.1 Op. 2.2 Op. 3 Serveur de paramètres : Wi+1 = Wi - ƛ*∑ΔWi,j ΔWi,1 ΔWi,2 ΔWi,3 ΔWi,4
  26. 26. @Xebiconfr #Xebicon18 @YoannBENOIT Data Parallelism - Quand l’utiliser ? Peu de paramètres Calculs de gradients complexes Ex : Couches convolutionnelles ou réseaux de neurones récurrents
  27. 27. @Xebiconfr #Xebicon18 @YoannBENOIT Model Parallelism
  28. 28. @Xebiconfr #Xebicon18 @YoannBENOIT Model Parallelism Op. 1 Op. 2.1 Op. 2.2 Op. 3
  29. 29. @Xebiconfr #Xebicon18 @YoannBENOIT Machine 4 Machine 2 Machine 3 Machine 1 Model Parallelism Op. 1 Op. 2.1 Op. 2.2 Op. 3
  30. 30. @Xebiconfr #Xebicon18 @YoannBENOIT Model Parallelism - Propriétés Opérations et poids répartis sur chaque machine Tout le batch est utilisé à chaque itération Communication constante entre les différents threads Synchroniser des poids après chaque produit matriciel
  31. 31. @Xebiconfr #Xebicon18 @YoannBENOIT Model Parallelism - Quand l’utiliser ? Beaucoup de paramètres Ne tient pas en mémoire Ex : Réseau de neurones très profond ou stacking de couches denses
  32. 32. @Xebiconfr #Xebicon18 @YoannBENOIT Data + Model Parallelism
  33. 33. @Xebiconfr #Xebicon18 @YoannBENOIT Data + Model Parallelism Op. 1 Op. 2.1 Op. 2.2 Op. 3
  34. 34. @Xebiconfr #Xebicon18 @YoannBENOIT Data + Model Parallelism G4 G2 G3 G1 Op. 1 Op. 2.1 Op. 2.2 Op. 3 Machine 3Machine 2Machine 1 G4 G2 G3 G1 Op. 1 Op. 2.1 Op. 2.2 Op. 3 G4 G2 G3 G1 Op. 1 Op. 2.1 Op. 2.2 Op. 3 G4 G2 G3 G1 Op. 1 Op. 2.1 Op. 2.2 Op. 3
  35. 35. @Xebiconfr #Xebicon18 @YoannBENOIT Distributed Deep Learning
  36. 36. @Xebiconfr #Xebicon18 @YoannBENOIT Machines multi-GPU
  37. 37. @Xebiconfr #Xebicon18 @YoannBENOIT Frameworks pour le Deep Learning distribué
  38. 38. @Xebiconfr #Xebicon18 @YoannBENOIT Clusters Hadoop
  39. 39. @Xebiconfr #Xebicon18 @YoannBENOIT Deep Learning distribué sur des clusters Hadoop ➔ Elephas ➔ Distributed Keras ➔ TensorFlowOnSpark
  40. 40. @Xebiconfr #Xebicon18 @YoannBENOIT Deep Learning distribué sur des clusters Hadoop ➔ Deep Learning Pipelines ➔ DeepLearning4j
  41. 41. @Xebiconfr #Xebicon18 @YoannBENOIT Cloud
  42. 42. @Xebiconfr #Xebicon18 @YoannBENOIT Distributed Deep Learning
  43. 43. @Xebiconfr #Xebicon18 @YoannBENOIT Quand l’utiliser ? Réseaux de neurones avec contraintes de poids partagés Réseaux de neurones qui ne tiennent pas en mémoire Très grande volumétrie de données Tuning de paramètres intensif
  44. 44. @Xebiconfr #Xebicon18 @YoannBENOIT Que choisir ? Multi-GPU Distribué Distribué Machine seule Multi-GPU Distribué Data Size NetworkSize
  45. 45. @Xebiconfr #Xebicon18 @YoannBENOIT Build the future MERCI
  46. 46. @Xebiconfr #Xebicon18 @YoannBENOIT Références ➔ http://timdettmers.com/2014/10/09/deep-learning-data-parallelism/ ➔ https://medium.com/rocketml/put-tensorflow-keras-and-mxnet-deeplearning-models-on-steroids-c34 0586989b5 ➔ https://www.slideshare.net/insideHPC/tutorial-on-deep-learning ➔ https://www.slideshare.net/hustwj/cikm-keynotenov2014 ➔ http://timdettmers.com/2014/10/09/deep-learning-data-parallelism/ ➔ http://timdettmers.com/2014/11/09/model-parallelism-deep-learning/ ➔ https://xiandong79.github.io/Intro-Distributed-Deep-Learning ➔ https://blog.skymind.ai/distributed-deep-learning-part-1-an-introduction-to-distributed-training-of-neur al-networks/ ➔ https://arxiv.org/pdf/1404.5997v2.pdf ➔ https://www.analytics-link.com/single-post/2017/10/09/INTEREST-Scaling-Deep-Learning-Highlights -From-The-Startupml-Workshop ➔ https://medium.com/@ntenenz/distributed-tensorflow-2bf94f0205c3 ➔ https://medium.com/netflix-techblog/distributed-neural-networks-with-gpus-in-the-aws-cloud-ccf71e8 2056b
  47. 47. @Xebiconfr #Xebicon18 @YoannBENOIT Frameworks ➔ http://maxpumperla.com/elephas/ ➔ https://github.com/yahoo/TensorFlowOnSpark ➔ https://github.com/cerndb/dist-keras ➔ https://docs.databricks.com/applications/deep-learning/deep-learning-pipelines.html ➔ https://github.com/uber/horovod

×