Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
107 changes: 82 additions & 25 deletions .github/workflows/dev.yaml
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah ouais, t'es rentré dans gha, gg!

Original file line number Diff line number Diff line change
@@ -1,43 +1,100 @@
on:
pull_request:
types:
- opened
- reopened
- synchronize
- closed # Including closed to remove preview when PR is closed.
branches:
- main

# To cancel previous actions that could run on this PR
concurrency:
group: preview-${{ github.ref }}
cancel-in-progress: true

jobs:
pages:
name: Render-Blog
build-deploy:
if: github.event.action != 'closed' # If closing the PR, no publishing
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check out repository
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.ref }}
repository: ${{github.event.pull_request.head.repo.full_name}}
fetch-depth: 0 # To enable full access to Git repo
ref: ${{ github.event.pull_request.head.ref }} # Reference of the commit to checkout to. To ensure it's the one of the PR
repository: ${{github.event.pull_request.head.repo.full_name}} # Reference to the branch to checkout to. Useful with PR from forks

# add software dependencies here and any libraries
# See more at https://github.com/quarto-dev/quarto-actions/blob/main/examples/example-03-dependencies.md
- name: Configure safe.directory # Workaround for actions/checkout#760
run: git config --global --add safe.directory /__w/ssphub/ssphub
- uses: actions/setup-python@v4

# Python
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.10' # Version range or exact version of a Python version to use, using SemVer's version range syntax
python-version: '3.13' # Version range or exact version of a Python version to use, using SemVer's version range syntax

# Jupyter
- run: pip install jupyter nbformat
- uses: quarto-dev/quarto-actions/setup@v2

# Quarto
- name: Set up Quarto
uses: quarto-dev/quarto-actions/setup@v2
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

# To publish to GitHub Pages
- name: Publish to GitHub Pages (and render)
uses: quarto-dev/quarto-actions/publish@v2
with:
version: 1.7.31
- name: Render Quarto Project
uses: quarto-dev/quarto-actions/render@v2
target: gh-pages
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # this secret is always available for github actions

- name: Install npm
if: ${{ github.event.pull_request.head.repo.full_name == github.repository }}
uses: actions/setup-node@v2
with:
node-version: '18'
- name: Deploy to Netlify
if: ${{ github.event.pull_request.head.repo.full_name == github.repository }}
# NETLIFY_AUTH_TOKEN and NETLIFY_SITE_ID added in the repo's secrets
env:
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
BRANCHE_REF: ${{ github.event.pull_request.head.ref }}
run: |
npm init -y
npm install --unsafe-perm=true netlify-cli -g
netlify init
netlify deploy --alias=${BRANCHE_REF} --dir="_site" --message "Preview deploy from ${BRANCHE_REF}"
node-version: '18'

- name: Comment PR with preview URL
uses: actions/github-script@v6
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const previewUrl = `https://${{ github.repository_owner }}.github.io/${{ github.event.repository.name }}`;
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: `✅ Preview site is ready: [${previewUrl}](${previewUrl})`
})

delete-preview:
if: github.event.action == 'closed' # Only run when PR is closed
runs-on: ubuntu-latest
steps:
- name: Remove preview from GitHub Pages
uses: peaceiris/[email protected] # https://github.com/marketplace/actions/github-pages-action
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_branch: gh-pages
publish_dir: ./
keep_files: false
force_orphan: true # This allows you to make your publish branch with only the latest commit.
enable_jekyll: false
allow_empty_commit: true

- name: Comment PR that preview was removed
uses: actions/github-script@v6
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: `🗑️ Preview site has been removed.`
})
2 changes: 1 addition & 1 deletion infolettre/infolettre_19/index.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ date: '2025-09-29'
number: 19

authors:
- Nicolas Toulemonde
- Nicolas

image: 2025_09_back_school.png

Expand Down
Binary file added infolettre/infolettre_20/2025_10_gypaete.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
96 changes: 96 additions & 0 deletions infolettre/infolettre_20/index.qmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
---
title: "De belles cartographies, des packages R et l'importance des données d'entraînement pour l'IA"

description: |
Infolettre du mois d'__octobre 2025__

# Date published
date: '2025-10-25'
number: 20

authors:
- Nicolas

image: newsletter_20.png

tags:
- datavis
- IA
- Python
- cartographie

categories:
- Infolettre

---


Bienvenue à la **vingtième infolettre** ! Il est temps de se mettre au défi de respecter ce qui a été dit il y a quelques semaines : une newsletter par mois ga-ran-tie je vous ai dit. Bon, à l'époque, je ne savais pas qu'un mois ça voulait dire 4 semaines et que 4, c'est pas beaucoup 🙃. Allez, on y va !

Bonne lecture 📔 !

# L'infographie

Beaucoup d'infographies ce mois-ci, le choix a été dur. Pour une fois, partons sur une vidéo réalisée par [Fabian Lang](https://www.fabianlang.net/schweizer-bergwelten/) : le trajet d'un gypaète barbu suivi par GPS en 3D dans les Alpes suisses. La vraie infographie, en format vidéo, est disponible [ici](https://www.linkedin.com/posts/fbnlng_vulture-beardedvulture-cartography-activity-7274787245021188097-L9vj). Attention, vertige.

![](2025_10_gypaete.png)



# Actus du réseau

## La troisième journée du réseau 📅 1 décembre - La Tréso (Malakoff)
Les **inscriptions** pour la troisième journée du réseau le 1^er^ décembre 2025 sont [ouvertes](https://www.eventbrite.com/e/billets-3e-journee-du-reseau-des-data-scientists-1664052518879?aff=oddtdtcreator). Si vous souhaitez présenter un sujet, n'hésitez pas à me contacter !

## Présentation de Cartographia - 📅 13 janvier 2026 - format mixte (Montrouge et en ligne)
[Françoise Bahoken](https://bsky.app/profile/fbahoken.bsky.social) et [Nicolas Lambert](https://bsky.app/profile/neocarto.bsky.social) vont venir nous parler de leur livre [Cartographia](https://neocarto.hypotheses.org/22669) et des questions de cartographie (!) passionnantes qu'ils y abordent. Cela se passera **le 13 janvier 2026** en début d'après-midi, en format mixte : présentiel (à la DG de l'Insee) et à distance. Nicolas Lambert était déjà intervenu pour nous présenter Observable, une librairie Javascript très pratique pour faire des dataviz ([ici](../../talk/presentation-dobservable-par-nicolas-lambert/index.qmd), pour rappel). Si cela vous intéresse, réservez donc votre début d'après-midi !

# Actualités
Ce mois-ci, place aux belles images et à la cartographie. L'IA reste omniprésente : les institutions cherchent à favoriser la réutilisation de leurs données, certains contournent les LLM avec des consignes écrites « en blanc sur blanc », et les données d'entraînement sont au centre de l'attention.






::: {.callout-tip}
Vous voyez d'autres sujets d'actualité intéressants ? N'hésitez pas à les partager sur le [groupe Tchap 💬](https://tchap.gouv.fr/#/room/#ssphub:agent.finances.tchap.gouv.fr) directement !
:::

## Datavisualisation
- Une [belle carte](https://neocarto.hypotheses.org/21980) de **migration simulée au niveau infra-national** en zone endémique paludéenne africaine. Françoise Bahoken, son autrice, sera notre invitée début 2026.
- Pour les passionnés d'espace, voici une [**carte en 3D et dynamique**](https://atlasof.space/) du système solaire, comprenant les planètes mais aussi les astéroïdes! Vous pouvez jouer avec le temps pour savoir où sera la Terre quand vous aurez 30/40/50/60/70 ans (spoiler alert : c'est cyclique), et vérifier aussi qu'aucun astéroïde ne passe sur la Terre d'ici là.
- Pour les autres candidats à l'infographie du mois :
- pour voir l'ensemble des **livres publiés** en une seule carte interactive, cela donne [cela](https://phiresky.github.io/isbn-visualization/?).
- la cheffe de l’infographie d’Epsiloon (magazine de sciences) a publié les étapes [avant / après](https://www.figma.com/proto/C8xDR9mlWX8kBV0crJr1IK/Les-infographies-d-Epsiloon?page-id=3102%3A2581&node-id=3102-2979&viewport=1040%2C640%2C0.18&t=h0dF40xsTRgqYfJi-8&scaling=scale-down-width&content-scaling=fixed&starting-point-node-id=3102%3A2583&hide-ui=1) de ses infographies. Je vous recommande celle sur les **habitudes de sommeil par pays**.
- Enfin, un petit jeu à la SUTOM en version graphique : un [**graphique par jour**](https://chartle.cc/), devinez le pays !


## Cartographie
- Des chercheurs de l'Université de Charles (en Tchéquie) et de Freiburg ont publié une (très belle) **taxonomie des bâtiments urbains**, disponible en ligne. Tout est [ici](https://urbantaxonomy.org) et vous pouvez explorer le bâti urbain de six pays d'Europe centrale et de l'est.
- L'IGN a publié [une cartographie](https://www.ign.fr/publications-de-l-ign/institut/kiosque/publications/atlas_anthropocene/2025/Atlas-2025-risque-inondation.pdf) très détaillée des **risques d'inondation et de submersion** sur tout le territoire national, notamment grâce aux images LIDAR. Par exemple, vous habitez à Saint-Maur-des-Fossés? Vous pouvez y voir la simulation d'une inondation majeure chez vous.
- Utiliser l'**IA pour faire des fonds de carte** à partir d'image satellite ? Cela semble bien fonctionner d'après ce [post](https://www.linkedin.com/posts/davidoesch_map-generation-geospatial-activity-7379129420801875968-yNzj).
- A partir des données d'utilisateurs de Facebook, des [chercheurs](https://www.pnas.org/doi/10.1073/pnas.2409418122) ont bâti des **indicateurs mensuels de flux migratoires** couvrant 181 pays.
- Après la prévisualisation de données Parquet en ligne, cette fois [ce site](https://developmentseed.org/stac-map/) permet de **visualiser très facilement des fichiers de données géographiques** types STAC (dont Geoparquet). Explications sur la plomberie [ici](https://developmentseed.org/blog/2025-09-02-stacmap/).
- La communauté Apache Sedona publie [**SedonaDB**](https://sedona.apache.org/latest/blog/2025/09/24/introducing-sedonadb-a-single-node-analytical-database-engine-with-geospatial-as-a-first-class-citizen/), un moteur de base de données analytique open source et pensé nativement aussi pour des données spatiales.

## Le reste c'est le R
- Le [package R tinytable](https://vincentarelbundock.github.io/tinytable/), permet de faire des **tableaux de qualité** en de multiples formats. L'ambition de ce package est d'être simple, léger (0 dépendance à des packages externes), flexible et de différencier les données de l'affichage.
- Le [package R redoc](https://r-consortium.org/all-projects/2025-group-1.html#reviving-redoc) devrait être mis à jour. Il permet notamment de **faire le lien entre Quarto, et la suite Office**, par exemple si vous générez des documents qui seront relus par des personnes utilisant Word comme outil de travail 😉.
- En machine learning, quels sont les problèmes posés par des **classes d'apprentissage de tailles très différentes** ? Selon cet [article](https://datascience.stackexchange.com/questions/134389/is-class-imbalance-really-a-problem-in-machine-learning), il s'agit surtout 1/ d'avoir des métriques de performance adéquates, 2/ d'avoir un nombre absolu d'observations dans la classe minoritaire suffisant (et non une part dans le total) et enfin 3/ de faire attention à la fongibilité entre classes.

## IA
- Qu'est-ce que les **paramètres des modèles publiés** disent des données d'entraînement sous-jacentes, confidentielles ? Des chercheurs sont [allés fouiller](https://fi-le.net/oss/) ce que cache GPT-5.
- Du côté de **l'entraînement des modèles**, la gamme des données disponibles s'enrichit pour que ses données soient mieux reprises par l'IA. C'est un nouvel épisode de la course à ne pas finir page 15 des résultats Google ou page 259 des blogs Myspace.
- **Wikidata**, qui stocke les données structurées de Wikipédia et consorts, propose maintenant ses données sous format de [données vectorielles](https://www.wikidata.org/wiki/Wikidata:Embedding_Project/October_1_2025_Release).
- Un programme d'**harmonisation des metadata et d'API**, l'[Open Semantic Interchange Initiative](https://www.snowflake.com/en/blog/open-semantic-interchange-ai-standard/), a été lancé pour enrichir les données d'apprentissage et la précision des IA. L'idée est d'avoir un langage YAML commun pour permettre aux IA d'échanger des données de manière robuste, par exemple par API et sans perte de sens au fur et à mesure de leur traitement par des agents d'IA.
- Une fois que l'on a les données, on cherche ensuite à savoir de **combien de GPU j'ai besoin pour entraîner mon modèle**. La Dinum a développé [un outil](https://github.com/etalab-ia/InfraScale) pour estimer ses besoins pour cette étape.
- Des faiblesses des modèles de LLM sont, comme toujours, remontées, notamment sur **l'importance des données d'apprentissage et d'un prompt propre**. Cela met notamment en valeur le fait que les modèles ne sont pour le moment pas très efficaces quand il s'agit de trier des CV ou des articles.
- Le "prompt injection" : c'est l'idée de truquer l'IA dans son CV/projet d'article scientifique/sur Linkedin, par exemple avec des instructions écrites en « blanc sur blanc », pour avoir plus de chance d'être sélectionné/de détecter les messages écrits par l'IA. Cela marche à presque 100 % des cas selon [cet article](https://arxiv.org/pdf/2509.10248), d'autant plus que l'IA a un biais positif naturel.
- Une [étude](https://www.anthropic.com/research/small-samples-poison) confirme que l'IA est **particulièrement sensible à la qualité de la donnée d'apprentissage**. Ainsi, 250 observations fausses suffisent pour empoisonner durablement un LLM, et ce **quel que soit sa taille**. Une [présentation intéressante](https://www.youtube.com/watch?v=zKW8sVIOCTY) à une conférence PyData présentait par ailleurs ce qu'il se passait quand on entraîne une IA sur des images générés par une IA, avec des résultats similaires.
- Le site [**AI Darwin Awards**](https://aidarwinawards.org/nominees-2025.html) rassemble des exemples d'usage raté d'IA. Globalement, les cas d'usage où l'IA est mis directement face à un client peuvent rapidement mal tourner... Peut-être que [Diella](https://www.politico.eu/article/albania-apppoints-worlds-first-virtual-minister-edi-rama-diella/), la première et seule ministre à être une IA dans le monde, rejoindra cette liste ?
- Si vous voulez **comparer le résultat de deux LLM et leur empreinte carbone**, n'oubliez pas l'outil [ComparIA](https://comparia.beta.gouv.fr/) créé par une start-up d'État du ministère de la Culture.

# La non interview du mois
Pas d'interview finie en temps et en heure ce mois-ci, priorité au direct, ce sera donc (peut-être) le mois prochain !

Binary file added infolettre/infolettre_20/newsletter_20.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed preview.png
Binary file not shown.
2 changes: 0 additions & 2 deletions requirements.txt

This file was deleted.