machine learning pour le big data, sans hadoop ni spark
TRANSCRIPT
![Page 1: Machine Learning pour le Big Data, sans Hadoop ni Spark](https://reader034.vdocument.in/reader034/viewer/2022051503/586fab061a28abe57d8b47ff/html5/thumbnails/1.jpg)
1© 2016 The MathWorks, Inc.
Machine Learning pour le Big Data…
… sans ni
Marc Wolff, Ph.D.
![Page 2: Machine Learning pour le Big Data, sans Hadoop ni Spark](https://reader034.vdocument.in/reader034/viewer/2022051503/586fab061a28abe57d8b47ff/html5/thumbnails/2.jpg)
2
Quelle est l’alternative ?Les clusters de calcul dits « traditionnels »
![Page 3: Machine Learning pour le Big Data, sans Hadoop ni Spark](https://reader034.vdocument.in/reader034/viewer/2022051503/586fab061a28abe57d8b47ff/html5/thumbnails/3.jpg)
3
Quelle est l’alternative ? HPC Hadoop/Spark
Modèle de programmation
MPI vs. MapReduce/Spark
Architecture
Silos calcul et stockage vs.
architecture totalement
distribuée
![Page 4: Machine Learning pour le Big Data, sans Hadoop ni Spark](https://reader034.vdocument.in/reader034/viewer/2022051503/586fab061a28abe57d8b47ff/html5/thumbnails/4.jpg)
4
Composants d’infrastructures HPC
Le modèle de programmation MPI
Implémentation MPI d’algorithmes de machine learning
Agenda
1
2
3
![Page 5: Machine Learning pour le Big Data, sans Hadoop ni Spark](https://reader034.vdocument.in/reader034/viewer/2022051503/586fab061a28abe57d8b47ff/html5/thumbnails/5.jpg)
5
Serveurs de calculArchitectures dites Twin²
Design low-cost
4 serveurs bi-CPU dans un châssis
Alimentation redondante partagée
Pour tout réseau d’interconnexion
Coût : ~20 k€ HT pour 96 cœurs
Où s’en procurer ?
– Dell C6320
– Auprès de nombreux intégrateurs
![Page 6: Machine Learning pour le Big Data, sans Hadoop ni Spark](https://reader034.vdocument.in/reader034/viewer/2022051503/586fab061a28abe57d8b47ff/html5/thumbnails/6.jpg)
6
Systèmes de fichiers parallèles
De type scale-out : la performance
augmente avec la taille du système
Namespace unique et extensible : un seul
système de fichiers, quel que soit le
nombre de nœuds de stockage
Contrairement à HDFS, les systèmes de
fichiers parallèles sont vus par l’utilisateur
comme un disque réseau classique
– /data sous Linux ou disque S: sous Windows
100 To
100 To
100 To
300 To
![Page 7: Machine Learning pour le Big Data, sans Hadoop ni Spark](https://reader034.vdocument.in/reader034/viewer/2022051503/586fab061a28abe57d8b47ff/html5/thumbnails/7.jpg)
7
Systèmes de fichiers parallèlesUn exemple : BeeGFS
Système de fichiers open source
Développé en Allemagne par l’Institut Fraunhofer
Software Defined Storage : peut être déployé sur
du matériel de toute marque (comme HDFS)
Probablement le plus performant du marché
Coût : entre 200 et 300 € HT par To utile
Déployé dans de nombreuses universités et
centres de calcul
![Page 8: Machine Learning pour le Big Data, sans Hadoop ni Spark](https://reader034.vdocument.in/reader034/viewer/2022051503/586fab061a28abe57d8b47ff/html5/thumbnails/8.jpg)
8
Systèmes de fichiers parallèlesUn exemple : BeeGFS
A la recherche d’une vraie bête de course ?
Associez BeeGFS avec des disques flash !
Samsung 850 Pro
1 To, 500 Mo/s, 400 €
![Page 9: Machine Learning pour le Big Data, sans Hadoop ni Spark](https://reader034.vdocument.in/reader034/viewer/2022051503/586fab061a28abe57d8b47ff/html5/thumbnails/9.jpg)
9
Composants d’infrastructures HPC
Le modèle de programmation MPI
Implémentation MPI d’algorithmes de machine learning
Agenda
1
2
3
![Page 10: Machine Learning pour le Big Data, sans Hadoop ni Spark](https://reader034.vdocument.in/reader034/viewer/2022051503/586fab061a28abe57d8b47ff/html5/thumbnails/10.jpg)
10
Qu’est-ce que MPI ?
MPI est le framework standard pour la programmation et l’exécution
d’applications parallèles
– Technologie mûre (plus de 20 ans d’existence)
– Utilisation complexe avec des langages de programmation traditionnels
Les outils de calcul parallèle MATLAB sont basés à 100% sur MPI et sont
beaucoup plus simples à apprivoiser
![Page 11: Machine Learning pour le Big Data, sans Hadoop ni Spark](https://reader034.vdocument.in/reader034/viewer/2022051503/586fab061a28abe57d8b47ff/html5/thumbnails/11.jpg)
11
MPI est un framework in-memory
Opérations effectuées sur des données stockées en mémoire vive (RAM)
Tendance globale à revenir à des traitements in-memory (Spark)
Lecture
Traitement
en mémoire
Ecriture1
2
3
In-memoryOut-of-memory
(exemple : MapReduce)
![Page 12: Machine Learning pour le Big Data, sans Hadoop ni Spark](https://reader034.vdocument.in/reader034/viewer/2022051503/586fab061a28abe57d8b47ff/html5/thumbnails/12.jpg)
12
Pourquoi privilégier des traitements in-memory ?
Performances Coût
Bande passante max. pour un flux I/O
Disque dur
100 Mo/s
Système de fichiers
parallèle tel que BeeGFS
3 Go/s
Mémoire vive
70 Go/s
Quel est le composant le plus onéreux
d’une infrastructure de calcul ?
Du – cher au + cher :
5.
4.
3.
2.
1.
Réseau
Serveurs (châssis, carte mère)
Stockage
Mémoire vive
Processeurs
![Page 13: Machine Learning pour le Big Data, sans Hadoop ni Spark](https://reader034.vdocument.in/reader034/viewer/2022051503/586fab061a28abe57d8b47ff/html5/thumbnails/13.jpg)
13
Algorithmes de machine learning in-memory distribués
« In-memory »
– La totalité du jeu de données est chargée en mémoire
au début de l’exécution, avant analyse
– La sélection et le cleaning des données peuvent être
effectués en même temps que le chargement des données
« Distribués »
– Le jeu de données est chargée de manière distribuée :
il est partitionné et chaque processus MPI stocke une
portion des données
– Les données ne sont jamais chargées intégralement
sur une unique machine afin d’éviter les limitations
liées à la quantité de mémoire vive disponible
Chargement du
jeu de données
complet
Data chunk 1/4
Data chunk 2/4
Data chunk 3/4
Data chunk 4/4
![Page 14: Machine Learning pour le Big Data, sans Hadoop ni Spark](https://reader034.vdocument.in/reader034/viewer/2022051503/586fab061a28abe57d8b47ff/html5/thumbnails/14.jpg)
14
Composants d’infrastructures HPC
Le modèle de programmation MPI
Implémentation MPI d’algorithmes de machine learning
Agenda
1
2
3
![Page 15: Machine Learning pour le Big Data, sans Hadoop ni Spark](https://reader034.vdocument.in/reader034/viewer/2022051503/586fab061a28abe57d8b47ff/html5/thumbnails/15.jpg)
15
Un exemple : modèle de scoring
Application : développer un modèle de scoring (risque de crédit)
Dataset (~160 Go d’espace disque) :
Algorithme de classification : Random Forest
– Minimum 100 arbres
– Sans utiliser un modèle de programmation de type MapReduce
…
…
+ d
e 2
00M
de lig
nes
157 variables
![Page 16: Machine Learning pour le Big Data, sans Hadoop ni Spark](https://reader034.vdocument.in/reader034/viewer/2022051503/586fab061a28abe57d8b47ff/html5/thumbnails/16.jpg)
16
Problème #2 : l’utilisation du calcul parallèle pour accélérer l’entraînement
des Random Forests consiste à entraîner simultanément plusieurs arbres sur
chaque machine
– Mauvaise approche en contexte Big Data
– Requiert le stockage de plusieurs copies du dataset
– Approche nécessairement confrontée à des limitations mémoire
Problème #1 : l’implémentation standard des algorithmes de machine learning
est adaptée à des données non distribuées stockées en mémoire vive
– En mémoire vive, le dataset complet aurait occupé 260 Go
– Aucune des machines à disposition n’avait suffisamment de mémoire vive
>> OUT OF MEMORY
Un exemple : modèle de scoring
![Page 17: Machine Learning pour le Big Data, sans Hadoop ni Spark](https://reader034.vdocument.in/reader034/viewer/2022051503/586fab061a28abe57d8b47ff/html5/thumbnails/17.jpg)
17
Algorithme de random forest distribué basé sur MPI
Solution proposée : s’appuyer sur un algorithme d’arbre de décision
opérant sur des données distribuées
– Entraînement de l’arbre accéléré, peut être fait sur des datasets de grande dimension
– Toute random forest construite à partir d’arbres de ce type héritera naturellement de
ses capacités « Big Data »
Infrastructure utilisée pour le PoC
– Salle de formation MathWorks
(12 PC équipés de processeurs 4 cœurs)
– MATLAB Distributed Computing Server
permet de distribuer les tâches sur le parc
de stations de travail
![Page 18: Machine Learning pour le Big Data, sans Hadoop ni Spark](https://reader034.vdocument.in/reader034/viewer/2022051503/586fab061a28abe57d8b47ff/html5/thumbnails/18.jpg)
18
Algorithme d’arbre de décision distribué basé sur MPIPrincipe d’un arbre de décision
La séparation des données selon la variable
Temps maximise le gain d’information
![Page 19: Machine Learning pour le Big Data, sans Hadoop ni Spark](https://reader034.vdocument.in/reader034/viewer/2022051503/586fab061a28abe57d8b47ff/html5/thumbnails/19.jpg)
19
Algorithme d’arbre de décision distribué basé sur MPI
Accélération du
calcul des tables
de répartition
Agrégation à l’aide
d’une opération de
réduction
Parfaite
reproductibilité
![Page 20: Machine Learning pour le Big Data, sans Hadoop ni Spark](https://reader034.vdocument.in/reader034/viewer/2022051503/586fab061a28abe57d8b47ff/html5/thumbnails/20.jpg)
20
Résultats
Conditions du test
– Les PC utilisés pour le test disposent de 8 Go de mémoire vive
– Nous avons travaillé avec un dataset réduit de « seulement » 25M de lignes
– Occupe environ 10 Go en mémoire vive, plus que la capacité mémoire de l’un des PC !
Résultats
– Entraîment d’un arbre de décision en utilisant 6 postes en 5 minutes
– Entraînement d’une random forest de 100 arbres en 4 heures
20 k€
512 Go
permet de manipuler des datasets
d’environ 500M de lignes