Le Machine Learning & l’Intelligence Artificielle selon AWS - AWS ML & AI Solution Day, 13/02/2019

Personnes concernées

Le public

Sur 50 inscrits, nous nous sommes retrouvés à environ 40 spectateurs pour cette journée. Heureusement d’ailleurs, puisque c’était exactement le nombre de chaises disponibles…!

Nous avons eu l’occasion de nous présenter brièvement, ce qui nous a permis de prendre un peu la température des profils de nos camarades de classe : la grande majorité venaient d’entreprises de services IT, telles que Sopra Steria, Xebia, Cap Gemini, ou Thales Service. Il y avait quelques profils en freelance, et un chez Orange.

On a pu distinguer deux tendances :

  • Ceux qui avaient de l'expérience en ML/IA, et qui voulaient plutôt voir comment l’utiliser dans l’environnement AWS,
  • Et ceux qui connaissaient de près ou de loin AWS, mais pas ou peu leurs services ML/IA.
  • Personne n’avait de réelle expérience dans les deux domaines, comme on pouvait s’y attendre.
  • Autre point clairement entendu : tout le monde venait d’un environnement data engineering ou data science.

Notons que sur 40 participants, nous étions 4 Ippon : Théo Castel, Vincent Heng, Saifallah Ketbi, et moi-même.

L’équipe d’animation de la journée

Au fil de la journée, nous avons eu 2 interlocuteurs :

  • Carlos Escapa, AI/ML Practice Leader Monde chez AWS. Il a animé la plus grande partie de la matinée, et était clairement leader de l’équipe d’animation.
  • Bogdan Vrusias, Spécialiste Architecte de Solutions ML/AI chez AWS, qui s’est occupé de l’après-midi, donc la partie pratique de la journée.

Nous avons aussi assisté à une brève présentation du projet AWS DeepRacer, animée par Olivier Bergeret, en tant que directeur du projet chez AWS Los Angeles.

Vue d’ensemble

Traduction de la description officielle

“Le AWS Machine Learning Solution Day est destiné aux membres du AWS Partner Network (APN) qui veulent mettre en place, ou qui ont déjà mis en place une practice Machine Learning, comme une partie essentielle de leur entreprise.

Cet évènement consiste en un jour complet de formation technique. Seront abordés les sujets du stack de service de Machine Learning sur AWS, comment utiliser les services en production, et une présentation de Amazon SageMaker. La seconde partie de la formation technique sera une session lab pratique dans laquelle les participants construiront un moteur de recommandation à partir de rien.

Nous sommes pressés de vous voir parmi nous pour une immersion d’un jour dans l’apprentissage du ML sur AWS avec nos experts.

Le portfolio AWS Management Tools est un groupe de briques de construction qui aident les clients à répondre à leur besoin en AWS management, compliance, sécurité, et optimisation. Nos partenaires jouent un rôle clé dans l'exploitation de ces éléments de base pour développer des solutions qui répondent aux besoins individuels de nos clients. Les partenaires représentent une relation étroite avec nos clients, c'est pourquoi nous encourageons fortement la rétroaction collaborative afin d'élaborer des feuilles de route qui répondent aux besoins de nos clients.”

Ressources

Avant de commencer cette journée, on nous a conseillé de regarder ces 3 courtes vidéos, servant d’introduction aux concepts de ML/IA survolés pendant la journée :
What is AI (10 minutes)
https://www.aws.training/learningobject/video?id=27394
What is Machine Learning (10 minutes)
https://www.aws.training/learningobject/video?id=27404
What is Deep Learning (10 minutes)
https://www.aws.training/learningobject/video?id=27405

Ces vidéos sont clairement à l’attention des plus débutants d’entre nous en terme de Machine Learning et d’Intelligence Artificielle. Elles survolent assez efficacement les bases nécessaires à la compréhension de la journée. C’est une très bonne introduction, ou, à défaut, une piqûre de rappel potentiellement utile. Pour 30 min de vidéo, la qualité est au rendez-vous.

Contenu de la présentation magistrale

Du besoin en ML/IA

Le ML est un outil très puissant. C’est aussi un objet de fascination pour bon nombre de membre de la communauté IT, voire même pour un public bien plus large. Cependant, comme vous le savez sûrement, les outils que nous utilisons ne sont légitimes qu’à la lumière du problème, du but et du résultat que l’on recherche.

Cela étant dit, il nous faut alors considérer le ML/IA comme une nouvelle manière de résoudre des problèmes, plutôt que comme nos outils habituels, mis sous stéroïdes.

Carlos Escapa a commencé sa présentation en établissant qu’Amazon utilise déjà le ML depuis maintenant 20 ans, principalement pour leur produit phare, Amazon.com. En effet, le système de recommandation de produit lié au moteur de recherche est l’exemple parfait, mais c’est bien loin d’être la seule implémentation de ML/IA sur le site : le tri des produits, l’auto-complétion, … La plateforme regorge d’applications de ML/IA.

Evidemment, de nos jours, le nombre de projets portés par Amazon utilisant ce genre de technologie a augmenté de manière exponentielle, et il serait vain de tenter de les lister. Néanmoins, nous avons eu droit à une petite présentation d’un de leurs produits les plus récents : Amazon Go. C’est un super-marché autonome, c’est à dire qu’il n’y a pas de caisse. Le client peut simplement mettre les produits qu’il veut acheter dans son sac, et une batterie de capteurs s’occupe de mettre à jour son panier, qui se verra automatiquement payé à la sortie du magasin, via leur compte Amazon.

Selon Carlos Escapa, le ML/IA permet de résoudre 4 grandes catégories de problèmes :

  • Les problèmes liés à des datasets imposants,
  • Les tâches cognitives répétitives,
  • La personnalisation de produits et services,
  • Les prédictions en temps réel.
    Il est évident que cela ne se limite pas à cela, néanmoins c’est la vision qu’il (donc AWS) désire donner de la solution ML/IA.

Pour illustrer, il nous a donné les exemples suivants :

  • Royal Flora Holland, qui utilisent le ML dans leur quality-check hybride (la plupart des critères étant traités par le modèle ML, et le reste par des humains),
  • Le pilotage à distance de camions Caterpillar dans les régions minières d’Australie, pour remédier à l’hostilité de l’environnement (et donc à l’impossibilité de garder du personnel sur place),
  • Automatisaion de l’agriculture, via des engins agricoles connectés qui traquent chaque graine plantée pour monitorer et ajuster les conditions de leur pousse,
  • Mutual Omaha, qui utilise le ML pour améliorer la satisfaction client,
    La valve connectée HAM-LET, qui adapte son comportement et son fonctionnement selon de multiples facteurs.

La bonne pratique du ML/IA selon AWS

Après avoir parlé des use-cases du ML/IA, la présentation s’est orientée vers les “Facteurs de Réussite du ML” selon AWS. Ces facteurs sont les suivants :

  • Le senior management doit se sentir concerné par les problèmes de data. Il est essentiel que la donnée soit gérée efficacement, du début de sa vie jusqu’à sa fin, alors il devient nécessaire que les Data Engineers/Scientists ne soient pas les seuls à s’en soucier.
  • La donnée doit être perçue comme un asset de valeur au sein de l’entreprise. On doit alors s’en occuper de manière adéquate, en termes de qualité et de sécurité.
  • La donnée doit être centralisée dans un/plusieurs data lakes. L’entreprise doit savoir exactement où trouver ses données.
  • La donnée doit impérativement être accessible au multiples organismes de l’entreprise. Dans le but de l’utiliser efficacement, chaque groupe métier doit pouvoir créer de nouveaux outils ou réutiliser des modèles importants grâce à ces données.
  • La donnée doit être suffisamment utilisée. Les use-cases ne manquent pas, il faut simplement les identifier, afin de créer de la valeur ajoutée. Il serait malencontreux de laisser pourrir sa donnée dans un coin sans en tirer profit.

D’après l’animateur, en suivant ces quelques règles simples de manière assidue, on garanti une utilisation efficace du ML/IA pour une entreprise.

Les solutions ML/IA sur AWS

Après cette introduction au ML/IA en tant que solution, il était temps de passer à la vue d’ensemble qu’AWS offre de ses solutions dans le cloud.

Ils ont fait la distinction entre 3 catégories de services englobées dans le groupe des outils ML/IA.

Services IA

La première catégorie regroupe les “Services IA” : ce sont des modèles pré-entraînés, directement intégrés dans la AWS Management Console. Ils remplissent tous une fonctionnalité bien spécifique répondant à un type de problème, et on ne peut que très peu les ajuster (ce travail étant réservé à AWS). Ils sont très simples à prendre en main, et sont prêts à l’utilisation instantanément.

Grâce à ceux-ci, on peut aisément construire un système de recommandation (Amazon Personalize), une application d’analyse de sentiments (Amazon Comprehend), ou implémenter une fonctionnalité Text-to-Speech dans un site (Amazon Polly).

On voit rapidement les deux côtés de la balance de ces services : ils sont extrêmement simples d’utilisation au sein de l’environnement AWS, et ils sont suffisamment performants pour justifier leur utilisation, mais ils sont quasi-complètement statiques, on ne peut pas les ajuster nous-même pour mieux répondre à notre problématique, puisque l’on a pas la main directement sur le modèle.

Capture-d-e-cran-2019-03-20-a--10.10.44

Services ML

C’est là que la catégorie des “Services ML” entre en jeu. Elle n’est finalement, pour l’instant, que constituée de Amazon SageMaker, leur “produit ML phare” pour citer Bogdan Vrusias.

Le but de SageMaker est de fournir un environnement de développement d’application de ML du début jusqu’à la fin du process (nous allons voir ce que ça encapsule un peu plus loin). Il faut comprendre néanmoins que SageMaker n’est pas seulement un notebook, même si à première vue, il propose en effet d’utiliser Jupyter Notebook ou JupyterLab.

SageMaker permet donc de :

  • Sélectionner un algorithme : dans une liste déjà disponible et codée,
    dans sa propre collection, ou même en écrire un from-scratch,
  • Optimiser son modèle pour son use-case,
  • Mettre en place un environnement d’entraînement avec des machines puissantes et optimisées (en CPU et GPU),
  • Entraîner le modèle,
  • Ajuster le modèle selon ses résultats,
  • Déployer le modèle en production dans un système distribué et optimisé pour du ML,
  • Ajuster le scaling de l’environnement de production selon le workload.

Capture-d-e-cran-2019-03-20-a--10.11.29

Il est intéressant de noter qu’une grande quantité de modèles et d’algorithmes sont aussi disponibles gratuitement ou moyennant paiement sur le AWS Marketplace. Cela peut être une idée efficace de récupérer un modèle/algorithme proche de notre use-case et de l’adapter, sachant par exemple que les modèles des services IA que l’on a vu précédemment sont disponibles sur cette plateforme.

SageMaker est aussi lié à la troisième catégorie de solutions offerte par AWS.

Frameworks de ML

Cette troisième brique, c’est l’intégration dans SageMaker d’une tripotée de frameworks classiques de ML/IA, avec une promesse de la part de l’équipe AWS : AWS est “framework agnostic”. Globalement, ils promettent de mettre à disposition un maximum de framework sans en privilégier plus certains que d’autres, afin d’avoir un environnement de développement optimal.

Ils ont cité quelques noms, en précisant que les frameworks concernés étaient d’ores et déjà disponibles sur les Amazon Machine Images (AMIs) orientées ML.

Capture-d-e-cran-2019-03-20-a--10.11.48

Le but de la démarche est de créer ce qu’ils ont appelé un “Neo Open Source Model Compiler”. C’est assez clair : ils veulent que l’on puisse entraîner notre modèle sur n’importe quel framework, et assurer que l’on puisse le faire tourner sur n’importe quelle puce.

De plus, ils ont vanté les mérites de leur optimisation de l'exécution de tous ces frameworks, citant comme exemple Tensorflow, pour lequel ils assurent avoir augmenté l’efficacité du GPU de 40% en général à 90% sur leurs machines, ce qui est une bonne nouvelle pour le porte monnaie de ceux qui veulent entraîner et ajuster leurs modèles.

Programme AWS ML Navigate : “Vers la spécialisation en ML sur AWS pour les partenaires APN”

Bogdan Vrusias nous a alors brièvement présenté Navigate. Pour les citer : “Le programme AWS Machine Learning Navigate permet aux partenaires APN de se construire une expertise autour du Machine Learning sur AWS. Que vous soyez Data Scientist, chercheur en Machine Learning, ou développeur, AWS offre des services et des outils de ML taillés pour vos besoins et votre niveau d’expertise.”

C’est une solution de e-learning pour les entreprises partenaires, afin de les aider à former une practice ML en 5 phases :

  1. AWS Training:
    Bonnes pratiques et entraînement technique en “Well Architected” : vise à entraîner (au moins) 2 employés techniques au Well-Architected Framework. Cela inclut des modules de sécurité, fiabilité, performance, et optimisation du coût.
    “AWS ML E-Learning” : 5 employés orientés business doivent suivre le module d’entraînement (bénéfices business du ML, identifier les opportunités ML, savoir fournir une vue d’ensemble des solutions ML sur AWS, ...), et 5 orientés technique doivent suivre le module technique (articuler le solutions ML sur AWS, AWS pour la Computer Vision, AWS pour le Natural Language Processing, ...).
  2. “Approfondissez vos connaissances” :
    Accédez aux ressources avancées préparées par des experts AWS,
    Prenez connaissances des certifications utiles,
    Apprenez de revues des bonnes pratiques, ...
  3. Deep-dive dans le Well-Architected Framework: montrez vos connaissances et passez votre certifications sur le Well-Architected Framework.
  4. Solution ou Practice Review:
    Profitez du coaching d’architectes de solution AWS,
    Participez à des activités de mise sur le marché,
    Débriefez sur vos projets et sur les études de cas de clients.
  5. Faire la différence sur AWS:
    Développez un microsite,
    Postulez au AWS Solution Provider Program,
    Augmentez le nombre de collaborateurs certifiés AWS, …

Retour sur la présentation pratique

Dans ce lab pratique, nous avons été amenés à récupérer un modèle, l'entraîner, l’ajuster, et le déployer pour un système de recommandation.

Le lab et les instructions à suivre sont disponibles à cette adresse :
https://github.com/skrinak/recommendationEngine

N’hésitez pas à aller le voir, même rapidement, pour mieux comprendre ce que nous avons été amenés à faire.

Précisions à propos de AWS SageMaker

“SageMaker n’est pas un notebook” est une phrase que l’on a pu entendre plusieurs fois au fil de la journée, et, aussi clickbait que ça puisse paraître, c’est vrai. Ce n’est pas seulement un notebook, c’est bel et bien un outil de developpement end-to-end pour le ML.

Il donne aussi accès à un nombre considérable de notebook tutoriels donnant des exemples de use-cases ou de fonctionnalités disponibles pour l’utilisateur. On peut les importer dans un nouveau notebook pour se les approprier et le modifier, ou simplement le consulter pour apprendre ce qui s’y déroule.

Petite note : dans les notebooks SageMaker, on a la possibilité d’activer l’Elastic Inference : on paye pour une instance additionnelle de calcul, uniquement lorsqu'on en a besoin. D’un point de vue pricing, c’est quand même très pratique de ne pas avoir à payer une machine de guerre quand on écrit du MarkDown après avoir fait son modèle.

Critique

D’une manière générale, le lab était de très bonne qualité. La présentation était très propre, très claire, et on comprenait facilement où on allait et comment. On s’est vu administrer une petite dose rappel sur les aspects fonctionnels du ML sur AWS avant de plonger dans plus de détails, et ce n’était pas de refus.

Les animateurs étaient très pédagogues, et étaient très ouverts aux questions. On sentait qu’ils n’étaient pas là pour un atelier couture : les deux présentateurs savaient parfaitement de quoi ils parlaient, et en tant que spectateur, c’est un très bon point.

Côté ressources, les slides faisaient une très bonne revue de la partie pratique, et étaient agrémentés de moult détails, précisions, et exemples concernant les notions que l’on explorait. Le contenu de la partie hands-on est très bien fourni, très précis, et peut même se suivre en autonomie (ce qui est une très bonne nouvelle pour tout ceux qui auraient voulu y participer).

La journée étant gratuite, je ne vais pas cracher dans la soupe. On aurait simplement préféré une petite présentation des intervenants, afin d’avoir un poil plus idée des personnes à qui nous avions à faire.

On reste un peu sur notre faim : on en redemanderait bien, ce qui est une bonne chose en soi. La journée souffre, eh bien, du fait qu'elle ne se fasse que sur une seule journée. Ca passe vite, on est un peu pressé par le temps, mais ce ne sont que des conséquences du temps alloué à cette expérience.

Conclusion

Finalement, c’était une bonne expérience pour débutants en ML/IA dans le cloud. L’équipe de présentation était très bonne, et avaient clairement une crédibilité qui attire le respect et l’attention dans le domaine, en leur qualité de Global AI/ML Practice Leader, et de AI/ML Specialist.

Si cette journée revient un jour, on ne saurait que la recommander à quiconque voudrait s’informer sur le sujet du ML/IA dans le cloud !