Histoire de l’IA

Qu’est-ce que TensorFlow, et pourquoi Google l’a-t-il offert gratuitement en 2015?

· Par Robert Scales · 5 min de lecture

Réponse courte

TensorFlow est une bibliothèque logicielle gratuite pour construire et entraîner des modèles d’apprentissage automatique, surtout des réseaux de neurones, que Google a publiée en code source ouvert le 9 novembre 2015. Google l’utilisait à l’interne pour succéder à un système plus ancien appelé DistBelief, et en la partageant sous une licence permissive, il a mis entre les mains des chercheurs, des étudiants et des entreprises les mêmes outils que ses propres ingénieurs.

Entraîner un réseau de neurones demande beaucoup d’arithmétique sur de grands tableaux de nombres, répétée des millions de fois, idéalement répartie sur de nombreux processeurs en même temps. Au début des années 2010, chaque grand laboratoire écrivait son propre logiciel pour le faire, et la plupart de ces logiciels ne sortaient jamais de l’édifice. Le 9 novembre 2015, Google a changé la donne pour ses propres outils. Il a publié TensorFlow, le système que ses chercheurs utilisaient tous les jours, sous forme de logiciel gratuit à code source ouvert que n’importe qui pouvait télécharger, lire, modifier et utiliser.

Pour une personne débutante, mieux vaut voir TensorFlow comme une trousse d’outils : vous décrivez le modèle voulu en quelques lignes de Python, et TensorFlow s’occupe des calculs, de la mémoire et du matériel.

Ce que Google a publié, et qui l’a annoncé

L’annonce a pris la forme d’un billet sur le blogue Google Research, signé par Jeff Dean, Senior Google Fellow, et Rajat Monga, responsable technique du projet. TensorFlow venait de l’équipe Google Brain, le groupe de recherche de Google en apprentissage profond.

Dean et Monga ont expliqué le contexte. Depuis 2011, Google utilisait un système interne appelé DistBelief pour entraîner des réseaux de neurones de plus en plus grands sur des milliers de cœurs de processeur. Il avait rendu possibles des résultats bien connus : le réseau qui a appris à reconnaître des chats à partir d’images YouTube non étiquetées, une amélioration de 25 % de la reconnaissance vocale dans l’application Google, et la recherche d’images dans Google Photos.

DistBelief avait cependant ses limites. Il avait été conçu étroitement pour les réseaux de neurones, il était difficile à configurer, et il était si lié à la machinerie interne de Google que les chercheurs ne pouvaient partager leur code avec personne à l’extérieur. TensorFlow était le remplaçant de deuxième génération, conçu pour régler ces problèmes. Google affirmait que, sur certains bancs d’essai, il tournait deux fois plus vite que DistBelief.

Google l’a publié avec des outils, des tutoriels et des modèles d’exemple sous la licence Apache 2.0, une licence de code source ouvert permissive qui autorise une utilisation libre, y compris dans des produits commerciaux, dans n’importe quelle institution.

Comment ça fonctionne : des tenseurs qui circulent dans un graphe

Le nom décrit l’idée. Un tenseur est un bloc de nombres comptant un nombre quelconque de dimensions : un seul nombre, une liste, un tableau ou une pile de tableaux. Une photo couleur, par exemple, est un tenseur à trois dimensions : hauteur, largeur et trois canaux de couleur.

Dans le TensorFlow d’origine, on décrivait un calcul sous forme de graphe : un diagramme d’opérations (multiplier, additionner, comparer) reliées par des flèches le long desquelles circulent les tenseurs. Une fois le graphe défini, TensorFlow pouvait l’exécuter sur le processeur d’un portable, sur une carte graphique ou sur de nombreuses machines dans un centre de données, sans que vous ayez à réécrire le modèle.

Deux fonctions le rendaient particulièrement utile pour l’apprentissage automatique :

  • La différentiation automatique. Entraîner un réseau, c’est pousser chacun de ses nombres dans la direction qui réduit l’erreur. Calculer ces directions à la main est fastidieux et sujet aux erreurs; TensorFlow les calcule automatiquement à partir du graphe.
  • La portabilité. Le même modèle pouvait passer de l’entraînement sur la carte graphique d’un ordinateur de bureau à l’exécution sur un téléphone mobile.

Il était aussi livré avec TensorBoard, un outil pour suivre en graphiques les progrès de l’entraînement d’un modèle.

Un exemple concret

Voici un tout petit modèle dans le TensorFlow d’aujourd’hui (version 2) qui apprend la règle derrière quelques nombres. La régularité est y = 2x − 1, mais on ne la lui dit jamais :

import tensorflow as tf

xs = [-1.0, 0.0, 1.0, 2.0, 3.0, 4.0]
ys = [-3.0, -1.0, 1.0, 3.0, 5.0, 7.0]

model = tf.keras.Sequential([tf.keras.layers.Dense(units=1, input_shape=[1])])
model.compile(optimizer="sgd", loss="mean_squared_error")
model.fit(xs, ys, epochs=500, verbose=0)

print(model.predict([10.0]))   # proche de 19

Ce que fait chaque étape :

LigneCe que ça veut dire
Dense(units=1)un neurone artificiel avec un poids et un biais
compile(...)mesurer l’erreur comme une différence au carré; s’améliorer par descente de gradient
fit(..., epochs=500)parcourir les exemples 500 fois, en ajustant le poids et le biais chaque fois
predict([10.0])appliquer ce qu’il a appris à un nouveau nombre

TensorFlow calcule chaque ajustement pour vous. Cette même machinerie s’étend à des réseaux comptant des millions ou des milliards de nombres.

À essayer : collez l’exemple dans un carnet en ligne gratuit comme Google Colab, exécutez-le, puis modifiez les ys pour qu’ils suivent y = 3x + 2. Vérifiez si la prédiction pour 10 tombe près de 32.

Pourquoi c’était important

En ouvrant le code de TensorFlow, Google a donné à tout le monde un outil de qualité production, éprouvé à l’échelle de Google. L’adoption a été rapide. Lors de la conférence Google I/O, en juin 2016, Dean a indiqué qu’environ 1 500 projets sur GitHub mentionnaient TensorFlow, et que seulement cinq d’entre eux venaient de Google.

Google a continué de bâtir autour. En mai 2016, il a annoncé le Tensor Processing Unit (TPU), une puce conçue pour l’apprentissage automatique et adaptée à TensorFlow. La version 1.0 est arrivée en février 2017; TensorFlow Lite, pour les téléphones et les petits appareils, a été annoncé en mai 2017, et TensorFlow.js, pour les navigateurs Web, en mars 2018. TensorFlow 2.0, publié en septembre 2019, a rendu la bibliothèque plus facile à utiliser en exécutant les opérations immédiatement (l’« exécution immédiate », ou eager execution) au lieu d’exiger qu’on construise d’abord un graphe.

TensorFlow n’est pas seul. PyTorch, une autre bibliothèque à code source ouvert, gagne du terrain dans les articles de recherche, ce qui explique en partie pourquoi TensorFlow 2.0 a adopté le style d’exécution immédiate. Reste que TensorFlow a contribué à faire du partage ouvert la norme attendue pour les grands outils d’IA. Le code public de GPT-2 d’OpenAI, par exemple, tourne sur TensorFlow.

Comment une personne débutante peut-elle commencer à expérimenter avec TensorFlow?

Le chemin le plus simple ne demande aucune installation. Google Colab exécute des carnets Python dans votre navigateur; vous pouvez donc essayer l’exemple ci-dessus sans rien configurer sur votre ordinateur. Le site officiel, tensorflow.org, propose des tutoriels qui guident pas à pas dans de petits projets.

Une bonne façon d’apprendre : exécuter un tutoriel tel quel, changer une seule chose (les données, le nombre de couches, le nombre de rondes d’entraînement) et observer ce qui se passe. Si vous préférez un départ en douceur, TensorFlow inclut Keras, une interface de haut niveau où un modèle est une courte liste de couches, comme dans notre exemple.

Même si coder n’est pas votre objectif, il est utile de connaître le nom. Bien des fonctions d’IA que vous utilisez tous les jours, de la recherche de photos à la saisie vocale, ont été construites et entraînées avec des outils comme TensorFlow, et sa publication explique en partie pourquoi tant de recherche en IA depuis 2015 a pu être partagée et reproduite par des gens hors des grandes entreprises.

Sources

  1. TensorFlow - Google's latest machine learning system, open sourced for everyone — Google Research Blog (Jeff Dean and Rajat Monga), 9 novembre 2015
  2. TensorFlow — Wikipedia

Recevez gratuitement le Guide de l’intelligence artificielle

Abonnez-vous à l’infolettre hebdomadaire et recevez le guide gratuit : ce qui a changé en IA cette semaine, une leçon, un prompt à essayer. Désabonnement en un clic.

Ce que nous faisons de votre adresse

Retour en haut

Affichage

Vos choix sont enregistrés dans ce navigateur seulement. Aucune donnée n’est transmise.

Taille du texte
100 %
Couleurs
Lecture
Autres réglages
Déclaration d’accessibilité