Les coulisses de notre communauté d’apprentissage Machine Learning

Temps de lecture : 7 minutes

Chez Devoteam Revolve, cela fait plus de 5 ans que nous intervenons sur des projets tels que la mise en place de Datalakes dans le Cloud, la construction de plateformes de Datascience, la construction de modèles de Machine Learning, l’industrialisation de ces activités etc.

Cet historique de projets nous a permis d’acquérir de bonnes pratiques tant en termes d’architecture que de développement et d’automatisation, d’outillage ou encore d’organisation. 

Aussi, lorsque nous avons cherché à structurer l’offre “Data & Analytics”, il nous semblait évident que nous avions tous les ingrédients pour organiser une communauté afin de : 

  • Capitaliser sur les retours d’expériences et bonnes pratiques
  • Partager la veille technologique au sein de Revolve 
  • Structurer des parcours d’apprentissage pour faciliter la montée en compétence des collaborateurs
  • Communiquer sur nos savoir-faire au travers de meetups, webinars ou encore d’articles de blog

Nous avons donc lancé un ensemble d’initiatives que nous voulions collaboratives. Malgré toute notre bonne volonté, notre approche s’est avérée quelque peu “top down”. 

Avec du recul, nous avons réalisé qu’en définissant les objectifs et chantiers conformément à ce que nous imaginions de la communauté, nous ne laissions pas suffisamment d’espace aux équipes et l’adhésion s’est avérée plutôt faible.

C’est lorsque Jalil nous a rejoint que nous avons relancé cette idée de communauté et cette fois-ci, nous n’avons pas reproduit les erreurs de l’expérience précédente.

“Lessons learned” : 

  • Laisser place le plus possible à l’autodétermination car c’est la seule manière de générer de l’adhésion.
  • Patience et longueur de temps valent mieux que force ni que rage” (La Fontaine). Abandonner l’idée de contrôle ou de retour sur investissement. C’est seulement à ce prix que la communauté apportera toute sa valeur.
  • Naviguer à vue. Il est difficile de comprendre pourquoi une communauté fonctionne et si telle ou telle action aura un impact positif ou négatif. 
  • Il faut cultiver son jardin” (Candide de Voltaire). Encourager la prise d’initiatives, responsabiliser les équipes et leur donner les moyens… Voici quelques ingrédients qui permettront à votre communauté d’ancrer de solides racines et de se développer.
Jalil

Jalil partage avec vous la genèse et l’évolution de cette communauté.

Comment la communauté du Machine Learning a-t-elle été initiée ?

Quand j’ai rejoint l’équipe Revolve, il y avait en interne la volonté de compléter les initiatives existantes sur la Data avec un volet Machine Learning, sujet sur lesquels je voulais également m’impliquer. Nous avons commencé à dégrossir le sujet avec Fabien et Sylvain, et discuter de ce dont nous avions envie. Nous étions plein de bonnes intentions qui ne se sont pas toutes réalisées, mais après différents échanges pour lancer l’organisation d’un événement récurrent, nous avons choisi le format du lunch & learn hebdomadaire. Nous avions un rendez-vous récurrent, des référents internes pour les sujets techniques et commerciaux, un noyau pour animer la communauté, et de nouveaux arrivants comme Jérôme, Habib et Bakarim très motivés pour faire avancer le sujet.

Comment se sont déroulés les premières rencontres de la communauté ?

Nous avions un bon groupe constitué à parts égales de sachants et d’apprenants. Nous avons commencé par un rappel des bases, des définitions, des concepts pour permettre à tout le monde de partir sur un socle partagé. Le premier rendez-vous était plutôt pédagogique, et nous avons rapidement évolué vers l’objectif de construire quelque chose ensemble, qui puisse nous servir chez nos clients. L’idée était d’utiliser cette dynamique de groupe pour élaborer notre réflexion et construire les outils que nous pourrions utiliser au quotidien. Rapidement, nous en sommes venus à travailler sur des repository de code.

Quel est le projet sur lequel vous avez travaillé ?

Après avoir joué les jeux de données « Hello world » de la Data Science (rendons hommage au Titanic une fois de plus), nous avons constaté notre difficulté à travailler sur un même projet à plusieurs et a distance. Nous avons donc construit un exemple de projet de machine learning, en nous concentrant sur la structure plus que sur la data science : comment organiser le projet pour faciliter la collaboration ? Le premier trimestre de travail a été consacré à ce repository collaboratif. Cela nous a permis de gagner en maturité sur la notion de collaboration entre data scientists.

Comment la communauté vit-elle ?

Nous avons régulièrement de nouveaux arrivants. Nous prenons le temps de les accueillir, de comprendre leur background et ce qu’ils viennent chercher dans la communauté. C’est aussi l’occasion pour nous de réitérer nos objectifs et nos envies sur le projet.

Comment le projet évolue-t-il ?

Nous avons ensuite avancé avec un besoin client en ligne de mire. Nous avions un projet concret de Data Science à livrer, utilisant Sagemaker et les services AWS. Ce projet nous a permis de structurer notre pensée et de la challenger. Nous avons engagé beaucoup d’efforts sur le développement d’une stack Terraform permettant de déployer l’ensemble des outils pour travailler en collaboratif. Cette fois-ci nous avons travaillé avec la préoccupation d’aller jusqu’en production. On a travaillé sur du code, du concret, avec un livrable à fournir pour un client. Cela nous a mis plus de pression, et nous y avons consacré pas mal de temps.

Quel a été le résultat ?

Nous avons une stack utilisable, dont nous sommes satisfaits même si elle peut être encore améliorée. La stack est déjà en cours d’utilisation chez le client, et nous complétons l’outil au fur et à mesure. Avec les efforts conjugués d’experts Data Science et d’experts Ops/Terraform, nous sommes arrivés à un résultat permettant à une équipe mixte DS/ML Ops  de travailler ensemble en bonne intelligence. Ce projet a été mené à bien grâce aux compétences complémentaires des deux métiers : les DS n’ont pas les compétences Terraform pour compléter la stack, et les Ops ont besoin des DS pour partir dans la bonne direction.

Comment les différents métiers ont-il monté en compétence ?

Chacun a enrichi ses connaissances sur la partie infra, les Ops progressé en Data Science. On ne peut pas encore échanger nos casquettes, mais on progresse !

Avez-vous fait des erreurs ? Que feriez-vous différemment aujourd’hui ?

Dans l’idéal, j’aurais aimé pouvoir mieux préparer les sessions. On trouve toujours des sujets de discussion, mais avec plus de préparation et d’organisation, nous en aurions tiré plus de valeur. C’est surtout une question de manque de temps. J’aimerais aussi mieux organiser la veille et traiter plus régulièrement la question du partage de connaissances (REX, commentaire d’article, etc.). Pour l’instant, nous ne capitalisons pas suffisamment.

Comment maintenir l’implication sur le long terme ?

C’est un challenge ! Je ne compte plus le nombre de déjeuners manqués depuis le lancement du lunch&learn. Sur la longueur, nous avons des personnes  qui sont là depuis le début et dont l’investissement est inaltérable, d’autres qui sont venues puis reparties… il est difficile de maintenir l’engagement sur la durée en fonction du contexte de chacun. Mais nous avons des participants sérieux et intéressés et si l’un de nous n’est pas disponible, quelqu’un d’autre relance le sujet. D’autres se connectent à distance, comme Jérôme qui contribue sur son temps personnel dès qu’il peut. Cela demande un investissement personnel de chacun.

Quels sont les projets pour l’avenir ?

Sur le format et sur l’organisation, un des objectifs de 2020 est de démocratiser l’ordre du jour, la roadmap et l’organisation de la communauté. Pour l’instant, je fonctionne encore un peu trop en mode dictateur éclairé ! Sur le fond, j’aimerais qu’on continue à développer la stack infrastructure. Nous avons maintenant toutes les briques pour faire de l’exploration sur un projet de ML en mode collaboratif : stocker des données, travailler sur ces données, tester des modèles. Nous devons maintenant gagner en maturité sur la partie production, intégrer nos convictions sur comment opérer nos modèles, les monitorer, et comment les faire vivre dans le temps. Déployer les modèles et les faire vivre, c’est là où se situe la complexité. 

Nos convictions sur le packaging des modèles pour le déploiement sont maintenant établies, nous devons maintenant avancer sur la suite. Enfin, j’aimerais que d’ici 2020 nous soyons suffisamment murs pour que la stack synthétisant nos convictions sur le Machine Learning en production sur AWS puisse être open sourcée. La valeur ne réside pas dans la suite d’outils, mais dans la façon dont nous accompagnons les utilisateurs. Je pense que cela nous permettrait d’ouvrir notre projet, et d’avoir les retours de la communauté élargie (Data for good par exemple). Et coté technologies, nous voulons nous concentrer sur les six prochains mois sur Sagemaker et ML Flow pour faire du tracking et du packaging de modèle, et de l’assistance au déploiement.

Commentaires :

A lire également sur le sujet :