@xebiconfr #xebiconfr
Data Science & Craftsmanship:
Je t’aime, moi non plus
SylvainLequeux
YoannBenoit
@xebiconfr #xebiconfr
Raconte moi une histoire
2
0
@xebiconfr #xebiconfr
Raconte moi une histoire
3
0
@xebiconfr #xebiconfr
@YoannBENOIT
Yoann BenoitSylvain Lequeux
4
@slequeux
@xebiconfr #xebiconfr
Deux mondes que tout sépare
1
5
@xebiconfr #xebiconfr
Des formations différentes
6
1a
@xebiconfr #xebiconfr
Des objectifs personnels différents
7
1b
@xebiconfr #xebiconfr
Des équipes différentes
8
1c
Plusieurs équipesUn objectif commun : délivrer de la valeur
@xebiconfr #xebiconfr
Des outils différents
9
1d
@xebiconfr #xebiconfr
Choix du langage
10
1e
Popularité Data Scientists
Popularité Data Engineers
Disponibilité algos
Scalabilité algos
Outillage (IDE, Notebooks, Build)
@xebiconfr #xebiconfr
Et le Craftsmanship dans tout ça ?
11
1f
@xebiconfr #xebiconfr
Les contraintes du craftsmanship
2
12
@xebiconfr #xebiconfr
Retour à l’essentiel
13
2a
https://essentials.xebia.com
@xebiconfr #xebiconfr 14
2b
@xebiconfr #xebiconfr
Make it work, make it right, make it fast ...
15
2b
@xebiconfr #xebiconfr 16
2c
@xebiconfr #xebiconfr
… and integrate early
17
2c
Packager et intégrer le code dès que possible
● Au début, les fonctions fréquemment utilisées
● Puis toutes les phases○ Feature Engineering○ Modélisation○ ...
@xebiconfr #xebiconfr 18
2d
@xebiconfr #xebiconfr
Quels outils pour automatiser le build ?
19
2d
TOX MavenSBT
@xebiconfr #xebiconfr
Quels outils pour construire en continu ?
20
2d
@xebiconfr #xebiconfr 21
2e
@xebiconfr #xebiconfr
Contraintes pour les tests
22
2e
Pas de changement sans test préalable
Les tests doivent être rapides
@xebiconfr #xebiconfr
En résumé
23
2f
@xebiconfr #xebiconfr
Comment résoudre ces contraintes en pratique ?
3
24
@xebiconfr #xebiconfr
Du notebook au code packagé
25
3a
Notebook
@xebiconfr #xebiconfr
Du notebook au code packagé
26
3b
Notebook
CodeTemplate
@xebiconfr #xebiconfr
Du notebook au code packagé
27
3c
Notebook
CodeTemplate
Big FatMethod
@xebiconfr #xebiconfr
Du notebook au code packagé
28
3d
Notebook
CodeTemplate
IntegrationTest
Big FatMethod
@xebiconfr #xebiconfr
Du notebook au code packagé
29
3e
Notebook
CodeTemplate
IntegrationTest
UnitTests
Refactor
Big FatMethod
@xebiconfr #xebiconfr
Du notebook au code packagé
30
3f
Notebook
CodeTemplate
IntegrationTest
UnitTests
Refactor
Big FatMethod
Binary
@xebiconfr #xebiconfr
Du notebook au code packagé
31
3g
Notebook
CodeTemplate
IntegrationTest
UnitTests
Refactor
ImportPackage
Big FatMethod
Binary
@xebiconfr #xebiconfr
Du notebook au code packagé
32
3h
Notebook
CodeTemplate
IntegrationTest
UnitTests
Refactor
ImportPackage
Big FatMethod
Binary
@xebiconfr #xebiconfr
Focus sur les tests
4
33
@xebiconfr #xebiconfr
Quels outils ?
34
4a
@xebiconfr #xebiconfr
Test du Feature Engineering
35
4b
Standard Scaling
Suppression des
doublons
Gestion des valeurs
manquantes
Gestion des dates ...
● Le Feature Engineering peut très souvent être décomposé en une suite de transformations élémentaires
● Chacune de ces transformations peut être testée indépendamment
@xebiconfr #xebiconfr
Test de modèles de Machine Learning
36
4c
Features
Algorithmede Machine
Learning
● Le test de modèles est particulièrement compliqué○ L'entraînement de modèle implique d’inclure de l’aléatoire
● Rappel : on souhaite tester la performance du modèle sur un jeu de données, pas le comportement du modèle lui-même○ Vérifier que certaines catégories sont correctement prédites○ Définir un seuil minimal d'acceptation.
Modèle
@xebiconfr #xebiconfr
Performances dans le temps
37
4d
● Votre modèle part en production ? Ce n’est pas encore la fin○ “You build it, you run it” + “You maintain it”
● Il est important de monitorer la performance du modèle dans le temps. Si on observe une baisse de performance :○ Réentrainement sur de nouvelles données○ Ajout de nouvelles features○ Changement complet de modèle
@xebiconfr #xebiconfr
Agilité et Data Science
5
38
@xebiconfr #xebiconfr
Scrum ?
39
5a
Scrum ? Nope !Ce n’est pas pour moi
@xebiconfr #xebiconfr
Workflow typique de développement
40
5b
Ecriture de US
ImplémentationDémo
Déploiement prod Déploiement
@xebiconfr #xebiconfr
Workflow typique de data science
41
5c
Exploration
Feature engineering
Modélisation
Validation / review
@xebiconfr #xebiconfr
Comparons ces deux workflows
42
5d
~1 sprint
Exploration
Feature engineering
Modélisation
Validation
Spécification
ImplémentationValidation
@xebiconfr #xebiconfr
Qu’en est-il de la phase d’exploration ?
43
5e
● Une phase d’exploration peut durer plusieurs sprints
● La sortie de cette phase est incertaine
● Mais l’exploration permet de définir les prochaines étapes et les User Stories associées
@xebiconfr #xebiconfr
Nos essentials sur l’agilité dans la Data Science
44
5f
Inclure les résultats de la phase d’exploration dans
chaque sprint review
@xebiconfr #xebiconfr
Nos essentials sur l’agilité dans la Data Science
45
5f
Accepter l’incertitude
@xebiconfr #xebiconfr
Nos essentials sur l’agilité dans la Data Science
46
5f
Accepter l’imperfection
@xebiconfr #xebiconfr
Nos essentials sur l’agilité dans la Data Science
47
5f
Time boxer l’exploration
@xebiconfr #xebiconfr
Nos essentials sur l’agilité dans la Data Science
48
5f
Il n’y a pas que Scrum dans la vie #Kanban
@xebiconfr #xebiconfr
Une question d’organisation
6
49
@xebiconfr #xebiconfr
Organisation traditionnelle d’un projet
50
6a
@xebiconfr #xebiconfr
Organisation recommandée pour un projet data
51
6b
@xebiconfr #xebiconfr
Feature Team
52
6c
@xebiconfr #xebiconfr
Inclure des devops dans l’équipe
53
6d
@xebiconfr #xebiconfr
Pair Programming
54
6e
@xebiconfr #xebiconfr
Take away
7
55
@xebiconfr #xebiconfr
Les conseils fournis
56
7a
Tester votre code
@xebiconfr #xebiconfr
Les conseils fournis
57
7b
Tester votre code
Automatiser le build et déploiement au plus tôt
@xebiconfr #xebiconfr
Les conseils fournis
58
7c
Tester votre code
Automatiser le build et déploiement au plus tôt
Utiliser du code packagé dans votre notebook
@xebiconfr #xebiconfr
Les conseils fournis
59
7d
Tester votre code
Automatiser le build et déploiement au plus tôt
Utiliser du code packagé dans votre notebook
La Data Science peut fonctionner dans un environnement agile
@xebiconfr #xebiconfr
Les conseils fournis
60
7e
Tester votre code
Automatiser le build et déploiement au plus tôt
Utiliser du code packagé dans votre notebook
La Data Science peut fonctionner dans un environnement agile
Travailler en Feature Teams
@xebiconfr #xebiconfr
Merci !
61