PyData Paris 2025
Site officiel (nouvel onglet) ↗Programme (nouvel onglet) ↗Chaîne YouTube (nouvel onglet) ↗Synthèse de septembre 2025 →
Ancien nom : PyData Paris (QuantStack et NumFOCUS), dernière édition sous ce nom avant Compute! Paris 2026. Lieu : Cité des Sciences, 30 avenue Corentin Cariou, Paris 19e. Source : pydata.org/paris2025.
PyData Paris 2025 a montré un écosystème scientifique Python qui mise sur la performance et l'interopérabilité (array API, free-threading, Arrow, Polars) et sur la santé de ses communautés open source, avec une IA générative abordée surtout sous l'angle de la fiabilité en production et de ses effets de bord.
18 sessions résumées · 18 vidéos · mise à jour le lundi 5 octobre 2026 · synthèse à compléter
Sources lues et limites de cette synthèse
Corpus : Programme officiel pretalx (48 sessions) et pages pydata.org/paris2025 ; 14 transcripts YouTube intégrés (3 keynotes, le panel open source business et 10 talks) sur les 48 vidéos de la playlist officielle publiées entre novembre et décembre 2025 ; un billet de participant (Markus Löning, 2 octobre 2025), les slides de Romain Clement, deux posts Mastodon (Anita Graser, Tweag) et les résumés des interviews backstage publiés par PyData Paris (février et mars 2026).
Limites : Synthèse surtout fondée sur ce qui a été dit sur scène (transcripts automatiques, noms parfois déformés) plutôt que sur des retours d'audience : un seul compte-rendu de participant a été trouvé et aucun post LinkedIn. Les 30 autres talks ont une vidéo mais n'ont pas été transcrits ; les lightning talks et les sprints du 2 octobre ne sont pas couverts.
Synthèse globale
1. Une édition « socle » : performance et interopérabilité avant tout
Le programme (3 keynotes, 45 talks sur trois salles, deux sessions de lightning talks) est dominé par l'infrastructure de l'écosystème plutôt que par les applications. La keynote de clôture du jour 1 (Ralf Gommers) en donne la grille de lecture : quand une bibliothèque est mûre, il ne reste guère de grandes fonctionnalités à ajouter, on gagne sur l'utilisabilité et la performance. Trois chantiers se répondent d'un talk à l'autre : l'array API standard (Colley, Gommers), le free-threading de Python 3.14 (Gommers, et en toile de fond le talk CRDT de David Brochart), et l'écosystème Apache Arrow (Frim, talks Parquet et Sparrow, Polars chez Fabbiani). Markus Löning, seul participant dont on a lu le compte-rendu, retient précisément ces sujets : array API, free-threading, CRDT, transport optimal, Quarto.
2. L'open source comme communauté à soigner
Les deux keynotes « communauté » et le panel business dessinent un même constat : un projet tient par ses gens. Alenka Frim plaide pour des projets où l'on peut apprendre sans peur, où la documentation est reconnue comme un travail qualifié ; Anita Graser insiste sur la maintenance ingrate (migration Qt5 vers Qt6 de QGIS) et sur les rencontres en personne, qui rendent ensuite la communication asynchrone possible. Gommers généralise : chaque grand chantier a demandé un individu obstiné, une large communauté et du financement, aucun ne se faisant « le vendredi soir ». La journée de sprints du 2 octobre (scikit-learn, skrub, skore, QGIS et JupyterGIS, JupyterLite et Pyodide, array-api-extra, Streamlit) et l'Arrow Summit organisé le même jour prolongent cette logique.
3. Financer l'open source : deux modèles et une question de souveraineté
Le panel Open-source Business oppose :probabl., entreprise financée (dont par l'État français) avec une équipe open source et une équipe produit à deux vitesses, et QuantStack, qui a grandi sans levée de fonds grâce aux contrats clients. Sylvain Corlay pointe la limite du financement par les clients : ils paient leurs besoins, rarement ceux de la communauté, l'accessibilité de Jupyter en étant l'exemple. Yann Lechelle élargit à une politique industrielle de l'ouverture et à la souveraineté numérique européenne. Les interviews backstage publiées ensuite (Hopsworks présenté comme une réponse européenne en matière d'IA souveraine, CFM sur l'usage industriel de scikit-learn) prolongent ce thème, avec un biais évident : ce sont des résumés rédigés par l'organisation.
4. L'IA générative, vue sous l'angle de la fiabilité et de ses effets de bord
L'IA générative est présente, mais rarement célébrée. Emanuele Fabbiani ouvre son talk Polars en s'excusant ironiquement de ne pas parler de GenAI, rappelant que les données qui comptent dans l'industrie restent tabulaires. Les talks qui l'abordent le font de façon défensive : fiabiliser l'extraction de documents (El Mawass et Erdelyi : sortie structurée, retries ciblés, validation humaine), comprendre l'effondrement des modèles nourris de leurs propres sorties (Zuccoli), surveiller la qualité des jeux de code pour l'entraînement (CodeCommons, non transcrit). Côté mainteneurs, deux signaux convergent : les issues causées par des LLM qui lisent la mauvaise version de la doc (Graser) et les contributions générées par des agents qui alourdissent la charge (évoquées pendant le panel).
5. Du notebook à la production, sans surdimensionner
Plusieurs talks défendent des outils légers et des pratiques d'ingénierie appliquées à la data science : TDD et method chaining avec pelage (Tiran-Cappello), lockfiles standardisés par la PEP 751 (Albers), conformité pensée comme réduction de risques avec SBOM et scanners (Korn), skrub pour des pipelines tabulaires sans fuite de données (Cappuzzo), modèles exécutés dans le navigateur avec ONNX et WebAssembly (Clement), Polars plutôt que Spark. Le cas de l'Insee (torchFastText) illustre la contrainte réelle de beaucoup d'organisations publiques : inférence sur CPU en moins de 200 ms, ce qui exclut les gros modèles et pousse vers des architectures légères maîtrisées.
6. Tensions et points de débat
- Narwhals contre protocoles d'échange : une question en salle conteste l'ajout d'une bibliothèque de plus à maintenir ; Alenka Frim répond que les deux approches coexistent et que l'usage tranchera.
- Free-threading : le gain est réel, mais Gommers reconnaît qu'il va faire apparaître des bugs de concurrence chez des mainteneurs qui n'ont ni le temps ni l'expertise pour les traiter.
- Financement : tension assumée entre ce que paient les clients et ce dont la communauté a besoin (Corlay), et entre vitesse produit et temps long de l'open source (Lechelle).
- Évaluation des LLM : un benchmark automatique peut afficher 0 % là où l'expert accepte tout ; la validation manuelle reste l'étalon, mais elle coûte cher (El Mawass).
- Seule critique de participant lue : le talk de Grisel est jugé utile comme introduction, mais l'interface scikit-learn pour les intervalles de prédiction lui paraît incomplète (Löning).
7. Limites du corpus
Cette synthèse repose presque entièrement sur les transcripts de 14 vidéos et sur le programme. Les retours d'audience se limitent à un billet de blog et à deux posts Mastodon (dont un de speaker et un de sponsor) ; aucun post LinkedIn n'a été lu. La perception de la salle, l'ambiance, la fréquentation et les talks les plus appréciés restent donc inconnus, et les 30 autres vidéos de la playlist n'ont pas été exploitées.
Actions concrètes citées
- Tester son code scientifique avec l'array API standard : un flag expérimental suffit dans SciPy et scikit-learn pour passer sur PyTorch, CuPy ou JAX, avec des gains jusqu'à 1 000x sur GPU (Gommers, Colley).
- Essayer Python 3.14 free-threaded sur ses propres projets : version jugée stable et utile, mais tester en parallèle reste indispensable car les bugs de threads déjà présents vont sortir (Gommers).
- Écrire ses requêtes Polars en mode lazy (scan, puis collect) pour profiter des push-downs et de l'optimiseur, et préférer Parquet au CSV (Fabbiani).
- Committer un lockfile et regarder le format standard pylock.toml (PEP 751), exportable depuis uv, pip ou PDM (Albers).
- Générer un SBOM avec un outil indépendant du gestionnaire de paquets (Syft, Trivy) puis trier les vulnérabilités selon son propre contexte de risque (Korn).
- Pour l'extraction par LLM : sortie structurée validée (Pydantic, Instructor), champ is_claim et raisonnement explicites, retries ciblés (Tenacity) et validation manuelle par des experts (El Mawass et Erdelyi).
- Produire des intervalles de prédiction (pinball loss, régression quantile) et les évaluer avec la couverture et la largeur moyenne, pas seulement le score moyen (Grisel).
- Curer et garder des données réelles dans le jeu d'entraînement des modèles génératifs : l'accumulation borne l'erreur, la substitution par du synthétique mène à l'effondrement (Zuccoli).
- Côté contributeurs : traiter la documentation comme un vrai travail qualifié et rendre les projets sûrs pour apprendre (Frim).
Session par session
Mardi 30 septembre
Keynote▶ vidéo + transcript
You Don't Have to Be an Expert: Stories from the Open Source Frontlines
Alenka Frim — Apache Arrow
- Fil rouge : la petite fille de 10 ans qui chante au karaoké à la télévision slovène sans peur d'être mauvaise. L'open source peut être cet espace sûr pour apprendre, face à l'imposture, au burn-out et à la solitude cités dans un sondage LinkedIn de la speaker.
- S'appuie sur la psychologue Cat Hicks : « it's not changing people, it's changing processes » ; les gens cherchent des indices pour savoir s'ils sont dans un lieu où apprendre est permis.
- Trois compétences que l'open source fait grandir : la curiosité (relire plusieurs fois une définition dense comme celle d'Arrow, à la manière des aphorismes des yoga sutras), le jeu (sprints Arrow à Prague pour intégrer les stubs de typage dans PyArrow), le courage (porter une idée jusqu'à l'adoption).
- Exemples de courage : le travail du Consortium for Python Data API Standards animé par Ralf Gommers et Quansight, la bibliothèque Narwhals de Marco Gorelli, l'Arrow PyCapsule Interface qui permet à Polars et DataFusion de se parler sans passer par PyArrow.
- Message aux mainteneurs : ne pas mépriser le travail de documentation, qui demande une vraie compétence ; structurer les pages comme définition, traduction courte puis contexte et exemples.
- En Q&R : pour débuter, passer par la mailing list et les good first issues ; annonce de l'Arrow Summit du jeudi (10 ans du projet) dans le même lieu.
Table ronde▶ vidéo + transcript
Open-source Business
Sylvain Corlay — QuantStack, Yann Lechelle — :probabl., Alexander CS Hendorf (modérateur)
Retours : résumé de l'interview backstage de Yann Lechelle (PyData Paris, Mastodon)
- Panel ouvert sur la série A de Polars annoncée la même semaine : l'open source est devenu un modèle d'affaires de fait.
- Yann Lechelle (:probabl.) ne vient pas de l'open source : il y voit un outil de rééquilibrage face aux big tech, pas de l'altruisme. scikit-learn est un actif « patrimonial » : la marque appartient à Inria, le code à tout le monde.
- Deux modèles opposés : :probabl. est une entreprise financée (dont par l'État français) avec deux équipes à deux vitesses, une dizaine de personnes sur le code open source et une dizaine sur un produit commercial inspiré de Red Hat ; QuantStack (plus de 30 personnes) a grandi sans levée, par contrats clients sur Jupyter et Apache Arrow.
- Tensions décrites par Sylvain Corlay : les clients financent leurs besoins, pas ceux de la communauté (l'accessibilité de Jupyter est presque impossible à faire financer) ; pressions sur les cycles de release ; harcèlement en ligne des salariés qui travaillent en public, dont l'employeur reste responsable.
- Évocation des contributions générées par des agents IA qui alourdissent la charge des mainteneurs (post LinkedIn d'Adrin Jalali cité par le modérateur).
- Vision à cinq ans : « plus de science, moins de dogme », une notion d'ouverture élargie (open science, data, source, weights, standards, hardware) comme politique industrielle européenne et la souveraineté numérique au cœur du sujet (Lechelle) ; financer les briques utiles mais ingrates, et une conférence sans « superstars » (Corlay).
Conférence▶ vidéo
From Jupyter Notebook to Publish-Ready Report: Effortless Sharing with Quarto
Christophe Dervieux
Retours : Markus Löning (blog)
- D'après le programme : transformer des notebooks Jupyter en pages web ou PDF prêts pour les parties prenantes avec
quarto publish, styles d'organisation viabrand.yml, fonctions de recherche reproductible. - Markus Löning le retient dans son billet comme un outil pour des rapports et présentations prêts à publier.
- Contenu détaillé non vérifié : vidéo disponible mais non transcrite.
Conférence▶ vidéo + transcript
The new lockfile format introduced in PEP 751
Nico Albers
- Public visé : analystes et data scientists qui utilisent pip, Poetry, PDM, uv ou conda sans connaître la PEP 751.
- Démonstration du chemin classique :
pip installpuis un downgrade manuel qui casse la compatibilité, puis requirements.txt figé, puis pip-tools, puis uv et son lockfile avec hashes, tailles et dates d'upload des wheels. - Sécurité : uv ne cherche pas un paquet dans un second index s'il le trouve dans le premier, ce qui limite les attaques par confusion de dépendances (anecdote d'un honeypot posé par l'équipe sécurité de son entreprise).
- La PEP 751 définit
pylock.toml: format lisible, généré par machine, installable sans résolution de dépendances à l'installation ; pip, uv et PDM savent l'exporter, d'autres outils en discutent. - Histoire : la PEP 665 rejetée, puis la 751 acceptée après de longues discussions publiques que le speaker recommande de lire (débat sur le champ taille contre les attaques par déni de service).
- En Q&R : toujours committer le lockfile, et l'actualiser via un bot (Renovate) sur les projets professionnels.
Conférence▶ vidéo + transcript
A Hitchhiker's Guide to the Array API Standard Ecosystem
Lucas Colley — SciPy
Retours : Markus Löning (blog), résumé de l'interview backstage de Lucas Colley (PyData Paris, Mastodon)
- Objectif : que les bibliothèques consommatrices (SciPy, scikit-learn) fonctionnent avec n'importe quelle bibliothèque de tableaux (NumPy, CuPy, PyTorch, JAX, Dask) sans dupliquer le code.
- Tour de l'écosystème data-apis : la spécification, array-api-tests pour la conformité, array-api-compat (wrappers et
array_namespace, le fameuxxp), array-api-strict pour détecter l'usage de comportements non standard, array-api-extra (fonctions utiles, outils pour backends lazy commexpx.at), array-api-typing en préparation. - Activation dans SciPy et scikit-learn par une variable d'environnement expérimentale ; CI avec GPU dans SciPy (gérée avec Pixi), tables de couverture par fonction, plus de 3 800 tests côté scikit-learn.
- Limite assumée : le standard vit au niveau Python, alors que SciPy appelle beaucoup de code C, C++ ou Cython ; d'où délégation, futur dispatching par backends, ou double implémentation.
- Markus Löning le cite parmi ses découvertes ; l'interview backstage le présente comme un standard qui unifie NumPy, PyTorch, JAX et Dask.
- Sprint array-api-extra annoncé pour le jeudi.
Conférence▶ vidéo + transcript
Navigating the security compliance maze of an ML service
Uwe L. Korn
- Retour d'un CTO venu de la data engineering, passé par une certification ISO 27001 et qui prépare le Cyber Resilience Act ; tour rapide de DORA, NIS 2 et de l'AI Act.
- Thèse : la conformité, c'est réduire des risques. Commencer par une matrice probabilité et impact, et refuser les mesures qui ne répondent à aucun risque identifié (exemple : retirer les droits admin des laptops n'est exigé par aucune réglementation).
- Chaîne d'approvisionnement : regarder aussi les dépendances de développement, et les « dépendances fantômes » que le gestionnaire de paquets ne liste pas.
- Démo : un environnement simple (JupyterLab, Polars, scikit-learn, LightGBM) affiche 159 dépendances avec Pixi mais 2 382 paquets une fois scanné avec Syft, et 19 vulnérabilités dès l'installation ; la plupart viennent du code Node.js de JupyterLab, sans risque dans ce contexte.
- Outils cités : SBOM avec Syft ou Trivy, lockfiles, scanners de CVE, OpenSSF Scorecard (un score de 7 ou plus est un bon signe), model cards, revue de code documentée, linters, pentest pour les services exposés.
- Conseil : se conformer au cas général plutôt qu'à une réglementation précise, estimé à environ 30 % de travail en plus mais réutilisable pour les suivantes.
Conférence▶ vidéo + transcript
Advanced Polars: Lazy Queries and Streaming Mode
Emanuele Fabbiani — xtream
- Ouverture en forme de pique : « this talk will not be about generative AI » ; les données qui font tourner l'économie (finance, énergie, télémétrie satellite) sont tabulaires et la valeur vient surtout de la transformation des données.
- Mode eager : rien de neuf par rapport à pandas, sauf des optimisations bas niveau gratuites (buffers Arrow et bits de validité vectorisables, group by parallèle qui répartit les clés par hash entre threads).
- Mode lazy :
scan_*puiscollect; Polars est un moteur de requêtes avec une interface de dataframe, qui applique des optimisations connues des bases relationnelles (push-down des filtres et projections, simplification d'expressions, mutualisation de sous-requêtes). Préférer Parquet au CSV pour lire seulement les métadonnées et les blocs utiles. - Mode streaming : traitement par morceaux pour les données plus grosses que la RAM, avec
engine="streaming"ousink_*; attention, le repli silencieux sur le moteur en mémoire (pour un tri par exemple) n'émet aucun avertissement. - La taille des morceaux suit une heuristique (moins de lignes si plus de threads ou de colonnes) qu'on peut régler à la main ; le moteur streaming est en cours de réécriture.
- En Q&R : Polars n'est pas fait pour du vrai streaming de flux continus façon Spark Streaming.
Conférence▶ vidéo
Optimal Transport in Python: A Practical Introduction with POT
Rémi Flamary
Retours : Markus Löning (blog)
- D'après le programme : introduction au transport optimal et à ses usages en machine learning, exemples avec la bibliothèque POT (distances de Wasserstein, variantes du problème, cas réels) et fonctions avancées.
- Markus Löning le note comme une découverte : la théorie du transport optimal et sa bibliothèque Python.
- Contenu détaillé non vérifié : vidéo disponible mais non transcrite.
Keynote▶ vidéo + transcript
Big ideas shaping scientific Python: the quest for performance and usability
Ralf Gommers — Quansight Labs
Retours : Markus Löning (blog, sur le free-threading)
- Trois chantiers d'écosystème racontés comme un mélange d'individus obstinés, de communauté et de financement.
- NumPy 2.0 : envisagé dès 2011, enterré près de dix ans par peur de casser l'ABI, relancé par Sebastian Berg, sorti en juin 2024 avec un suivi d'une centaine de paquets refermé un an et demi plus tard (un seul retardataire). Gain principal : l'utilisabilité (API publique et privée clarifiées, array API).
- Support des types de tableaux (array API) dans SciPy et scikit-learn : environ 2x sur CPU et près de 30x sur GPU avec PyTorch dans scikit-learn ; une fonction SciPy de traitement d'image passe de 22 ms à 275 µs avec JAX sur GPU. Probable SciPy 2.0 pour sortir de l'expérimental.
- Free-threaded Python : un « one-man show » de Sam Gross pendant deux ans et demi, puis financé surtout par Meta (plus d'un ordre de grandeur au-dessus des autres). Benchmarks présentés : mise à l'échelle presque linéaire, asyncio 6x, inférence PyTorch avec une latence d'environ 200 ms contre 1 400 ms avec le GIL.
- Les paquets compatibles parmi les 360 plus populaires sont passés de 59 en mai à environ le double en septembre ; Python 3.14 free-threaded vaut d'être essayé, le mode par défaut est attendu vers 3.16 ou 3.17.
- Démo : SciPy avec JAX dans un interpréteur free-threaded, environ 4x avec quatre threads puis 2,5x de plus avec le JIT.
- En Q&R : le code qui casse sans GIL était déjà bogué ; il faut de meilleurs outils de test en parallèle et du financement pour aider les mainteneurs.
Mercredi 1 octobre
Keynote▶ vidéo + transcript
Building Data Science Tools for Sustainable Transformation
Anita Graser — AIT Austrian Institute of Technology
Retours : Anita Graser (speaker, Mastodon, jour 1), résumé de l'interview backstage d'Anita Graser (PyData Paris, Mastodon)
- Annoncée comme un talk IA, recentrée : « this is not an AI talk ». D'un atelier récent sur la data science spatiale : pas de consensus sur l'IA, et plus de travail pour les mainteneurs (issues dues à des LLM qui lisent la doc d'une mauvaise version), d'où l'idée d'un agents.txt.
- MovingPandas (trajectoires d'oiseaux, de navires, de drones, détection d'arrêts) et le souci de le rendre accessible aux non-codeurs : plugin QGIS Trajectools, workflows no-code QGIS (retards de bus GTFS contre GPS), UDF CARTO sur BigQuery, MoveApps du Max Planck Institute.
- Tour des usages IA dans QGIS : génération de workflows à partir d'un prompt (revue à la baisse car les fichiers de modèles sont trop gros pour les LLM), vectorisation assistée, assistant OpenStreetMap, plugin de classification semi-automatique (plus de deux millions de téléchargements).
- Ce qui fait un projet open source durable : les gens, y compris ceux qui font la maintenance ingrate (migration Qt5 vers Qt6), et les rencontres en personne malgré le coût écologique. QGIS est ouvert environ 19 millions de fois par mois.
- Conclusion : face à la hype du vibe coding, « move thoughtfully » et garder les outils ouverts.
- En Q&R : une version WebAssembly de QGIS existe ; l'association QGIS (400 à 500 k€ par an, membres et dons) finance la maintenance, les fonctionnalités étant payées par les clients des sociétés de services.
- Le matin du jour 1, la speaker saluait sur Mastodon un « great venue & crowd ».
Conférence▶ vidéo + transcript
Skrub: machine learning for dataframes
Riccardo Cappuzzo — Inria (P16), Jérôme Dockès, Guillaume Lemaitre — :probabl.
- Présenté par Riccardo Cappuzzo, lead developer de skrub au sein du programme P16 d'Inria ; compatible pandas et Polars, tous les transformers s'insèrent dans un pipeline scikit-learn.
- TableReport : aperçu interactif d'une table (types, valeurs nulles, distributions, associations entre colonnes), fichier HTML autonome sans notebook.
- Briques de nettoyage et d'encodage : Cleaner conservateur, DatetimeEncoder avec features périodiques, SquashingScaler pour les outliers, StringEncoder (TF-IDF puis SVD) ou TextEncoder qui s'appuie sur un modèle Hugging Face ; TableVectorizer et tabular_pipeline assemblent le tout.
- Data Ops : extension multi-tables qui suit un graphe d'opérations, marque X et y pour éviter les fuites de données, rend tout paramétrable (
choose_from, opérations optionnelles) et s'exporte en learner réutilisable. - En Q&R : au-delà de 40 valeurs uniques, StringEncoder par défaut (seuil réglable) ; pas encore de support temps réel ni de context engineering pour LLM.
- Sprint skrub annoncé le lendemain.
Conférence▶ vidéo + transcript
Probabilistic regression models: let's compare different modeling strategies and discuss how to evaluate them
Olivier Grisel — :probabl.
Retours : Markus Löning (blog)
- Point de départ : avec un bruit hétéroscédastique, même le meilleur modèle ne peut pas être parfait partout ; prédire seulement la moyenne cache l'incertitude.
- Intervalles de prédiction : utiles quand la prédiction alimente une machine (traiter automatiquement les cas sûrs, renvoyer les autres à un expert) comme quand elle informe un humain (exemple des fourchettes de temps de trajet de Google Maps).
- Fonctions de perte : erreur quadratique pour la moyenne, absolue pour la médiane, pinball loss pour n'importe quel quantile ; démonstration avec splines et régression linéaire, puis gradient boosting.
- Alternative : discrétiser la cible et utiliser un classifieur, puis reconvertir en quantiles ; un seul modèle à déployer, mais moins de liberté de réglage par borne.
- Évaluation : pinball loss sur le test, couverture moyenne, largeur moyenne des intervalles, diagrammes de fiabilité. Bayesian ridge mal spécifié et conformal prediction simple échouent sur ce cas ; CQR (MAPIE) ne corrige que la couverture moyenne.
- Lecture critique d'un participant : talk d'introduction utile, mais « interface seems incomplete » côté scikit-learn, d'autres outils étant plus complets (Löning).
Conférence▶ vidéo + transcript
How to do real TDD in data science? A journey from pandas to polars with pelage!
Alix Tiran-Cappello
- Live coding par un MLOps engineer qui débogue souvent du code pandas lent en production. Sondage en salle : environ trois quarts ont déjà écrit un test automatisé, moins d'un cinquième avec pandas.
- Étape 1 : un test d'équivalence (
assert_frame_equal), puis refactoring en method chaining pour supprimer les boucles for, les variables intermédiaires etinplace=True. - Étape 2 : une fois le code chaîné, la traduction vers Polars devient presque mécanique (les lambdas deviennent des
pl.col). - Étape 3 : TDD avec pelage, qui passe un dataframe dans une fonction de test et le rend s'il est valide : plages de valeurs, types, absence de nulls, proportion de nulls par groupe, unicité de clés primaires, règles personnalisées. Les tests révèlent des anomalies du jeu de données (véhicules essence et diesel dans des données sur les voitures électriques).
- Inspiration revendiquée : Kent Beck et les tests de dbt ; Great Expectations jugé trop verbeux pour ce flux de travail.
- Chiffre montré en fin de talk : un facteur 4 entre le mauvais et le bon code pandas.
Conférence▶ vidéo + transcript
Documents Meet LLMs: Tales from the Trenches
Nour El Mawass — Tweag by Modus Create, Miklos Erdelyi — Tweag by Modus Create
Retours : résumé de l'interview backstage de Nour El Mawass et Maria Knorps (PyData Paris, Mastodon)
- Annoncé comme un talk « no hype, just practical tips » ; cas d'usage inspiré d'un client : extraire et qualifier les allégations d'une brochure marketing synthétique.
- Extraction du texte : les PDF n'ont pas toujours de texte embarqué, d'où l'OCR (Amazon Textract, Azure Document Intelligence, MarkItDown en open source moins fiable).
- Prompting : partir des générateurs et améliorateurs de prompts des plateformes, demander un raisonnement, des catégories et des exemples ; penser l'UX pendant l'inférence.
- Sortie structurée : valider le schéma (Pydantic, Instructor), décodage contraint par grammaire, échappement des caractères spéciaux en post-traitement ; ajouter un champ is_claim et un raisonnement pour diagnostiquer les oublis et réduire les hallucinations ; distance de Levenshtein pour retrouver les citations reformulées.
- Retries réfléchis : inutiles à température zéro ou en cas de quota, fallback vers un autre modèle, logs et métriques d'échecs, Tenacity plutôt que du fait maison.
- Évaluation : un benchmark automatique peut afficher 0 % là où l'expert métier accepte 100 % ; la validation manuelle reste l'étalon. Pour les agents conversationnels, des évaluations par tâche centrées sur le résultat.
Conférence▶ vidéo
Machine Learning in the Browser: Fast Iteration with ONNX & WebAssembly
Romain Clement
- Constat des slides : « most models never reach production », faute d'intégration technique, de retours utilisateurs, ou pour des raisons de confidentialité.
- Réponse en trois briques : sites statiques sans coût d'hébergement, ONNX comme représentation générique des modèles, WebAssembly pour exécuter dans le navigateur (avec WebGPU si besoin, selon le programme).
- Outils : ONNX Runtime Web, Transformers.js, Netron, et modelship, utilitaire Python du speaker qui génère une application web statique à partir d'un modèle ONNX.
- Démos : estimation de prix immobilier avec scikit-learn exporté en ONNX, résumé de texte avec Gemma 3 270M (environ 1 Go), application déployée sur GitHub Pages.
- Message final : « Just start shipping! »
Conférence▶ vidéo + transcript
Repetita Non Iuvant: Why Generative AI Models Cannot Feed Themselves
Valeria Zuccoli
- Point de départ : la part de code écrit par IA annoncée par les grands groupes (jusqu'à 30 % chez Microsoft selon Satya Nadella), qui finira dans les jeux d'entraînement des prochains assistants.
- Model collapse : un modèle réentraîné sur ses propres sorties perd les queues de distribution (échantillonnage fini) et ajoute des artefacts (approximation), image d'un générateur d'oiseaux qui finit par produire des poissons ; exemples publiés sur Stable Diffusion, VAE et OPT.
- Mauvaises nouvelles : réinjecter des données réelles dans un modèle déjà effondré ne le répare pas ; le watermarking (SynthID, Video Seal) dépend de la bonne volonté de chacun.
- Bonnes nouvelles : accumuler plutôt que remplacer les données borne l'erreur de test (prouvé pour les modèles linéaires et logistiques, observé pour VAE et diffusion) ; une procédure publiée par Google (Escaping Collapse) avec sélection des meilleures réponses et une petite part d'étiquetage humain converge vers un LLM optimal.
- En Q&R : la curation et la diversité des données restent à la charge des équipes ; changer d'architecture ne fait que retarder l'effondrement.
Conférence▶ vidéo + transcript
torchFastText: Modernizing Text Classification at Insee with PyTorch-based models
Meilame Tayebjee — Insee, Cédric Couralet — Insee
- Cas d'usage : coder les descriptions d'activité du répertoire Sirene dans la nomenclature APE (plus de 700 classes) à partir de textes de deux ou trois mots plus des variables annexes ; entraînement sur GPU mais inférence sur CPU uniquement, à l'unité via une API.
- Pipeline MLOps sur le datalab Onyxia SSP Cloud : nettoyage par règles d'experts, MLflow au centre (suivi, registre, wrapper pyfunc qui prend du texte brut et rend des libellés lisibles), FastAPI, Argo CD, tableau de bord de suivi à partir des logs.
- Limite reconnue : les échanges entre l'équipe innovation à Paris et les équipes de production à Nantes restent manuels (image Docker transmise, extractions périodiques pour réentraîner).
- Pourquoi un nouveau paquet : la bibliothèque fastText de Meta a été archivée ; torchFastText reproduit son architecture et son API en PyTorch Lightning, ajoute variables catégorielles et explicabilité (Captum) utilisée par les gestionnaires Sirene.
- Le nouveau modèle fait mieux que le fastText en production sur leurs données ; contrainte d'environ 200 ms par phrase sur CPU, hors de portée des gros modèles BERT.
- Feuille de route 2026 : torchTextClassifiers, une boîte à outils d'architectures légères et paramétrables, en lien avec d'autres instituts statistiques européens ; publication envisagée du modèle NACE, pas de celui des professions (données personnelles).
Conférence▶ vidéo
Parallel processing using CRDTs
David Brochart
Retours : Markus Löning (blog)
- D'après le programme : partager des données entre workers sans verrous, en comparant threads (GIL, futur free-threading) et sous-processus, puis utiliser des CRDT avec la bibliothèque pycrdt et les sous-interpréteurs Python.
- Ce qu'en retient Markus Löning : les CRDT permettent des lectures et écritures concurrentes sans verrou parce qu'ils acceptent les conflits et définissent des règles de fusion, comme dans les éditeurs collaboratifs.
- Contenu détaillé non vérifié : vidéo disponible mais non transcrite.
Sessions sans retour trouvé (31)
- State of Parquet 2025: Structure, Optimizations, and Recent Innovations (Rok Mihevc, Raúl Cumplido)
- Collaborative GIS editing in JupyterLab (Martin Renou, Arjun Verma)
- Browser-based AI workflows in Jupyter (Jeremy Tuloup, Nicolas Brichet)
- Unlock the full predictive power of your multi-table data (Luc-Aurélien Gauthier, Alexis Bondu)
- Expanding Programming Language Support in JupyterLite (Thorsten Beier, Ian Thomas, Isabel Paredes, Antoine Prouvost)
- Sparrow, Pirates of the Apache Arrow (Johan Mabille, Alexis Placet)
- Fighting against the instability: Debian Science at the synchrotron SOLEIL (Emmanuel Farhi)
- Tackling Domain Shift with SKADA (Théo Gnassounou, Antoine Collas)
- How to make public data more accessible with baked data and DuckDB (Chris Kucharczyk)
- Reproducible software provisioning for HPC and RSE using Spack (Martin Lang, Hans Fangohr)
- Modern Web Data Extraction: Techniques, Tools, Legal and Ethical Considerations (Domagoj Marić)
- ActiveTigger: a collaborative text annotation research tool (Paul Girard, Emilien Schultz, Julien Boelaert)
- Code as Data: a practical introduction to Python's Abstract Syntax Tree (Laurent Direr)
- You Don't Need Spark for That: Pythonic Data Lakehouse Workflows (Romain Clement)
- Balancing Privacy and Utility: Efficient PII Detection and Replacement in Textual Data (Justine Bel-Letoile, Elizaveta Clouet)
- Sharing computational course material at larger scale: a French multi-tenant attempt (Nicolas M. Thiéry)
- Move beyond academia: an industry-first tabular benchmark (Alexandre Abraham, Louis Le Dain)
- PyPI in the face: running jokes that PyPI download stats can play on you (Loïc Estève)
- Meta-Dashboards: geospatial web apps with Voilà (Davide De Marchi)
- Enhancing Machine Learning Workflows with skore (Marie Sacksick)
- CodeCommons: transparent, richer and sustainable datasets for code generation model training (Simeon Carstens, Rania Talbi)
- Beyond Prototyping: Building Production-Level Apps with Streamlit (Johannes Rieke, Arnaud Miribel)
- A Journey Through a Geospatial Data Pipeline (Florent Gravin)
- Applying Causal Inference in Industry 4.0: glasswool production (Simona Bottani, Patrick Lee)
- Build a data studio in your notebook with jupyter-fs (Tim Paine)
- Advancements in optimizing ML Inference at CERN (Sanjiban Sengupta)
- xeus-cpp, the new C++ kernel for Jupyter (Johan Mabille, Anutosh Bhat)
- Building Resilient (ML) Pipelines for MLOps (Lex Avstreikh)
- Architecting Scalable Multi-Modal Video Search (Pietro Piccini, Sebastiano Milardo)
- CoSApp: an open-source library to design complex systems (Étienne Lac)
- Lightning talks, sessions 1 et 2
Sources
- Site officiel PyData Paris 2025 (nouvel onglet) ↗
- Programme officiel (pretalx) (nouvel onglet) ↗
- Sprints du 2 octobre 2025 (nouvel onglet) ↗
- Playlist YouTube PyData Paris 2025 (chaîne PyData) (nouvel onglet) ↗
- Markus Löning, Pydata Paris 2025 (billet de blog, 2 octobre 2025) (nouvel onglet) ↗
- Slides de Romain Clement, ML models in the browser (nouvel onglet) ↗
- Anita Graser sur Mastodon, jour 1 (nouvel onglet) ↗
- Tweag sur Mastodon, remerciements après le stand (nouvel onglet) ↗
- Compte Mastodon PyData Paris (annonces de talks et résumés des interviews backstage) (nouvel onglet) ↗
- Posts LinkedIn : aucun lu (recherche web sans résultat exploitable)