Definition

TensorFlow

Développé par les chercheurs de Google, TensorFlow est un outil open source d'apprentissage automatique (machine learning), d'apprentissage profond et d'analyses statistiques et prédictives. A l'instar de plateformes similaires, il vise à rationaliser le développement et l'exécution d'applications analytiques avancées destinées aux data-scientists, statisticiens et modélisateurs prédictifs.

Le logiciel TensorFlow gère les jeux de données en les disposant sous forme de noeuds de calcul dans un graphe d'exécution. Les liens qui unissent les noeuds d'un graphe peuvent représenter des matrices ou vecteurs multidimensionnels, créant ce qu'on appelle des tenseurs. Dans la mesure où les programmes TensorFlow utilisent une architecture à flux de données qui tend à généraliser les résultats de calcul intermédiaires, ils conviennent particulièrement bien aux applications à traitement parallèle de très grande échelle : les réseaux neuronaux en sont un exemple courant.

Le framework intègre des API de haut niveau et de bas niveau. Google recommande d'utiliser le plus souvent possible les API de haut niveau de façon à simplifier le développement du pipeline de données et la programmation de l'application. La société reconnaît néanmoins qu'il est très utile de savoir utiliser les API de bas niveau, nommées TensorFlow Core, pour l'expérimentation et le débogage des applications. Aux dires de Google, elles permettent de donner aux utilisateurs un « modèle mental » du fonctionnement interne de l'apprentissage automatique.

Les applications TensorFlow peuvent s'exécuter sur des unités centrales traditionnelles (CPU), sur des processeurs graphiques haute performance (GPU) ou sur les unités de traitement de tenseurs de Google (TPU, Tensor Processing Unit), à savoir des processeurs personnalisés conçus expressément pour accélérer les travaux TensorFlow. Décrits au public en 2016, les premiers TPU de Google ont été utilisés en interne, conjointement à TensorFlow, pour piloter quelques applications et services en ligne de la société, notamment son algorithme de recherche RankBrain et son service de cartographie Street View.

Début 2018, Google a étendu ses activités TensorFlow externes en mettant la deuxième génération de TPU à la disposition des utilisateurs de la plateforme Google Cloud pour la prise en main et l'exécution de leurs propres modèles d'apprentissage automatique. Les charges de travail basées sur TensorFlow sont facturées à la seconde. Selon Google, le service Cloud TPU a été lancé à l'origine à titre de programme bêta avec des « quantités limitées » d'équipements à disposition.

Origines et versions de TensorFlow

TensorFlow a succédé à un framework propriétaire de Google, nommé DistBelief, que la société utilisait en interne pour exécuter des applications non supervisées d'apprentissage de fonctions et d'apprentissage profond basées sur des réseaux de neurones extrêmement vastes et sur l'algorithme de rétropropagation.

DistBelief, que Google a dévoilé en détail en 2012, a servi de banc d'essai pour les implémentations d'apprentissage automatique incluant la reconnaissance avancée d'image et de parole, le traitement de langage naturel, les moteurs de recommandations et l'analytique prédictive.

TensorFlow se distingue de DistBelief de plusieurs façons. Etant conçu pour travailler séparément de la propre infrastructure informatique de Google, son code était plus facilement implémentable en vue d'utilisations externes. C'est également un framework d'apprentissage automatique plus général qui n'est pas aussi étroitement associé aux réseaux de neurones que l'était DistBelief. En outre, il est conçu pour prendre en charge des configurations plus rapides et s'exécuter sur les API de haut niveau.

Le code source de TensorFlow a été ouvert par Google en 2015 et publié sous une licence Apache 2.0. Depuis, le framework a fait bien des adeptes. Par exemple, l'outil TensorFlow est proposé comme module complémentaire dans les suites d'apprentissage automatique et de développement d'intelligence artificielle d'IBM, de Microsoft et d'autres.

Début 2017, la version 1.0.0 de TensorFlow voyait le jour. Cette version intégrait un débogueur spécialisé, un compilateur par domaine pour les graphes TensorFlow, des images de conteneurs Docker pour la version 3 du langage de programmation Python et une API Java expérimentale. Quatre autres versions ont suivi tout au long de 2017, dont TensorFlow Lite, version allégée optimisée pour une utilisation sur appareils mobiles et embarqués qui a été introduite comme une version de développeur. En février 2018, TensorFlow en était à la version 1.6.0.

Applications de TensorFlow

Dans leur grande majorité, les applications de TensorFlow sont des démarches d'intelligence artificielle avancées et de grande échelle dans les domaines de l'apprentissage automatique et profond. Au coeur du système d'apprentissage automatique RankBrain de Google, TensorFlow a permis d'améliorer la capacité de récupération d'informations du moteur de recherche, fleuron de la société.

Google a également utilisé le framework pour des applications comme la génération de réponse automatique d’email, la classification d'images et la reconnaissance de caractères optiques, ainsi que dans le cadre de la découverte de médicaments, application sur laquelle a travaillé la société en étroite collaboration avec des chercheurs de la Stanford University.


Directeurs techniques et de recherche
de Google discutent du développement
et des utilisations de TensorFlow.

Sur le site Internet de TensorFlow, d'autres entreprises sont citées comme utilisateurs du framework, notamment Airbnb, Coca-Cola, eBay, Intel, Qualcomm, SAP, Twitter, Uber et Snapchat de Snap Inc. Un autre utilisateur, STATS LLC, leader en analyses sportives, exploite les modèles d'apprentissage profond de TensorFlow pour étudier, entre autres, les mouvements des joueurs lors des rencontres sportives professionnelles.

L'apprentissage profond basé sur TensorFlow a joué un rôle essentiel dans l'expérimentation et les tests de l'une des plus grandes innovations du moment, à savoir les véhicules autonomes.

Il existe également des développements à plus petite échelle. Par exemple, une petite ferme japonaise utilise TensorFlow pour trier des concombres en fonction de leurs textures.

Cette définition a été mise à jour en août 2018

Pour approfondir sur Outils décisionnels et analytiques