Machine Learning : bien comprendre les trois niveaux d'offres de Google Cloud
APIs et services AutoML pour les développeurs, BigQuery ML pour les Data Analystes, boite à outils à base de Tensorflow pour les Data Scientists, Google segmente très clairement son offre pour toucher le plus d'utilisateurs possibles.
L'offre de Machine Learning (ML) et de Deep Learning de Google est l'une des plus complètes du marché - et des plus efficaces, si l'on en croit les différents retours glanés dans les allées des salons professionnels.
Mais cette offre est également pléthorique.
Pour mieux l'appréhender, et choisir la bonne option par rapport à votre projet ou pour un PoC, il faut d'abord comprendre que cette offre se structure en trois grandes familles :
1 - Le ML utilisable via des APIs pour l'infuser, clef en main, dans des applications.
1b - Des algorithmes prêts à l'usage mais entrainables (AutoML)
2 - Une offre pour Data Analystes
3 - Des outils pour Data Scientists pour commencer un projet de zéro
Novices, Experts et Compétents
Les deux premières offres sont présentées par Google comme étant destinées aux « novices ». Comprendre par là : des développeurs métiers qui n'ont pas nécessairement besoin de beaucoup de compétences en code pour utiliser ces APIs.
La troisième est destinée aux « experts », les fameux Data Scientists. « Elle exige d'avoir une connaissance approfondie de ce qu'est le Machine Learning et des librairies comme TensorFlow, scikit-learn and XGBoost », prévient Google qui estime que ces Data Scientists sont environ un million dans le monde (contre 21 millions de développeurs).
Entre ces « novices » et ces « experts », Google identifie une troisième catégorie : les « compétents » : des Data Analystes qui ont une connaissance minimale du Machine Learning, mais une très bonne connaissance du SQL.
BigQuery Machine Learning
Pour cette catégorie d'utilisateur intermédiaire, Google propose un service baptisé BigQuery Machine Learning.
« C'est un BigQuery enrichi au ML pour les Data Analysts qui parlent le SQL », resitue Vincent Poncet, Customer Engineer chez Google France. « Le Data Scientist peut créer en amont des modèles, qui sont ensuite rendus disponibles dans BigQuery ML [...] De cette manière, les analystes peuvent faire une prédiction de forecast seuls ».
APIs et AutoML
Pour les « novices », Google propose donc deux grands types d'outils. Le premier, accessible via un simple appel d'API, permet d'intégrer les services de Google Cloud dans des applications.
« Il s'agit de Machine Learning clef en main pré-entrainé par Google », explique Vincent Poncet. Les algorithmes ont, en fait, été entrainés par sa propre R&D et sur les données des services B2C de Google (« c'est ce qui a manqué à Watson, il a manqué à IBM l’entrainement massif par les données », constate le Googler).
La grosse limitation de cette option est qu'il n'est pas possible de personnaliser l'algorithme avec les retours des utilisateurs. « Ce sont nos modèles et nos données », résume Google. Pas d'apprentissage possible pour une personnalisation donc.
Parmi les services accessibles via API, on trouve Translation (traduction), Vision (reconnaissance d'images), Speech (Speech to Text), Video Intelligence (analyse de contenus vidéos), Speech Synthesis (Text to Speech), Natural Language (analyse de sens et de sentiments) et Dialogflow (bots).
Le deuxième type d'outils pour « novices » permet au contraire d'entrainer ces modèles pour les personnaliser. Il est par exemple possible à un fabriquant de vis et d'écrous de prendre un modèle pré-entrainé par Google de reconnaissance d'images et de le ré-entrainer pour que l'algorithme puisse non seulement reconnaitre des vis mais en plus leurs types et leurs modèles.
Ce service, baptisé AutoML, est « un peu le Dreamweaver de l’AI », plaisante Vincent Poncet. Il est au passage un bel exemple de Transfert Learning puisqu'il s'appuie sur les services clefs en main précédents. AutoML reprend les premières couches de leurs réseaux neuronaux - les plus généralistes - et l'utilisateur n'a plus qu'à « construire » les dernières couches de neurones, les plus spécifiques.
Bien que cette offre soit estampillée « nos modèles avec vos données » (sic), Google assure que, comme dans toutes ses offres payantes, ces données des clients ne servent pas à entrainer ses algorithmes.
En d'autres termes, le savoir issu de l'entrainement d'AutoML par le client qui l'utilise pour affiner la reconnaissance de ses vis ne pourra pas être repris par un concurrent ou par le service clefs en main par API de Google.
Pour l'instant, deux services de Machine Learning sont disponibles sur AutoML : Vision et Translation. Natural Language devrait suivre.
Tensorflow et cie
Pour les « experts » (les Data Scientists), Google Cloud propose une trousse à outils complète dont la pièce centrale (« la colonne vertébrale », compare Laurent Julliard Customer Engineering, Google Cloud Platform chez Google France) est TensorFlow.
« TensorFlow a été développé à l'origine par la Brain Team au sein de notre unité "Machine Intelligence" dans le but de mener des recherches en ML et en réseau neuronal profond », rappelle Google. « TensorFlow est intégré aujourd’hui dans plus de 100 de nos services. Il est gratuit, open source et peut être installé localement, sur site ou sur des VM. C'est même devenue la bibliothèque de Machine Learning la plus populaire sur github. »
Dans Google Cloud, Tensorflow motorise le service ML Engine (« un pipeline Tensorflow managé », synthétise Vincent Poncet). Côté Data Lake, Data Proc propose un Hadoop, lui aussi managé.
En plus des services traditionnels d'infrastructure (Compute Engine et Kubernetes Engine pour les conteneurs), Google donne également accès à ses processeurs spécialement conçus pour le calcul matriciel et TensorFlow (matrice se traduisant en anglais par Tensor) : les TPU (Tensor Processing Unit) - qui en sont à leur troisième génération.
A noter que dans une optique IoT Industriel, ces TPU sont désormais également embarqués dans du matériel à déployer au plus près des sources de données (machines ou autres). Cette offre est baptisée, logiquement, Edge TPU.
Ces modules permettent de déployer des modèles entrainés de Tensorflow et de délocaliser les traitements - pour des raisons de connections réseaux ou de latence, comme par exemple dans le cas de la reconnaissance en temps réel de modèles défectueux sur une chaine de production de bouteilles.
Lire aussi :
Machine Learning : comment choisir le bon framework ?
Trois conseils pour rendre votre Machine Learning plus efficace
Notre Guide Spécial : Comprendre le Machine Learning