À la découverte de Jupyter, un logiciel scientifique libre aux millions d'utilisateurs

À la découverte de Jupyter, un logiciel scientifique libre aux millions d’utilisateurs

Un logiciel pas si gazeux

Avatar de l'auteur
Martin Clavey

Publié dans

Logiciel

21/12/2022 7 minutes
12

À la découverte de Jupyter, un logiciel scientifique libre aux millions d'utilisateurs

Le logiciel Jupyter, dérivé en 2014 de iPython, a créé avec ses « carnets de notes » un standard du monde académique dans le partage des données et connaissances. Il a depuis été largement adopté par la communauté de la donnée. La conférence Open Science Days était l’occasion d’en apprendre davantage sur ses évolutions passées et à venir.

Jupyter, dont le nom découle des langages de programmation Julia, Python et R ainsi que des carnets de Galilée, est devenu un des logiciels les plus utilisés en recherche. 10 à 15 millions d'utilisateurs dans le monde, des versions customisées par des géants de la donnée comme Google, GitHub, Amazon ou IBM. En 8 ans, ce logiciel libre a conquis le monde des mégadonnées.

L'idée qui a fait son succès : permettre à n'importe quel scientifique ou développeur qui travaille sur des amoncellements (plus ou moins gros) de données d'avoir un outil efficace pour les manipuler et les présenter (par du texte ou graphiquement). Il doit aussi être accessible depuis un simple navigateur et utilisable avec n'importe quel langage de programmation.

Cet outil, d'abord créé par des chercheurs pour des chercheurs, permet de faciliter le processus de leur travail ; de la phase exploratoire jusqu'à sa présentation. Le concept vient notamment du projet IPython Notebook, créé en 2011 par les physiciens Fernando Pérez et Brian Granger.

Mais leur solution ne permettait d'utiliser qu'un seul langage : Python. En 2014, Fernando Pérez propose de faire évoluer le projet vers un logiciel qui soit « agnostique » au langage de programmation, c'est-à-dire pouvant être utilisé quel que soit le langage choisi. Le logiciel Jupyter et son interface Notebook sont nés. Et très vite la communauté scientifique l'adopte.

Une norme scientifique de facto

Pour résumer, Jupyter Notebook est une interface web permettant de créer des documents interactifs avec du texte riche, des images, mais aussi des fragments de codes (en anglais « snippets ») exécutables pouvant afficher eux-mêmes une interface graphique et de la visualisation des données.

L'outil remplit parfaitement sa mission, de façon tellement efficace que les chercheurs – qui doivent constamment travailler sur des données et présenter le travail à leurs collègues – l'adoptent. L’aspect logiciel libre est un plus indéniable.

Déjà en 2018, soit quatre ans seulement après sa création, la revue scientifique Nature publie un article détaillant « Pourquoi Jupyter est le carnet de notes informatique de prédilection des spécialistes des données ? ». L'ingénieure en mécanique et en astronautique à l'Université George Washington, Lorena Barba, y explique que « pour les scientifiques des données, Jupyter s'est imposé comme une norme de facto ».

La plupart des projets scientifiques utilisant massivement des données, comme ceux en astrophysique ayant permis de créer une image d'un trou noir en 2019 ou de découvrir les ondes gravitationnelles en 2016, partagent leurs notebooks (carnets de notes) sur GitHub. Selon les responsables du projet, une dizaine de millions se trouvent actuellement sur la plateforme de partage de code.  «  Que nous ayons apporté une petite contribution à ces projets est extrêmement gratifiant » déclarait Fernando Pérez à Nature en 2021.

Dès le début, le projet est financé par la fondation NumFOCUS, créée quelques années avant entre autres par les créateurs des bibliothèques python NumPy, Astropy, Matplotlib, SciPy et Fernando Pérez. Cette fondation à but non lucratif est maintenant alimentée par une bonne partie des géants du numérique comme Microsoft, Amazon, Google, IBM, NVIDIA et Bloomberg.

Le monde de la donnée séduit

Car les chercheurs ne sont pas les seuls à être séduits par Jupyter. Les entreprises du numérique y voient aussi un excellent outil de présentation des données. En effet, derrière les interfaces de Google Colab, Bloomberg Bquant, IBM Watson Studio, GitHub Codespaces ou encore AWS Sagemaker, on retrouve Jupyter. Chacun peut l'utiliser en adaptant l'interface graphique aux particularités des usages de ses clients.

Il n'en faut pas moins pour que ces différentes sociétés mettent la main au portefeuille pour contribuer et demandent à des entreprises de l'écosystème de Jupyter, comme Quansight ou la française QuantStack, de développer des fonctionnalités qui sont reversées dans le code de la communauté.

« Ces derniers mois, QuantStack est responsable d'environ 90 % du code de Jupyter Lab [l'interface graphique qui a remplacé Jupyter Notebook depuis quelques années, ndlr] », explique Sylvain Corlay, président de l'entreprise QuantStack.

D'autres acteurs du numérique demandent à ces entreprises spécialistes de Jupyter le développement de plugins pour l'adapter à l'édition de photos ou le design assisté par ordinateur (en anglais « Computer Aided Design », CAD).

Et adoption dans le milieu scolaire

En France, Jupyter a fait des émules jusque dans le secondaire où on apprend à coder. Le projet Capytale permet aux élèves des académies françaises de se connecter à une interface graphique et de se familiariser au code en utilisant Jupyter.

La centralisation du service sur un serveur de chaque académie permet à l'équipe enseignante de ne pas avoir à gérer l'administration et de se passer de toute installation de logiciel côté élèves. Un module permet aussi aux enseignants de commenter et de transmettre aux élèves leurs notes.

De plus en plus collaboratif

Au départ, le projet était pensé en se mettant à la place d'un seul chercheur qui voulait créer un projet scientifique. Mais depuis l'utilisation massive de Google Doc et d’autres outils d'édition en ligne, « il y a une attente naturelle pour que toute édition en ligne soit collaborative », estime Sylvain Corlay.

Jupyter intègre cette possibilité depuis sa version 3 publiée il y a deux ans. Mais ce ne fut pas une mince affaire de faire la bascule d'un outil mono-utilisateur à une interface où plusieurs collaborateurs peuvent travailler en même temps sans perdre le travail de personne.

« Nous avons dû revoir complètement le modèle objet de Jupyter autour du document et le baser sur une technologie qui s'appelle le CRDT (Conflict-free replicated data type). Cette structure de données est capable d'accepter des patchs dans n'importe quel ordre et de garantir qu'il y a une cohérence finale du résultat, que chacun, en résolvant les conflits localement et non de manière centralisée, aboutisse sans ambiguïté toujours au même résultat. Cela permet de ne pas avoir de serveur unique qui détient la source de vérité et auquel tout le monde doit se référer », expliquait Sylvain Corlay à la conférence Open Science Days qui se déroulait à Grenoble jeudi 15 décembre.

La version 4 de Jupyter devrait consolider cette fonctionnalité qui manque encore pour l'instant de stabilité. Aucune date n’est annoncée pour le moment, mais elle ne devrait plus trop tarder.

JupyterLite, en local dans le navigateur

Depuis 18 mois, une nouvelle version a été publiée : « JupyterLite ». Comme son nom l'indique, elle est prévue pour les projets les moins gourmands en calculs. Et pour cause, le noyau, compilé en WebAssembly, s'exécute directement dans le navigateur de l'utilisateur, plus besoin d'un aller-retour vers un serveur pour gérer ses « notebooks ».

Évidemment, elle ne pourra pas être utilisée pour des projets d'astrophysique demandant des calculs très lourds, mais elle évite d'avoir besoin d'un serveur puissant et permettra peut-être à des projets comme Capytale de pouvoir être utilisés dans des pays qui n'ont pas les moyens d'installer de gros serveurs pour l'éducation.

Sylvain Corlay constate par contre un déséquilibre entre le nombre de personnes qui maintient le logiciel et le nombre d'utilisateurs. La prochaine conférence internationale « Jupyter Con » aura lieu à Paris à la Cité des Sciences du 10 au 12 mai prochain. L'événement pourra peut-être être l'occasion de rééquilibrer un peu la balance.

Écrit par Martin Clavey

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

Une norme scientifique de facto

Le monde de la donnée séduit

Et adoption dans le milieu scolaire

De plus en plus collaboratif

JupyterLite, en local dans le navigateur

next n'a pas de brief le week-end

Le Brief ne travaille pas le week-end.
C'est dur, mais c'est comme ça.
Allez donc dans une forêt lointaine,
Éloignez-vous de ce clavier pour une fois !

Fermer

Commentaires (12)


Sylvain Corlay constate par contre un déséquilibre entre le nombre de personnes qui maintient le logiciel et le nombre d’utilisateurs.
Dans quels sens on doit le prendre ? Car pour un projet opensource, il m’a l’air d’être très bien soutenu côté mainteneurs pour une fois.


Un classique, j’ai la même chose sur le projet open source auquel je contribue et qui grossit (500k DL) : les demandes utilisateurs dans les issues qui s’empilent plus vite qu’on n’arrive à les dépiler. C’est souvent une bonne mesure.
Et en parallèle je me rappelle d’un projet open source dont le créateur avait arrêté car à la fin il ne faisait plus que des reviews au lieu de coder et ca l’ennuyait au possible.


Sheepux

Un classique, j’ai la même chose sur le projet open source auquel je contribue et qui grossit (500k DL) : les demandes utilisateurs dans les issues qui s’empilent plus vite qu’on n’arrive à les dépiler. C’est souvent une bonne mesure.
Et en parallèle je me rappelle d’un projet open source dont le créateur avait arrêté car à la fin il ne faisait plus que des reviews au lieu de coder et ca l’ennuyait au possible.


c’etait par fairmail ? sur android, il a arreté en partie pour cela, en plus des conditions du playstore changeante



sur le forum un gars lui avait conseillé de cessé de distribuer sur google, continuer sur F-droid uniquement, (il n’y a que des vrai utilisateurs :) ), ne pas s’occuper des tickets sans patch, et reprendre du plaisir. Car les utilisateurs qui veulent un menu plus grand, un icone de chat au lieu d’un dossier, qui n’arrive pas a configurer imap ou POP ,ca crée pas mal de bruit pour rien,


Merci pour cet article ! J’ai déjà utilisé Jupyter quand je travaillais dans la recherche (enfin plutôt iPython Notebook à l’époque). C’est un super outil pour communiquer de la donnée, très pratique pour faire des tutoriels aussi, ou comme support de formation. Je ne savais pas qu’il y avait maintenant des fonctionnalités d’édition collaboratives, c’est bon à savoir. Je suis preneur d’articles sur les outils de ce genre utilisables pour des calculs scientifiques et/ou de l’analyse de données.


Tu as Cadabra si tu veux (https://cadabra.science) et qui lui aussi a son extension dans Jupyter avec Cadabra Jupyter kernel.


Très chouette article sur ce logiciel qui est en effet présent de plus en plus dans le monde de la recherche. Pour ma part, je l’ai surtout utilisé pour des formations.


Par contre, je ne savais pas que ça fonctionnait avec d’autres langages que Python, Julia ou R. Je viens ainsi de découvrir qu’il y avait une version C++ qui utilise cling développé par le CERN.



Pas cherché si le fortran est aussi pris en charge.


Je l’ai utilisé avec Bash il y a peu (pratique pour une sorte de readme interactif).


Ça a vraiment l’air super, mais lorsque je lis “à la découverte”, je m’attend à une petite illustration pratique, sur un exemple simple (voire bien trivial) comme vous avez su le faire sur d’autres sujets. Une idée pour un prochain article de Noël ?


J’ai apprécié l’utilisation de Jupyter, mais je note deux bémols :




  • la mise en place compliquée pour le travail en local

  • le format de fichier. On ne peut que passer par un logiciel d’édition, alors qu’il aurait pu être stocké sous forme de markdown/rst étendu.


Pour rendre les notebooks interactifs à l’aide de composants graphiques, il existe ipywidgets :
ipywidgets



Et pour des widgets plus élaborés, on peut utiliser le toolkit Atlas, qui permet d’embarquer des applications web directement dans les notebooks :
Le toolkit Atlas et Jupyter)


Bravo !! C’est fait plaisir de voir que l’informatique peut vraiment apporter sa petite pierre à l’édifice du savoir humain et que quelques fois les hommes peuvent partager entre eux et travailler pour le bien collectif de l’Humanité.