Skip to main content

Le combat des titans de l'IA, 2e partie : les services d'IA de Google

Chris Dunn, Regional Vice President - APAC
March 27, 2018

Cet article de blog constitue le troisième épisode de notre série sur l'intelligence artificielle. Les deux premiers articles de cette série portaient sur les cas d'utilisation de l'intelligence artificielle et sur les technologies de soutien à celle-ci, ainsi que sur les services proposés par Amazon en matière d'intelligence artificielle. Aujourd'hui, nous allons parler des services d'intelligence artificielle de Google.

Services IA de Google

Comme nous l'avons mentionné dans notre dernier article, chaque fournisseur de plate-forme d'intelligence artificielle possède des points forts basés sur son héritage. Un exemple ? Le service Comprehend d'AWS, qui extrait des informations de ce qui est peut-être la source de critiques et d'avis la plus riche qui soit : les commentaires sur les produits en vente sur Amazon. En réfléchissant à l'héritage de Google ainsi qu'à ses récents investissements, il est possible de déterminer quelques points forts évidents : recherche, reconnaissance d'image et traduction de langues. Mais ce n'est pas tout. Cet article de blog détaille chacun des services d'intelligence artificielle de Google.

Ah oui, au fait : je m'emballe un peu dans la section consacrée aux TPU de Google ; âmes sensibles, s'abstenir… Accrochez-vous bien.

C'est parti !

Cloud AutoML - Alpha

AutoML est actuellement en alpha, ce n'est donc pas encore totalement une offre de produit à part entière. Mais ne vous arrêtez pas à cela ! Si vous cherchez une technologie de reconnaissance d'image, prenez le temps de jeter un œil à AutoML.

La vision de Google consiste à proposer une suite de produits et de services d'apprentissage automatique, afin de donner aux développeurs la possibilité de créer des modèles d'apprentissage automatique de grande qualité. Le tout premier produit de cette suite a été conçu pour la reconnaissance d'image et s'appelle AutoML Vision. Ce service repose sur la technologie propriétaire de reconnaissance d'image de Google, qui est sans nul doute l'une des plus testées au monde.

AutoML Vision ne se cantonne pas à la seule intelligence artificielle. Un élément humain s'intègre également à cet outil pour vous permettre d'obtenir encore davantage de valeur. Si vous n'avez pas effectué de travail préparatoire ni fourni les étiquettes et images nécessaires à l'entraînement d'AutoML Vision, vous pouvez tirer parti de la production participative humaine pour générer les balises des images que vous communiquez.

Cloud TPU

TPU est l'acronyme de Tensor Processing Unit (unité de traitement de tenseur). Il s'agit d'une unité de traitement qui alimente les fonctionnalités d'intelligence artificielle internes de Google. Actuellement, Google œuvre d'ailleurs dans le but que la puissance de ces TPU soit mise à disposition du grand public.

Je m'excuse par avance, car c'est ici que je vais m'emballer Si vous êtes ingénieur électricien ou informaticien, vous parviendrez assez facilement à comprendre où je veux en venir. Pour tous les autres, je vais tenter de retranscrire la beauté des TPU en utilisant des termes non techniques.

Si vous souhaitez uniquement connaître mes conclusions sans avoir à vous familiariser avec l'ensemble du contexte, Cloud TPU est approximativement 15 à 30 x meilleur que les machines virtuelles alimentées par des CPU traditionnelles en matière de performances. Il est également bien moins gourmand en énergie (30 à 80 x plus de performances par watt). Cela signifie qu'en tant qu'utilisateur d'un service d'intelligence artificielle de Google, vous obtenez davantage de performances par dollar dépensé qu'avec tout autre service.

Vous voulez savoir pourquoi ? Rejoignez-moi du côté obscur de la force ! :)

Il existe 4 aspects des TPU qu'il faut prendre en compte.

Bits

Commençons par les modèles d'apprentissage automatique dans le cadre d'un réseau neuronal. Considérez le réseau neuronal comme un simple groupe de nœuds qui forment un réseau permettant de prendre une décision.

Réseau neuronal en forme de cerveau

À chaque nœud, nous multiplions les données par le poids et nous additionnons les résultats. Puis, en fonction du résultat, nous devons décider si ce « neurone » est « actif » ou « inactif ». Pour cela, la solution la plus simple consiste à utiliser une fonction échelon qui compare le résultat à une valeur définie. Si le résultat est supérieur à ce chiffre, le neurone est « actif ». S'il est inférieur, il est « inactif »

Pour diverses raisons, la fonction échelon simpliste ne suffit pas à indiquer les résultats combinés pour l'ensemble des neurones du réseau. Nous utilisons donc des fonctions plus complexes : les fonctions d'activation.

Au niveau de chaque neurone, nous multiplions les données par le poids, nous additionnons les résultats, puis nous appliquons une fonction d'activation.

Le niveau de détail requis pour chaque neurone n'est pas très élevé, ce qui rend cette approche particulièrement intéressante. Comme l'explique l'article Google, si vous essayez de savoir s'il pleut dehors, vous n'avez pas besoin de connaître le nombre exact de gouttes qui tombent par seconde, mais uniquement si elles tombent ou non. Cela signifie qu'il n'est pas nécessaire d'avoir un niveau de précision (dans le domaine mathématique, cela s'apparente au nombre de décimales) élevé pour chaque neurone. C'est clair ?

De manière générale, les processeurs centraux et les processeurs graphiques fonctionnent sur 32 ou 64 bits. Mais si vous effectuez un calcul basique, qui ne va pas jusqu'au 30e point décimal, vous n'avez pas besoin de 32 ou 64 bits. Un bon vieux système à 8 bits fera amplement l'affaire. C'est l'approche utilisée par Google pour structurer ses TPU.

Architecture

Il existe différentes conceptions architecturales pour le développement des CPU. Le style RISC est le plus répandu et repose sur des instructions simples, utilisées par la plupart des applications. Google utilise au contraire le style CISC, qui permet de se concentrer sur des tâches plus complexes. La puce n'est donc pas utilisable sur toutes les applications, mais elle est très pratique au niveau des tâches pour lesquelles elle a été conçue, comme l'intelligence artificielle.

CPU, GPU, TPU… au secours !

Les TPU effectuent ce que Google appelle le traitement matriciel. Les processeurs centraux sont conçus pour le traitement scalaire, c'est-à-dire le traitement d'une seule opération par instruction. Les processeurs graphiques sont des processeurs vectoriels. Ils peuvent exécuter plusieurs opérations simultanées, ce qui entraîne la réalisation de centaines ou de milliers d'opérations au cours d'un même cycle d'horloge. Les TPU sont conçus pour le traitement matriciel, qui permet d'exécuter des centaines de milliers d'opérations par cycle d'horloge (soit bien plus d'opérations par cycle que les processeurs graphiques).

Image graphique d'une matrice

Le processeur « romantique »

Les TPU sont conçus pour utiliser ce que l'on appelle un réseau systolique, dans lequel les données circulent par vague (comme le sang qui circule jusqu'au cœur). D'où son petit nom de « processeur romantique » :). Cette approche nécessite beaucoup moins de mémoire et de puissance. (Découvrez une explication plus détaillée sur l'article Google, ici).

Lorsque vous associez tous ces éléments, vous obtenez un processeur ultra-performant et éco-énergétique, idéal pour l'intelligence artificiel.

Google Video Intelligence

Grâce à YouTube, la vidéo est un autre domaine d'expertise de Google. Google Video Intelligence permet de chercher des vidéos avec des termes spécifiques. Par exemple, si vous recherchez des vidéos de chats, il vous suffit de chercher « chats » et les vidéos dont les aperçus contiennent des chats s'affichent.

Google Video Intelligence s'appuie sur plus de 20 000 balises. Google peut donc prendre en cherche toutes les classifications dont vous avez besoin. Google Video Intelligence propose aussi des recommandations et identifie le contenu pour adultes.

Capture d'écran effectuée depuis Google Video Intelligence et montrant des étiquettes détectées automatiquement par le service d'intelligence artificielle de Google.

En plus de la détection de l'emplacement des objets spécifiques dans la vidéo, ce service propose une autre fonctionnalité géniale : la possibilité de diffuser les publicités au moment opportun (c'est-à-dire, lorsque les balises apparaissent dans la vidéo). En outre, le service propose la transcription des vidéos.

Google Vision API

Google Vision API est le service jumeau de Video Intelligence. Il permet d'intégrer une certaine intelligence (et même énormément d'intelligence) aux images.

    • Détection des étiquettes : identifie ce qui se trouve sur la photo.

    • Détection faciale : peut indiquer si une personne est triste, en colère ou surprise en se basant uniquement sur son visage.

    • Reconnaissance optique de caractères (ROC) : identifie non seulement le contenu d'un texte dans une image, mais également la langue et l'emplacement de ce texte, même lorsqu'il s'agit de notes manuscrites.

    • Contenu explicite : l'intitulé parle de lui-même.

    • Détection des points de repère : signale les points de repère courants sur les photos. En plus d'identifier ceux-ci, cette fonctionnalité détermine également leur longitude et leur latitude.

    • Détection des logos : l'intitulé parle de lui même.

    • Suggestion de recadrage : offre des suggestions pour recadrer une image.

    • Annotations web : effectue une recherche sur le web pour obtenir davantage d'informations sur votre image. L'API se sert d'annotations provenant de tout le web pour étoffer les informations concernant l'image. Cette fonctionnalité est également pratique pour déterminer les endroits où la même image est utilisée sur Internet et pour régler les problèmes liés aux droits d'auteur.

    • Annotations des documents texte : cette fonctionnalité est spécialement conçue pour les images des documents et peut fournir des annotations plus précises.

Sara Robinson, conseillère en développement chez Google, souligne nombre de ces points dans la petite démonstration suivante :

https://www.youtube.com/watch?v=mDAoLO4G4CQ

Cloud Translation API

Au début de cet article, j'ai mentionné certains des points forts inhérents à Google, notamment ses capacités de traduction. Google propose des services de traduction depuis des années, grâce à Google Translate (j'ai utilisé ce service en 2015, lors d'un voyage en Europe).

Au fil du temps, les capacités de ce service ont été peaufinées et, aujourd'hui, Google met cette technologie à disposition d'humbles développeurs, comme vous et moi ! Voici un petit résumé des fonctionnalités les plus intéressantes prises en charge par l'API Google Cloud Translation :

    • Traduction dynamique : fournit une chaîne de texte dans toute langue prise en charge, texte qui est ensuite traduit par Google Translation en temps presque réel.

    • Prise en charge de plus de 100 langues : c'est ce que j'appelle un service global ! Le service Google Translation prend en charge plus de 100 langues différentes. Il fournit à la fois une traduction phrase à phrase pour toutes les langues et un service de traduction automatique neuronale pour un sous-ensemble de paires de langues.

    • Détection de la langue : l'intitulé parle de lui-même.

Pour comprendre les différences entre la traduction automatique neuronale et la traduction automatique statistique fondée sur séquences, consultez l'excellent article de Systran (spécialiste de la traduction automatique par apprentissage automatique), ici.

Cloud Natural Language

Ce service extrait les principales données d'un bloc de texte. Il peut fournir une analyse des sentiments ainsi que des informations sur les sujets clés d'un texte : personnes, lieux, évènements, etc. Il est facile de démontrer qu'il s'agit là d'un autre point fort de Google, étant donné que ce service alimente le moteur de recherche le plus utilisé au monde.

Cloud Speech API

Cloud Speech API est un service qui convertit l'audio en texte. Selon moi, il s'agit également ici d'un autre domaine naturel d'expertise pour Google, grâce à l'expression « OK Google ». De la même manière que Google Cloud Translation API, ce service prend en charge plus de 110 langues et leurs variantes. Ses principales fonctionnalités comprennent :

    • Parole en transit et au repos : Google Cloud Speech API peut trouver des résultats partiels au cours de la transcription. Ainsi, le texte apparaît au fur et à mesure que les mots sont prononcés. Si vous souhaitez effectuer une transcription par lots, Google Speech API peut également prendre en charge les fichiers audio et leur transcription.

    • Environnements bruyants : prend en charge les paroles prononcées dans une large gamme d'environnements bruyants.

    • Prise en compte du contexte : prend en charge les « word hints » (ou saisie intuitive) pour chacun des appels d'API, ce qui permet aux développeurs de transmettre des métadonnées concernant la source (c'est-à-dire l'application d'origine) de la demande d'API.

Sara Robinson a réalisé une très bonne démonstration de Google Cloud Speech API, que vous trouverez ci-après. Mais attention : elle y donne énormément d'informations sur les lignes de commande, orientées code et centrées sur les développeurs. Cette démonstration ne s'adresse donc pas aux débutants. :)

https://www.youtube.com/watch?v=z8g3XM16eRM

Dialogflow - Bêta

Dialogflow est la plate-forme de Google faisant office d'agent conversationnel. À l'origine, elle a été développée par la start-up API.ai, rachetée par Google en 2016. Dialogflow prend en charge les interactions vocales et textuelles sur plusieurs plates-formes de messagerie (notamment Messenger sur Facebook, Kik, Slack, Telegram, Viber et Skype).

Le fait que l'approche Dialogflow propose des agents prédéfinis, déjà spécialisés dans des domaines particuliers, constitue pour moi l'un de ses meilleurs avantages. Vous pouvez vous servir de ces agents prédéfinis comme d'autant de modèles pour votre agent personnalisé.

Vous pouvez par exemple configurer une interaction avec les systèmes électroniques d'une voiture, la conversion de devises, un calculateur de données, un moteur de recherche pour les voyages, etc. L'idée consiste à aider les développeurs à mettre sur les rails leurs agents conversationnels encore plus rapidement qu'avant, le tout sans avoir recours au code.

Cloud Job Discovery

Si vous avez lu mon précédent article consacré aux service d'IA d'AWS, vous vous souvenez peut-être que j'ai décerné le prix « comme à la télé » à l'un de ses services. Google est aussi le lauréat d'un prix plus douteux : celui du « service d'IA le plus topique ». C'est une application intéressante de leur technologie d'apprentissage automatique, qui tire son origine d'une initiative appelée Google for Jobs.

Comme l'explique Google, l'initiative Google for Jobs est « un engagement visant à aider les demandeurs d'emplois à trouver du travail plus facilement et qui concerne Google dans son ensemble ». Elle utilise l'apprentissage automatique pour mieux comprendre les emplois disponibles et les associer aux emplois recherchés par les demandeurs. Par exemple, si une annonce d'emploi indique « Développement com. » au lieu de « Développement commercial », l'API Cloud Job Discovery de Google est suffisamment intelligente pour savoir que l'utilisateur veut dire « Développement commercial ».

Cela signifie que les demandeurs d'emploi et les recruteurs n'ont plus à chercher les termes parfaitement adaptés pendant des heures. L'API Cloud Job Discovery de Google aide les plateformes de recrutement à surmonter les erreurs humaines dans la recherche d'emploi.

Si cette fonction vous intéresse, essayez-la sans avoir à coder ! Il vous suffit d'ouvrir le moteur de recherche Google et de saisir l'intitulé d'un poste. Les résultats s'affichent immédiatement, en fonction de votre situation géographique.

Capture d'écran indiquant les résultats d'une recherche d'emploi dans un moteur de recherche Google alimenté par les services d'intelligence artificielle de Google.

Conclusion

Voilà qui conclut cette section sur les services d'IA de Google.

Toutes mes excuses si j'en fais un peu trop sur les TPU Google Cloud. Mais il faut bien admettre qu'ils sont plutôt cools ! Si vous ne l'avez pas encore lu, je vous invite vivement à consulter le premier article de cette série consacrée à l'intelligence artificielle (IA) et à l'apprentissage automatique.

La semaine prochaine nous discuterons du dernier géant de l'IA : Microsoft Azure. Restez à l'écoute !