Hug janvier 2016 -EDF

Modern Data Stack France
Modern Data Stack FranceCTO at Synaltic um Modern Data Stack France
« MODEL AS CODE » A LA R&D D’EDF
ETUDE DE MISE EN PRODUCTION DE MODÈLES DE PRÉVISIONS DE CONSOMMATION ÉLECTRIQUE
HUG – Janvier 2016
Contact : benoit.grossin@edf.fr + mvautrot@quantmetry.com
Contributeurs : Département ICAME/OSIRIS de
la R&D d’EDF + QuantMetry
| 2
« MODEL AS CODE » À LA R&D D’EDF
1. EVOLUTION DU SYSTÈME ÉLECTRIQUE ET RÉVOLUTION DE LA DONNÉE DANS LE SECTEUR
2. LA PRÉVISION LOCALE DE CONSOMMATION D’ÉLECTRICITÉ
LES MODÈLES STATISTIQUES GAM, UNE APPROCHE NOUVELLE ET EFFICACE
3. SORTIR LES MODÈLES GAM DES OUTILS STATISTIQUES POUR LES METTRE EN PRODUCTION
MODEL AS CODE : APPROCHE IN-DATABASE / APPROCHE WEB-SERVICES
4. PRÉSENTATION TECHNIQUE DE L’APPROCHE
5. CONCLUSION & PERSPECTIVES
| 3
| 4
UN SYSTÈME ELECTRIQUE EN MUTATION
Mots Clefs :
Centralisé
Intégré
Descendant
Mots Clefs :
Centralisé / Décentralisé
Local
Diversité
Nouveaux Usages
Clients Acteurs
Multiplication des acteurs
Enjeux climatiques
Eco-Efficacité
…
(src image : ERDF )
Hug   janvier 2016 -EDF
LIGHTS MUST GO ON!
| 7
CONTINUER À BIEN PILOTER UN SYSTÈME DE
PLUS EN PLUS COMPLEXE
 Continuer à assurer l'équilibre offre/demande d'électricité, détecter les incidents,
éviter les temps de coupure … dans un système qui se complexifie
« Depuis cinq ans, le nombre des producteurs
d’énergie photovoltaïque et éolienne a décuplé.
Ils devraient être 1 million d’ici 2020 »
« 2 millions de véhicules électriques pourraient circuler
en France d’ici 2020. La recharge de ces véhicules est
mobile et imprévisible : au domicile du conducteur le
soir, au bureau, dans la rue, …»
 Tous les acteurs du secteur Electrique sont impactés
 ERDF (principal gestionnaire du réseau de distribution en France) est l’acteur
clef et incontournable de la réussite des évolutions en cours du système
électrique – et se donne pleinement les moyens de le faire : Linky par exemple
(src image : Wikipedia)
(src citation : site ERDF)
| 8
SMART METERING DATA & ANALYTICS :
UN CHANTIER À FORT ENJEU POUR EDF
 Projet Linky par ERDF : un besoin pour les enjeux énergétiques de demain
 35 millions de Smart Meters (horizon 2020) = un levier formidable pour mieux observer
et mieux exploiter un tel réseau de distribution
 Des données nécessaires : par exemple pour mettre en place des stratégies de gestion
de l’équilibre offre / demande au niveau local
 (Big) Data, un enjeu nouveau pour le secteur Electrique
 Les données et leurs traitements avancés sont au cœur de nombreux travaux dans le
groupe EDF
 On n’a jamais autant parlé de Big Data et de Data Science à EDF que maintenant !
 Défis pour nos métiers : bien exploiter les opportunités liées au Data - faire mieux ou
faire plus –
 Défi associé pour nos équipes SI : comment intégrer et mettre en production dans les
SI ces nouveaux traitements proposés ?
Etude « MODEL AS CODE » par la R&D d’EDF
| 9
LOCAL
| 10
PREVISIONS DE CONSOMMATIONS ELECTRIQUES
 Prévision nationale = domaine bien maîtrisé par EDF depuis de nombreuses années
avec 1 modèle de prévision performant – en lien avec la météo
 Prévision à la maille locale (maille fine réseau de distribution, ville, quartier, …) =
domaine en forte émergence, nécessaire sur des enjeux de gestion locale de l’équilibre
d’offre/demande et de smart city par exemple
 2 problèmes différents
 L’agrégat de consommation France est relativement stable : effet foisonnement
 La prévision locale est plus difficile : effet de foisonnement moindre, impact plus
important d’évènements locaux, multiplication des modèles de prévisions à gérer, …
 Les modèles GAM pour la prévision locale
 La R&D d’EDF met au point différents modèles et approches pour bien prévoir à la
maille locale
 Les modèles GAM se sont révélés d’excellents candidats : performants et interprétables
| 11
MODELES GAM : GENERALIZED ADDITIVE MODEL
| 12
MODELES GAM : GENERALIZED ADDITIVE MODEL
Prévisions CT à la maille PS avec GAM
| 13
MISE EN PRODUCTION DES PRÉVISIONS GAM :
PMML ?
 Une version spécifique des modèles GAM …
 GAM est une famille de modèle, disponibles dans plusieurs outils statistiques
 Ceux disponibles dans le package R / MGCV sont ceux qui performent le mieux sur nos
problématiques
 … à mettre en production
 GAM n’est pas supporté par le standard PMML
PMML = Predictive Model Markup Language uses XML to represent models (www.dmg.org/v4-1/GeneralStructure.html)
(src image : OpenScoring)
| 14
MISE EN PRODUCTION DES PRÉVISIONS GAM :
L’APPROCHE MODEL AS CODE
 Comment mettre en production des modèles GAM, ajustés dans R / MGCV ?
 Plusieurs pistes explorées par la R&D d’EDF, dont :
 Le mode « in-database », présenté ici dans l’environnement Hadoop/HIVE
 Le mode « web-services » pour consommer des modèles de prévisions
Travail présenté par Matthieu ce soir
| 15
MISE EN PRODUCTION DES PRÉVISIONS GAM :
L’APPROCHE MODEL AS CODE
Model as code :
déployer et utiliser un modèle R en l’état
Trois objectifs :
1. Réduire sensiblement le temps de déploiement des modèles R
2. Une approche générale : même code pour tous modèles
3. Stabilité en performance
15
| 16
DESCRIPTION GÉNÉRALE
16
16
Predictive model
Développement R
mono-nœud
Production - Hadoop
| 17
DESCRIPTION GÉNÉRALE
17
17
1 Sérialisation
Predictive model
(rds, rda)
1
Développement R
mono-nœud
Production - Hadoop
Sérialisation : Objet R de la RAM au FS
| 18
DESCRIPTION GÉNÉRALE
18
18
1 Sérialisation
2 Déploiement
Predictive model
(rds, rda)
1
2
Développement R
mono-nœud
Production - Hadoop
Déploiement : push du fichier RDS vers la plateforme de prod - exemple scp
| 19
DESCRIPTION GÉNÉRALE
19
19
1 Sérialisation
2 Déploiement
3 Prédiction ?
Predictive model
(rds, rda)
1
2
3
Développement R
mono-nœud
Production - Hadoop
Prédiction : interaction entre l’objet R (rds) et la plateforme de production – call du
predict()
| 20
STREAMING OU ENCAPSULATION ?
20
Hadoop (Pig, Hive) streaming :
• très peu de configurations
• facile à implémenter
• utilisation de l’I/O standard
hadoop jar $HADOOP_PATH/hadoop-
streaming-XXX.jar 
-input dir_input 
-output dir_output 
-mapper script.r 
-files script.r, model.rds
| 21
STREAMING OU ENCAPSULATION ?
21
hadoop jar $HADOOP_PATH/hadoop-
streaming-XXX.jar 
-input dir_input 
-output dir_output 
-mapper script.r 
-files script.r, model.rds
Encapsulation (MR, ou UDF):
• meilleur contrôle sur les données
d’input
• du code java qui tourne du code
java
• besoin de faire communiquer
Java et R
Hive
UDF
Hadoop (Pig, Hive) streaming :
• très peu de configurations
• facile à implémenter
• utilisation de l’I/O standard
| 22
rJava est une librairie qui fusionne deux projets :
 JRI permet d’ouvrir une session R dans Java
 rJava permet d’utiliser du Java dans R
1 – Lancement du moteur R : Rengine engine = Rengine.getMainEngine();
2 – Exécution de commande R : rengine.eval("dt <- read.csv("myfile.csv')");
rJava
COMMUNICATION ENTRE JAVA ET R - RJAVA
22
la requête R en paramètre
rJava JRI
| 23
UDF : CYCLE DES DONNÉES
23
cheminement input cheminement résultats
Lance le modèle sur les données reçuesR
Gère la session R et le
lancement du code R
UDF
JRI
Récupère les résultats
d’output de R
gère les données
d’input et prépare le
code R
UDF
Envoie les résultats à
Hive
lancement de la
requête HQL
Hive
Agrège et retourne les
résultats
JRI
Predictive model
| 24
HIVE UDF OU HIVE GENERIC UDF ?
24
Hive UDF : structure minimaliste pour tests ou cas simples
Hive generic UDF – un peu plus complexe à écrire mais …
• Gère un nombre dynamique de paramètres
• Meilleur gestion des valeurs NULL
• Gestion de paramètre constant
| 25
HIVE UDF OU HIVE GENERIC UDF ?
25
Hive UDF : structure minimaliste pour tests ou cas simples ou
Hive generic UDF – un peu plus complexe à écrire mais …
• Gère un nombre dynamique de paramètres
• Meilleur gestion des valeurs NULL
• Gestion de paramètre constant
import org.apache.hadoop.hive.ql.udf.generic.GenericUDF;
Best practice :
| 26
Sur chaque nœud :
1. Installation de R et rJava (+JRI) ;
2. Installation des packages R requis par le modèle ici {mgcv} ;
3. Set des variables d’environnement ($R_HOME, et ajout de jri dans
$LD_LIBRARY_PATH) ;
4. Lien symbolique de fichiers .so de jri vers hadoop native lib ;
STEP 1 – CONFIGURATION DES NŒUDS
26
DN_1
…
DN_2
…
DN_N
…
…
| 27
UDF – MAPS PARAMETERS AND VALUES
- ENTRAINEMENT DU MODÈLE SUR R
27
new_model <- gbm(formula=‘y~R1+R2’)
Features
target
| 28
UDF – MAPS PARAMETERS AND VALUES
28
data <-dataframe(R1=f1,R2=f2)
…
predict(new_model, data);
JRI
new_model <- gbm(formula=‘y~R1+R2’)
Features
| 29
UDF – MAPS PARAMETERS AND VALUES
29
SELECT my_udf(
"new_model:R1+R2",
f1, f2
)
FROM data_table ;
UDF
data <-dataframe(R1=f1,R2=f2)
…
predict(new_model, data);
JRI
new_model <- gbm(formula=‘y~R1+R2’)
Features
| 30
REQUÊTE SQL ET CODE JAVA
30
add jar JRI.jar genUdf.jar;
add file new_model.rds;
SELECT my_udf(
"new_model:R1+R2",
f1, f2
)
FROM table_data ;
| 31
31
Number of
rows
Data size
(o)
Nb. Mappers Time (s) Memory
1 34 1 51 OK
… … … … OK
10,000,000 441M 2 110 OK
100,000,000 4.4G 18 1312 OK
Hive UDF
RESULTATS – VM CLOUDERA
IT SCALES !!
| 32
32
SPARK ?
PySpark (API Python de Spark) :
• setup entre python et R avec rpy2 ~1 ligne
• load de la table à scorer en RDD (via sparkQL ou DataFrame) ~ 1 ligne
• une fonction map avec une fonction appel du predict de R ~ 1 ligne
| 33
33
SPARK ?
PySpark (API Python de Spark) :
• setup entre python et R avec rpy2 ~1 ligne
• load de la table à scorer en RDD (via sparkQL ou DataFrame) ~ 1 ligne
• une fonction map avec une fonction appel du predict de R ~ 1 ligne
SparkR (API R de Spark depuis v. 1.4 ) :
• load de la table à scorer en RDD (via sparkQL ou DataFrame) ~ 1 ligne
• une fonction map avec une fonction appel du predict de R ~ 1 ligne
| 34
CONLUSIONS & PERSPECTIVES
 Etude d’intégration des modèles GAM (R / MGCV) dans Hadoop pour la problématique
de la prévision locale de consommation d’électricité
 L’approche « Model As Code » est séduisante :
 Pour les métiers : mettre en production rapidement des modèles et analytics innovants
 Pour les équipes SI : intégrer les besoins nouveaux des métiers en analytics sans
développement long ou trop complexe
 Depuis cette étude réalisée début 2015, on a prototypé l’intégration d’autres traitements
analytiques dans des environnements SI opérationnels avec plusieurs techniques :
 Celles en mode « in-database » : au plus proche de données, couplées avec la
mécanique distribuée de la base de données
 Celles en mode « webservices » : découplées des entrepôt de données, mais
facilement consommables par différentes applications et des besoins divers
scalabilité
accessibilité
RRO/RREDEPLOYR
1 von 34

Recomendados

HUG France - 20160114 industrialisation_process_big_data CanalPlus von
HUG France -  20160114 industrialisation_process_big_data CanalPlusHUG France -  20160114 industrialisation_process_big_data CanalPlus
HUG France - 20160114 industrialisation_process_big_data CanalPlusModern Data Stack France
1.1K views14 Folien
June Spark meetup : search as recommandation von
June Spark meetup : search as recommandationJune Spark meetup : search as recommandation
June Spark meetup : search as recommandationModern Data Stack France
9.8K views23 Folien
Apache SPARK ML : principes, concepts et mise en œuvre von
Apache SPARK  ML : principes, concepts et  mise en œuvre Apache SPARK  ML : principes, concepts et  mise en œuvre
Apache SPARK ML : principes, concepts et mise en œuvre MICHRAFY MUSTAFA
5.2K views50 Folien
Deep Learning on Apache Spark: TensorFrames & Deep Learning Pipelines von
Deep Learning on Apache Spark: TensorFrames & Deep Learning Pipelines Deep Learning on Apache Spark: TensorFrames & Deep Learning Pipelines
Deep Learning on Apache Spark: TensorFrames & Deep Learning Pipelines Databricks
4.6K views39 Folien
DataStax et Apache Cassandra pour la gestion des flux IoT von
DataStax et Apache Cassandra pour la gestion des flux IoTDataStax et Apache Cassandra pour la gestion des flux IoT
DataStax et Apache Cassandra pour la gestion des flux IoTVictor Coustenoble
1.4K views32 Folien
GAB 2017 PARIS - Azure Data Lake La Big Data 2.0 par Jean-Pierre Riehl et Fab... von
GAB 2017 PARIS - Azure Data Lake La Big Data 2.0 par Jean-Pierre Riehl et Fab...GAB 2017 PARIS - Azure Data Lake La Big Data 2.0 par Jean-Pierre Riehl et Fab...
GAB 2017 PARIS - Azure Data Lake La Big Data 2.0 par Jean-Pierre Riehl et Fab...AZUG FR
163 views44 Folien

Más contenido relacionado

Was ist angesagt?

Cartographie du big data von
Cartographie du big dataCartographie du big data
Cartographie du big dataacogoluegnes
2.2K views83 Folien
DataStax Enterprise BBL von
DataStax Enterprise BBLDataStax Enterprise BBL
DataStax Enterprise BBLVictor Coustenoble
819 views24 Folien
Apache Flink par Bilal Baltagi Paris Spark Meetup Dec 2015 von
Apache Flink par Bilal Baltagi Paris Spark Meetup Dec 2015Apache Flink par Bilal Baltagi Paris Spark Meetup Dec 2015
Apache Flink par Bilal Baltagi Paris Spark Meetup Dec 2015Modern Data Stack France
2.3K views36 Folien
Usi 2013 - NoSql les defis à relever von
Usi 2013 -  NoSql les defis à releverUsi 2013 -  NoSql les defis à relever
Usi 2013 - NoSql les defis à releverDjamel Zouaoui
1.1K views21 Folien
Spark tools by Jonathan Winandy von
Spark tools by Jonathan WinandySpark tools by Jonathan Winandy
Spark tools by Jonathan WinandyParis Data Engineers !
215 views19 Folien
Delta lake - des data lake fiables a grande échelle von
Delta lake - des data lake fiables a grande échelleDelta lake - des data lake fiables a grande échelle
Delta lake - des data lake fiables a grande échellefrançois de Buttet
92 views56 Folien

Was ist angesagt?(17)

Cartographie du big data von acogoluegnes
Cartographie du big dataCartographie du big data
Cartographie du big data
acogoluegnes2.2K views
Usi 2013 - NoSql les defis à relever von Djamel Zouaoui
Usi 2013 -  NoSql les defis à releverUsi 2013 -  NoSql les defis à relever
Usi 2013 - NoSql les defis à relever
Djamel Zouaoui1.1K views
Quelles stratégies de Recherche avec Cassandra ? von Victor Coustenoble
Quelles stratégies de Recherche avec Cassandra ?Quelles stratégies de Recherche avec Cassandra ?
Quelles stratégies de Recherche avec Cassandra ?
Victor Coustenoble1.7K views
DataStax Enterprise - La plateforme de base de données pour le Cloud von Victor Coustenoble
DataStax Enterprise - La plateforme de base de données pour le CloudDataStax Enterprise - La plateforme de base de données pour le Cloud
DataStax Enterprise - La plateforme de base de données pour le Cloud
Victor Coustenoble1.5K views
Azure Data Lake, le big data 2.0 (Global Azure Bootcamp Paris 2017) von Jean-Pierre Riehl
Azure Data Lake, le big data 2.0 (Global Azure Bootcamp Paris 2017)Azure Data Lake, le big data 2.0 (Global Azure Bootcamp Paris 2017)
Azure Data Lake, le big data 2.0 (Global Azure Bootcamp Paris 2017)
Jean-Pierre Riehl839 views
SQL Saturday Paris 2015 - Polybase von Romain Casteres
SQL Saturday Paris 2015 - PolybaseSQL Saturday Paris 2015 - Polybase
SQL Saturday Paris 2015 - Polybase
Romain Casteres789 views
Plan4All - standards d'interopérabilité von BIG
Plan4All - standards d'interopérabilitéPlan4All - standards d'interopérabilité
Plan4All - standards d'interopérabilité
BIG757 views
HTTP2 : ce qui va changer par Julien Landuré von Zenika
HTTP2 : ce qui va changer par Julien LanduréHTTP2 : ce qui va changer par Julien Landuré
HTTP2 : ce qui va changer par Julien Landuré
Zenika1.5K views
Amazon Web Services User Group - France - 3 mai 2010 - Optimisation et Automa... von Frédéric FAURE
Amazon Web Services User Group - France - 3 mai 2010 - Optimisation et Automa...Amazon Web Services User Group - France - 3 mai 2010 - Optimisation et Automa...
Amazon Web Services User Group - France - 3 mai 2010 - Optimisation et Automa...
Frédéric FAURE1.2K views
Apache Zeppelin @DevoxxFR 2016 von Duyhai Doan
Apache Zeppelin @DevoxxFR 2016Apache Zeppelin @DevoxxFR 2016
Apache Zeppelin @DevoxxFR 2016
Duyhai Doan839 views

Destacado

Computing recommendations at extreme scale with Apache Flink @Buzzwords 2015 von
Computing recommendations at extreme scale with Apache Flink @Buzzwords 2015Computing recommendations at extreme scale with Apache Flink @Buzzwords 2015
Computing recommendations at extreme scale with Apache Flink @Buzzwords 2015Till Rohrmann
3.7K views32 Folien
Paris Spark Meetup (Feb2015) ccarbone : SPARK Streaming vs Storm / MLLib / Ne... von
Paris Spark Meetup (Feb2015) ccarbone : SPARK Streaming vs Storm / MLLib / Ne...Paris Spark Meetup (Feb2015) ccarbone : SPARK Streaming vs Storm / MLLib / Ne...
Paris Spark Meetup (Feb2015) ccarbone : SPARK Streaming vs Storm / MLLib / Ne...Cedric CARBONE
10.8K views34 Folien
Cassandra spark connector von
Cassandra spark connectorCassandra spark connector
Cassandra spark connectorDuyhai Doan
12.6K views40 Folien
Paris Spark meetup : Extension de Spark (Tachyon / Spark JobServer) par jlamiel von
Paris Spark meetup : Extension de Spark (Tachyon / Spark JobServer) par jlamielParis Spark meetup : Extension de Spark (Tachyon / Spark JobServer) par jlamiel
Paris Spark meetup : Extension de Spark (Tachyon / Spark JobServer) par jlamielModern Data Stack France
12.6K views24 Folien
Spark ML par Xebia (Spark Meetup du 11/06/2015) von
Spark ML par Xebia (Spark Meetup du 11/06/2015)Spark ML par Xebia (Spark Meetup du 11/06/2015)
Spark ML par Xebia (Spark Meetup du 11/06/2015)Modern Data Stack France
11.6K views25 Folien
Spark dataframe von
Spark dataframeSpark dataframe
Spark dataframeModern Data Stack France
10.3K views15 Folien

Destacado(6)

Computing recommendations at extreme scale with Apache Flink @Buzzwords 2015 von Till Rohrmann
Computing recommendations at extreme scale with Apache Flink @Buzzwords 2015Computing recommendations at extreme scale with Apache Flink @Buzzwords 2015
Computing recommendations at extreme scale with Apache Flink @Buzzwords 2015
Till Rohrmann3.7K views
Paris Spark Meetup (Feb2015) ccarbone : SPARK Streaming vs Storm / MLLib / Ne... von Cedric CARBONE
Paris Spark Meetup (Feb2015) ccarbone : SPARK Streaming vs Storm / MLLib / Ne...Paris Spark Meetup (Feb2015) ccarbone : SPARK Streaming vs Storm / MLLib / Ne...
Paris Spark Meetup (Feb2015) ccarbone : SPARK Streaming vs Storm / MLLib / Ne...
Cedric CARBONE10.8K views
Cassandra spark connector von Duyhai Doan
Cassandra spark connectorCassandra spark connector
Cassandra spark connector
Duyhai Doan12.6K views
Paris Spark meetup : Extension de Spark (Tachyon / Spark JobServer) par jlamiel von Modern Data Stack France
Paris Spark meetup : Extension de Spark (Tachyon / Spark JobServer) par jlamielParis Spark meetup : Extension de Spark (Tachyon / Spark JobServer) par jlamiel
Paris Spark meetup : Extension de Spark (Tachyon / Spark JobServer) par jlamiel

Similar a Hug janvier 2016 -EDF

Vision et poc EDFsur les enjeux big data von
Vision et poc EDFsur les enjeux big dataVision et poc EDFsur les enjeux big data
Vision et poc EDFsur les enjeux big dataBruno Patin
1.3K views19 Folien
Agl2012 von
Agl2012Agl2012
Agl2012eric German
1.9K views30 Folien
20070320 01 - Démarche qualité logicielle et outillage (SNCF) von
20070320 01 - Démarche qualité logicielle et outillage (SNCF)20070320 01 - Démarche qualité logicielle et outillage (SNCF)
20070320 01 - Démarche qualité logicielle et outillage (SNCF)LeClubQualiteLogicielle
315 views33 Folien
Petit-déjeuner OCTO Technology : Calculez vos indicateurs en temps réel ave... von
Petit-déjeuner OCTO Technology :  Calculez vos indicateurs en temps réel ave...Petit-déjeuner OCTO Technology :  Calculez vos indicateurs en temps réel ave...
Petit-déjeuner OCTO Technology : Calculez vos indicateurs en temps réel ave...OCTO Technology
3.9K views69 Folien
HADOOP + R von
HADOOP + RHADOOP + R
HADOOP + RCdiscount
12.8K views21 Folien
MiXiT - Numérique responsable, ouvrons le capot des fournisseurs Cloud von
MiXiT - Numérique responsable, ouvrons le capot des fournisseurs CloudMiXiT - Numérique responsable, ouvrons le capot des fournisseurs Cloud
MiXiT - Numérique responsable, ouvrons le capot des fournisseurs CloudClément DUFFAU
293 views84 Folien

Similar a Hug janvier 2016 -EDF(20)

Vision et poc EDFsur les enjeux big data von Bruno Patin
Vision et poc EDFsur les enjeux big dataVision et poc EDFsur les enjeux big data
Vision et poc EDFsur les enjeux big data
Bruno Patin1.3K views
Petit-déjeuner OCTO Technology : Calculez vos indicateurs en temps réel ave... von OCTO Technology
Petit-déjeuner OCTO Technology :  Calculez vos indicateurs en temps réel ave...Petit-déjeuner OCTO Technology :  Calculez vos indicateurs en temps réel ave...
Petit-déjeuner OCTO Technology : Calculez vos indicateurs en temps réel ave...
OCTO Technology3.9K views
HADOOP + R von Cdiscount
HADOOP + RHADOOP + R
HADOOP + R
Cdiscount12.8K views
MiXiT - Numérique responsable, ouvrons le capot des fournisseurs Cloud von Clément DUFFAU
MiXiT - Numérique responsable, ouvrons le capot des fournisseurs CloudMiXiT - Numérique responsable, ouvrons le capot des fournisseurs Cloud
MiXiT - Numérique responsable, ouvrons le capot des fournisseurs Cloud
Clément DUFFAU293 views
Denodo, pilier central de votre stratégie API von Denodo
Denodo, pilier central de votre stratégie APIDenodo, pilier central de votre stratégie API
Denodo, pilier central de votre stratégie API
Denodo 181 views
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) von univalence
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
univalence 1.3K views
Parallélisation d'algorithmes de graphes avec MapReduce sur un cluster d'ordi... von Hadjer BENHADJ DJILALI
Parallélisation d'algorithmes de graphes avec MapReduce sur un cluster d'ordi...Parallélisation d'algorithmes de graphes avec MapReduce sur un cluster d'ordi...
Parallélisation d'algorithmes de graphes avec MapReduce sur un cluster d'ordi...
Rn111 g formation-ibm-rational-developer-for-system-z-v9-developper-des-appli... von CERTyou Formation
Rn111 g formation-ibm-rational-developer-for-system-z-v9-developper-des-appli...Rn111 g formation-ibm-rational-developer-for-system-z-v9-developper-des-appli...
Rn111 g formation-ibm-rational-developer-for-system-z-v9-developper-des-appli...
UN ÉLÉPHANT QUI SE BALANÇAIT … Comment mettre en musique les big data et valo... von OCTO Technology
UN ÉLÉPHANT QUI SE BALANÇAIT … Comment mettre en musique les big data et valo...UN ÉLÉPHANT QUI SE BALANÇAIT … Comment mettre en musique les big data et valo...
UN ÉLÉPHANT QUI SE BALANÇAIT … Comment mettre en musique les big data et valo...
OCTO Technology2.1K views
Développement application métier entreprise von Adel GHAMRI
Développement application métier entrepriseDéveloppement application métier entreprise
Développement application métier entreprise
Adel GHAMRI9 views
D’un modèle d'IA dans un notebook à un service temps réel : architecturons ! von Marie-Alice Blete
D’un modèle d'IA dans un notebook à un service temps réel : architecturons ! D’un modèle d'IA dans un notebook à un service temps réel : architecturons !
D’un modèle d'IA dans un notebook à un service temps réel : architecturons !
Télérelevé multifluides : Eau Gas Chaleur Elec - Conférence distributeurs mu... von Benoit Cliche
Télérelevé multifluides : Eau Gas Chaleur Elec - Conférence distributeurs mu...Télérelevé multifluides : Eau Gas Chaleur Elec - Conférence distributeurs mu...
Télérelevé multifluides : Eau Gas Chaleur Elec - Conférence distributeurs mu...
Benoit Cliche577 views

Más de Modern Data Stack France

Stash - Data FinOPS von
Stash - Data FinOPSStash - Data FinOPS
Stash - Data FinOPSModern Data Stack France
77 views10 Folien
Vue d'ensemble Dremio von
Vue d'ensemble DremioVue d'ensemble Dremio
Vue d'ensemble DremioModern Data Stack France
130 views16 Folien
From Data Warehouse to Lakehouse von
From Data Warehouse to LakehouseFrom Data Warehouse to Lakehouse
From Data Warehouse to LakehouseModern Data Stack France
133 views23 Folien
Talend spark meetup 03042017 - Paris Spark Meetup von
Talend spark meetup 03042017 - Paris Spark MeetupTalend spark meetup 03042017 - Paris Spark Meetup
Talend spark meetup 03042017 - Paris Spark MeetupModern Data Stack France
1.2K views29 Folien
Paris Spark Meetup - Trifacta - 03_04_2017 von
Paris Spark Meetup - Trifacta - 03_04_2017Paris Spark Meetup - Trifacta - 03_04_2017
Paris Spark Meetup - Trifacta - 03_04_2017Modern Data Stack France
1.2K views16 Folien
Hadoop meetup : HUGFR Construire le cluster le plus rapide pour l'analyse des... von
Hadoop meetup : HUGFR Construire le cluster le plus rapide pour l'analyse des...Hadoop meetup : HUGFR Construire le cluster le plus rapide pour l'analyse des...
Hadoop meetup : HUGFR Construire le cluster le plus rapide pour l'analyse des...Modern Data Stack France
2K views33 Folien

Más de Modern Data Stack France(20)

Hadoop meetup : HUGFR Construire le cluster le plus rapide pour l'analyse des... von Modern Data Stack France
Hadoop meetup : HUGFR Construire le cluster le plus rapide pour l'analyse des...Hadoop meetup : HUGFR Construire le cluster le plus rapide pour l'analyse des...
Hadoop meetup : HUGFR Construire le cluster le plus rapide pour l'analyse des...
HUG France Feb 2016 - Migration de données structurées entre Hadoop et RDBMS ... von Modern Data Stack France
HUG France Feb 2016 - Migration de données structurées entre Hadoop et RDBMS ...HUG France Feb 2016 - Migration de données structurées entre Hadoop et RDBMS ...
HUG France Feb 2016 - Migration de données structurées entre Hadoop et RDBMS ...
HUG France : HBase in Financial Industry par Pierre Bittner (Scaled Risk CTO) von Modern Data Stack France
HUG France : HBase in Financial Industry par Pierre Bittner (Scaled Risk CTO)HUG France : HBase in Financial Industry par Pierre Bittner (Scaled Risk CTO)
HUG France : HBase in Financial Industry par Pierre Bittner (Scaled Risk CTO)
Datalab 101 (Hadoop, Spark, ElasticSearch) par Jonathan Winandy - Paris Spark... von Modern Data Stack France
Datalab 101 (Hadoop, Spark, ElasticSearch) par Jonathan Winandy - Paris Spark...Datalab 101 (Hadoop, Spark, ElasticSearch) par Jonathan Winandy - Paris Spark...
Datalab 101 (Hadoop, Spark, ElasticSearch) par Jonathan Winandy - Paris Spark...
Record linkage, a real use case with spark ml - Paris Spark meetup Dec 2015 von Modern Data Stack France
Record linkage, a real use case with spark ml  - Paris Spark meetup Dec 2015Record linkage, a real use case with spark ml  - Paris Spark meetup Dec 2015
Record linkage, a real use case with spark ml - Paris Spark meetup Dec 2015
Introduction sur Tez par Olivier RENAULT de HortonWorks Meetup du 25/11/2014 von Modern Data Stack France
Introduction sur Tez par Olivier RENAULT de HortonWorks Meetup du 25/11/2014Introduction sur Tez par Olivier RENAULT de HortonWorks Meetup du 25/11/2014
Introduction sur Tez par Olivier RENAULT de HortonWorks Meetup du 25/11/2014
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim... von Modern Data Stack France
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...
HUGFR : Une infrastructure Kafka & Storm pour lutter contre les attaques DDoS... von Modern Data Stack France
HUGFR : Une infrastructure Kafka & Storm pour lutter contre les attaques DDoS...HUGFR : Une infrastructure Kafka & Storm pour lutter contre les attaques DDoS...
HUGFR : Une infrastructure Kafka & Storm pour lutter contre les attaques DDoS...

Hug janvier 2016 -EDF

  • 1. « MODEL AS CODE » A LA R&D D’EDF ETUDE DE MISE EN PRODUCTION DE MODÈLES DE PRÉVISIONS DE CONSOMMATION ÉLECTRIQUE HUG – Janvier 2016 Contact : benoit.grossin@edf.fr + mvautrot@quantmetry.com Contributeurs : Département ICAME/OSIRIS de la R&D d’EDF + QuantMetry
  • 2. | 2 « MODEL AS CODE » À LA R&D D’EDF 1. EVOLUTION DU SYSTÈME ÉLECTRIQUE ET RÉVOLUTION DE LA DONNÉE DANS LE SECTEUR 2. LA PRÉVISION LOCALE DE CONSOMMATION D’ÉLECTRICITÉ LES MODÈLES STATISTIQUES GAM, UNE APPROCHE NOUVELLE ET EFFICACE 3. SORTIR LES MODÈLES GAM DES OUTILS STATISTIQUES POUR LES METTRE EN PRODUCTION MODEL AS CODE : APPROCHE IN-DATABASE / APPROCHE WEB-SERVICES 4. PRÉSENTATION TECHNIQUE DE L’APPROCHE 5. CONCLUSION & PERSPECTIVES
  • 3. | 3
  • 4. | 4 UN SYSTÈME ELECTRIQUE EN MUTATION Mots Clefs : Centralisé Intégré Descendant Mots Clefs : Centralisé / Décentralisé Local Diversité Nouveaux Usages Clients Acteurs Multiplication des acteurs Enjeux climatiques Eco-Efficacité … (src image : ERDF )
  • 7. | 7 CONTINUER À BIEN PILOTER UN SYSTÈME DE PLUS EN PLUS COMPLEXE  Continuer à assurer l'équilibre offre/demande d'électricité, détecter les incidents, éviter les temps de coupure … dans un système qui se complexifie « Depuis cinq ans, le nombre des producteurs d’énergie photovoltaïque et éolienne a décuplé. Ils devraient être 1 million d’ici 2020 » « 2 millions de véhicules électriques pourraient circuler en France d’ici 2020. La recharge de ces véhicules est mobile et imprévisible : au domicile du conducteur le soir, au bureau, dans la rue, …»  Tous les acteurs du secteur Electrique sont impactés  ERDF (principal gestionnaire du réseau de distribution en France) est l’acteur clef et incontournable de la réussite des évolutions en cours du système électrique – et se donne pleinement les moyens de le faire : Linky par exemple (src image : Wikipedia) (src citation : site ERDF)
  • 8. | 8 SMART METERING DATA & ANALYTICS : UN CHANTIER À FORT ENJEU POUR EDF  Projet Linky par ERDF : un besoin pour les enjeux énergétiques de demain  35 millions de Smart Meters (horizon 2020) = un levier formidable pour mieux observer et mieux exploiter un tel réseau de distribution  Des données nécessaires : par exemple pour mettre en place des stratégies de gestion de l’équilibre offre / demande au niveau local  (Big) Data, un enjeu nouveau pour le secteur Electrique  Les données et leurs traitements avancés sont au cœur de nombreux travaux dans le groupe EDF  On n’a jamais autant parlé de Big Data et de Data Science à EDF que maintenant !  Défis pour nos métiers : bien exploiter les opportunités liées au Data - faire mieux ou faire plus –  Défi associé pour nos équipes SI : comment intégrer et mettre en production dans les SI ces nouveaux traitements proposés ? Etude « MODEL AS CODE » par la R&D d’EDF
  • 10. | 10 PREVISIONS DE CONSOMMATIONS ELECTRIQUES  Prévision nationale = domaine bien maîtrisé par EDF depuis de nombreuses années avec 1 modèle de prévision performant – en lien avec la météo  Prévision à la maille locale (maille fine réseau de distribution, ville, quartier, …) = domaine en forte émergence, nécessaire sur des enjeux de gestion locale de l’équilibre d’offre/demande et de smart city par exemple  2 problèmes différents  L’agrégat de consommation France est relativement stable : effet foisonnement  La prévision locale est plus difficile : effet de foisonnement moindre, impact plus important d’évènements locaux, multiplication des modèles de prévisions à gérer, …  Les modèles GAM pour la prévision locale  La R&D d’EDF met au point différents modèles et approches pour bien prévoir à la maille locale  Les modèles GAM se sont révélés d’excellents candidats : performants et interprétables
  • 11. | 11 MODELES GAM : GENERALIZED ADDITIVE MODEL
  • 12. | 12 MODELES GAM : GENERALIZED ADDITIVE MODEL Prévisions CT à la maille PS avec GAM
  • 13. | 13 MISE EN PRODUCTION DES PRÉVISIONS GAM : PMML ?  Une version spécifique des modèles GAM …  GAM est une famille de modèle, disponibles dans plusieurs outils statistiques  Ceux disponibles dans le package R / MGCV sont ceux qui performent le mieux sur nos problématiques  … à mettre en production  GAM n’est pas supporté par le standard PMML PMML = Predictive Model Markup Language uses XML to represent models (www.dmg.org/v4-1/GeneralStructure.html) (src image : OpenScoring)
  • 14. | 14 MISE EN PRODUCTION DES PRÉVISIONS GAM : L’APPROCHE MODEL AS CODE  Comment mettre en production des modèles GAM, ajustés dans R / MGCV ?  Plusieurs pistes explorées par la R&D d’EDF, dont :  Le mode « in-database », présenté ici dans l’environnement Hadoop/HIVE  Le mode « web-services » pour consommer des modèles de prévisions Travail présenté par Matthieu ce soir
  • 15. | 15 MISE EN PRODUCTION DES PRÉVISIONS GAM : L’APPROCHE MODEL AS CODE Model as code : déployer et utiliser un modèle R en l’état Trois objectifs : 1. Réduire sensiblement le temps de déploiement des modèles R 2. Une approche générale : même code pour tous modèles 3. Stabilité en performance 15
  • 16. | 16 DESCRIPTION GÉNÉRALE 16 16 Predictive model Développement R mono-nœud Production - Hadoop
  • 17. | 17 DESCRIPTION GÉNÉRALE 17 17 1 Sérialisation Predictive model (rds, rda) 1 Développement R mono-nœud Production - Hadoop Sérialisation : Objet R de la RAM au FS
  • 18. | 18 DESCRIPTION GÉNÉRALE 18 18 1 Sérialisation 2 Déploiement Predictive model (rds, rda) 1 2 Développement R mono-nœud Production - Hadoop Déploiement : push du fichier RDS vers la plateforme de prod - exemple scp
  • 19. | 19 DESCRIPTION GÉNÉRALE 19 19 1 Sérialisation 2 Déploiement 3 Prédiction ? Predictive model (rds, rda) 1 2 3 Développement R mono-nœud Production - Hadoop Prédiction : interaction entre l’objet R (rds) et la plateforme de production – call du predict()
  • 20. | 20 STREAMING OU ENCAPSULATION ? 20 Hadoop (Pig, Hive) streaming : • très peu de configurations • facile à implémenter • utilisation de l’I/O standard hadoop jar $HADOOP_PATH/hadoop- streaming-XXX.jar -input dir_input -output dir_output -mapper script.r -files script.r, model.rds
  • 21. | 21 STREAMING OU ENCAPSULATION ? 21 hadoop jar $HADOOP_PATH/hadoop- streaming-XXX.jar -input dir_input -output dir_output -mapper script.r -files script.r, model.rds Encapsulation (MR, ou UDF): • meilleur contrôle sur les données d’input • du code java qui tourne du code java • besoin de faire communiquer Java et R Hive UDF Hadoop (Pig, Hive) streaming : • très peu de configurations • facile à implémenter • utilisation de l’I/O standard
  • 22. | 22 rJava est une librairie qui fusionne deux projets :  JRI permet d’ouvrir une session R dans Java  rJava permet d’utiliser du Java dans R 1 – Lancement du moteur R : Rengine engine = Rengine.getMainEngine(); 2 – Exécution de commande R : rengine.eval("dt <- read.csv("myfile.csv')"); rJava COMMUNICATION ENTRE JAVA ET R - RJAVA 22 la requête R en paramètre rJava JRI
  • 23. | 23 UDF : CYCLE DES DONNÉES 23 cheminement input cheminement résultats Lance le modèle sur les données reçuesR Gère la session R et le lancement du code R UDF JRI Récupère les résultats d’output de R gère les données d’input et prépare le code R UDF Envoie les résultats à Hive lancement de la requête HQL Hive Agrège et retourne les résultats JRI Predictive model
  • 24. | 24 HIVE UDF OU HIVE GENERIC UDF ? 24 Hive UDF : structure minimaliste pour tests ou cas simples Hive generic UDF – un peu plus complexe à écrire mais … • Gère un nombre dynamique de paramètres • Meilleur gestion des valeurs NULL • Gestion de paramètre constant
  • 25. | 25 HIVE UDF OU HIVE GENERIC UDF ? 25 Hive UDF : structure minimaliste pour tests ou cas simples ou Hive generic UDF – un peu plus complexe à écrire mais … • Gère un nombre dynamique de paramètres • Meilleur gestion des valeurs NULL • Gestion de paramètre constant import org.apache.hadoop.hive.ql.udf.generic.GenericUDF; Best practice :
  • 26. | 26 Sur chaque nœud : 1. Installation de R et rJava (+JRI) ; 2. Installation des packages R requis par le modèle ici {mgcv} ; 3. Set des variables d’environnement ($R_HOME, et ajout de jri dans $LD_LIBRARY_PATH) ; 4. Lien symbolique de fichiers .so de jri vers hadoop native lib ; STEP 1 – CONFIGURATION DES NŒUDS 26 DN_1 … DN_2 … DN_N … …
  • 27. | 27 UDF – MAPS PARAMETERS AND VALUES - ENTRAINEMENT DU MODÈLE SUR R 27 new_model <- gbm(formula=‘y~R1+R2’) Features target
  • 28. | 28 UDF – MAPS PARAMETERS AND VALUES 28 data <-dataframe(R1=f1,R2=f2) … predict(new_model, data); JRI new_model <- gbm(formula=‘y~R1+R2’) Features
  • 29. | 29 UDF – MAPS PARAMETERS AND VALUES 29 SELECT my_udf( "new_model:R1+R2", f1, f2 ) FROM data_table ; UDF data <-dataframe(R1=f1,R2=f2) … predict(new_model, data); JRI new_model <- gbm(formula=‘y~R1+R2’) Features
  • 30. | 30 REQUÊTE SQL ET CODE JAVA 30 add jar JRI.jar genUdf.jar; add file new_model.rds; SELECT my_udf( "new_model:R1+R2", f1, f2 ) FROM table_data ;
  • 31. | 31 31 Number of rows Data size (o) Nb. Mappers Time (s) Memory 1 34 1 51 OK … … … … OK 10,000,000 441M 2 110 OK 100,000,000 4.4G 18 1312 OK Hive UDF RESULTATS – VM CLOUDERA IT SCALES !!
  • 32. | 32 32 SPARK ? PySpark (API Python de Spark) : • setup entre python et R avec rpy2 ~1 ligne • load de la table à scorer en RDD (via sparkQL ou DataFrame) ~ 1 ligne • une fonction map avec une fonction appel du predict de R ~ 1 ligne
  • 33. | 33 33 SPARK ? PySpark (API Python de Spark) : • setup entre python et R avec rpy2 ~1 ligne • load de la table à scorer en RDD (via sparkQL ou DataFrame) ~ 1 ligne • une fonction map avec une fonction appel du predict de R ~ 1 ligne SparkR (API R de Spark depuis v. 1.4 ) : • load de la table à scorer en RDD (via sparkQL ou DataFrame) ~ 1 ligne • une fonction map avec une fonction appel du predict de R ~ 1 ligne
  • 34. | 34 CONLUSIONS & PERSPECTIVES  Etude d’intégration des modèles GAM (R / MGCV) dans Hadoop pour la problématique de la prévision locale de consommation d’électricité  L’approche « Model As Code » est séduisante :  Pour les métiers : mettre en production rapidement des modèles et analytics innovants  Pour les équipes SI : intégrer les besoins nouveaux des métiers en analytics sans développement long ou trop complexe  Depuis cette étude réalisée début 2015, on a prototypé l’intégration d’autres traitements analytiques dans des environnements SI opérationnels avec plusieurs techniques :  Celles en mode « in-database » : au plus proche de données, couplées avec la mécanique distribuée de la base de données  Celles en mode « webservices » : découplées des entrepôt de données, mais facilement consommables par différentes applications et des besoins divers scalabilité accessibilité RRO/RREDEPLOYR