# Webinaire 3 GT Notebook
###### tags: `gt notebook`,`webinaire`

:::info
- Présent.e.s :
- Konrad Hinsen
- Hugues Pecout
- Sebastien Rey-Coyrehourcq
- Raphaëlle Krummeich
- Laurent Mouchard
- Nicolas Roelandt
- Raphael Kobenan
- Lino Galiana
- Romain Avouac
- Paul Clabaut
- Ghislain Durif
- Pierre Poulain
- Manon Marchand
- Nicolas Rougier
- Laurent Jégou
- Nicolas Sauret
- Excusé.e.s :
- Lien site web : https://gt-notebook.gitpages.huma-num.fr/site_quarto/
- Issue & ODJ : https://gitlab.huma-num.fr/gt-notebook/webinaires/-/issues/4
- Lien visio BBB : https://webconf.univ-rouen.fr/greenlight/rey-px2-ewg-7av
- Lien chat public : https://rocket.esup-portail.org/channel/GT-Notebook
- Lien mailling-list : https://groupes.renater.fr/sympa/info/notebooks-inter-reseaux
- Lien support présentation et notebooks de démonstration:
:::
## Ordre du Jour
- Accueil (5 minutes)
- Intervention Computo
- Discussions
- Intervention Onyxia
- Discussions
- Appel à contributions (5 minutes)
- Annonce du prochain Webinaire #4 (2 minutes)
## Accueil
Pour ce troisième séminaire plus conséquent (14h30 à 16h30), nous aurons le plaisir d'écouter les équipes de deux importants projets : Onyxia et Computo. C'est là l'occasion pour le gt notebook de mettre en débat les questions relatives aux Notebooks tels qu'utilisés au sein de nouveaux modèles de revues (RZine, ReScience, etc.), articulées à celles de leurs déployements au moyen d'infrastructures techniques ou de plateformes.
## Présentation 1 : Computo
### Annonce
:::info
L'équipe de [Computo](https://computo.sfds.asso.fr/), en présence de Ghislain Durif (IGR Biostatistique à l'ENS Lyon), présentera cette revue de la Société Française de Statistique (SFdS) de type *Open Access Diamant*, centrée sur la thématique "*machine-learning* et statistique". Sa création répond aux constats de crise de la reproductibilité portés ces dernières années dans plusieurs disciplines. Fondée sur le *litterate programming*, la revue intègre l'évaluation par les pairs scientifiques avec de nouveaux outils. Ainsi les articles sont soumis sous une forme de Notebook avec des *templates* Quarto ou Jupyter. A l'instar d'autres plateformes (RZine, ReScience, etc.), le *peer-reviewing* intègre une revue de code ouverte au public, avec un *workflow* de soumission et évaluation adapté utilisant [Scholastica]( https://computo.scholasticahq.com/).
:::
Présentation Computo : https://github.com/computorg/comm/tree/main/latest
### Prise de Notes collaborative
Lancé il y a deux ans, journal académique ayant pour thématique les statistiques et le machine learning.
Focus reproductibilité
Equipe bénévole avec 6 éditeurs
Equipe technique de 2 personnes.
Disparition du journal de la SFS et ambition de créer une nouvelle revue avec une envergure internationale.
Problèmes des journaux traditionnels:
- pas de valoraisation des résultats négatifs
- code pas valorisés et études de cas
- problème de reproductibilité scientifique (analyses et expéreince)
Philosophie
Science ouverte (open access diamant, publication sous licence CC-BY)
Relecture par les pairs ouverts après acceptation (anonymat des relecteurs au choix)
Reproductible:
- reproductibilité numérique des résultats impérative
- code et données accessibles (éventuellement en partie exécuté si nécessaire - confidentialité ou calculs importants)
Lancé en 2021 sur la plateforme Github
modèle économique: bénévolat, outils libres et soutiens institutionnels
Fonctionnement:
- Rédaction: Document texte (markdown) + Math (LaTex) + Code (Python/R/Julia) + Gestion de la biliogrpahie converti via pandoc
- Publication: compilation et publication des documents en intégration continue
- Relecture: échanges anonymes, difficultés à recruter des relecteurs/relectrices, utilisation de Scholastica (propriétaire), passage à OpenReview (logiciel libre, tests en cours)
- Chaine CI : Github action mais volonté de passer sous gitlab avec un support institutionnel.
Outils de l'auteur:
- modèle générique document/template quarto => https://computo.sfds.asso.fr/template-computo-quarto/
- modèles spécifiques pour chaque language
Tâches de l'auteur:
- création d'un dépot git
- configuration de l'environnement (en utilisant les outils fournis par le language choisi)
- Pousser le code sur le serveur git qui lancera la compilation et la publication du document
- soumission: dépôt du pdf et de l'adresse du dépôt git
Problématique de la ressource de calcul dans certains cas, si c'est trop important on accepte que les auteurs nous transmette un fichier résultat. Charge aux reviewer de tester si c'est reproductible, mais on pense à des runners sous gitlab pour des calculs plus conséquents..
Travail de l'éditeur:
- processus de relecture traditionnelle : acceptation, pré-production, publication
- copie du code de l'auteur, mise en forme, publication des rapports, dépôt du code dans Software Heritage
Bilan à 1,5 an
Processus opérationnel : 4 articles publiés, 6 articles en cours de relecture.
difficulté à recruter des relecteurs
Beaucoup d'appel à la SO mais en pratique, c'est encore compliqué, il faut beaucoup naviguer entre les services des institutions.
### Discussions / Questions
- Remarque Nicolas Rougier : Fond FNSO pour les appels à projet ? Comment le code source est sauvegardé ?
Appel tous les ans par le FNSO
- Réponse : github => archivage software heritage
- Question Nicolas Roelandt : accompagnement pour Git ?
- Réponse, c'est sûr que c'est un prérequis, cela force les gens à s'y mettre, mais il y a des outils graphiques. Pas de solution miracle, mais on est obligé de passer par des outils collaboratifs texte.
- Question Alex Dehne : PCI (peer community in) Computo ?
- Réponse : C'est un peu culturel, on aurait pu passer par PCI et puis on est passé sur open review, question ouverte.
- Question Konrad Hinsen : Accès aux forges institutionnelles ?
- Réponse : C'est un problème effectivement, on développe tout le pipeline déjà.
- Manon Marchand: recensement des forges institutionnelles : https://hal-lara.archives-ouvertes.fr/hal-04098702v1/document
...
- Question Manon Marchand : parler avec les gens de Framagit pour voir si ils ont des retour sur le maintient d'une forge ouverte contrairement à ce qui existe dans les forges institutionnelles
- Réponse : C'est pas leur objectif je pense.
- Question : Pour les reviewer, retour / feedback ?
- Réponse : Ce sont des gens qui supporte aussi le processus, et l'éthique derrière, potentiellement en refusant les autres reviews sur des journaux payants. Il nous faut du temps pour trouver les reviewers, plus que du temps de review en lui même.
- Question Hugues Pecout : Dépot / review se fait comment ? et la licence ?
- Réponses : POur le dépot, celui ci est rappatrié, et le dépot doit déjà être ouvert
- Pour les licences, CCBY sur le rendu mais pour le code ?
- Question Laurent Jégou : Executer le code en temps réel, via Jupyter avec Binder ou autre ?
- Réponse : pour le moment on y a pas pensé, pour le moment on a pas les ressources, et je ne sais pas si c'est la vocation du journal ?
- Question Nicolas Roelandt : Le sujet peut être de n'importe quel domaine ? Au hasard géographie ou informatique ?
- Question Sébastien Rey : Démarche pour l'institutionel ?
- Réponse : Différents niveaux, on est un peu tous aller toquer à la porte, et ça n'a pas forcément été facile de trouver les bons interlocuteurs. Cà s'améliore mais aussi se pose la question de savoir qu'est ce que l'on peut demander ?
- Question Hugues Pecout : Trois productions : source, pdf, html, est ce que c'est un même objet ? Comment vous les considérez ?
- Réponse : On considère que c'est une seule publication
- Question Hugues Pecout : Comment vous reviewer le code vs la thématique ? Est ce qu'il y a des règles ?
- Réponse : Idéalement ils font les deux, mais souvent l'équipe éditoriale/technique file un coup de main. Sur les premières publications ont été pas trop trop strictes. SI les données sont trop grosses cela peut être un zenodo.
- Question Nicolas Roelandt : Moyens pour les relecteurs ? Ils doivent utiliser leur machine ?
- Réponse : on a du s'assurer que sur la phase de préprod tout fonctionnait bien.
- autoquestion : Est ce que l'on décide de mettre en place un système de container bcp plus lourd pour tout rejouer d'ici 5 / 10 ans ?
- Réponse pour le moment on y est pas encore (moyens limités)
- Il doivent utiliser leur machine, ou c'est le CI qui le fait.
- Intervention Sébastien Rey: reproductibilité avec guix complexe, ne serait-ce que pour intégration de Quarto dans Guix ou maintenir 10 ans de développement de R.
- Réponse: notebook permet de séparer le code du texte, mardown lisible directement contrairement au notebook Jupyter, l'avantage de Jupyter c'est que le JSON contient les résultats. Doit-on viser la reproductibilité à 20 ans ? Quels moyens seraient nécessaires ?
- Intervention Konrad : Rien qui garantit que dans 20 ans de toute façon ce sera possible. Cela revient aussi à se poser la question suivante : est ce que l'on consulte les articles d'il y a 20 ans ? Cela dépend de la disciplines. Articles intéressants 30 ou 40 ans après leur publication. Quelle durée de maintien de la reproductibilité serait faisable ? Raisonnable ? Reproductibilité sur 6 mois c'est déjà un défi. Voyon
- Sébastien : notebook mélangeant code, texte et résultat et donc difficile à maintenir de manière pérenne
- Romain Lesur (Insee) : Je me demande si toutes les avancées sur Web Assembly ne permettront pas d'aider à la reproductibilité pour des petits calculs pouvant tourner sur un PC via le navigateur
## Présentation 2 : Onyxia
### Annonce
:::info
L'équipe de la plateforme [Onyxia](https://onyxia.lab.sspcloud.fr/), avec Frédéric Comte (porteur de projet, *Data Architect* à l'INSEE), Lino Galiana (*Data Scientist* à l'INSEE), Romain Avouac (*Data Scientist* à l'INSEE) et Romain Lesur (Responsable du Lab de *Data Science* à l'INSEE.) présenteront la plateforme *Open Source* [Onyxia/SPCloud](https://github.com/InseeFrLab/onyxia-web), développée à l'INSEE en collaboration avec la DINUM. Celle-ci propose un ensemble de services (stockage, partage, déploiement, calcul distribué, catalogue pour la formation, personnalisation) autour des Notebooks (R/Python) pour les *Data Scientists*. Très modulaire, cette plateforme s'appuie sur un ensemble de technologies (Kubernetes, Docker, GPU, standard S3, HashiCorp, etc.) permettant d'assurer sur le plan technique l'acroissement d'utilisateurices important sans interruption de services.
:::
### Prise de Notes collaboratives
Lien vers la présentation: https://diit.pages.lab.sspcloud.fr/presentation/20230524-gt-notebooks/#/title-slide
Deux équipes innovation montées au sein de l'INSEE :
- méthodologique (modele ia symbolique, modernisé à coup de machine learning), data science en général, métier de stat vers data scientist, voir devops
- DSI INSEE, IT : Machine learning avec un angle pour permettre aux équipes de travailler dans les meilleurs conditions possibles
=> Cela a permis Onyxia, avec l'idée de vous faire rêver
Sujets: datascience, opensource, reproductibilité avec des pratiques dev/devops
Au sein de l'INSEE, la thématique de science ouverte a pas encore pénétré, même si c'est le cas des équipes d'innovation. On essaye d'acculturer en interne et on a pas encore de direction science ouverte.
Opensource: 2 dépots github
- INSEE-fr: codes de production
- INSEE-lab: codes expérimentaux
https://github.com/InseeFr
https://github.com/InseeFrLab
Comment travaillez vous ?
Communauté d'artisans (langages de programmation et environnements de développement divers)
Besoins très divers
- expérimentation avec des notebooks
- industrialisation de certains projets -> complexification du projet
Environnements de travail:
- poste de travail indviduel : simple à utiliser, puissance limitée, faible sécurité, reproductibilité limitée
- infrastructures mutualisées: simple, puissant, sécurisé, versatile mais reproductibilité faible et innovation freinée
Moyens d'innovation:
- nouveaux besoins computationnels (parallélisation, calcul/stockage distribué, utilisation de GPUs)
- Mise en production d'un code expérimental:
- automatisation de la récupération des données
- déploiement d'applications
- SSpCloud: Datalab pour les usages innovants (stockage important, forte puissance de calculs même avec des cartes graphiques)
=> 20 aine de serveurs dimensionnés
- utilisation de docker pour définir, définir les environnements et favoriser la reproductibilité: empaqueter le code applicatif, ses dépendances, les librairies systèmes.
- Ouvert sur Internet et à tous les agents de l'état donc pas conforme en terme de sécurité des données sensibles.
- Possibilités de travailler avec des données ouvertes
- Plateforme de formation:
- formations reproductibles
- catalogue de formation contributif
- SSPCloud: instance vitrine d'Onyxia, logiciel libre déposé sur Github
- Communauté d'utilisateur
- Tchap SSPCloud
- Salon Slack Onyxia
Démo Python/Ensae : https://pythonds.linogaliana.fr/
Pour la formation le site web c'est chouette, mais on va vouloir aller plus loin, avec le notebook : format privilégié pour l'apprentissage, et ensuite les étudiant.e.s passe à autre chose.
On a fait le choix de pas les envoyer sur Google Colab. On veut qu'ils choisissent l'environnement qu'ils veulent, mais on les met d'abord sur SSPCloud/Onyxia.
Avantage de SSPCloud: maitrise l'environnement ce qui n'est pas possible de sur Colab, pas de temps d'inactivité court
Possible d'utiliser des notebook standardisé (cliquable type binder, etc.) ou plutot un portail de formation. On retrouve la notion de lien cliquables, ouvert dans Onyxia cette fois ci
Ressources éducatives produites à l'INSEE: https://www.sspcloud.fr/formation
Quarto : permet que le contenu du notebook et du site web soit identiques.
Préinstallation des packages et ensuite les éléves seront amenés à installer les packages pour devenir plus autonomes aussi.
Approche pédagogique fine: présentation du problème, des données et des résultats mais pas le code qui permet de les obtenir.
Capacité de tenir + de 150 élèves qui font les exercices en même temps
Formations: Python, R, Spark, mlflow
Documentation pour les réinstanciations du projet Onyxia : https://www.onyxia.sh/
### Discussions / Questions
Question Martin Souchal : Quel est la durée de vie d'un service sur SSP Cloud ?
- Réponse Romain Lesur : Les services interactifs (jupyter, RStudio, vscode) ont vocation à avoir une durée de vie courte. On demande aux utilisateurs de les supprimer. En pratique, ils le font rarement et on fait régulièrement du ménage.
Les autres services (bdd, etc.) on les laisse tourne
- Réponse Frédéric Comte : en gros on nettoie les IDE qui ont plus de 7 jours mais sur les GPUs ont commence a etre plus violent
Question Sébastien Rey: gestion des ressources de calculs
- réponse de Romain Lesur: Onyxia ne gère pas les ressources, SSPCloud ouvert à l'innovation donc pas garantie de service, régulation à posteriori, si besoin de plus de ressources , recherhce de nouveaux financements. Pas de SLA. On veut que les gens s'amusent et atteignent du 99%. Contents quand le service est utilisé.
- Frédéric Comte : Dans l'idéal on aimerait que d'autres entités proposent une autre région open innovation comme la notre
Question Robin Cura : Quel retour sur l'usage généralisé de S3/MinIO, dans le cadre de services "courtes-durées", par rapport à un usage (plus classique) de ftp ? je demande surtout en termes d'accès aux données, sachant que c'est pas encore le protocole le plus habituel pour les gens/étudiants
- Réponse : Débit réseau intra cluster, frédéric qui gère tout çà. Pour du service courte durée, ca se passe bien. Onyxia prend en compte l'injection des tokens d'accès au données pour l'utilisateur. Les personnes habituées à utiliser un drive s'y retrouvent.
Question Nicolas : Est-ce que les étudiants peuvent conserver les notebooks qu'ils ont modifiés ?
Question Ghislain Durif: Qu'est ce que siginifie SSP ? hébergement instance, est ce que c'est simple/documenté ? Au niveau de l'utilisation des ressources, il se passe quoi au bout du bout quand on a plus d'argent pour augmenter la charge ?
- Réponse: Service de Statistique Publique
- Réponse: Dépend du contexte et de l'organisation, en général les orga qui instancie qui font le choix technologique, c'est dans un contexte de data science et l'IT a la volonté d'offrir un service. Dans ce contexte là il y a pas mal d'investissement fait. Université de trois heures Devoxxx, pas à pas pour le déploiement => https://www.youtube.com/watch?v=GXINfnVB21E
- Réponse Lino : SSPCloud répond bien aux besoins de formation, mais pour un projet particulier c'est bien une reinstance qu'il faudra.
https://www.onyxia.sh/
...
Il manque quelques informations ici encore à rapporter avec la vidéo
...
Question Hugues : Cout matériel pour l'instance?
- Réponse : 120 000 € de matériel par an/ 700 k€ de matériels en salle serveur
Question Sébastien: Mutualisation de moyens entre HumaNum et SSPCloud (ou autres) ?
- Réponse Romain: objectifs/usages légèrement différents mais possibilité de collaboration sur du logiciel libre, ressources computationnelles soulèvent des problématiques propres à chaque organisme. Onyxia toutefois proche de la communauté ESR
Question Hugues : possibilité d'ajouter des formations ?
- réponse Romain Avouac: c'est centralisé pour vérifier les liens mais il est possible de soumettre des supports.
Question Sébastien: quid du déploiement d'applications shiny pérenne ?
- Réponse Romain Lesur: application Shiny contenairisée et déployée à la demande de l'utilisateur
- Un tutoriel de déploiement de Shiny sur le SSP Cloud : https://github.com/InseeFrLab/sspcloud-tutorials/blob/main/deployment/shiny-app.md
## Intro Webinaire 4 / 22 juin 2023
:::info
**Titre: De l'esthétique du notebook**
Les notebooks les plus répandus, comme par exemple les Jupyter notebooks, font peu de cas de l'interface utilisateur qui se résume essentiellement à des cellules que l'on peut éditer et dont l'esthétique parait un peu datée, peu fonctionnelle, voire ambiguë.
De fait, on est relativement éloignés de la programmation littéraire pour laquelle il existe pourtant des exemples assez remarquables tel que le défunt journal scientifique distill.io. Entre ces deux extrêmes, il y a certainement un espace à explorer pour offrir de meilleures interfaces. En m'appuyant sur Emacs, qui offre la possibilité de manipuler entièrement son interface, je présenterai quelques expériences autour de l'esthétique du notebook pour explorer la manière dont cela peut influer sur leur utilisation.
:::