La France au firmament des frameworks de machine learning

La France au firmament des frameworks de machine learning Développé par l'INRIA, Scikit-learn s'impose parmi les librairies d'auto-apprentissage généralistes les plus prisées. Quant à Tensorflow de Google, elle demeure la star du deep learning.

Sur le terrain des frameworks d'apprentissage automatique, deux grandes catégories de solutions se distinguent. D'abord les bibliothèques de machine learning généralistes. Dessinées pour motoriser des algorithmes statistiques (classification, régression…), elles sont notamment utilisées pour réaliser des modèles prédictifs en partant de données chiffrées, dans l'optique par exemple d'estimer un potentiel commercial en fonction d'un historique de vente. Seconde catégorie, les librairies de deep learning s'adossent, elles, à la notion de réseau de neurones artificiels. Souvent considéré comme un sous-domaine du machine learning, le deep learning peut s'appliquer aussi bien à des chiffres qu'à des contenus audio ou graphiques, ce qui le rend adapté à la reconnaissance vocale ou d'images. Dans un tel système, chaque couche du réseau de neurones se charge d'interpréter les résultats issus de la couche précédente. L'IA s'affine ainsi par itérations successives. Dans l'analyse de texte par exemple, la première couche s'attellera à la détection des lettres, la deuxième des mots, la troisième des groupes nominaux ou verbaux, et ainsi de suite. Les frameworks de deep learning permettent de mettre en musique l'ensemble du dispositif.

Côté machine learning généraliste, c'est une librairie d'origine française qui s'impose comme référence : Scikit-learn. Côté deep learning, les Américains demeurent les mieux placés, avec notamment Tensorflow et PyTorch, respectivement développés sous l'égide de Google et Facebook.

Frameworks de machine learning parmi les plus utilisés

Nom

Catégorie d'algorithmes

Langage(s)

Organisation (principaux soutiens)

Licence

Cognitive Toolkit (ex-CNTK)

Deep learning

C++

Microsoft

MIT

Keras

Deep learning

Python

ONEIROS (François Chollet)

MIT

Spark MLlib

Machine learning

Java, Scala, Python et R

Apache

Apache 2.0

Theano

Deep learning

Python, CUDA

Université de Montréal

BSD 3

MXNet

Deep learning

C++, Python, R, Julia, JavaScript, Scala, Go, Perl

Apache (Amazon et Microsoft)

Apache 2.0

PyTorch

Deep learning

Python, C++, CUDA

Facebook

Berkeley Software Distribution

Scikit-learn

Machine learning

Python, C, C++ et Cython

INRIA

BSD 3

Tensorflow

Deep learning

C++ (backend) et Python (frontend)

Google

Apache 2.0

Note : certains frameworks de machine learning se spécialisent sur des domaines plus précis. C'est le cas des bibliothèques logicielles de traitement automatique du langage (NLP) parmi lesquelles figurent Apache OpenNLP, Natural Language Toolkit, SpaCy ou Stanford CoreNLP.

Scikit-learn : quels points forts ?

En matière de frameworks de machine learning, "Scikit-learn est devenu une référence mondiale", confirme Bouzid Ait Amir, team lead data science au sein du cabinet français Keyrus. La librairie développée à l'initiative de l'INRIA fournit clé en main les algorithmes les plus fréquemment utilisés pour l'apprentissage automatique : forêt aléatoire, régression linéaire, régression logistique, XGBoost... "Elle implémente également des bonnes pratiques très utiles", ajoute Bouzid Ait Amir. Parmi elles, le consultant évoque la validation croisée qui consiste à mettre plusieurs algorithmes en compétition pour dénicher celui qui se révélera le plus fiable par rapport à une problématique donnée. "Du fait de sa richesse en matière d d'algorithmes, nous avons régulièrement recours à Scikit-learn pour nos missions en datamining", indique de son côté Amziane Hamedi, responsable de l'offre IA au sein de l'ESN Devoteam. Il salut lui-aussi la performance de la solution en matière de cross-validation.

Parmi ses points faibles, Scikit-learn serait globalement moins performant pour paralléliser les phases d'apprentissage sur plusieurs serveurs. "Quand nous sommes confrontés à un tel besoin, nous préférons faire appel à la librairie MLlib", précise Khalil El Mahrsi, tech lead machine learning & intelligence artificielle chez Keyrus. Taillée pour Spark, MLlib pourra entrainer ses modèles d'IA en s'adossant au framework de calcul distribué du même nom.

Keras simplifie la création des modèles

Sur le front du deep learning, c'est donc Tensorflow qui tient le haut du panier. Publiée en open source par Google en 2015, cette librairie est utilisée historiquement par le groupe américain pour motoriser ses services de recherche d'images ou de reconnaissance vocale. "Elle est très facile à prendre en main", reconnait Amziane Hamedi chez Devoteam. Autres avantages : elle intègre une console (le Tensorboard) pour évaluer la performance des algorithmes et ajuster leurs variables. Mais aussi quelques d'API de plus haut niveau dont Estimators qui fournit une série de modèles prépackagés. "Tensorflow est cependant moins rapide que Cognitive Toolkit pour exécuter les phases d'apprentissage. Nous préférons de ce fait recourir au framework de Microsoft dans certains cas (impliquant de gros volumes de données ndlr) pour la reconnaissance d'images vidéo par exemple. Et ce, même s'il ne dispose pas d'un mode de pilotage graphique", souligne Amziane Hamedi. Une fois l'étape d'entrainement réalisée, Tensorflow se révèle ensuite excellent pour gérer les déploiements. "C'est l'un de ses principaux points forts. Il permet de gérer très simplement l'exposition des modèles sous forme d'API à destination des applications qui les consommeront", constate Bouzid Ait Amir.

Face à Tensorflow, PyTorch fait également figure de star dans le deep learning. Conçu au départ par Facebook, il est taillé pour la recherche fondamentale. "A la différence de Tensorflow, il est de ce fait peu pratique pour gérer la mise en production des modèles dans les applications", insiste Aziz Cherfaoui. "En revanche, si l'IA à créer est très sophistiquée, PyTorch pourra se révéler plus adapté car il permet de réaliser de très fins développements, empiler les couches de réseaux de neurones, faire du débogage…". Et le directeur technique de Keyrus d'évoquer notamment la conception des IA des voitures autonomes qui impliquent d'assimiler des milliards d'exemples et combinaisons et conditions de circulation.

Pour finir, l'ensemble des experts interrogés citent Keras, une bibliothèque open source (de type wrapper) créée initialement par François Chollet, un ingénieur français chercheur en IA chez Google. Comptant plus de 700 développeurs contribuant à son code source à travers le monde, Keras a notamment été déployé chez Netflix, Square, Uber, sans oublier Google, entre autres. Son principal avantage : faciliter la création des modèles d'apprentissage profond en simplifiant leur syntaxe de programmation. "Grâce à Keras, vous pouvez en quelques lignes de code construire un réseau de neurones convolutifs, puis le porter sur Tensorflow qui pourra ensuite se charger de la phase d'apprentissage", insiste Amziane Hamedi chez Devoteam. Mais au-delà de Tensorflow, les modèles créés avec Keras pourront aussi être compilés pour d'autres frameworks de deep learning, comme Cognitive Toolkit ou Theano, en vue d'en gérer la phase d'entrainement.