Scikit-learn, l'IA open source française qui s'impose dans le monde

Scikit-learn, l'IA open source française qui s'impose dans le monde Le projet orchestré par l'INRIA devient l'infrastructure de machine learning de référence aux côtés des frameworks de deep learning tels que Keras ou Tensorflow.

Initié et piloté en France par l'INRIA et Télécom ParisTech, le projet open source Scikit-learn est devenu une référence dans le monde de l'intelligence artificielle. De Paris à San Francisco en passant par Singapour, la bibliothèque de machine learning, écrite en Python, s'impose aux start-up jusqu'aux grands groupes, Gafam compris.

Preuve de cet engouement, dans le dernier baromètre de la Python Software Foundation, Scikit-learn se hisse en cinquième position des frameworks et librairies de data science Python les plus utilisés tous domaines confondus. Il est cité par près d'un tiers des 20 000 développeurs interrogés. Et dans la catégorie des technologies d'apprentissage machine stricto sensu, elle occupe la première place du palmarès. Elle se classe même largement devant les infrastructures de deep learning Tensorflow et Keras qui, de leur côté, totalisent respectivement 25% et 15% des suffrages.

Comment expliquer ce succès fulgurant ? Scikit-learn recouvre les principaux algorithmes de machine learning généralistes : classification, régression, clustering, gradient boosting... En parallèle, le framework embarque NumPy, Matplotlib et SciPy, trois librairies star du calcul scientifique comme l'illustre encore l'indice de la Python Software Foundation (dans lequel elles trustent successivement la première, troisième et quatrième position). "Du coup, la communauté des chercheurs rompus au calcul matricielle l'a rapidement adoptée", constate Aymen Chakhari, directeur IA et data science au sein de l'ESN Devoteam.

Dataiku, Microsoft et IBM dans la boucle

Par voie de conséquence, Scikit-learn est également la bibliothèque de machine learning la plus souvent présente dans les cursus d'enseignement supérieur en data science. Résultat : un large contingent de jeunes diplômés et d'experts prêts à la déployer en entreprise sont venus alimenter le marché de l'emploi, faisant encore monter la mayonnaise.

"L'un de ses principaux points forts : une documentation claire et didactique avec des packages prêts à l'emploi"

Quant aux fournisseurs d'outils d'IA commerciaux, ils ont rapidement vu dans Scikit-learn une potentielle poule aux œufs d'or. Sa disponibilité en open source (sous licence BSD) et son mode de développement communautaire ont fait le reste. L'infrastructure est désormais implémentée par plusieurs poids lourds de la data science dont le Français Dataiku, l'Américain DataRobot et l'Allemand Knime. Elle est aussi prise en charge par un nombre croissant d'acteurs du cloud. C'est le cas de Google via son service Cloud Machine Learning Engine, d'IBM avec Watson Machine Learning ou encore de Microsoft par le biais d'Azure Machine Learning.

"L'un des principaux points forts de Scikit-learn est de proposer une documentation claire et didactique avec des exemples d'implémentations et des packages prêts à l'emploi. Tensorflow se révèle beaucoup plus difficile à paramétrer", compare Bouzid Ait Amir, responsable du pôle analytics chez Keyrus.

De l'hyperparameter tuning

Parmi ses facteurs de différentiation, Scikit-learn est plébiscitée pour sa méthode de validation croisée. "En amont, elle fournit la possibilité de générer très simplement les bases d'entrainement et de test", explique Bouzid Ait Amir. Ensuite via un mécanisme de grid search, la validation croisée permet de dénicher les paramètres du modèle se rapprochant le plus des prédictions attendues. Le processus ajuste l'échantillonnage de la base de test en la confrontant à la base d'apprentissage par itérations successives (voir schéma ci-dessous). "L'objectif est d'aboutir au bon réglage en termes de seuils, par exemple ne pas dépasser 2% en matière de détection de fraudes", détaille Bouzid Ait Amir.

Processus de validation croisée mis en œuvre par Scikit-learn dans le cadre de son mécanisme d'hyperparameter tuning. © Scikit-learn

Autre point fort de Scikit-learn, la librairie embarque toute une palette de méthodes pour piloter le pre-processing des data sets en amont des phases d'apprentissage. "Elles gèrent leur extraction, leur nettoyage, leur formatage et leur labellisation", égraine Aymen Chakhari. Sur ce terrain, Bouzid Ait Amir regrette que Scikit-learn n'intègre pas Pandas. "Lors de cette délicate étape de préparation, cette librairie permet de manipuler les données sous forme de tableaux plutôt que de matrices comme le fait Scikit-learn. C'est plus pratique", reconnait l'expert de Keyrus. Les deux bibliothèques peuvent néanmoins travailler de concert. Une première passerelle entre Scikit-learn et Pandas est par ailleurs en développement.

La faiblesse d'un langage interprété

Evidemment, Scikit-learn souffre d'une faiblesse congénitale à la technologie Python. Ce dernier étant un langage interprété, la librairie ne peut pas offrir les performances d'un langage compilé. "Python gère cependant beaucoup mieux la mémoire vive que R (un autre langage star de la data science, orienté statistique, ndlr)", rappelle Bouzid Ait Amir. Et Aymen Chakhari de réagir : "Le Cython résout en partie le problème en ouvrant la possibilité de compiler des composants Python en C ou en C++. Quelques algorithmes sont disponibles dans Scikit-learn pour ce langage. C'est le cas de la famille des SVM (pour Support Vector Machines ndlr). Compte tenu de cet avantage, on pourrait imaginer que d'autres soient implémentés à l'avenir par la communauté."

Mais, une autre voie se profile à l'horizon pour améliorer encore les performances de Scikit-learn. "Nous étudions la possibilité d'intégrer au framework des dispositifs d'apprentissage par renforcement", confie Aymen Chakhari qui fait aussi parti des contributeurs du projet open source (lire l'article : Deep reinforcement learning, l'IA capable de surpasser l'humain).

A lire aussi

Scikit-learn, l'IA open source française qui s'impose dans le monde
Scikit-learn, l'IA open source française qui s'impose dans le monde

Initié et piloté en France par l'INRIA et Télécom ParisTech, le projet open source Scikit-learn est devenu une référence dans le monde de l'intelligence artificielle. De Paris à San Francisco en passant par Singapour, la bibliothèque de...