Open Source : comment rendre nos librairies de Data Science plus accessibles ?

Thomas Bouche
MAIF Data Design Tech etc.
6 min readJan 17, 2023

L’utilisation de logiciels libres et open source permet de rendre les technologies complexes accessibles au plus grand nombre, tout en étant transparent quant au code utilisé. A la MAIF, les data scientists utilisent principalement des librairies open source pour la Data Science et l’IA, et contribuent en retour à l’open source. Cela permet aux data scientists de participer à la communauté, de développer leurs compétences en programmation, et de partager leurs travaux avec les autres. Si vous n’avez pas encore eu l’occasion de contribuer à des projets open source, nous vous encourageons fortement à saisir cette opportunité. C’est non seulement stimulant, mais également très gratifiant de pouvoir contribuer au bien commun.

Depuis plusieurs années, la MAIF s’engage dans l’open source partageant ses travaux en matière d’intelligence artificielle. Nous avons libéré Mélusine, pour le traitement des mails en langue française, puis Shapash, pour rendre l’intelligence artificielle plus transparente et compréhensible par tous, et le dernier Eurybia, pour des modèles d’IA maîtrisés dans le temps.

Pour que ces contributions open source soient accessibles au plus grand nombre, il est essentiel de les rendre visibles, compréhensibles, et faciles d’utilisation. Pour y parvenir, nous mettons en place divers éléments qui vont être détaillés dans cet article : des démos, des tutoriels, des interfaces et visuels, des articles et vidéos, ainsi que le code.

Le readme.md, la vitrine de la librairie

L’élément clé pour prendre en main la librairie est le readme.md sur Github.

En le consultant, vous pourrez y retrouver les principaux changements des dernières versions de la librairie, un résumé de l’utilité de la librairie, des liens vers des articles détaillés, des visuels ou Gifs, le contexte d’utilisation de la librairie, un quick start, et des liens vers les tutoriels.

Readme de Mélusine et Shapash

Des démos pour visualiser des exemples de rendus possibles

Quand les librairies permettent d’obtenir une Web App ou un rapport HTML, des exemples sont directement accessibles sur le readme du repository Github :

Web App de Shapash et rapport d’Eurybia

Il est plus facile de se représenter l’usage de la librairie en manipulant une démo.

Ainsi que des démos plus détaillées et conférences pour le public Français

Des vidéos et conférences enregistrées sont disponibles sur le YouTube de la MAIF. Vous pourrez y voir plus de détails sur l’usage des librairies ou leurs contextes d’utilisation. Vous pouvez les retrouver ici pour Mélusine et ici pour Shapash.

Nous donnons également régulièrement des conférences pour acculturer les potentiels utilisateurs. Nous avons fait plus de 40 conférences ces dernières années, à des salons de la data, en bilatérale à des grandes entreprises, dans des groupes de travail, à des administrations publiques, à des universités, … L’occasion pour nous de glaner du feedback et d’avoir plein d’échanges intéressants sur la pratique de la Data Science !

Une série de tutoriels pour avoir différents exemples d’utilisation

Les librairies s’utilisent pour divers usages. Ces usages sont détaillés dans des tutoriels (dans le dossier tutoriel sur Github) dans lesquels vous pourrez retrouver un tas d’astuces !

Chaque tutoriel est basé sur un dataset public afin que l’utilisateur puisse directement l’exécuter et voir les résultats affichés.

Capture de la rubrique ‘tutorial’ de Shapash

Dans ces tutoriels, les images sont figées en mode statique afin que l’utilisateur puisse apercevoir le type de résultat qu’il obtiendra. Le tutoriel est commenté pour faciliter la lecture et spécifier les différents usages, astuces et grilles de lecture.

Des interfaces et des visuels travaillés pour une compréhension facilitée des résultats

Des interfaces dynamiques sont privilégiées comme une Web App ou un rapport HTML. Pour les figures, la plupart du temps, Plotly est utilisé, pour avoir une figure dynamique qui permet de faire des zoom, sélectionner des données, et avoir du texte en surbrillance sur les points. De plus, chaque librairie a sa palette de couleurs pour une identité singulière.

Le respect des bonnes pratiques de devs pour un code de qualité

Pour assurer un code de qualité, nous respectons les bonnes pratiques suivantes : docstrings, normes PEP8, typing, workflow Github, …

Pour nous aider au respect de ces bonnes pratiques, des pre-commit sont intégrés (pas encore dans Shapash). Ils permettent, lors du commit, de modifier automatiquement le code ou d’alerter sur un code qui ne correspond pas aux bonnes pratiques.

Et une documentation pour faciliter les futurs contributions

La documentation est générée automatiquement à partir de readthedocs.

Elle contient des informations générales, les instructions pour l’installation, les tutoriels et la documentation du code (à partir des docstrings).

Capture de la documentation d’Eurybia

Des releases claires pour accéder facilement aux nouveautés

Les nouveautés et corrections de bugs sont documentées à chaque release des librairies.

Capture de la partie ‘Releases’ de Shapash

De la flexibilité dans nos solutions pour que le data scientist puisse l’utiliser à sa guise

Nous essayons d’avoir des librairies qui ne soient pas des carcans pour les data scientists et de laisser la possibilité d’utiliser au maximum les différents types de modèle (par exemple sur Shapash, catboost, xgboost, modèles sklearn, …).

Nous maintenons la compatibilité avec les dernières versions de Python. Nous sommes récemment compatibles avec la version 3.10 pour Shapash et Eurybia, suite à des demandes utilisateurs. Et nos librairies ne sont plus maintenues en version 3.6 comme la plupart des autres librairies Python. Ces compatibilités de versions sont mises à jours en fonction de leurs dépendances (pandas, sklearn, numpy, …) et de leur stabilité sur les nouvelles versions de Python.

Pour vérifier que les librairies fonctionnent bien sur l’ensemble des versions, Github actions déclenchent des tests unitaires sur chacune des versions.

Capture de github actions

Une compilation en quelques lignes de codes

Shapash et Eurybia sont compilables en 3 lignes de code, une pour initialiser un objet, une autre pour déclencher les calculs, et une dernière pour avoir une Web App ou un rapport HTML.

Capture de la partie ‘Quick start’ du readme d’Eurybia

Des articles Medium pour découvrir les fonctionnalités de nos librairies

Nous écrivons des articles de blogs pour faire connaitre les différentes fonctionnalités de nos librairies. Ces articles sont publiés sur notre blog OSS ou sur des blogs spécialisés en Data Science, vous pouvez retrouver les liens dans les readme des Github.

Capture du blog OSS

Les issues et le canal “Discussions” pour contribuer avec nous

Vous pouvez faire une issue pour remonter les bugs et proposer des améliorations ou bien communiquer avec nous sur le canal “Discussions”.

Pour contribuer en développant du code, chaque librairie a un fichier contributing.md à la racine du Github.

Nous espérons que ces divers éléments mis en place pour rendre nos librairies plus accessibles ont facilité leur prise en main pour nos utilisateurs. Dites-nous en commentaire si vous avez des améliorations à proposer pour faciliter la prise en main de nos librairies, si vous rencontrez des difficultés et si oui, pourquoi, et également ce que vous appréciez !

Nous encourageons également tous ceux qui souhaitent contribuer à notre démarche open source à utiliser nos librairies, signaler les bugs et proposer des améliorations via les issues sur Github, et mettre une étoile à nos librairies. C’est grâce à ces actions simples que nous pouvons continuer à améliorer nos contributions pour rendre la Data Science et l’IA plus accessible à tous.

--

--