Revolve Inside : Sergio, Machine Learning Engineer, Devoteam Revolve Toulouse

Temps de lecture : 11 minutes

Et si on faisait connaissance ? Devoteam Revolve, ce sont des consultantes et des consultants passionnés par leur métier, des profils et des parcours variés. Dans cette série d’articles, nous vous proposons d’aller à la rencontre de celles et ceux qui font la richesse de l’entreprise, de découvrir leur vision du métier et les challenges techniques qu’ils relèvent.

Aujourd’hui nous allons à la rencontre de Sergio, Machine Learning Engineer dans l’équipe de Devoteam Revolve Toulouse.

Comment es-tu arrivé à la Data Science puis au MLOps ?

Le premier script que j’ai écrit, ou plutôt adapté, a été un script en Perl que j’avais trouvé sur un forum. Ce script m’a permis d’exploiter une faille sur un obscur jeu en ligne. Ma motivation à l’époque était plus que douteuse : je cherchais à reprendre l’avantage face à une faction adverse trop puissante. Malgré mon jeune âge, et en partant de zéro, j’avais réussi à m’introduire dans le système au bout de quelques jours de travail, et à obtenir les privilèges administrateurs. La satisfaction de cette réussite avait largement dépassé l’intérêt du jeu en lui-même. C’est là qu’est née ma première passion. C’est aussi là que j’ai pris conscience qu’un nouveau pouvoir implique toujours une responsabilité morale.

Ce n’est que bien plus tard que j’ai appris que la sécurité informatique pouvait être un métier, et c’est dans cette direction que j’ai continué ma route. J’avais également une passion pour l’étude du fonctionnement du cerveau humain, et en particulier l’étude des mécanismes d’apprentissage. Mais la réalité du travail de laboratoire, c’est-à-dire passer son temps à disséquer des cerveaux de pauvres souris, m’a rapidement fait déchanter. Et les connaissances sur le sujet avançaient trop lentement à mon goût.

Durant ma formation, en m’intéressant aux systèmes de détection d’intrusion, je suis tombé sur des outils assez novateurs, pour l’époque, qui s’appuyaient sur du ML pour détecter des types d’attaques non répertoriés. Le fait de voir qu’il était possible de programmer un apprentissage de la machine a été pour moi un déclic.

Comment as-tu rejoins Devoteam Revolve ?

Avant de rejoindre Revolve, j’avais déjà travaillé sur différents projets de Machine Learning. Un premier en NLP, sur un programme d’analyse et de génération d’email (NLP). Puis différents projets autour de l’image, pour faire de la modération de contenu notamment. La plupart du temps j’entraînais mes propres modèles. Mais il m’arrivait aussi de m’appuyer sur des services AWS, comme Rekognition par exemple.

Comme j’étais le seul à travailler sur ces sujets au sein des équipes, j’étais aussi chargé d’exposer les modèles, pour qu’ils puissent être utilisés. Les solutions pour le faire, il y a encore quelques années, étaient assez limitées. Il n’existait qu’un seul service ML sur AWS, qui s’appelait littéralement “Amazon Machine Learning”, avec peu de fonctionnalités. Ce service existe toujours, mais il n’est plus mis à jour. Je me contentai donc d’encapsuler mon modèle dans un conteneur, et je l’exposai au travers d’une API Flask.

Mais un jour est arrivé Amazon SageMaker, puis toute une série de services orienté ML. Il en existe au minimum une vingtaine aujourd’hui, quelle que soit la manière de faire le décompte. AWS a concentré une partie importante de ses ressources pour développer des services autour de cette thématique. Et c’est toujours le cas aujourd’hui. Pas un AWS Summit ne se passe sans une nouvelle annonce, un nouveau service.

J’avais commencé à utiliser SageMaker, en combinaison avec MLFlow, pour répondre à mes besoins. On ne parlait pas encore de MLOps, mais j’avais constaté le besoin croissant autour de compétences qui permettent la mise en production des modèles de prédiction, et tout ce que cela implique. C’était un vrai pain point. Il me semblait intéressant de continuer dans cette voie, et de le faire dans le contexte du Cloud AWS. L’agence Devoteam Revolve Toulouse avait organisé un Meetup. J’ai tout de suite été séduit par l’état d’esprit de partage et d’entraide des personnes que j’ai rencontrées. C’est pour toutes ces raisons que j’ai rejoint Devoteam Revolve.

Sur quels cas d’usage as-tu ensuite travaillé ?

J’ai travaillé sur un premier cas lié à la détection de marchandises frauduleuses dans le secteur du transport. Identifier une marchandise ou un mouvement suspect, c’est comme chercher une aiguille dans une botte de foin. Pour essayer de comprendre les méthodes utilisées, on analyse l’ensemble des données disponibles, ceci afin de trouver des liens, et identifier des schémas récurrents. C’est complexe car les intervenants durant le transport sont nombreux, et donc ce sont autant de moments où la fraude peut se produire. C’était un projet très intéressant, sur lequel nous avons eu de bons résultats. J’ai principalement travaillé sur la partie algorithmique, avec des ressources AWS pour le compute, et un prototype que j’ai réalisé avec Amazon Sagemaker. Durant ce projet, j’ai beaucoup apprécié les échanges avec le métier afin de bien comprendre la problématique. C’est ce qui est passionnant, chaque cas d’usage permet de découvrir un domaine d’activité en profondeur, et en échangeant avec les experts métier, cela donne vraiment une vision du monde différente.

Ce projet a aussi fourni un éclairage intéressant sur la confiance qu’on peut accorder à un système : la période du Covid a montré que les systèmes de prédiction étaient complètement dépassés par l’événement. Or, c’est quand il y a un dysfonctionnement qu’on se demande comment les choses devraient marcher.

Peux-tu nous parler des cas liés au traitement d’image ?

J’ai en effet pu intervenir sur une mission concernant une solution de sécurité basée sur la vidéo surveillance. La problématique était de réduire le nombre de faux positifs, c’est-à-dire éviter le déclenchement des alertes “inutiles”, car elles impliquent ensuite une intervention humaine pour vérifier s’il y a eu une intrusion.

Nous avons donc développé un prototype pour améliorer ce système, pour lequel nous avons fait plusieurs modèles : détection des humains, détection de mouvements, etc. Là aussi, il y avait beaucoup de travail pour bien comprendre les besoins métier, et comprendre la réalité du terrain. Si un animal passe au milieu de la pièce, doit-on le considérer comme un intrus? Faut-il réagir à une lumière qui s’allume à une heure inhabituelle? Le challenge principal de ce projet était de clarifier les attentes, et de traduire le besoin métier en un problème de machine learning. Pour y répondre nous avons développé des modèles customs avec SageMaker.

Quels sont les autres champs d’application ?

J’ai également travaillé sur un autre projet de reconnaissance d’image, beaucoup plus ambitieux, où l’objectif était de détecter et de classifier les dommages présents sur les conteneurs maritimes, à partir de photos prises avec des smartphones. L’entretien et la réparation de conteneur est un poste de dépense assez important, et l’augmentation du transport maritime ces dernières années peut rendre difficile certains processus métier. Le volume est devenu trop important pour être humainement gérable.

Pour développer ce projet, nous avions à notre disposition des millions de photos, ainsi que la base de données contenant l’historique des réparations. Les données n’étaient pas directement exploitables. J’ai mis en place une approche Data-centric, pour pouvoir extraire les photos à prioriser à l’annotation, et donc permettre aux Data Scientist d’avoir accès à des datasets de bonne qualité. Je pense écrire un article dédié à ce projet, car il reste encore beaucoup de points intéressants que je ne pourrai pas développer ici.

Nous avons entraîné plusieurs modèles pour identifier les dommages les plus courants, et les plus coûteux. Là aussi, j’ai utilisé SageMaker, et Ground Truth pour mettre en place le pipeline d’annotation. La solution fournie permet de traiter beaucoup plus d’images, de mieux identifier l’origine des dommages, et donc d’établir plus clairement les responsabilités.

Quels sont les pain points les plus fréquents dans les projets de ML & MLOps?

Avec l’expérience, je pense maintenant reconnaître les situations et les approches problématiques quand elles se présentent. C’est un domaine qui est encore relativement nouveau, et encore beaucoup d’acteurs peuvent tirer bénéfice d’un accompagnement.

Le premier constat, c’est que les projets échouent rarement pour des raisons techniques, mais plutôt pour des raisons organisationnelles. La composition des équipes, leur différentes spécialisations, une bonne feuille de route ainsi qu’un ROI clair sont autant de points critiques à la réussite d’un projet. Les incompréhensions entre le métier, les décideurs, et les équipes data sont courantes. Il m’est arrivé plusieurs fois de jouer le rôle de traducteur.

Le deuxième est que la qualité/fiabilité des données est un problème récurrent. Un algorithme ne va pas auto-magiquement faire de bonnes prédictions avec de mauvaises données. Améliorer la qualité des données est moins vendeur que de proposer un nouveau modèle de prédiction, mais beaucoup d’organisations gagneraient à s’attaquer à ce sujet en priorité.

Heureusement le MLOps a beaucoup gagné en popularité. Et il est de moins en moins nécessaire d’expliquer l’utilité de telle ou telle fonctionnalité. J’attends avec impatience le moment où l’on aura atteint le même degré de maturité que ce qu’on peut observer dans le monde du développement classique, en termes d’automatisation. Même si la définition de la cible idéale continue à évoluer, certains patterns sont aujourd’hui largement partagés dans la communauté.

Sur quoi travailles-tu aujourd’hui ?

Un projet de création d’une plateforme de MLOps complète, proche de l’état de l’art, destinée à traiter des images satellites. J’ai la chance d’intervenir au sein d’une équipe client avec tous les rôles indispensables au projet, c’est-à-dire des Data Scientists, mais aussi des Architectes, des Devops, etc.

L’algorithme est déjà fonctionnel. Notre objectif est de fournir un environnement de travail ainsi que les ressources de calcul nécessaires. C’est un challenge car le système doit être très scalable pour pouvoir traiter le volumes de données, et ce pour un coût raisonnable. Il y a aussi tout un travail à faire sur l’ingestion des données, la mise à jour des modèles, et potentiellement la détection du drift des modèles parce que nous mettons en place du ré-entraînement automatisé. Chaque jour les données récupérées sont utilisées en tant que nouvelles données d’entraînements, ce qui permet de créer un nouveau modèle, et fournir le lendemain une prédiction sur les zones connexes. Nous avons la chance de travailler avec une équipe côté client qui est pleinement impliquée sur le projet, et qui participe activement à cette construction.

En termes de choix technologiques, c’est la plateforme open source Kubeflow qui a été choisie, avec déploiement de l’infrastructure sur AWS. J’ai la chance de travailler et d’apprendre au sein d’une équipe agréable et compétente :

  • Thomas Ounnas, qui réalise un impressionnant travail d’adaptation de la solution Kubeflow à AWS, et qui développe la majeure partie de la plateforme.
  • Jalil Khayi (voir son article retour d’expérience sur un Datalake ici), qui supervise le projet, et organise la communication, ce qui nous permet de nous concentrer sur les aspects techniques. 
  • Pierre Benefice (voir ses articles sur les builds Docker ici), qui nous aide à améliorer les chaînes de CI/CD, grâce à son expertise sur le sujet.

Je travaille également sur deux autres projets, dont un sur lequel j’accompagne Joyce Marazano (voir son article sur le framework Streamlit ici). Il s’agit de mettre en place une solution permettant d’exécuter de manière automatisée et scalable un algorithme d’optimisation logistique sur AWS. Je ne rentre pas plus dans le détail, car cela fera certainement l’objet d’un prochain article.

Tu as rejoins l’équipe Devoteam Revolve il y a presque 3 ans, tu es content de ce choix ?

J’ai eu un vrai coup de cœur pour l’équipe toulousaine quand je suis arrivé. Ça a complètement changé ma vision des ESN, j’avais affaire à des humains, et ça m’a beaucoup plu ! J’ai aussi été attiré par le fait que l’entreprise était précurseur sur le Cloud AWS, avec beaucoup de gens très compétents, et prêts à partager leur savoir. Et aujourd’hui, j’aime aussi partager en retour ce que j’ai appris. C’est un point commun chez tous les “Revolver”, je pense.

Nous soutenons aussi certaines associations, en accord avec nos valeurs, par un accompagnement technique sur AWS. Cela permet de joindre le geste à la parole. J’ai par exemple la chance de pouvoir participer au projet CREA Montblanc, dont l’objectif est d’aider les chercheurs à étudier les effets du changement climatique sur la faune locale.

J’apprécie aussi le fait qu’on ait des terrains de jeu, des missions, qui sont toujours intéressantes. Ces dernières années ont été très riches en expérience. On travaille sur des sujets novateurs, en avance de phase de ce qui se fait sur le marché. Le fait d’être partenaire AWS, nous permet aussi de pouvoir échanger plus facilement avec leurs équipes. A plusieurs reprises, j’ai pu bénéficier de leurs conseils.

Pour l’instant, je suis le seul de l’équipe toulousaine à travailler sur des sujets ML, et même si j’apprécie de travailler en collaboration avec les autres régions, je pense qu’il est temps de monter une équipe data complète sur l’agence de Toulouse.

Si vous cherchez de nouveaux challenges, et que vous souhaitez nous rejoindre, vous pouvez me contacter directement, ou postuler ici.

Quels sont selon toi les prochains sujets dans l’IA ?

Je pense qu’il faut réfléchir très sérieusement aux questions liées à l’éthique dans l’IA, qu’il s’agisse de la protection des données, de l’anonymisation, ou de l’impact des algorithmes sur la vie des gens. Ce sont des sujets sur lesquels il faut travailler maintenant, plutôt que d’attendre que les scandales éclatent. C’est comme pour la sécurité : avant, on ne s’en occupait que lorsqu’il y avait eu un grave problème. Plus qu’un thème à la mode, c’est un enjeu de société. Il faut à tout prix éviter l’effet greenwashing, et trouver de vraies solutions.

La protection des données personnelles et sensibles est un sujet essentiel. Les moyens techniques, légaux et organisationnels, qui existent pour mettre en place des protections sont encore malheureusement insuffisants. Nous pouvons par exemple observer dès aujourd’hui le pouvoir de contrôle que peuvent exercer certains états, grâce à ces collectes massives de données. Ce sera un des sujets majeurs dans les prochaines années.

Je m’inquiète aussi des impacts sur les emplois que peuvent avoir et auront encore plus dans le futur ces systèmes.  On peut parler de formation et de reconversion professionnelle, mais je ne pense pas que ce sera suffisant.

Si j’aborde ces sujets ici, ce n’est pas pour ajouter des nouvelles anxiogènes de plus à votre flux d’information. Mais parce que j’ai maintenant envie de participer à la construction des solutions, à mon échelle bien sûr. Si ces sujets vous intéressent, je vous invite à me contacter, pour que nous puissions y travailler ensemble.

Commentaires :

A lire également sur le sujet :