Afin de démocratiser l’intelligence artificielle auprès d’un large public et plus seulement à quelques spécialistes très pointus comme c’était le cas auparavant, des laboratoires de recherche et des géants du web ont créé des frameworks dédiés. « Un framework IA est en quelque sorte une boîte à outils permettant de poser les fondations dans la création d’applications IA. Si je prends notre framework Scikit-learn, il regroupe plus de 160 méthodes différentes d'apprentissage statistique dont l’objectif est d’ajuster des modèles sur des données pour résoudre des tâches telles que la prédiction de caractéristiques de ces données », relève Gaël Varoquaux, chercheur à l’Inria. Sur le marché, il existe une multitude de frameworks IA mais pour Léo Dreyfus-Schmidt, Head of Research chez Dataiku, les plus utilisés pour un kit de survie se comptent sur les doigts des deux mains et cite pêle-mêle Scikit-learn, TensorFlow, PyTorch ou encore Keras. A titre indicatif, Dataiku, l’éditeur de la plateforme collaborative de datascience, exploite entre autres les frameworks Scikit-learn, TensorFlow ou encore Keras (voir témoignage client ci-dessous).
La majorité de ces frameworks
est disponible en open source et le plus souvent basée sur les langages de programmation Python et C++ (voir tableau en encadré). Les frameworks existants ne sont pas tous identiques, ils répondent à des besoins précis et sont souvent complémentaires. Par exemple, si Scikit-learn est livré avec des algorithmes standards ou plutôt généralistes de machine learning, TensorFlow, Caffe ou encore PyTorch sont, quant à eux, plus orientés vers l’apprentissage en profondeur (deep learning), lesquels sont plutôt efficaces pour des applications IA comme la compréhension d'images ou du langage naturel. « Scikit-learn ne va effectivement pas suffire pour obtenir des résultats satisfaisants sur des applications IA comme la compréhension d'images ou de la parole. Pour cela, il va falloir se tourner vers un outil d’apprentissage profond tel que TensorFlow, souvent utilisé conjointement avec Scikit-learn pour ces tâches », confirme Gaël Varoquaux.
La différence se fait aussi dans l’approche et la structure même du framework, par exemple si TensorFlow propose des tenseurs (ou tables de données multidimensionnelles) pour évoluer dans un modèle de réseau neuronal, Keras, quant à lui, se concentre sur la définition des couches (API) pour le réseau neuronal via une écriture plus simple avec moins de code. Ainsi, à la différence de TensorFlow, Keras nécessite un moteur (bien souvent celui de TensorFlow), pour exécuter un modèle graphique. D’où cette complémentarité entre les frameworks. Bien sûr, une concurrence directe existe entre certains frameworks à l’image des deux géants du web : Google avec TensorFlow et Facebook avec PyTorch, et ce, même si leur architecture n’est pas tout à fait identique. PyTorch se basant sur des graphiques dynamiques alors que TensorFlow sur des graphes statiques.
Ces frameworks IA (téléchargeables depuis GitHub) sont aujourd’hui utilisés par un grand nombre d’entreprises parmi lesquelles Netflix pour faire de la recommandation de contenus à ses utilisateurs, Amazon pour de la recommandation produits aux clients ou Facebook pour faire entre autres de la reconnaissance d’images. En France, citons des sociétés comme Airbus (avec TensorFlow) pour la reconnaissance d’images, Data Publica, Dataiku avec l’usage de Scikit-learn pour faciliter la gestion des big data ou encore BNP Paribas Cardif, toujours avec Scikit-learn pour la conception d’offres d’assurance.
Commentaire