Nous avons eu le plaisir d’interviewer Gaël Varoquaux, chercheur Inria en charge du projet Scikit-learn dans le cadre du lancement de l’initiative scikit-learn. Nous revenons au cours de cette interview sur la génèse du projet scikit-learn, sur ce qui rend scikit-learn unique et sur ses développements futurs.
Actu IA: Comment est née scikit-learn et comment cette bibliothèque a-t-elle fédéré autour d’elle une communauté d’acteurs majeurs tels qu’INRIA ?
Gaël Varoquaux: Nous sommes partis en 2009 de besoins de recherche, identifiés à l’origine par une équipe Inria. Nous avons commencé à construire les algorithmes fondamentaux nécessaires au sein de cette équipe, mais dès le début de façon libre et transparente sur Internet. En quelques années, une communauté de chercheurs nous a rejoint pour travailler avec nous. Ce sont des gens que nous rencontrions en conférence, que cela soit des conférences de machine learning ou de logiciel libre. Nous organisons souvent des petites réunions de développement, appelée “sprint”, en marge de conférences, où diverses personnes nous rejoignent. La communauté a alors grandi avec la croissance du machine learning. Et certains jeunes chercheurs sont partis dans l’industrie, stimulant une croissance dans de nouvelles directions pour scikit-learn.
Actu IA: Nous faisons face à un nombre croissant de librairies de Machine Learning et Deep Learning, comment scikit-learn se distingue-t-elle des autres librairies ?
Gaël Varoquaux: Je pense que le fort coté différenciant de scikit-learn est sa facilité d’utilisation. Nous avons un outil qui a été pensé pour la pédagogie et la polyvalence. La pédagogie vient probablement de son origine universitaire. La polyvalence vient de la diversité des sujets que touchent les contributeurs. Nous cherchons toujours à trouver une interface la plus uniforme à travers les différents tâches que la bibliothèque résout. C’est un véritable défi, mais cela donne beaucoup de valeur car la prise en main est facile.
Au delà de l’ergonomie et de qualité de la documentation, nous avons un placement différent par rapport à variété d’autres logiciels de machine learning. Par rapport aux bibliothèques de deep learning, nous pouvons être mis en œuvre avec beaucoup moins de moyens: à la fois moins de ressources de calcul, moins de moyens humains, et surtout moins de données. En effet, nous proposons beaucoup de modèles de machine learning qui sont bien adaptés aux scénarios où il n’y a pas des millions d’échantillons. Nous établissons le continuum entre le machine learning et “l’analytics” car nous nous intégrons parfaitement dans un environnement d’exploration de données interactive, dans l’écosystème “PyData”. Par rapport au langage “R”, qui permet aussi une très bonne analyse de données interactive, notre force est d’être plus robuste et de monter mieux à l’échelle. En effet, nous sommes aussi utilisés comme moteur de production pour des sites web, bénéficiant du fait que le langage Python est universellement utilisé sur le web. Par rapport à un environnement comme Spark, nous montons moins bien à l’échelle, mais nous sommes beaucoup plus facile à déployer et à utiliser. Nous avons aussi un ensemble de modèles de machine learning beaucoup plus riche que celui de spark. Il est courant que les utilisateurs de spark combinent cet outil avec scikit-learn.
Actu IA: Quels sont ses grands axes de développements futurs ?
Gaël Varoquaux: Les axes de développement vont être décidés par le comité technique dans un future proche. Je ne peux donc m’engager dessus. Cependant, nous envisageons plusieurs pistes. D’une part nous travaillons beaucoup sur la possibilité de mieux monter à l’échelle, avec entre autre la possibilité de distribuer les calculs sur une grille de machines. De plus nous voulons améliorer la facilité d’intégration des données. En effet, l’une des difficultés des utilisateurs est d’aller de leur données brutes à une matrice qui peut être ingérée par un modèle statistique. Nous allons aussi travailler sur la performance de nos modèles, et nous espérons pouvoir annoncer des accélérations fortes dans un future pas très distant. Finalement, nous explorerons peut-être une meilleure visualisation et déboggage des modèles, pour encore une fois rendre les utilisateurs plus efficaces.
Actu IA: Pour un développeur, l’idée de contribuer à un projet tel que scikit-learn peut être tout autant excitante qu’intimidante. Qui peut devenir contributeur et quelles sont les compétences requises pour prendre part à un tel projet ?
Gaël Varoquaux: En effet scikit-learn est maintenant un gros projet, ce qui n’est pas facile à appréhender. Il y a énormément de travail à faire à beaucoup de niveaux différents. Au delà de contribuer à un modèle statistique, ce qui est dur, il est toujours utile d’améliorer la qualité de l’existant, au niveau de la gestion des erreurs, de la documentation, ou de la performance pour les plus ambitieux. L’une des difficultés que nous rencontrons est aussi la communication entre les différents axes de développement. Un esprit synthétique et des compétences humaines sont donc aussi très importants. D’ailleurs nous allons bientôt chercher quelqu’un spécifiquement pour créer du liant.
Pour apprendre à contribuer, le plus facile est probablement de se former d’abord grâce à l’écosystème riche en France, en profitant des événements techniques outils du machine learning ou du logiciel libre. La communauté scikit-learn organise aussi des sprints de développement où nous aidons des contributeurs à monter en puissance.
Nous tenons à remercier Gaël Varoquaux ainsi que l’ensemble de l’équipe d’Inria pour leur confiance et leur disponibilité.