Publié par

Il y a 4 semaines -

Temps de lecture 10 minutes

DevFest Paris vu par un Data Engineer

Une fois de plus, le Google Developers Group (GDG pour les intimes) nous offre un événement IT de qualité, le DevFest Paris. Se déroulant le 8 Février 2019 dans le 16ème arrondissement de Paris, cet événement accueille 600 passionnés et propose 24 talks répartis sur 4 tracks. Étant chanceux d’avoir participé à cette édition 2019 (merci Xebia), je vous rédige cet article pour vous présenter quelques talks que j’ai suivis. Ils seront plutôt orientés Data, étant donné mon profil de Data Engineer. Que la Fest commence !

9h~KeyNote d’ouverture: IA: Q&A – Didier Girard et Françoise Soulié Fogelman (45min)

Didier Girard et Françoise Soulié Fogelman nous offrent une keynote d’ouverture passionnante autour de l’IA sous forme de questions/réponses.

Madame Soulié Fogelman nous explique que l’IA est, selon elle, un travail d’informaticien avant tout. Son expérience dans le domaine met en exergue la forte proportion de l’IT par rapport aux statisticiens et mathématiciens dans des projets d’IA.

Une évolution chronologique des courants de l’IA a été présentée à cette keynote, l’IA symbolique, se basant sur le raisonnement formel ainsi que la logique et l’IA connexionniste qui s’entraîne sur des données avec une approche probabiliste.

Cette évolution nous montre que ces deux courants se disputent la revendication de l’IA. À partir de 2012, l’IA connexionniste domine grâce au deep learning. Cette technologie a été utilisé la première fois lors d’une compétition d’analyse d’images; Un projet nommé ImageNet utilisant du deep learning réalise une optimisation de 15% par rapport aux autres projets présentés (sachant que le taux est généralement de 1%).

Les speakers nous donnent l’état actuel de l’IA dans le monde et nous parlent essentiellement de l’état chinois. En effet, les investissements financiers chinois dans ce domaine sont impressionnants et l’accessibilité aux données publiques est illimitée (caméra de surveillance, mise sur écoute, …). Nos speakers soulignent que si l’Europe ne veut pas être dépassée dans ce domaine, elle devrait lui accorder beaucoup plus de moyens et devrait s’interdire moins de choses. Le dernier sujet de cette keynote parle d’une IA qui peut être dangereuse comme par exemple l’utilisation d’armes autonomes ou encore la manipulation de l’opinion publique …

 

Lien vidéo: Keynote d’ouverture: IA: Q&A – Didier Girard et Françoise Soulié Fogelman


10h~Computer Vision: British Clay – Valentin Deleplace (40min)

Valentin Deleplace, google advocate pour Google Cloud Platform, nous offre une présentation dédiée à la classification d’images avec AutoML Vision. Sous ce titre de slot très énigmatique se cache une classification d’images sur deux personnages de dessins animés anglais: Wallace et Gromit. Pour cela, notre speaker lance sa démo en créant un dataset avec les images labellisées et zipées de Gromit et/ou Wallace sur l’outil AutoML Vision puis lance l’entraînement du modèle de classification. En attendant que le modèle s’entraîne sur les données, Valentin Deleplace nous rappelle qu’il est utile, voir essentiel, qu’une classification déclenche des actions (par exemple filtrer des images inappropriées) et nous expose les différentes options pour construire un modèle de ML dédié à la vision en termes de niveau d’implication de son utilisateur :

5.Visions API’s (generic computer vision as a service) :

Simple d’utilisation mais ne réponds pas aux besoins spécifiques.

4.Google AutoML Vision :

Simple d’utilisation et réponds à des besoins plutôt spécifiques.

3.TensorFlow for transfer learning :

Utilisant un modèle pré-entraîné, cette technique permet d’ajouter une dernière couche dans le réseau de neurones de TensorFlow avec notre dataset pour répondre efficacement à nos besoins.

2.TensorFlow from scratch :

Utiliser TensorFlow pour développer ce modèle de bout en bout avec une équipe réduite mais nécessite une quantité importante de données.

1.Neural Network from scratch :

Difficile, coûteux et nécessite une équipe data et beaucoup de données.

Google AutoML Vision automatise ces actions là:

Pour mieux imager le potentiel d’AutoML, notre speaker nous présente les outils qu’il a utilisés pour ce projet:

  • Machine Box – ClassificationBox :

Après avoir créé un compte sur leur site, Machine Box propose de lancer un conteneur Docker pour récupérer certaines données et communiquer avec votre modèle en utilisant des commandes CURL.

  • Microsoft Azure – Custom Vision :

Avec cette solution tout se fait avec la web UI, Valentin Deleplace obtient une précision de 92% et un « recall » de 86% avec son dataset.

  • Clarifai :

Basé sur une API pour 6 langages de programmation (PHP, Objective C, JS, Java, C#, Python) et Curl.

Une fois son modèle entraîné, notre speaker nous donne quelques indications pour avoir un modèle de plus en plus précis en utilisant si possible la classification multi-label (une même image peut contenir plusieurs labels) ou encore le fait d’entraîner son modèle avec des “negative examples” (des images qui n’appartiennent à aucun label).

AutoML est utilisable via une API REST ou encore avec trois langages de programmation (Python, Java, Node).

Pour conclure, la classification d’images se fait de façon de plus en plus simple aujourd’hui. À l’aide d’outils qui automatisent presque toute la chaîne de construction d’un modèle, nous obtenons assez facilement des résultats pertinents.

 


11h~GCP for data scientists – Giulia Bianchi (40min)

Giulia Bianchi, Data Scientist chez Xebia et organisatrice du DataXDay, nous expose pendant ce slot son projet personnel “parenting 3.0” qui permet de détecter les pleurs d’un bébé à l’aide d’un RaspberryPi. En utilisant aussi la plate-forme GCP, elle nous expose les différents apports que peut avoir le cloud pour un data scientist.

Après avoir défini les différents niveaux de cloud (Iaas, Paas, Saas) et ses différents avantages, à savoir maîtrise des budgets, gain de temps et surtout haute disponibilité avec des ressources importantes, notre speaker nous explique les trois principaux termes dans le domaine du machine learning:

  • Training : Définir des règles automatiquement à partir de la donnée.
  • Prediction : Évaluer une nouvelle donnée.
  • Feature engineering : Le traitement de la data avant le training et la prédiction.

Le projet “parenting 3.0” a été fait initialement sans passage par le cloud. L’enregistrement du son, le feature engineering et la prédiction durent 45 secondes à peu près sur le RaspberryPi, ce qui n’est pas pertinent, nous explique Giulia Bianchi.

Le process est le suivant: le signal est envoyé sur cloud storage à l’aide d’un script shell qui tourne dans un conteneur Docker, puis découpé en plusieurs morceaux, le feature engineering est fait sur chaque morceau grâce à LibRosa, une librairie python. Ensuite, la prédiction est faite avec scikit-learn et au bout de 5 morceaux qui correspondent à un cri de bébé, Giulia Bianchi estime que c’est bien un cri de bébé à l’aide d’un vote majoritaire.

Pour transposer ce travail sur le cloud, les parties feature engineering et prediction ont été mises sur GCP.

Dans le but de déclencher le traitement, notre speaker a choisi d’utiliser une lambda function écrite en python à l’aide de GCP Cloud Function. Cette fonction va lire le signal déposé sur Cloud storage, découper le son, faire le feature engineering et appeler CloudML pour la prédiction. Une fois la prédiction et le vote majoritaire faits, le résultat est sauvegardé sur Cloud Storage.

Avec ces technologies, notre speaker a réussi à faire le processus, de la lecture du son à la prédiction, en moins de 5 secondes.

Le projet “parenting 3.0” est toujours en cours de développement essentiellement sur la partie d’envoi des résultats au RaspberryPi en utilisant Google IOT Core.

 

Lien vidéo: GCP for data scientists – Giulia Bianchi


12h~Les nouveautés “Serverless” de Google Cloud – Guillaume Laforge (50min)

Cette présentation qui fait un “overview” des technologies les plus récentes pour faire du serverless sur Google Cloud est présentée par Guillaume Laforge, Developer Advocate chez Google.

Fort de ses datacenters répartis tout autour du globe, Google Cloud propose aussi un scope impressionnant de services allant du stockage jusqu’au machine learning.

Concernant la partie serverless, Guillaume Laforge nous explique que les solutions proposées dépendent du besoin de management de la plate-forme :

Nous nous concentrerons ce jour là sur AppEngine et Cloud Functions. AppEngine sera primordiale pour gérer le back-end en s’occupant de la partie API Rest et toutes communications avec des applications Web. Cloud Functions sera utile pour interagir avec tout évènement qui se déclenche en exécutant des fonctions.

Notre speaker nous lance ensuite la démo de son projet qu’il a réalisé exclusivement sur Google Cloud: pic-a-daily.appspot. Elle permet de prendre des photos, les filtrer pour éviter toutes images non appropriées et ensuite les labelliser. Plusieurs langages ont été utilisés: Java, JavaScript, Go et Python.

La partie architecturale du projet est divisée en trois phases:

  • User Facing :

Pour toute interaction avec l’utilisateur ou l’admin faites en Java sur AppEngine.

  • Data Storage :

Pour uploader la photo sur Cloud Data Storage et ses métadonnées dans Data Store.

  • Event-driven logic :

À chaque dépôt d’une image, un événement est créé en appelant une Cloud Function. Elle même va appeler Cloud Vision pour générer un libellé, la couleur dominante et appliquer le filtrage.Cette partie gère aussi le calcul des libellés les plus fréquents en appelant à intervalle régulier une fonction à l’aide du Cloud Scheduler via Pub/sub et met à jour les métadonnées.

Parce qu’une photo vaut mieux qu’un long discours:

Guillaume Laforge nous précise que côté AppEngine les runtimes supportés sont: Node.js 8, Python 3.7, PHP 7.2; Go 1.11, Java 8 et Java 11 Beta.

La partie Cloud Functions, qui n’est plus en Beta, accepte l’utilisation de variables d’environnements et des runtimes Python 3.7 et Node 8.

Pour finir Google Cloud permet l’utilisation des conteneurs et nous propose une solution: KNative. Une plate-forme serverless basée sur Kubernetes, elle se compose de 3 blocs:

  • Build : Créer des images, builder et tester le projet.
  • Serving : Pour servir l’application sur le web.
  • Events : Pour réagir à des événements comme dans Cloud Function.

 

Lien vidéo: Les nouveautés “Serverless” de Google Cloud – Guillaume Laforge


Pour conclure, ce fut une journée de qualité, riche en talks utiles et intéressants. Hâte de participer aux prochaines éditions.

Mais ce n’est pas tout ! Voici les vidéos des autres présentations auxquelles j’ai assisté :

Notez bien que parmi les speakers présents, deux d’entre eux seront au DataXDay’2019 ! Rendez-vous donc le 27 Juin, pour l’un des meilleurs événements Data de la scène parisienne.

 

Publié par

Publié par Elhadi Cherifi

Elhadi est Data Engineer chez Xebia. Data Lover avant tout, il travaille essentiellement sur des problématiques liées à l'ingestion, le traitement et le stockage des données dans un contexte big data. Ces outils préférés sont Scala et Spark.

Commentaire

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Nous recrutons

Être un Xebian, c'est faire partie d'un groupe de passionnés ; C'est l'opportunité de travailler et de partager avec des pairs parmi les plus talentueux.