2026
🤔 Qu'apportent les métiers de la #data à la statistique publique ❓️
C'est la question que nous posons avec Olivier Lefebvre dans un article publié hier dans le dernier numéro du Courrier des statistiques.
Data analysts, data scientists / ML engineers et data engineers : une triade où chacun apporte des connaissances spécifiques afin de couvrir le large spectre de compétences nécessaires à un projet de valorisation de données.
La statistique publique est confrontée à des enjeux très similaires à ceux du secteur privé, dans un environnement où besoins, outils et méthodes évoluent rapidement. On veut produire plus vite, avec plus de détails, à partir de sources de données de plus en plus diversifiées et issues d'acteurs multiples. 😵
L'essor du data scientist dans les années 2010 (couronné, sans doute un peu tôt du titre de "job le plus sexy du 21e siècle") a constitué un premier virage, faisant émerger un profil hybride, à l'interface entre informatique et statistique. Mais les data scientists risquent de se retrouver isolés sans l'appui de data engineers, qui apportent un savoir-faire spécifique sur l'orchestration de chaînes de production ou l'intégration de données dans des SI, et permettent aux data scientists de se concentrer sur leur coeur de métier (entraînement de modèles, exploration de données, visualisations...).
Tirer parti des compétences des métiers de la data est un défi. L'objectif reste toujours de produire de l'information de qualité, de manière transparente, sans sacrifier la qualité. Cela nécessite une acculturation progressive des acteurs de la statistique publique à l'ingénierie de données. Celle-ci est facilitée par la mise à disposition d'outils à l'état de l'art bien pensés (#onyxia ❤️), par l'évolution des cursus de formation des data scientists (avec des enseignements techniques en parallèle des enseignements académiques), et par l'acculturation progressive de tous les profils (statisticiens comme informaticiens) aux bonnes pratiques de développement et de gestion de projet.
👉️ L'article en ligne : https://lnkd.in/eEUVCzb8
2025
Datavisualisation interactive sur les salaires : des données mises à jour pour la fonction publique ! 📈
Depuis quelques années, l'Insee propose sur son site un outil interactif pour permettre à chacun de s'approprier des statistiques essentielles sur les salaires : par profession, par âge...
👉 Le portail de dataviz : https://lnkd.in/etSfk9rf 👉 Ces données peuvent être récupérées par API, par exemple via https://lnkd.in/eM-zgV4t
Une grande variété de données accessibles à tous pour en savoir plus sur l'état du marché du travail et la dynamique des salaires ces dernières années.
Il est même possible de jouer à regarder où se trouve son salaire (ou le salaire de votre rêve) dans la distribution de revenu ! 🕵
Les données sur la fonction publique commençaient à dater un peu: elles correspondent maintenant aux dernières données de référence publiées par l'Insee (2023).
Une manière de découvrir le sujet, de se rafraîchir la mémoire voire, qui sait, avoir envie d'aller plus loin en lisant les publications sur le sujet de l'Insee ou le très fourni rapport annuel de la DGAFP sur l'état de la fonction publique.
Une belle valorisation innovante de données permise par le travail de Mathilde Gerardin et de son équipe !
Reproductibilité dans la recherche et au service de la mise en production: où en sommes-nous ? où allons-nous ?
Cette semaine, c'était les journées de méthodologie statistique (#JMS), la grande conférence de la statistique publique française organisée par l'Insee depuis les années 90.
La méthodologie ce n'est pas que des équations dans des documents de travail c'est aussi des outils qui mettent en œuvre. La transparence scientifique et donc la confiance qu'on peut avoir en une analyse ou une statistique, dépend ainsi aussi de cette mise en œuvre.
Dans cette présentation préparée avec Romain Avouac, je reviens sur la crise de la #reproductibilité que connaissent à peu près tous les champs scientifiques empiriques depuis les années 2000.
Ses causes sont d'ailleurs assez similaires à celles du mur de la production qui rend compliqué de reproduire une expérimentation en l'état lors du passage en production:
👉️ Défaut de clarté et lisibilité des scripts, 👉️ Manque de rigueur dans l'organisation des projets, 👉️ Absence d'isolation des analyses par rapport à des éléments externes au projet...
Avec les outils adéquats et en adoptant une démarche rigoureuse au service de la transparence et de la fiabilité, on peut rendre beaucoup moins coûteuse la reproductibilité ! C'est un impératif autant scientifique qu'opérationnel dans un monde où l'analyse statistique sert à de nombreuses décisions.
💬 Yesterday, I shared feedback at the #ISI World Statistics Congress on how to improve a RAG system through evaluation.
🤖 Chatbots are increasingly being used for online information retrieval. To reduce hallucination, #RAG (retrieval augmented generation) systems are techniques that allow a #LLM to access relevant web pages before answering to a question.
Building yourself such project helps you realize how your knowledge base (e.g. your website) need to evolve to be easily ingested and used by LLM.
After years of focusing on #SEO (search engine optimization), we are now entering in an era of #GEO (generative engine optimization).
This is quite important for official statistics since we must ensure that reliable information is easy for LLMs to ingest and reproduce accurately to avoid fake news dissemination.
But to drive meaningful change, we need #evaluation !
Building a question-answer dataset allows us to define relevance and satisfaction metrics (👍👎), helping monitor over time the quality of our RAG prototype. And more broadly, it can help understand how our publications and statistics are represented in the responses of ChatGPT, Claude, and others.
As I mentioned yesterday, evaluation helps identify and prioritize the most impactful improvements, ultimately enhancing user experience not only for LLMs, but also for humans who, hopefully, will still come to our publications first! 🤞
C'est la rentrée des classes à l'ENSAE Paris pour le cours #Python pour la #DataScience ! 🎒
Cette semaine c'était le premier cours de Python pour la data science. Un cours que suivent environ 200 élèves par an à l'ENSAE (et bientôt à l'ENSAI aussi 🤫).
Un cours toujours aussi plaisant à donner, même après 5 ans! Plaisant aussi à préparer (même si avoir une vingtaine de chapitres 100% reproductibles en s'appuyant sur de l'open data, du scraping ou des API donne parfois des sueurs froides 🥵).
Même si cela ne paraît pas, le cours est en évolution continuelle car Python est le langage le plus dynamique de l'écosystème de la data. 🚀
Au-delà du langage, ce sont aussi les pratiques de la data science qui évoluent et mon cours s'adapte à cela. Des sujets importants il y a quelques années - par exemple paralléliser des traitements Pandas avec Dask ou Spark - sont devenus mineurs avec les évolutions technologiques - hello DuckDB - et m'ont permis de retirer un chapitre qui n'avait plus vraiment d'intérêt.
J'essaie de garder à l'esprit l'essentiel par rapport aux effets de mode (c'est ça être, déjà, un data scientist senior...). Le cours parle bien sûr d'IA et de LLM car la moitié du cours est consacré au #MachineLearning et au #NLP.
Mais je fais l'effort, avant d'en arriver aux techniques raffinées, de revenir aux fondements. Sans cela, on aura du mal à vraiment comprendre l'apport des nouvelles approches que des cours plus spécialisés permettront de présenter en détail.
Je suis toujours preneur de retours sur le cours, ici ou sur Github !
➡️ Site web: https://lnkd.in/ejXEDGVB
📈 Dette publique : un sujet d'actualité… mais aussi un jalon clé dans l'histoire de la datavisualisation
L’une des figures présentées dans le cours du Collège de France de Stanislas Dehaene sur la perception des graphiques résonne particulièrement avec l’actualité.
C’est une œuvre de William Playfair. On lui doit plusieurs visualisations devenues classiques, comme le camembert ou le diagramme en barres. Celle-ci, datant de 1786, représente la dette anglaise et illustre l’effet des guerres menées par la couronne sur ses finances.
Puisqu’on parle beaucoup de dette ces temps-ci, j’ai eu envie de reproduire cette figure avec les données françaises récentes (issues des comptes nationaux de l’Insee). Ce n’est pas une reproduction parfaitement fidèle, mais certains éléments visuels (parfois datés) ont été volontairement conservés.
Pour compléter, je propose aussi une version plus moderne, interactive, qui tire parti des possibilités des navigateur web et des recherches récentes sur la perception des graphiques (je recommande au passage la série de conférences du Collège de France sur ce sujet).
Je ne propose pas d’analyse sur la page : je laisse chacun libre de son interprétation.
🚲 Les prix des vélos ont-ils vraiment explosé ces dernières années ?
Ce week-end, lors d'une sortie avec des copains, on se faisait la réflexion que les vélos coûtaient de plus en plus cher.
Mais est-ce une impression… ou une réalité ?
J’ai voulu confronter ce ressenti aux données officielles de l’Insee, en développant un outil interactif de #visualisation 📊 :
🔧 Cet outil permet :
◆ de s'approprier les statistiques d’évolution des prix depuis 1990 ◆ de comparer la dynamique des prix des vélos avec celle des autres biens et services ◆ de jouer à estimer ce que coûterait aujourd'hui notre bon vieux biclou 💸
👉 Prenez le temps d’explorer, de manipuler les données, puis de lire les pistes d'interprétation proposées.
Je suis preneur de vos retours et idées d’amélioration !
#Parquet et DuckDB : un combo qui rend accro ! 🦆
💬 La semaine dernière, j’abordais aux #rencontresR francophones les promesses (en grande partie déjà tenues !) de cet écosystème et ses perspectives pour les utilisateurs et utilisatrices de #R.
Oui, encore un retour d’expérience de ma part sur ce sujet… Mais depuis que j’ai découvert ces outils, mon quotidien est devenu bien plus simple. Et j’aurais adoré les connaître - ou mieux les utiliser - bien plus tôt !
D’ailleurs, si la communauté data les avait eus plus tôt, on aurait peut-être évité une "lost decade" faite d'infrastructures complexes à utiliser et à maintenir (merci Thomas Vroylandt de m'avoir fait découvrir ce post, ref👇).
🎯 Objectif de ma présentation :
🔹 Rappeler les vertus du format Parquet et de son écosystème (utile même sans big data !). 🔹 Montrer la simplicité d’usage depuis #R (et #Python aussi !) en SQL direct ou via l’intégration d’Arrow et DuckDB dans le tidyverse (🔥).
J’en ai aussi profité pour évoquer quelques cas d’usage où DuckDB brille par sa simplicité :
🔹 Le traitement de données sur un cloud type #S3. 🔹 La création de dataviz réactives directement sur des sites statiques (sans passer par Shiny, Streamlit, etc.). 🔹 Le traitement de données géographiques, avec des manipulations géométriques complexes rendues étonnamment simples.
🤝 Je rejoins Éric Mauvière qui disait il y a deux ans que "DuckDB redonne une belle jeunesse au langage SQL".
❗️️Mais je pense que ça va plus loin : DuckDB peut aussi redonner une belle jeunesse à #R.
👉 Ce langage n’a jamais été pensé pour de la "grosse donnée", mais on peut aujourd’hui combiner la syntaxe fluide du #tidyverse avec la puissance de DuckDB.
Et c’est aussi vrai pour Python : Pandas n’est pas toujours rapide (ni élégant), là où une requête SQL fait le travail en un clin d'œil (et je ne suis pas le plus grand fan de SQL).
Il y a beaucoup de hype dans le monde de la data. Mais celle autour de DuckDB mérite vraiment qu’on s’y attarde.
Un gros merci à l'équipe d'orga de la conférence, comme toujours très sympa, notamment à Philippe Grosjean !
Biblio 🤓:
🔹DuckDB redonne une nouvelle jeunesse à SQL: https://lnkd.in/gkKY5nY9 🔹The Lost Decade of Small Data? https://lnkd.in/e59RxJWN 🔹La présentation en ligne (replay soon) : https://lnkd.in/eh4p5suQ 🔹Un atelier que j'ai animé il y a quelques semaines sur ces outils: https://lnkd.in/eXF9Un7k
What are the challenges in measuring the value of a #RAG (Retrieval Augmented Generation) project?
Last week at UNECE Modernisation of Official Statistics, I shared feedback on a POC: a conversational agent helping users explore public statistics. But why doing that?
Not for launch on an official site. As :probabl. highlights well (https://lnkd.in/gfyG3Q5b), there's a huge gap between a POC and a production-ready tool.
Instead, the goal is to better understand how information retrieval works in a generative AI context.
RAG reduces hallucinations by grounding LLM responses in curated documents. But many complex design decisions affect how relevant and trustworthy those answers really are:
🔹 How should the knowledge base be structured? 🔹 There are dozens of technical frameworks for RAG: which ones get you on the right track? 🔹 What prompts best guide model behavior?
How do we know if we are on the right path?
Evaluation is needed ! 👮 That’s common knowledge in statistics and ML fields that are based on a scientific approach. But in genAI field, methodological, technical and business goals are often blurred and not clearly evaluated.
My feedback on that :
🚫 Don't look for a model that would perform well on a dashboard based on 15 metrics. ✅ Instead, pick a few metrics aligned with your objectives. Mine are:
1. 🤖➡️📄 Relevant source retrieval : Using a Q&A list, test how often the retriever finds the right docs.
2. 😵💫 Avoid hallucination : How many links/stats are invented with vs. without context?
3. 👍️👎️ User satisfaction : Gather basic feedback (quantitative eval) + ask "what's wrong?" (qualitative).
Evaluation already helped us dodge some issues. For instance: even with large context windows, overly long documents cause the infamous “lost in the middle” effect.
Still tricky for us: how to prioritize documents ? (e.g. recent vs. outdated, national statistics vs. regional unless user explicitly asks for regional stats)
🔧 On the technical side, we moved from a bulky monolith to a modular stack:
🔹 VLLM (with GPU) for embedding/generation 🔹 Chroma or Qdrant as vector DBs 🔹 LangChain pipeline reduced to vital minimum 🔹 Streamlit frontend (not perfect but great for user feedback) 🔹 Centralized evaluation via MLflow (planning to migrate to Langfuse)
In conclusion, to cite ChatGPT: "In a RAG project, evaluation isn’t just a final step. It’s the compass that guides every technical and design decision. Without it, you're flying blind."
#Parquet et #DuckDB: un combo qui n'est pas éclaté au sol ! 🦆
🧑🏫 Hier j'animais un atelier sur ce format de données qui devient un standard, dans l'industrie et l'administration, pour la mise à disposition de données aux #statisticiens et #datascientists, #dataengineers (public cible historique de ce format) et de plus en plus aux devs amenés à construire des applications de données.
Il est vrai que ce format a des propriétés techniques idéales :
* 🪶Léger et rapide à l'import (grâce à l'orientation colonne, les optimisations type predicate pushdown...) * 👌Interopérable, ce qui permet de lire ces fichiers sans problème avec #R, #Python ou #Javascript (grâce à l'implémentation de DuckDB WASM décrite 👇️) * 🤝Données et métadonnées dans un même fichier: besoin de mettre un dictionnaire de variables pour indiquer que cette variable n'est pas numérique, c'est embarqué dans les métadonnées ! * 🧠Ecosystème opensource dynamique avec des extensions à des formes de données complexes (exemple: données géographiques avec #Geoparquet).
📈 Pas étonnant que des acteurs importants de la #data, comme HuggingFace, Overture Maps, l'Insee ou data.gouv.fr l'utilisent à foison. Certains, comme Jordan Tigani, pensent même que "big data is dead" (https://lnkd.in/eTUmS9Nv), tant le combo Parquet et DuckDB change les pratiques (un article que tout praticien de la data devrait lire!).
Mais Parquet ce n'est pas qu'un format de fichier ! C'est tout un écosystème pensé pour la simplicité d'usage sur des besoins complexes.
😌 #Arrow et #DuckDB proposent d'excellentes intégrations à Python et R (notamment avec le tidyverse !).
☁️ DuckDB permet, en une ligne de commande, de lire des données qu'elles soient dans un seul fichier ou éparpillées dans des centaines de parquet. Que le fichier se trouve en local, exposé sur internet ou sur un système #S3, cela ne change rien !
🕸️ DuckDB WASM permet aussi de faire ceci directement dans le navigateur ! Avec Observable ou #Quarto, on peut construire des applications de données similaires à Shiny ou Streamlit mais sans avoir besoin d'un serveur dédié lors de la mise en production.
Bref, choisir le format Parquet est un choix technique mais qui rend possible des utilisations plus simples de ses données: producteurs et utilisateurs de données volumineuses ou complexes y gagnent !
👉️ Les cas pratiques de l'atelier: https://lnkd.in/eXF9Un7k 👉️ Les slides (avec une application interactive): https://lnkd.in/eRBwqWVg 👉️ Le notebook Observable illustrant DuckDB WASM: https://lnkd.in/eapkR_Dm
Les API: pratiques mais pas la panacée !
Hier, pour le réseau des #datascientists de la statistique publique, je donnais un atelier autour de la consommation de données par le biais d'API.
📖 Cet atelier revenait d'abord sur les concepts principaux pour être à l'aise avec les API. Ceux-ci étaient illustrés avec des exemples reproductibles en #Python exploitant plusieurs API comme la base d'adresse nationale (#BAN) développée par Etalab - Direction interministérielle du numérique (DINUM) (et prochainement reprise par IGN (Institut national de l'information géographique et forestière) ou les API de l'Insee.
🐍 L'occasion de montrer que #Python est très bien fait pour ce type de besoin.
Cet atelier prenait aussi un peu de recul pour revenir sur les avantages et les limites des API. Les API ne sont pas le moyen le plus simple de récupérer des volumes importants de données brutes (pour cela, il vaut mieux privilégier des fichiers au format #Parquet).
Là où les API sont le plus précieuses, c'est pour :
📊 La récupération de petits volumes de données, typiquement pour des interfaces interactives 🤖 La récupération de données transformées complexes, typiquement issues d'inférence de modèles
Il est donc peu étonnant que les API soient rentrées dans la boite à outil data, puisqu'on demande aux datascientists de pouvoir vite récupérer des données issues de multiples sources ou de produire des dataviz interactives.
⚠️ Mais il ne faut pas essayer de les utiliser pour tout et n'importe quoi. Les API ne sont pas toujours stables, nécessitent souvent un volume de code important pour retravailler le JSON obligent à des acrobaties pour extraire un volume important de données.
Un produit de diffusion à consommer avec modération donc. 🥂
👓️ Le notebook reproductible présenté hier avec de nombreux exemples: https://lnkd.in/eKcfC-5j
Être #datascientist en 2025 c'est certes savoir faire du #Python mais aussi connaître le YAML !
🤯 YAML ? Quésaquo ?
📄 C'est un format de fichier déclaratif qui permet de déclarer des manifestes, i.e. de donner des instructions à un ordonnanceur (un serveur qui est capable de déclencher des opérations à la demande). En l'occurrence, on dit à l'ordonnanceur la chaine d'opérations qui doit être exécutée, les paramètres qui guident son comportement et les conditions dans lesquelles tout ceci va se passer.
Pourquoi faire cela ?
🚀 Il aura fallu quatre séances du cours de mise en production que Romain Avouac et moi donnons à l'ENSAE Paris pour présenter les solutions techniques permettant une #reproductibilité complète d'un projet informatique. Il faut maintenant dire à un serveur comment faire tourner notre chaine : c'est là qu'intervient ce format YAML !
Parmi les livrables que doivent maintenant produire fréquemment et rapidement les data scientists, on retrouve souvent des #API ou des sites interactifs type #dashboard.
Les data scientists doivent être capables de développer rapidement un prototype, mettre à disposition pour des démonstrations ou des tests et être conscients des sujets qui pourront se poser au moment de la mise en prod.
En anticipant dès la phase de développement les contraintes inhérentes à un environnement de prod, les data scientists proposent des projets plus pérennes et évolutifs ! 💪
La mise en place du projet est peut-être un peu plus lente (et encore, quand on a l'habitude, cela devient une seconde nature) mais le temps gagné, si le projet devient ambitieux, est immense.
Nos élèves découvrent la mise à disposition d'applications par le biais de Github Pages (site web statique) et, pour les #API, par le #SSPCloud 🐉 (infrastructure sans laquelle il serait compliqué à nos élèves de découvrir la mise en production sans passer par des cloud providers marchands).
Grâce à ça, nos élèves découvrent comment coordonner évolution de leur code et mise à disposition d'une version stable. De quoi dans le futur avoir des projets vitrine dont ils peuvent être fiers! 🤩
L'un des messages forts du cours est aussi qu'il faut être pragmatique: il faut choisir une valorisation qui offre un bon arbitrage entre flexibilité et simplicité à maintenir 👮. Si on peut s'éviter de maintenir une usine à gaz sans y perdre sur le produit final, autant le faire !
A la fin de cette séance, on a donc un projet en production et accessible à tous ! Le travail n'est pas fini ! Maintenant que le produit est exposé à des utilisateurs, si on veut qu'il reste pertinent, il faut le superviser. Dans le domaine du #machineLearning, cela veut confronter le modèle à de nouvelles données pour mesurer l'évolution de ses performances. C'est cela qui nous amène vers le #MLOps, objet de la dernière séance du semestre.
Liens utiles:
👉️ Le cours: https://lnkd.in/eh-g-mHs 👉️ Le SSPCloud: https://lnkd.in/e5fcWK6z
🫵 Pour mettre en production votre code, il doit fonctionner sur d'autres machines que la vôtre !
"Ça tournait chez moi !" 🤔
Vous avez sans doute déjà prononcé ou entendu cette phrase au moment où votre code produit une erreur chez quelqu'un alors qu'il fonctionnait parfaitement chez vous.
🧠 Un projet de code dépend de beaucoup d'inputs. Pour cette quatrième séance à l'ENSAE Paris du cours de mise en production créé par Romain Avouac et moi, nous attaquons le sujet critique de l'environnement logiciel dans lequel le code est exécuté.
🤓 C'est un moment charnière dans l'apprentissage de la mise en production. Il faut comprendre que comme ce n'est pas nous qui allons faire manuellement tourner le code à chaque fois que notre application ou service rencontre un public, il faut faire en sorte qu'il puisse tourner de A à Z sur un environnement informatique différent du nôtre.
Pour cela, nous continuons la démarche progressive d'acculturation par le biais de deux solutions:
🐍 Les environnements virtuels Python: il existe plusieurs implémentations (#venv, #conda, #uv...) dont le principe commun et de figer l'environnement Python qui a permis d'avoir un code fonctionnel et ainsi sécuriser les montées de version expérimentales ultérieures. C'est un peu comme si vous livriez votre installation Python sur une clé USB. 🐘 La conteneurisation (#Docker) : votre chaine Python ne dépend pas que de packages mais aussi d'éléments externes à Python, comme votre système d'exploitation. Et si, plutôt que de livrer une clé USB, on livrait tous les éléments de l'ordinateur permettant de faire tourner votre code ?
Grâce à #Docker:
🥑Vous créez la recette pour reproduire votre ordinateur: c'est le Dockerfile. 👩🍳 Ensuite, en cuisine, quelqu'un va préparer tous les ingrédients, les mettre de côté : cela devient une image. Les ingrédients sont posés à côté du feu (le plan de travail, c'est Dockerhub), en attente d'être commandé et servi. 🍲 Quelqu'un commande, le plat est chauffé et servi: votre application est sur la table.
💻 Les serveurs du monde entier tournent en #Linux: avec Docker vous avez une solution technique pour reproduire votre ordinateur sur ces serveurs. Bye bye les sources d'erreur liées à la différence entre environnement de développement et de production.
😴 C'est la transition parfaite avec l'automatisation : puisqu'on a livré notre ordinateur à un serveur, il peut faire tourner le code à notre place (pour tester ou construire notre application).
🧱 Si les #datascientists n'ont pas vocation à créer des infras qui dépendent de ces technologies, ils doivent être capables de les utiliser donc avoir une connaissance minimale de Docker. Sans ça, le risque est de prendre de face le mur de la production.
Tous les projets n'ont pas vocation à tourner en continu sur des serveurs mais il faut, si le projet devient ambitieux, que cela coûte peu: enseigner ce sujet technique aux aspirants datascientists est indispensable ! #missingSemester
Bonnes pratiques pour mettre en production des projets de #datascience: cela ne concerne pas que le code ! 🚀
Après une première séance consacrée à sensibiliser aux enjeux d'un code propre, le cours de mise en production que Romain Avouac et moi donnons à l'ENSAE Paris s'attaque aux autres fondements nécessaires à toute mise en production.
L'un des objectifs principaux de ce cours est de faire comprendre qu'une chaine de production de données peut être vue comme la combinaison de trois inputs, pour lesquels on va choisir des technologies adaptées:
👉️ Du #code: #Python comme langage principal, faisant l'interface entre d'autres briques plus spécialisées, #Git pour le contrôle de version. 👉️ De la #configuration: des paramètres qui jouent sur le résultat du code, l'environnement de reproductibilité, etc. Les extraire du code permet de mieux contrôler ce qui est confidentiel ou non, ce qui affecte les résultats ou pas, etc. 👉️ Des #données: c'est logiquement l'input de tout projet #data. Choisir formats et lieux de stockage adaptés est primordial pour l'efficacité et l'évolutivité de la chaîne. La règle d'or : pas de données dans #Git 👮!
🧠 Dans la partie magistrale, on se concentre sur les données pour parler de l'intérêt du système de stockage #cloud de type #S3, du format de données #Parquet (oui on adore Parquet à l'Insee!) et de l'écosystème associé, notamment Apache Arrow et DuckDB 🦆. La prochaine séance sera consacrée à la configuration de l'environnement de reproductibilité à travers les enjeux des environnements virtuels et de la conteneurisation.
🔧 Dans la partie pratique, l'objectif est de continuer à construire une chaîne à l'architecture modulaire. Cela facilite les choix techniques adaptés. En consacrant un temps important à ces bonnes pratiques, on essaie de montrer qu'en les adoptant dès le début, on gagne beaucoup de temps pour pouvoir réaliser des projets reproductibles ambitieux.
Grâce à ces fondements, on pourra passer dans les prochaines séances à la partie mise en production à proprement parler dans les prochaines séances: conteneurisation, automatisation, déploiement d'applications, monitoring d'un projet dans une optique #MLOps, etc.
Avec ces idées en tête, on fait des choix techniques et organisationnels pertinents pour construire des projets plus simples à maintenir dans le temps, plus évolutifs, plus reproductibles et qui se diffusent à plus grande échelle. C'est donc tout bénef ! 😉
🚀 Bonnes pratiques de code pour les #datascientists : une rigueur indispensable pour simplifier la mise en production.
Cette semaine, c'était la première séance du cours que Romain Avouac et moi proposons à l'ENSAE Paris. C'est un cours hélas rare dans les cursus de formation en statistique, où on se concentre souvent exclusivement sur la modélisation sans parler d'aspects opérationnels pourtant structurants sur les choix faits lorsqu'on valorise des données.
L'un des objectifs de ce cours est de montrer comment, par une approche pragmatique utilisant les outils et une organisation du travail à l'état de l'art, on peut éviter le mur de la production et expérimenter à plus grande échelle pour obtenir des projets plus ambitieux et un dialogue plus simple entre les parties prenantes des projets #data.
Ce cours permet d'aller très loin dans l'exigence de reproductibilité avec les outils #Python, #Docker, #MLFlow and co. Ce n'est d'ailleurs pas qu'une sensibilisation: les applications pratiques permises par l'infrastructure cloud qu'est le #SSPCloud ❤️ (lien 👇️) montrent aux élèves comment mettre ces principes en oeuvre.
Néanmoins, avant d'en arriver là, il faut adopter de bonnes pratiques de code (et bien sûr du versionnage de fichiers avec #Git 👮!). Il n'est donc pas surprenant qu'un cours pensé autour de la mise en production commence par... les bonnes pratiques !
C'est le fondement nécessaire à la construction de tout projet de données fiable, lisible et évolutif. Lorsqu'on y est acculturé, ces bonnes pratiques coûtent peu de temps mais apportent beaucoup de bénéfices. Il est donc important de les enseigner tôt dans le parcours professionnel. L'argument "les bonnes pratiques s'apprennent sur le tas" (et implicitement dans la souffrance) m'a toujours énervé 😡.
Parmi les messages clés de cette première séance:
📓 sortir des notebooks #jupyter dès que le code se stabilise ; 💬 suivre les conventions d'un langage (les #PEP en Python) et utiliser les outils automatiques que sont les linter et formatter tels que #pylint, #black ou #ruff pour les appliquer 👓️ adopter une structure de projet lisible et cohérente, des noms d'objets ou de fichiers bien pensés valent souvent mieux que de looooooongs commentaires.
Promis la suite du feuilleton continuera le voyage progressif dans le monde de la mise en production. Si vous êtes impatients, rdv sur:
👉️ Le site du cours (slides et applications plus ou moins finis, chapitres en cours de rédaction) : https://lnkd.in/gJjNAr9K 👉️ Le SSPCloud qui offre (gratuitement!) toutes les briques techniques #opensource à l'état de l'art pour se former à développer et déployer un projet data : https://lnkd.in/e5fcWK6z
Merci à l'ENSAE Paris (Maylis Coupet, Fabien Perez, Odile Rouhban) pour la confiance accordée pour ce cours original et à l'Insee pour la mise à disposition du bijou💍qu'est le SSPCloud sans lequel il serait compliqué d'enseigner ces pratiques à l'état de l'art.
🧠 Quelles sont les implications de l'exploitation de sources plus massives, plus diversifiées et produites par de nouveaux acteurs ?
La semaine dernière, Julien PRAMIL et moi donnions un cours à l'ENSAI sur les enjeux pour la statistique publique de l'acquisition et de la valorisation de nouvelles sources de données.
Illustré à partir des productions de la statistique publique, ces enjeux vont néanmoins au-delà de celle-ci: toutes les organisations confrontées à de nouvelles données rencontrent, d'une manière ou d'une autre, ces enjeux.
Ce cours est l'occasion de prendre un peu de recul sur les changements de fond auquel nous avons été confronté ces dernières années et qui justifient de s'intéresser à ce que peut apporter la #datascience à nos organisations.
👉️ Les slides: https://lnkd.in/e63QmvvB
🐍 Un chapitre sur la récupération de données avec les #API en #Python refait à neuf !
🤔 Je n'étais pas trop content de mon chapitre sur les API qui ne présentait pas assez d'éléments contextuels sur les differents types de requêtes et la manière dont #requests singe le comportement caché d'un navigateur.
🧠 La compréhension des API nécessite d'avoir en tête quelques notions minimales. On a ensuite tout ce qu'il faut pour mieux comprendre les documentations interactives (les #swagger ) qui représentent généralement le point de départ quand on découvre une API.
🧵 Avec la géolocalisation de la #BAN en fil rouge, ce chapitre montre maintenant mieux la démarche à adopter quand on découvre que des données sont récupérables par le biais d'une API.
🤓 J'y discute aussi des enjeux et limites des API : un travail parfois non négligeable pour retravailler une sortie d'API, des volumes de données parfois limités, un partage de code qui doit faire attention à ne pas rendre accessibles des informations privées comme des tokens...
👉 Pour en apprendre plus : https://lnkd.in/eSmHBrFc
👩🎓 Découvrir le profil des étudiants du supérieur ou aller plus loin dans la compréhension des stratégies d'orientation, c'est possible avec #suptracker 👇
Un beau travail de mise à disposition de données, de collaboration entre chercheurs et administration pour éclairer le débat public ! N'hésitez pas à aller voir cet article du Monde pour en apprendre plus sur l'enseignement supérieur !
Les stages LLM dans des équipes qualifiées (et sympa), avec une vraie infra et des données pertinentes sont rares, sans parler de l'utilité publique du sujet. Alors quand on voit un stage comme celui proposé par Milena Suarez Castillo, faut foncer 😉
2024
🗣️ En 2024, j'ai semble-t-il beaucoup discuté du format de données #Parquet, pas mal parlé de mes cours de #Python pour la #datascience et de mise en production à l'ENSAE Paris et parfois évoqué les enjeux autour des #LLM et des #IA génératives.
🤖💬 Pour le dernier cours du semestre de #python pour la #datascience à ENSAE Paris, comment les machines comprennent-elles le langage humain ?
📖 Pour mieux souligner comment nous en sommes arrivés à #chatgpt, #claude, etc. j'ai repris entièrement la partie #NLP de mon cours. Avec les mêmes exemples d'application (textes de Dumas, Mary Shelley, Edgar Allan Poe et Lovecraft), la partie NLP a maintenant une progression beaucoup plus logique.
🧹On commence par les enjeux liés au nettoyage des textes, à la réduction du bruit dans les corpus textuels et à la structuration des corpus textuels. Quel que soit le cas d'usage (question answering, analyse de sentiment, classification...), c'est une étape importante du travail sur données textuelles pour réduire la complexité du problème.
🎒On continue avec les premières analyses synthétiques sur le langage. Pour saisir le sens d'un texte, la manière naturelle de commencer est d'analyser les fréquences d'apparition des mots. En fonction des mots les plus fréquents, on pourra déduire l'objet d'un texte, le distinguer d'un autre... C'est le cœur de l'approche #bagofwords où on modélise le langage comme un sac dont on tire des mots de manière plus ou moins probable selon la nature du texte. Par exemple, dans un corpus de presse économique, on a plus de chance de tirer le mot PIB que dans un texte de Voltaire.
🔎Cette logique est au coeur des moteurs de recherche où on cherche les textes les plus similaires à la requête à partir de mots clés. La mesure de similarité la plus célèbre dans ce domaine est la métrique #tfidf qui permet de tenir compte de la rareté de certains termes dans le langage naturel: si votre phrase comporte le terme "différance" et que ce n'est pas une typo, ce texte est sans doute de Derrida ou lié à celui-ci.
❓️Les problèmes avec cette approche ?
* Elle ne tient pas compte du contexte d'apparition du mot car elle traite chaque mot indépendamment l'un de l'autre. Le terme "président" sera donc traité de la même manière dans les phrases "Camembert président" et "Président de la République". * Elle ne permet pas de tenir compte de la synonymie. Pour donner un exemple issu de mes travaux passés sur données alimentaires, on a presque envie de considérer comme identiques des termes comme "Justin Bridou" et "saucisson" ou bien "haribo" et "bonbons".
‼️La réponse ?
Les #embeddings ! On représente un texte comme un vecteur dont les dimensions s'interprètent comme des positions dans le langage. C'est la révolution du NLP moderne, à la source des modèles de langage utilisés dans nos outils quotidiens (google, deepl, chatGPT...). C'est l'objet du dernier chapitre du cours qui commence par le modèle #Word2Vec (2013) et ses limites pour en arriver à #GPT (2018) et #BERT (2019).
👉️ La partie NLP de mon cours: https://lnkd.in/ezepRjEb
▶️ Replay PyData Paris: building state-of-the-art datalabs for #datascientists with onyxia software 🐉.
💡To develop its cloud infrastructure, a few years ago Insee made the strategic choice of developing its own on-premise infrastructure rather than turning to external cloud providers. This was the starting point for the #onyxia project, which developed Insee's data science platforms using state-of-the-art open source technologies (#Python environments with VSCode or Jupyter, MLflow model warehouses, #S3 storage, etc.).
😍 This choice to build a platform that meets the needs of data scientists with state-of-the-art building blocks brings us daily comfort. In addition to providing access to substantial computing resources, this infrastructure smoothes the transition from experimentation to production, a frequent stumbling block in data-intensive organizations.
🦾 The #SSPcloud platform (link below) is a demonstration instance of the onyxia software. This platform is open to French administrations and universities as a sandbox for learning or innovating with #opendata. In particular, Onyxia came to my rescue when I needed to offer my ENSAE Paris students reproducible notebooks without them having to bother with installing Python or configuring a virtual environment.
☁️ The onyxia software is also installed internally by organizations wishing to provide their data scientists with the best tools. This is the case of Mercator Ocean International which offers a platform based on onyxia to enable oceanographers to benefit from computing resources for data analysis.
👉️ Here's the replay of the intervention for PyData Paris shared with Joseph Garrone, Frédéric Comte and Quentin Gaudel : https://lnkd.in/gq9Cpndw 👉️ The SSPCloud to discover a state-of-the-art infrastructure based on onyxia software : https://lnkd.in/gytMzGxT 👉️ Onyxia software source code on Github : https://lnkd.in/ghfRVSkS A blog post to find out more about the technical choices behind onyxia: https://lnkd.in/ekRSNGeT
💡Présentation sur les enjeux de l'adoption de modèles d'#apprentissage
🚜 La semaine dernière j'intervenais au Ministère de l'Agriculture, de la Souveraineté alimentaire et de la Forêt dans le cadre d'une journée #IA. Un grand merci à Antoine Lesauvage, Damien Babet et Juliette Fourcot pour l'invitation.
🤖 L'occasion d'abord de rappeler que ces sujets ont émergé du fait de la volonté de mettre en œuvre des processus opérationnels s'appuyant sur des données et de la modélisation statistique. La logique est donc différente d'une pure logique de recherche, bien qu'elle se nourrissent mutuellement.
👴L'occasion aussi de rappeler que l'IA existait avant #chatGPT et les #LLM (et même avant le triomphe du #machinelearning dans les années 2010). Le détour par l'histoire permet de retrouver plusieurs stratégies différentes pour permettre à des machines d'interagir avec l'environnement. Pour en arriver au machine learning et aux LLM, c'est-à-dire à des ordinateurs capables d'apprendre par eux-mêmes à partir d'un ensemble de données, il a fallu une série d'innovations méthodologiques et techniques.
L'occasion surtout d'évoquer les enjeux que représentent l'adoption de modèles d'#IA dans les processus de valorisation de données. 💻️ Enjeux d'abord techniques puisqu'il faut des infrastructures à l'état de l'art, avec des GPU à foison, pour pouvoir utiliser les modèles les plus gourmands. 🚀 Enjeux méthodologiques car ces modèles sont gourmands en données dans l'ensemble de leur cycle de vie: entraînement initial, suivi de la dégradation des performances dans le temps... 👩💻👨💻 Enjeux organisationnels surtout car l'utilisation de modèles nécessite la coordination entre de multiples acteurs (#datascientists, #dataengineers, devs, analystes métiers...) qui n'ont pas les mêmes savoirs techniques et ne parlent pas toujours le même langage.
Une présentation un peu #opinionated mais basée sur mon expérience au lab de #datascience de l'Insee (où ces enjeux se posent, comme dans toute l'administration publique) et d'enseignant de data science à l'ENSAE Paris où je rencontre de nombreux étudiants intéressés par ces sujets mais faisant parfois l'expérience, dans leurs stages, d'organisations non mûres sur ces sujets.
Les slides au format web: https://lnkd.in/eM366gZw
💡Structure de la population française, parc de logement, modes de transports... Et si vous découvriez le format de données #Parquet en jouant les statisticiens publics avec les données ô combien riches du recensement ou de la base permanente des équipements ?
🦆 La semaine dernière, j'animais à l'EHESS - École des hautes études en sciences sociales un tutoriel sur le format de données Parquet à partir de ces deux sources de données que l'Insee commence à diffuser selon ce format. L'occasion de montrer le confort que ce format apporte lorsqu'on utilise DuckDB par le biais de #R, #Python ou Observable.
🤝 Choisir un format de diffusion de données pourrait apparaître n'être qu'un choix technique. Néanmoins, c'est aussi une manière de guider les utilisateurs.trices de données en les aidant à prendre en main celles-ci.
🤯 Le format Parquet, grâce à ses propriétés techniques et à son écosystème riche, représente une opportunité idéale pour simplifier la réutilisation de données volumineuses comme les données détaillées du recensement. Plus de 20 millions de lignes et presque 100 variables lisibles en quelques secondes, cela fait rêver!
😍 Une fois familiarisé, on ne veut plus voir de #CSV !
📖 L'Insee produit des ressources reproductibles pour accompagner la diffusion du format: 👉️ Le tutoriel pour l'EHESS avec exemples en R, Python et Observable (il sera enrichi progressivement): https://lnkd.in/eBcRx3zV 👉️ Le guide d'utilisation publié l'an dernier pour accompagner la première diffusion des données du recensement au format Parquet: https://lnkd.in/eJN_d2vt
Merci à tous les participants de la journée de la #datascience dans la statistique publique pour la qualité des échanges !
Merci à Damien Babet, Bertrand Ballet, Elise Coudin, Aude Robert, Elisa ZAMBETTA, Jérôme Lê, Yannis Bouachera, Tom Seimandi, Mai Chi Do, Pascal Rivière et Pierre-Etienne DEVINEAU de s'être prêtés a cet exercice !
Le replay est en ligne 👇:
👉 Retours d'expérience de projets innovants dans l'administration (Ministère de l'agriculture, Inserm, Insee, Ministère du travail) 👉 Keynote sur les enjeux de l'adoption des outils et méthodes de la data science pour la stat publique 👉 Keynote sur les enjeux de l'entraînement et de la mise en production de LLM francophones illustrés à travers le projet #Albert
Et si les chapitres les plus importants de mon cours de #Python pour la #datascience étaient ceux consacrés à #Git ?
Ces dernières années, savoir utiliser #Git est devenu indispensable pour les #datascientists (⚠️ unpopular opinion: on devrait considérer comme un red flag 🚩une entreprise qui fait de la datascience mais n'utilise pas du tout Git). L'utilisation de Git améliore grandement la qualité des projets et permet des valorisations ambitieuses grâce à #Github #Pages et à l'intégration continue.
😠 Malheureusement, Git est trop peu enseigné dans les formations universitaires, sous le motif que les élèves devraient découvrir d'eux-mêmes par le biais de leurs projets ou de leurs stages.
Cependant, pour les étudiants, découvrir Git par soi-même est douloureux car:
➡️ Comprendre l'apport de Git (éviter les duplications de fichiers, simplifier la collaboration, etc.) implique d'avoir déjà essuyé les plâtres avant. ➡️ Git présuppose la connaissance d'un certain nombres de concepts informatiques (notamment relatifs au filesystem ou à l'utilisation de la ligne de commande). ➡️ Git fait appel à de nombreux concepts, tous ne sont pas intuitifs pour des débutants. ➡️ Beaucoup de ressources sur Git s'adressent à des publics déjà familiers et explorent des dimensions avancées que les débutants ne peuvent comprendre (et il vaut mieux qu'ils ne reproduisent pas les propositions chez eux, sans les comprendre, sous peine d'altérer leurs projets)
🤿 Ce matin, c'était la plongée dans le grand bain de Git pour les élèves de l'ENSAE Paris. Pour permettre aux étudiants de 2e année de l'école de découvrir #Git, j'y consacre plusieurs chapitres de mon cours de #Python. Ceux-ci permettent d'illustrer l'apport de Git par une série d'exercices simples, qui reproduisent la démarche quotidienne d'utilisation.
La pratique passe principalement par l'interface graphique de #VSCode, très bien faite. Grâce à celle-ci, les élèves de l'ENSAE Paris deviennent rapidement autonomes pour l'utilisation de Git, avant même leurs premières expériences professionnelles.
Ils pourront passer par la ligne de commande par la suite, quand ils seront plus à l'aise (⚠️ unpopular opinion #2: lancer les étudiants dans Git par le biais de la ligne de commande fait beaucoup de casse).
J'impose également que les projets de fin de semestre mettent en œuvre une collaboration par le biais de #Github ou #Gitlab. Comme pour une langue naturelle, la pratique régulière de Git est indispensable pour rester à l'aise. Cela donne aussi de la visibilité aux projets des élèves, qu'ils pourront valoriser pour obtenir de bons stages ensuite.
Ressources liées:
👉️ Découverte de Git par une pratique solitaire: https://lnkd.in/eQ73NMie 👉️ Pratique collaborative illustrée par un cadavre exquis : https://lnkd.in/eFKup5K9
💼🐍 Cette semaine, c'était la rentrée des classes de #Python pour la #datascience à l'ENSAE Paris.
5e année que le cours existe et les promos continuent de grossir. Cette année, 200 élèves font ce cours en même temps et s'appuient sur l'infrastructure de l'Insee le #SSPCloud.
Au-delà des changements esthétiques depuis la première rentrée 👇️, le contenu continue d'évoluer pour s'adapter à l'écosystème de la #data en perpétuel mouvement.
Le cours est de plus en plus éditorialisé pour mettre en avant les meilleurs approches (techniques et méthodologiques) pour les professionnels de la donnée basées sur ma connaissance du domaine et mon expérience à l'Insee où j'ai découvert les enjeux liés à de nombreux types de données.
Ce cours est le début du périple des étudiants de l'ENSAE Paris dans la #datascience. Et pour clore celui-ci, le cours de "Mise en production de projets datascience" que Romain Avouac et moi donnons vient à la fin de leur scolarité leur parler de la manière dont ils vont mettre en œuvre des projets informatiques à l'état de l'art !
👉️ Site web du cours: https://lnkd.in/eg4DAWvF 👉️ Dépôt Github du cours: https://lnkd.in/eB43ZWdp 👉️ Site web du cours de "Mise en production de projets de data science": https://lnkd.in/eDCXYgPh
🐮🐷🐑 Pour illustrer la simplicité d'usage de #cartiflette , pourquoi ne pas s'amuser à reproduire la carte de Jules Grandin "Plus de vaches ou d'habitants?"
🧀 Qu'est ce que #cartiflette ? C'est un package #Python (packages #R et #Javascript en cours de développement) pour fluidifier l'acquisition des contours géographiques officiels de l'IGN (Institut national de l'information géographique et forestière) associé à des métadonnées de référence de l'Insee. Les #datascientists et #statisticiens qui exploitent des données françaises et désirent les représenter sur une carte sont le public cible de ce projet.
❓️L'objectif de #cartiflette ? Réduire certains irritants de l'analyse de données géographiques en déchargeant les utilisateurs du travail d'acquisition complexe d'un fonds de carte adapté à leurs besoins pour qu'ils puissent se concentrer sur le travail de préparation de données et de cartographie. La construction de fonds de carte adaptés aux besoins des #datascientists fait en effet souvent appel à une expertise avancée en science des données et géomatique car les fonds standards ne correspondent jamais exactement aux besoins.
💡 Le tutoriel 👇️ illustre comment associer des données départementales à un #geojson où les DROM sont rapprochés de la France hexagonale et où on dispose d'un zoom sur l'agglomération parisienne (merci à Éric Mauvière pour son tutoriel #mapshaper ayant servi d'inspiration à la construction de ce fonds). Le travail de données est ici réalisé avec #Python, la finalisation de la carte réactive avec Observable et son excellente librairie Plot (🙏 Philippe Rivière)
🧠 Le projet #cartiflette est issu du programme interministériel 10% supporté par Etalab - Service du Premier ministre dans lequel des #datascientists de diverses administrations collaborent pour développer des solutions #opensource au service de tous. Ici, l'objectif est de rendre plus accessible la cartographie tout en ayant des fonds de carte officiels fiables, construits par des spécialistes de ces domaines, en lieu et place des nombreuses rustines utilisées dans l'administration pour proposer aux agents des fonds de carte prêts à l'emploi. N'hésitez pas à faire un tour sur le dépôt #Github du projet (lien 👇️) pour suivre l'activité du projet.
⛑️Le package est encore expérimental ! A l'heure actuelle, seul #AdminExpress est supporté mais est enrichi d'informations supplémentaires issues du code officiel géographique (COG). D'autres produits de l'IGN devraient prochainement arriver, notamment les IRIS !
👉️ Tutoriel: 🔗 https://lnkd.in/e5htPfa4 👉️ Github: 🔗https://lnkd.in/e7RXmUGw
🎙️ Si vous êtes intéressés par comment quand on vient de l'#économie on bascule vers la #datascience et on s'oriente vers l'Insee, par les sources de données qu'on y rencontre et le défi que représentent les évolutions continuelles du métier de #datascientist, ce premier épisode du podcast "ENSA&Vous" 👇️ répondra, je l'espère, à vos interrogations ! Et vous donnera envie de venir à l'Insee ou suivre de plus près ses productions !
🙏 Merci à Olivier Pinatel, Eve Samani et à l'ENSAE Paris de m'avoir invité à m'exprimer sur mon début de carrière ! La suite (l'épisode 2) sort lundi !
L'Insee au rdv de PyData Paris pour présenter la manière dont le logiciel #opensource Onyxia offre un environnement #cloud à l'état de l'art aux #datascientists qui veulent faire du #Python.
Pour ma part, j'évoquerai la manière dont l'instance publique du logiciel Onyxia, ouverte aux étudiants d'écoles partenaires et aux administrations françaises (le SSPCloud, https://lnkd.in/e5fcWK6z), facilite l'apprentissage de #Python, que ce soit :
👶 à un niveau introductif par le biais de #notebooks. 🦾 à un niveau plus avancé où on déploie une application et où on peut avoir besoin d'outils plus spécialisés qui interagissent avec #Python (par exemple MLflow ou encore des outils de #dataengineering comme Argo).
Les ressources éducatives ouvertes en #datascience produites par l'Insee, notamment dans le cadre de la formation des ingénieurs #datascientists de l'ENSAE Paris, peuvent être retrouvées ici : https://lnkd.in/gUC47wt9
RDV le 26 septembre à la Villette pour en savoir plus 👇️
Le tour de france vous donne envie de faire des cols ? 🚵♂️🥵 J'ai conçu un explorateur interactif pour découvrir les ascensions françaises !
Les fonctionnalités:
👉 Exploration sur la carte des cols français en fonction de leurs caractéristiques et affichage du profil du col sélectionné 👉 Cols disponibles dans un certain rayon autour d'une adresse ou d'un point d'intérêt 👉 D'autres fonctionnalités à venir, notamment un espace de statistiques !
L'ingénierie derrière est principalement basée sur la stack DuckDB et Observable outils qui permettent aux #dataScientisrs de construire de manière plus aisée des sites complexes sans la connaissance des subtilités du langage Javascript (mais cela reste des concepts utiles pour faire des sites vraiment fonctionnels!).
En résumé les choix techniques sont les suivants:
👉 Stockage des données au format #Parquet et en GeoJSON 👉 Adresses renseignées par l'utilisateur sont géolocalisées grâce à la #BAN et une librairie #opensource Javascript développée par Etalab - Service du Premier ministre dans le cadre d'un programme EIG 👉 Encapsulation de l'ensemble dans un site web statique Observable, utilisant principalement du DuckDB WASM et du #javascript 👉 Construction du site web en #Quarto (Christophe DERVIEUX) et déploiement via Github Pages (tout est opensource)
👉 L'explorateur : https://lnkd.in/evsNryEH 👉 Le dépôt Github : https://lnkd.in/eDCfRjy2
📖 Vous avez vu le comte de Monte Cristo et l'histoire vous a plu ? Pourquoi ne pas l'analyser avec #Python ?
Dans mon cours de Python pour la #datascience à ENSAE Paris, je propose comme corpus de démonstration des enjeux du traitement de données textuelles (#NLP) ce roman (que j'adore, mais j'ai pas encore vu le film 😉).
Au programme:
👉 Nettoyage de données textuelles et extraction d'information 👉 Analyse de la fréquence d'occurrences des mots et test de la loi de #Zipf 👉 Illustration des enjeux de la reconnaissance d'entités nommées (#NER), spoiler ça marche pas bien
Chapitre en question:
Au tour de mes chapitres d'introduction au #NLP (analyse textuelle) avec #Python d'être mis à jour.
L'objectif est de mieux souligner les enjeux de l'extraction d'information dans les corpus textuels dans le cadre d'une analyse fréquentiste (approche bag of words). C'est indispensable pour comprendre l'apport des #embeddings pour extraire de l'information et comparer des textes entre eux.
Les chapitres en question :
1️⃣ Nettoyer et structurer l’information dans les données textuelles. https://lnkd.in/grf5MWfj 2️⃣ L’analyse fréquentiste par l’approche bag-of-words : intérêt et limites. https://lnkd.in/gwpqGZTh
Principales évolutions:
👉 Plus d'exemples en Français à partir du Comte de Monte Cristo 📖 (mon roman préféré 😃). 👉 Utilisation de SpaCy plutôt que NLTK pour la majorité des exemples. SpaCy est une librairie plus complète et plus riche que NLTK, notamment dès qu'on sort des corpus anglo-saxons où SpaCy est très bien doté, a contrario de NLTK. De plus, SpaCy est pensée pour l'industrialisation des traitements grâce à la notion de pipeline. 👉 Plus d'éléments sur la métrique TF-IDF et meilleure explication de la notion de ngrams
Prochaines étapes:
👉 Continuer à modifier cette partie de mon cours pour mieux évoquer la problématique des embeddings (ouverture vers les #LLM) 👉 Traduction en Anglais dans le cadre d'un projet de documentation en #datascience pour Eurostat
Preneur de retours sur les évolutions des chapitres #Pandas et #GeoPandas de mon cours de #Python pour la #dataScience de ENSAE Paris !
Les chapitres en question :
1️⃣ Introduction à Pandas avec en illustration l'analyse des données d'inventaire carbone de l'Ademe : https://lnkd.in/exYayY7H 2️⃣ Approfondissements en rapprochant ces émissions locales avec d'autres informations communales produites par l'Insee: https://lnkd.in/ehXjxzPf 3️⃣ Découverte du traitement de données spatiales avec GeoPandas : https://lnkd.in/epKi2s8i
Principales évolutions :
👉 Restructuration des parties pour mieux intégrer les exercices fil rouge dans une démarche d'ensemble ; 👉 Plus d'éléments sur les fournisseurs de données publiques et d'exemples de valorisation #opendata issues de data.gouv.fr ; 👉 Évocation des limites de Pandas et des alternatives comme DuckDB.
Preneur de retour sur Github : https://lnkd.in/eB43ZWdp
👓️ La newsletter #18 du réseau des #datascientists de la statistique publique revient sur l'actualité chargée dans le domaine de l'IA et de la dataviz.
👉️ Lecture sur le blog du SSPHub : https://lnkd.in/gbzVcwA9
📖 Prochain événement organisé par le réseau: une présentation par Christophe DERVIEUX le 2 mai de #Quarto, l'outil #opensource indispensable pour la data science reproductible.
📈 Replay de l'excellente présentation d'Eric Mauvière sur les bonnes pratiques de visualisation de données. Une présentation essentielle pour les data scientists !
📈📊 Vous êtes #dataScientist, statisticien.ne, data-journaliste ou chercheur.euse en sciences sociales ?
Il est probable que vous n'ayez jamais été formé à la #dataVisualisation car il s'agit souvent d'un angle mort des formations universitaires dans le domaine. Il est pourtant probable que ces enjeux soient au cœur de votre métier, que ce soit lorsqu'il faut défricher de nouvelles données ou lorsque vous communiquez des résultats à une audience plus ou moins technique.
Heureusement Éric Mauvière propose d'excellentes ressources sur le sujet sur le blog d'icem7 ou lors de ses présentations. La dernière en date, pour le SSPHub (https://lnkd.in/e2iKZZzp) est une ressource essentielle pour toute personne amenée à communiquer des résultats statistiques !
👉 La présentation : https://lnkd.in/e2iKZZzp
👓️ La newsletter #17 du réseau des #datascientists de la statistique publique présente les enjeux marquants de l'année 2023 dans l'écosystème de la data science.
👉️ Lecture sur le blog du réseau: https://lnkd.in/ecWHdkKA
1️⃣ Retour sur les débats autour de la publication open source de #LLM, leurs besoins en GPU et les enjeux de propriétés intellectuelles liés aux procès en cours sur l'exploitation de ressources en ligne dans les corpus d'apprentissage des LLM (New York Times vs OpenAI notamment).
2️⃣ Présentation des deux principales avancées scientifiques de 2023 dans le domaine des LLM: le #RAG afin de limiter les hallucinations et améliorer la pertinence des réponses et la #DPO pour fluidifier l'intégration d'évaluations sur la qualité des prédictions d'un modèle. Pour pratiquer, des liens vers les tutos d'Hugging Face sont présents dans le post de blog.
3️⃣ Retour sur l'intérêt des bases de données vectorielles pour accélérer les traitements sur des données textuelles après #embedding.
4️⃣ Retour sur les principales publications de données au format #Parquet par l'Insee et le Service statistique ministériel de la sécurité intérieure (SSMSI) pour simplifier les réutilisations des données de la statistique publique par les data scientists, notamment par le biais de DuckDB.
5️⃣ Grâce au travail de Posit PBC, #R est maintenant accessible par le biais d'un navigateur (#Python l'était déjà depuis quelques temps). Ceci n'est pas qu'un gadget, c'est un premier jalon pour faire converger l'écosystème #R vers la construction de #dataviz interactives en se contentant d'un serveur web (comme c'est assez standard en #javascript). Démonstration sur le blog du réseau possible grâce à l'excellente extension de #quarto par James Balamuta, Ph.D.
👉️ Lecture de la newsletter sur le blog du réseau: https://lnkd.in/ecWHdkKA
📣📣 De nouvelles données de statistiques publiques, utiles au débat public, diffusées sous le format Parquet pour faciliter les réutilisations ! 👇
Bravo au SSMSI pour cette initiative !
J'ai même pu ouvrir le fichier avec mon portable grâce à l'explorateur du sspcloud ! 😎🔥 https://lnkd.in/ekAsGPpF (pour vraiment analyser le fichier, il faudrait utiliser #python sur le sspcloud et pour ça un clavier d'ordi serait quand même plus pratique 😏)
2023
La newsletter n°16 du réseau des #datascientist de la statistique publique vient de sortir ! 👓️
Après une rétrospective interactive du réseau construite avec Observable et #Quarto (notamment l'excellente librairie Plot de Philippe Rivière), place aux actualités de la data science :
➡️Le modèle "Mixtral" publié par Mistral AI ; ➡️L' "Artificial Intelligence Act" européen ; ➡️Retour sur la diffusion du recensement de la population au format #Parquet ; ➡️Un explorateur de données sur le SSPCloud basé sur DuckDB (https://lnkd.in/ekAsGPpF) pour permettre aux 3000 data scientists de l'Etat et du monde universitaire inscrits de visualiser en un clic des données au format Parquet ou CSV ; ➡️L'accessibilité améliorée des notebooks #Jupyter
👉️ Pour en savoir plus: https://lnkd.in/eThhSPeJ
La semaine dernière avait lieu le dernier cours de l'année du cours #Python pour la #datascience à ENSAE Paris. C'était la 4e année que je donnais ce cours et comme les pratiques des data scientists ont bien évolué sur cette période, le cours s'est constamment adapté !
👉️ Site web du cours : https://lnkd.in/eg4DAWvF 👉️ Dépôt Github: https://lnkd.in/eB43ZWdp
Principales améliorations cette année:
- systématisation des #pipelines avec scikit-learn ; - déployer un modèle de ML sous forme d'API ; - mise à jour des exemples basés sur #pandas - ...
Tous les #notebooks associés à ce cours introductif sont #opensource et les exemples s'appuient sur l'#opendata 🇫🇷 et 🇺🇸. Les retours sont bienvenus sur Github, ils permettent d'améliorer le contenu !
Perspectives pour 2024: une version anglaise ! 🚀
Pour aller plus loin, la suite logique est le cours "Mise en production de projets de data science" à ENSAE Paris qu'on donne avec Romain Avouac pour découvrir les enjeux modernes de la #datascience :
👉️ Site (évolution prévue début 2024): https://lnkd.in/eDCXYgPh 👉️ Github: https://lnkd.in/e_qW_xyS
Great post to understand why Parquet and DuckDB are so trending for data dissemination ! 🦆
Le projet cartiflette 🧀🥔🧅, c'est un projet qui vise à simplifier la vie des #datascientist en facilitant la récupération des fonds de carte #opendata produits par l'IGN et Insee par le biais de leurs langages préférés (#python, #rstats et Observable).
Quelques liens utiles:
➡️ Le dépôt principal du projet sur Github : https://lnkd.in/e7RXmUGw . ➡️ Une documentation interactive: sous forme de site web (https://lnkd.in/gVxmrfS5) ou de notebook Observable (https://lnkd.in/gvZFaeq5). Les exemples R arrivent bientôt !
Le projet est en train de connaître une grosse reingénierie en ce moment, certains exemples sont probablement cassés 😅 mais tout devrait être bientôt réparé !
Les changements dans la tuyauterie devraient rendre plus aisée la mise à disposition flexible d'autres sources dans le futur par le biais d'une vraie #API (BD Topo, IRIS, données carroyées...).
L'Insee diffuse pour la première fois les données détaillées du recensement au format Apache #parquet !
Pour accompagner les utilisateurs, voici un billet de blog du réseau des data scientists de la stat publique illustrant comment travailler avec DuckDB 🦆 en #rstats, #Python et Observable via #quarto 👇 https://lnkd.in/eJN_d2vt
Deux jeux de données sont mis à disposition dans ce format par l'Insee : fichiers individus et logements. Tous les exemples proposés dans ce guide sont reproductibles et open source, disponibles sur Github: https://lnkd.in/ejZXCYwZ
Pourquoi Parquet ?
Le format Parquet devrait faciliter l'utilisation de ces données volumineuses et très riches en information. Par rapport à un csv, le format parquet est beaucoup plus léger et permet surtout des traitements plus efficaces. Au lieu de lire tout un fichier volumineux pour n'utiliser qu'un ensemble restreint de variables, le format parquet permet de ne lire et effectuer ces traitements que sur ces colonnes. Cela réduit les besoins mémoire et accélère les traitements. Le format parquet devient également un standard dans le partage de données. Récemment, Hugging Face en a par exemple fait la pierre angulaire de son écosystème de partage et visualisation de données.
Pourquoi DuckDB ?
De nombreuses manières de traiter des données au format Parquet existent. DuckDB présente plusieurs avantages. Grâce à ses clients en plusieurs langages, le même code est exécutable de manière identique dans plusieurs langages. Notre guide illustre cela avec les langages Python, R et Observable Javascript (par le biais de Quarto Markdown). DuckDB s'appuie sur un langage de traitement qui a presque 50 ans d'expérience : SQL. En y ajoutant des fonctionnalités modernes, DuckDB rend le traitement de données volumineuses très pratique par le biais de SQL. Le guide montre ceci avec quelques exemples illustratifs qui permettent de mesurer l'intérêt d'avoir un format de stockage optimisé, un langage flexible et des données riches en information.
Venez découvrir le contenu que les équipes innovation de l'Insee et du service statistique du Ministère de l'Agriculture ont concocté pour cet événement servant de prétexte à découvrir la richesse de la #datascience de manière amusante: 👉https://lnkd.in/ehNQe7zf
Quant à moi, désolé Antoine Palazzolo (même si tes sujets sont top), de manière totalement biaisée puisque je l'ai conçu, je recommande de jeter un œil au sujet proposant de reproduire une appli Yuka 🥕 avec #Python 🐍 (les amateurs d'escalade reconnaîtront le code couleur permettant de gérer la difficulté du parcours 😉).
Newsletter #13 du réseau des #datascientist de la statistique publique:
Au programme: derniers débats autour de #chatgpt, dernières IA #opensource construites à partir de LLaMa et Alpaca, publication algorithme de Twitter, partenariat #docker et Hugging Face...
Newsletter #12 du réseau des #datascientist de la statistique publique:
Au programme:
- Actualités: les robes des oscars qui suivent la charte graphique de l'Insee, discussions autour de #chatgpt et GPT-4, faillite de la Silicon Valley Bank, dernier panorama de l'écosystème de la #datascience par Matt Turck, le langage R directement dans le navigateur avec WebR sans installation
- Nos événements : présentation des initiatives de documentations collaboratives francophones #Python et #RStats, #ocrisation avec Christopher Kermorvant, présentation des bonnes pratiques #Python dans le cadre du programme 10% d'Etalab - service du Premier ministre
- Derniers posts: principales fonctionnalités de la librairie Python Polars
Connaissez vous le projet Onyxia (https://www.onyxia.sh/) ? 🐉
Les datalab sont devenus incontournables pour offrir aux équipes #datascience un environnement #python ou #rstats intégré à des technologies cloud ultra-performantes comme Spark ou ElasticSearch.
L'Insee a construit un super datalab ouvert à tous les agents de l'administration pour des travaux sur #opendata (https://lnkd.in/e5fcWK6z). Avec Romain Avouac, nous utilisons cette plateforme depuis 2 ans pour former les data scientists de l'ENSAE Paris.
Pensée autour de la conteneurisation et d'une orchestration par #kubernetes, cette plateforme offre flexibilité et scalabilité à la fois aux data scientists et aux équipes qui gèrent la plateforme.
Le projet Onyxia (https://www.onyxia.sh/) est une mise à disposition en open source du logiciel derrière la plateforme qui permet à d'autres équipes de reconstruire un datalab vraiment pensé pour les data scientists. En plus d'offrir une belle interface, le logiciel Onyxia propose un riche catalogue de logiciels incontournables dans le milieu de la datascience, configurés pour fonctionner de manière optimale avec des technologies #cloud (cloud interne ou externe).
L'Insee fédère une large communauté autour de ce projet à la pointe, organisée autour du dépôt Github (https://lnkd.in/eDab-F4P). Ce projet a bénéficié du soutien du programme EIG de la Direction interministérielle du numérique (DINUM) (Joseph Garrone Marc Hufschmitt pengfei liu) et continue à se développer dans le cadre du TOSIT (The Open Source I Trust). Récemment, ce sont les équipes du projet Nubo (Quentin CHICHERY et Paul Moysan 孟德) qui ont rejoint la communauté avec l'objectif de mettre à disposition onyxia sur ce cloud étatique par le biais de Nubonyxia (https://lnkd.in/eZ_w5Aki).
Pour bénéficier de plus de détails sur ce projet, un post de blog du réseau des data scientists que j'anime à l'Insee 👇 https://lnkd.in/ekRSNGeT
Et une vidéo de présentation:
La deuxième partie (rétrospective personnalisée du réseau des #datascientist ) est maintenant en ligne:
L'occasion de découvrir #javascript, un apprentissage grandement facilité sur Observable grâce à Plot.js, D3.js et DuckDB.
Les #dataviz réactives sont également consultables sur la plateforme observable (https://lnkd.in/gJiyMHVV).
Rétrospective de l'année 2022 dans le monde de la #datascience pour le réseau que j'anime à l'Insee:
L'occasion d'un retour sur les IA génératrices de contenu avec Dall-E 2, Stable Diffusion et ChatGPT, d'évoquer la popularité de la plateforme https://huggingface.co/ et de l'écosystème PyTorch, de présenter les publications reproductibles Quarto et de parler des dataviz sur https://observablehq.com/
2022
Newsletter #11 du réseau #datascientist de la statistique publique:
Au programme: encore et toujours #chatGPT, Apache Arrow de plus en plus central dans l'écosystème #Python avec la sortie de la V2.0 de la librairie Pandas, la librairie Polars (https://www.pola.rs/) qui continue sa montée en puissance sur #Python, une API pour utiliser depuis Observable les modèles d'apprentissage disponibles sur Hugging Face, le projet Onyxia (https://www.onyxia.sh/)...