Bruno Rodrigues. Photo : Dominique Nauroy
Une pipeline analytique reproductible, qu'est-ce que c'est ?
C'est une approche dédiée aux data scientists visant à écrire du code de manière reproductible. Cela signifie que, dans quinze ans, ce même code sera toujours opérationnel et produira le même résultat, alors même que l'environnement sur lequel le code est exécuté aura sans nul doute évolué.
Il s'agit de fournir, en plus du code, un environnement qui intègre le langage de programmation (R, Python...), les bibliothèques utilisées par le code (elles apportent des extensions précieuses au code mais constituent souvent la partie la plus fragile) et même un système d'exploitation, le plus souvent Linux. Cela est rendu possible grâce à un outil de conteneurisation (qui effectue la virtualisation au niveau du système d'exploitation, tel Docker, ndlr).
Pour écrire du code reproductible, que l'on travaille seul ou en équipe, l'important est de mettre l'accent sur la collaboration, la communication et l'automatisation des processus.
En quoi cette approche diffère-t-elle d'un catalogue de bonnes pratiques dédié aux développeurs ?
Ces pratiques ne sont pas neuves, elles s'inspirent des outils et de la philosophie DevOps. Mais dans le monde de la data science, elles ne sont pas encore massivement répandues.
Je m'inspire de l'ONS (Office for National Statistics, le STATEC britannique, ndlr) qui prône l'usage de cette méthode dans leurs services pour la faire émerger ici, au Luxembourg. C'est à l'ONS qu'on doit le terme de pipeline analytique reproductible. Le CTIE s'est montré sensible à ce sujet, en particulier pour fournir aux data scientists de l'État un environnement « maison » adapté.
Il y a les outils, il y a également la méthode : en l'occurrence, il s'agit de mettre l'accent sur la programmation fonctionnelle et lettrée. La programmation fonctionnelle pour compartimenter les tâches et éviter les répétitions, la programmation lettrée pour autoriser, dans un même code source, la coexistence heureuse de code exécutable et de texte le documentant. Le produit d'un script utilisant la programmation lettrée est un document qui peut être lu par un humain, comme un PDF.
On pousse donc l'automatisation à son maximum
Cela élimine le copier-coller comme les répétitions. Les interventions humaines de contrôle sont le plus possible éliminées pour être assurées par l'ordinateur, ce qui donne du temps aux processus cognitifs humains pour l'analyse.
C'est autour de cette proposition que se structure un groupe – encore informel à l'heure actuelle – de data scientists travaillant pour le secteur public luxembourgeois. L'idée est de susciter l'échange, la coordination, le partage d'une vision. Ce groupe compte aujourd'hui une soixantaine de personnes et se réunit trois à quatre fois par an au GovTech Lab du CTIE.
Pourquoi avoir choisi les données de l'Observatoire de l'Habitat ?
Le sujet est central, les données sont locales et le format de données est intéressant : il s'agit d'un fichier Excel destiné à une lecture humaine, bénéficiant d'une mise en style et d'une mise en page spécifiques, mais qui peut être mis en forme sans trop d'efforts pour être utilisé par une machine pour effectuer des traitements automatiques. Parmi ceux-ci, une fonction compare la liste des communes présentes dans le fichier avec la liste officielle afin de prévoir par exemple toute possibilité de fusion à venir. Cela fait partie d'un ensemble de vérifications à déléguer à la machine lors d'un processus d'acquisition de données. Je me sers de ces données comme exemple pour illustrer comment on peut créer une pipeline reproductible.
Vous vous appuyez sur le langage R, qu'apporte-t-il par rapport à Python ?
Je trouve R plus stable que Python, en matière de rétrocompatibilité. C'est à mon sens le langage le mieux adapté à la data science. Toutes les bibliothèques sont centralisées en un dépôt global, baptisé CRAN. Je dis souvent que «R est le meilleur langage pour la data science, Python est le deuxième meilleur langage pour n'importe quelle tâche».
Dans ce cadre, mon livre, Building reproducible analytical pipelines with R, accessible gratuitement, développe de manière détaillée comment réutiliser les idées des développeurs d'applications à destination des data scientists, des analystes et des chercheurs afin de les aider à écrire du code fiable et durable.
Mon espoir est de rendre cette méthode de travail routinière parmi les data scientists de l'État afin d'accroitre la collaboration, de réduire les temps de développement et d'augmenter la qualité du code des analyses.