Google vient de publier en version finale son moteur d’apprentissage profond, TensorFlow. La nouvelle mouture se veut beaucoup plus rapide dans ses calculs, et plus flexible. Elle s’enrichit de plusieurs fonctionnalités au passage, tout en s’ouvrant à de nouveaux langages.
En novembre 2015, Google prenait la décision d’ouvrir son moteur TensorFlow à l’open source, en le plaçant sous licence Apache 2.0. Il était question alors de prendre de l’avance dans le domaine de l’intelligence artificielle, et plus particulièrement dans les architectures de type neuronal, utilisées pour gérer de grandes quantités de données, l’apprentissage profond (ou automatique) ainsi que certains calculs spécifiques.
Cette trousse à outils, utilisée par Google pour ses propres services (notamment la reconnaissance vocale), est désormais disponible en version 1.0 finale. L’éditeur a profité de son TensorFlow Developer Summit 2017 pour officialiser l’évènement, important pour les développeurs. Car cette version finale signifie avant tout que TensorFlow peut être utilisé en production, avec l’aide et le support qui vont avec.
Google veut aller vite, très vite
Quelles nouveautés pour cette version 1.0 ? D’abord, de meilleures performances. Elle embarque à titre expérimental le compilateur spécialisé XLA (Accelerated Linear Algebra), conçu pour tirer parti à la fois des CPU et GPU, même si Google précise que ces derniers sont à privilégier pour la capacité des calculs. XLA peut compiler des graphes en code machine, pour l’architecture matérielle choisie. Son évolution est rapide d’après l’éditeur.
Google publiera prochainement d’importantes mises à jour de ses modèles de traitement, qui peuvent pour certain afficher des hausses plus que marquées de performances. La version 3 du modèle Inception fonctionnerait ainsi 7,3 fois plus vite sur une base de 8 GPU, et s’envolerait à 58 fois en version distribuée sur 64 GPU.
Nouveaux modules et ouverture aux langages
TensorFlow 1.0 se veut également plus ouvert, avec l’ajout d’extensions et de modules. Par exemple, tf.keras lui ouvre la voie de Keras, une bibliothèque couramment utilisée pour les architectures de type neuronal. Google fournit par ailleurs une nouvelle API de haut niveau pour simplifier l’utilisation de son moteur, avec l’ajout des modules layers, tf.metrics et tf.losses
Côté langages, en plus du C et de Python, les API de TensorFlow peuvent être manipulées via C++, Java et Go. Attention cependant, car le travail est en cours sur Java et Go, certains éléments pourraient donc changer à l’avenir, entrainant une cassure dans la compatibilité. Au sujet de Python, Google a tenu à se rapprocher de NumPy (calcul scientifique) pour ses API, afin d’aider les développeurs à se sentir davantage en terrain connu.
Fédérer pour mieux régner
L’objectif de Google est bien évidemment de fédérer autant de développeurs que possible. Plus la communauté scientifique et les entreprises se penchent sur ses technologies, plus elles auront de chances de faire consensus dans ce domaine. Or, quand on sait l’importance aujourd’hui que revêtent les réseaux de neurones, on comprend facilement la volonté de l’éditeur de s’imposer. D’autant qu’il améliore parallèlement son Tensor Processing Unit, un circuit intégré spécialisé conçu pour accompagner TensorFlow.
Rappelons toutefois que Google n’est pas seul dans ce domaine, loin de là. Microsoft a lui aussi publié en open source son kit de recherche sur les réseaux de neurones et Amazon dispose de Deep Scalable Sparse Tensor Network Engine (DSSTNE). Dans un autre registre, Facebook, via son laboratoire FAIR (Facebook’s Artificial Intelligence Research), propose son moteur fastText, également en open source. Apple n’a de son côté publié aucun kit, mais a fourni une vaste étude sur un cas d’applications des réseaux de neurones, tout en rejoignant récemment l’alliance Partnership on AI.
Dans tous les cas, la publication en open source est non seulement un moyen d'attirer des développeurs (pour vendre des solutions matérielles par la suite), mais aussi de profiter des avancées qui pourraient être faites par la communauté. Rappelons enfin que si le moteur de l'IA est librement accessible, ce n'est pas le cas des données qui sont l'essence même des intelligences artificielles.