MARGO

Actualité

Exploration de Google Cloud Platform

de l’infrastructure à la Data Science

Par Joshua Mifsud Consultant DataScientist chez Margo

06/03/2018

Google propose une cinquantaine de produits sur son Cloud, de l’infrastructure (stockage et puissance de calcul) au Machine Learning, en passant par la transformation et l’analyse de données massives. Ce sont des outils qui sont, pour la plupart, rapides à mettre en place (set-up en 10 min voire moins) et peu coûteux par rapport à une infrastructure standard on-premise.

On y trouve des solutions clé en main en mode SaaS (Software as a Service) telles que des APIs de Machine Learning (reconnaissance de visages ou encore détection de sentiments…) ainsi que des solutions plus bas niveau comme le storage et le Cloud Computing en mode IaaS ((Infrastructure as a Service). Sont aussi disponibles des produits à mi-chemin entre l’infrastructure et le service qui permettent de déployer ses propres applications : les PaaS (Platform as a Service).

3 différents types de services : du service d’infrastructure (IaaS) au service clé en main (SaaS)

 

A l’heure du serverless

La grande majorité des produits Google Cloud fonctionnent en mode « serverless ». Ces serveurs sont quelque part dans le Cloud de Google, cependant, ils sont invisibles pour l’utilisateur qui n’a plus à se soucier du dimensionnement de l’infrastructure. Autrement dit, le système se met à l’échelle en fonction du besoin en calcul et en stockage de l’utilisateur pour de très gros volumes.

Google App Engine permet de déployer sa propre application sur le PaaS de façon sécurisée en gérant facilement le versioning.  Il est d’ailleurs possible de faire de l’A/B testing en déployant deux versions différentes d’une même application. Cette solution est capable de se mettre à l’échelle pour 1 milliard d’utilisateurs.

Le storage sur le Cloud

Google Cloud offre de nombreuses solutions de stockage adaptées à différents besoins. Il faut compter seulement quelques minutes pour installer une instance de stockage dans le Cloud.

La plus basique est le stockage de fichiers plats, immutables sur le Cloud Storage, que l’on paie selon le volume de fichiers présents dans l’instance (appelée bucket). Il est possible de choisir le type de bucket selon l’utilisation que l’on en fait, avec des latences adaptées en conséquence (selon que l’accès doit être fréquent et rapide ou très rare).

Des produits tels que BigTable ou DataStore permettent de stocker des données sous forme de documents en disposant d’un débit élevé et d’une latence très faible (5 ms pour accéder à 1 To), idéal pour du real-time processing.

Le Cloud Compute 

Il est très aisé (cela prend moins d’une minute) de monter une machine dans le Cloud via une console ou en ligne de commande. On choisit le nombre de cœurs (jusqu’à 64 !), ainsi que la RAM et le disque (HDD ou SDD). Il est possible de monter les machines en réseau pour répartir la charge de calcul sur l’ensemble des machines, ce processus prend environ 10 min. La puissance de calcul est facturée au prorata du fonctionnement de la machine (une machine éteinte coûte 0$).

Le Big Data

Plusieurs outils permettent de faire du processing sur de très gros volumes de données. Parmi eux, Dataflow qui permet de faire de l’ETL en batch ou en streaming. Il est provisionné automatiquement et son API permet par exemple de calculer une moyenne sur une fenêtre glissante en une seule ligne de code

L’outil BigQuery offre un système relationnel (mais non transactionnel) en mode serverless qui permet de faire de l’analytics sur des bases de données relationnelles en langage SQL. Ses capacités de calcul permettent de traiter 1 milliards de lignes en deux secondes pour une requête comprenant un comptage et un « group by », des performances difficiles à trouver sur une infrastructure possédant une telle capacité de calcul.

Enfin, il est possible de monter un cluster Hadoop (équipé de Pig/Hive/Spark) en moins de 2 min via la console Cloud ou en ligne de commande. Dans son cluster, on peut notamment utiliser des machines dites « preemptible » moins coûteuses, qui peuvent être utilisées à tout moment par Google. De plus, si un processing est en cours, il est quand même possible d’ajouter ou de retirer un nœud au cluster.

Machine Learning/Deep Learning

En termes de Machine Learning, Google dispose d’APIs basées sur Tensorflow qui permet, entre autres, d’implémenter des réseaux de neurones. Une API NLP (Natural Language Processing) permet d’identifier des entités présentes dans un texte ainsi que leurs natures (organisations, personnes, célébrités) et d’en extraire un sentiment et son intensité.

L’API Google Vision permet à l’utilisateur de détecter des visages dans une image ainsi que les émotions qui s’en dégagent avec un certain niveau de confiance.

On peut aussi réaliser de la reconnaissance d’objets dans une vidéo et ainsi lister les objets d’une image à différents moments de la vidéo.

Il est intéressant de noter que l’infrastructure derrière ces APIs n’utilise pas des processeurs habituels tels que des CPU (Computer Processing Unit) ou des GPU (Graphic Processor Unit). Google a conçu de nouveaux types de processeurs appelé TPU (Tensor Processor Unit) optimisés pour le calcul matriciel que nécessite les réseaux neuronaux, ce qui explique des temps de calcul minimes. Les TPU sont aussi disponibles sur le Cloud Compute.

Pour les Data Scientists, l’instance DataLab du cloud permet de manipuler des données et de construire des modèles de Machine Learning ou de Deep Learning (avec Tensorflow) via un notebook Python très similaire à Jupyter et muni nativement des bibliothèques Data Sciences de base (numpy, pandas, scikit learn, ntlk pour le text-mining, matplotlib et seaborn pour data viz et tensorflow). Cependant, nous avons pu constater à plusieurs reprises que ce composant présente des instabilités (notamment des problèmes de connexion SSH).

Une dernière possibilité intéressante, à mi-chemin entre l’API clé en main et la modélisation « from scratch », est Cloud AutoML. Cette fonctionnalité permet d’entraîner les modèles de Google avec ses propres données afin de s’adapter au contexte du problème à traiter.

En synthèse

La solution Google Cloud Platform permet très rapidement de créer des applications et de les héberger sur des environnements totalement « serverless » avec un mode de facturation basé sur une consommation à la seconde des infrastructures. Pour les contextes de Data Science, Google fournit une suite complète de composants techniques et de solutions qui permettent très rapidement de disposer de capacités importantes pour explorer et exploiter des gisements de données.

 


Par Joshua Mifsud Consultant DataScientist chez Margo
Big Data
Cloud
Data
Google
Machine Learning
Success Story

Le Machine Learning source de ROI commercial pour un acteur bancaire majeur

Margo accompagne l'un des acteurs majeurs de la banque dans la réalisation d'un projet de développement et d'industrialisation d'un modèle de Machine Learning. Nous vous proposons notre retour d'expérience sur la mise en oeuvre de ce projet afin de mieux comprendre comment la datascience peut rapidement devenir génératrice de ROI pour nos clients.

04/07/2019 Découvrir 
Tribune

Des statistiques traditionnelles à la Data Science

« Datascience is statistics on a Mac ». Au-delà de la caricature portée par cette affirmation, l’idée que la « data science » se veut ni plus ni moins qu’un « rebranding » des statistiques est aujourd’hui partagée par de nombreux ingénieurs en statistiques, jusque-là simplement présentés comme tels...

Découvrir 
Actualité

FinOps, de la nécessité d’optimiser les coûts en mode DevOps

Lors de l'AWS Summit Paris, Thomas Barandon, Senior Technical Account Manager AWS, et Fouad Maach, Head of Group MoveToCloud Veolia, nous ont partagé les bénéfices de la mise en place d'une démarche FinOps lors du passage de tout ou une partie de votre infrastructure vers le cloud. Sébastien Bourguignon, Principal & Lead Digital Influencer chez Margo, revient sur cette session.

15/04/2019 Découvrir 
Actualité

Du Prototype à la Production : Itinéraire d’un Projet d’IA.

A l’occasion de la conférence AWS Summit Paris du 2 avril, Virginie Mathivet Directrice R&D au sein de Teamwork, Mohamed Aït El Kamel Solution Architect chez Corexpert et Xavier Michallet Head of Data Department chez Soitec (spin-off du CEA) nous ont partagé un retour d’expérience sur le développement et le déploiement d’un modèle de Machine Learning sur AWS pour de la reconnaissance d’image.

11/04/2019 Découvrir 
Actualité

Qu’est-ce que le Machine Learning a changé pour nos métiers ?

A l'occasion de la conférence AWS Summit Paris du 2 avril, Marc Cabocel AWS Solutions Architect et Adrian Pellegrini Chief DataScience Office Blue DME nous ont proposé une session sur les nouvelles capacités données aux entreprises grâce au Machine Learning. Découvrez avec Margo ce qu'il fallait retenir de cette session.

08/04/2019 Découvrir 
Actualité

AWS Summit Paris : retour sur l'édition 2019

Le 2 avril avait lieu la 13ème édition de l'AWS Summit Paris, la grand-messe annuelle du géant américain du Cloud. Nous y étions présents et vous partageons ci-dessous quelques faits intéressants relevés lors de la conférence ainsi que quelques retours d’expérience de sessions auxquelles nous avons eu l’occasion de participer.

03/04/2019 Découvrir