TensorFlow : un framework qui a de l’avenir…

Publiée en 2015 par notre cher ami Google, TensorFlow, une librairie deep learning open-source, rencontre un succès inespéré. La firme de Mountain View a donc lancé la version 2.0 fin septembre 2019. Cette nouvelle mouture a pour objectif de faciliter l’utilisation du framework. La construction de modèles avec Keras, le mode d’exécution Eager et la fonctionnalité Autograph permet une utilisation plus intuitive tout en conservant les performances d’exécution propres au framework. L’API a elle aussi été simplifiée, Google a réduit la duplication et supprimé les modules obsolètes. Bref, tout pour plaire… Mais concrètement, que permet TensorFlow ? Pourquoi cette bibliothèque rencontre un tel succès ? Réponses dans cet article.

Framework TensorFlow : le b.a.-ba

L’objectif du framework TensorFlow est donc, comme vous avez pu commencer à le comprendre en lisant les lignes précédentes, de faciliter le développement d’applications de ML (Machine Learning). Comment ? Grâce à des interfaces de développement de haut niveau, disponibles dans différents langages de programmation (C++, Python, Javascript, Java, etc.) et à une compatibilité multi plateformes. TensorFlow peut alors rapidement devenir un outil de prédilection pour les développeurs.

Autre fait intéressant sur TensorFlow : c’est LE projet d’IA le plus actif sur Github selon le classement JDN des projets d’IA open-source, avec plus de 75 000 commits et plus de 79 000 forks… (pour comparaison, le numéro deux Pytorch de Facebook plafonne lui à 23 000 commits et 8 800 forks environ !). TensorFlow est donc devenu un standard parmi les librairies de Deep Learning. Amazon et Microsoft l’ont même intégré à leur cloud respectif. D’ailleurs, selon NucleusResearch 85% des traitements TensorFlow sont d’ailleurs désormais exécutés sur la plateforme SageMaker d’Amazon.

Les avantages de TensorFlow

Au vu de son utilisation massive, il est assez logique de penser que le framework dispose de nombreux avantages. Quels sont principaux ? Selon nous, il en existe quatre fondamentaux. Tout d’abord, TensorFlow dispose de différents niveaux d’API. Cela permet de le rendre accessible à des développeurs ayant peu de connaissances en Machine Learning, tout en conservant un intérêt indéniable pour des chercheurs en ML. Au-delà de son côté multi-langages et multi-environnements, il est donc également multi-profils !

Ensuite, il est important de noter l’effort fait en matière de documentation. Google met à disposition des utilisateurs toutes sortes de contenus destinés à faciliter la prise en main de TensorFlow et de ses spécificités. Ce travail est renforcé par les contributions de la communauté de développeurs, très importante et active. Notons également l’introduction récente de TensorFlow Entreprise par Google, ayant pour objectif principal d’améliorer le support de son framework auprès des industriels. Bien sûr, il est aussi nécessaire de parler des concepts de programmation par flux de données et des graphs d’exécution qui offrent des performances optimales et une rapidité de traitement relativement inégalable.

Enfin, quatrième avantage, et non des moindres, TensorFlow peut se targuer d’avoir plus d’une corde à son arc, avec un outillage très diversifié : Tensorboard, TensorFlow Hub, TensorFlow Extended, etc. Cette palette permet de faciliter la mise en place d’un modèle : des étapes de traitement des données jusqu’au déploiement en production.

Entraîner un modèle avec TensorFlow 2.0

Parce-que souvent les images valent plus qu’un long discours, voici un schéma, somme toute assez classique, de ce que permet d’adresser TensorFlow dans un processus standard de conception de modèle de ML.

Les différentes librairies incluses dans le framework permettent de traiter toutes les étapes nécessaires au déploiement d’un modèle entraîné et à son utilisation dans un environnement de production.

Le principe du Transfer Learning

C’est un point essentiel pour bien comprendre la puissance de TensorFlow. En effet, la puissance des algorithmes de Deep Learning repose essentiellement sur la quantité de données fournies pendant la phase d’entraînement. Or, dans le cas de l’apprentissage supervisé, encore majoritairement utilisé, ces données doivent être étiquetées en fonction de la tâche à réaliser.

Par exemple : pour une tâche de classification d’images, chacune des images de la base d’apprentissage doit être associée à une classe. Cette phase de classification est très fastidieuse et chronophage à réaliser, notamment si l’on souhaite constituer une base d’apprentissage assez grande pour entraîner un modèle de Deep Learning.

Quel est alors l’intérêt du Transfer Learning ? Eh bien, il consiste à transférer des connaissances apprises sur une tâche source vers une tâche cible. Conservons l’exemple de la classification d’images : il est possible d’utiliser un modèle entraîné sur une très grande base de données (par exemple Imagenet), même si celle-ci est différente des données cibles et de poursuivre l’apprentissage sur une base de données beaucoup plus petite pour rendre le modèle spécifique à un cas d’usage.

Et le rapport avec TensorFlow me direz-vous ? Le framework rend l’utilisation du Transfer Learning très aisée, notamment grâce à la plateforme TensorFlow Hub regroupant de nombreux modèles pré-entraînés sur différents jeux de données et sur différentes tâches. Ceux-ci peuvent ainsi être utilisés pour réaliser du Transfer Learning. Elle n’est pas belle la vie ?

Si vous souhaitez en savoir plus sur TensorFlow et ses possibilités ou même suivre une formation concrète pour devenir un spécialiste du sujet, n’hésitez surtout pas à contacter nos équipes !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.