Présentation du Funathon

Et surtout du SSPCloud et de Git

Lino Galiana

Le Funathon

Principe

  • 4 sujets pour découvrir différents champs de la data science
    • Pas une compétition mais des tutoriels pas à pas
    • Mais n’hésitez pas à tester des choses nouvelles 😍

  • “Décollage imminent pour la data science”
    • Thématique : statistiques sur l’aviation civile
    • Organisation: équipes innovation de l’Insee & DGAC

  • Point d’entrée : inseefrlab.github.io/funathon2024/

Ressources de l’an dernier

L’ensemble des ressources de l’an dernier (“Du champ à l’assiette”) peut être retrouvée sur inseefrlab.github.io/funathon2023/

Modalités pratiques

  • Événement 💯% virtuel sur 2 jours:
    • Premier jour: introduction à 9h30 ;
    • Deuxième jour: fin du travail sur les sujets à 16h30, restitution et conclusion ensuite
  • Assistance sur Tchap et Zoom (liens 👇️):
    • Assistance garantie: 10h-17h30 (sauf le midi 🍔) ;
    • Ne restez pas bloqués, posez des questions !

Liens utiles

Les 4 sujets

  • Ressources et sur open data de la DGAC :
    • 2 sujets permettent de faire du
    • 3 sujets permettent de faire du
    • Niveaux techniques indiqués sur les sujets
  • Tutoriels complets avec corrections
    • Cherchez avant de regarder la correction, c’est le meilleur apprentissage !
    • Objectif secondaire: se former à Git et à la reproductibilité

Plus de fun en équipe 😺

N’hésitez pas à traiter les sujets en équipe

Les 4 sujets

Présentation des 4 sujets

Retrouver les sujets sur inseefrlab.github.io/funathon2024/

Le SSP Cloud, c’est quoi ?

Un environnement idéal pour la formation

  • Plateforme disponible depuis https://datalab.sspcloud.fr/
    • Pour découvrir et expérimenter…
    • Seulement avec des données en open data
  • Une plateforme pour l’administration :
    • Ouverte aux agents de l’Etat et à des formations en data science (ENSAE…)
    • Des serveurs hébergés à l’Insee

Important

Plateforme recommandée pour cet événement

  • Signalez-nous si vous ne pouvez créer de compte !

Un environnement idéal pour l’analyse de données

En plus, le SSP Cloud, c’est wahou ! 😍

https://datalab.sspcloud.fr

Principe de la plateforme

Une plateforme pour la reproductibilité et la liberté

  • Vous passez un contrat avec le SSP Cloud pour créer un RStudio ou Jupyter
    • Celui-ci tourne sur des serveurs distants auxquels vous accédez via le navigateur
  • Environnement initialement standardisé :
    • Tout le monde part du même socle minimal
    • Liberté d’installer des packages ou librairies Linux
  • Pour l’Insee: même principe que la plateforme LS3

Une plateforme pour les bonnes pratiques

Dans un environnement différent

Source: https://ensae-reproductibilite.github.io
  • Environnements temporaires donc:
    • Stocker le code dans un endroit pérenne: Github, Gitlab
    • Stocker les données dans un endroit pérenne: MinIO
Dans le cadre du Funathon
Pour ceux voulant aller (vraiment) plus loin

Source: https://ensae-reproductibilite.github.io

Note

Les services durent plusieurs jours mais n’ont pas vocation à persister

Des services standardisés pour les gouverner tous

Un système de stockage pérenne pour les données

Quand ou ne suffisent plus

Des technologies spéciales pour les bases de données

Quand ou ne suffisent plus

Des technologies adaptées aux données volumineuses

Bonus

Les statisticiens ayant découvert le SSPCloud, quand ils doivent revenir à leur infra habituelle

Onboarding

Checklist

Créer un compte

  • Aller sur https://datalab.sspcloud.fr puis Connexion et Créer un compte
    • Utiliser une adresse mail d’un domaine autorisé (@insee.fr, @..gouv.fr…)
    • Domaines @gmail.com, @yahoo.fr… non admis
    • Seuls les domaines institutionnels sont autorisés (universités, écoles, administrations…)
  • Si besoin, demandez-nous pour rajouter un domaine

Se connecter

Trouver de l’aide

  • Poser des questions sur les fils Tchap:

Lancer un service de data science

https://docs.sspcloud.fr/onyxia-guide/premiere-utilisation

  • Chaque service possède un README, lisez-le 😉
  • Chaque service est protégé par un mot de passe, copiez-le
  • Les services sont éphémères
    • Utilisez Git (avec Github ou Gitlab ) pour sauvegarder vos notebooks et codes
    • Utilisez MinIO pour sauvegarder vos données
    • sinon vous pourriez perdre votre travail

Utiliser Git

https://docs.sspcloud.fr/onyxia-guide/controle-de-version

  • Obligatoire pour ne pas perdre de travail (notebooks et codes)
  • Indispensable pour collaborer
  • Compatible avec la forge de votre choix (GitHub, GitLab…)
  • Token d’identification (cf. suite) peut être stocké sur le SSPCloud

Utiliser le stockage objet MinIO

https://docs.sspcloud.fr/onyxia-guide/stockage-de-donnees

  • Pour déposer ses données comme si on avait un service de fichier local
  • Chaque utilisateur a un bucket personnel
  • Possibilité de rendre des données publiques
  • Librairies Python (Boto3 ou S3Fs) ou R (aws.s3)

Utiliser le stockage objet MinIO

Lancer un service prêt-à-l’emploi

Onyxia

Pour le lien de lancement Python

N’oubliez pas de remplacer dans l’onglet Init l’URL du dépôt pré-rempli par le vôtre (l’URL de votre fork)

Git : quelques concepts

Pourquoi faire du contrôle de version ?

  • Construire et naviguer à travers l’historique de son projet
  • La collaboration rendue simple et efficace
  • Améliorer la reproductibilité de ses projets
  • Améliorer la visibilité de ses projets

Note

Plus d’éléments dans la formation officielle

Gymnastique

  • Par défaut, le dépôt distant porte l’alias origin

Ressources supplémentaires

Illustration par la pratique avec RStudio 🚀

Objectif

  • Découvrir S3
  • Découvrir Git à travers l’interface RStudio
  • Découvrir l’interaction entre Git, RStudio et Gitlab
  • Se familiariser avec quelques concepts de Git
  • Méthode préconisée pour Git:
    • On propose de travailler sur la même branche…
    • … mais des fichiers séparés.
    • Evite l’utilisation de branches tout en limitant les conflits.

Démonstration 🚀

Exemple à partir du sujet 2

Onyxia

Aide-mémoire S3

Exemples issus d’utilitR
bucket <- "donnees-insee"
aws.s3::get_bucket(bucket, region = "")
df <- 
  aws.s3::s3read_using(
    FUN = data.table::fread,
    # Mettre les options de FUN ici
    object = "diffusion/FILOSOFI/2016/FILOSOFI_COM.csv",
    bucket = "donnees-insee",
    opts = list("region" = "")
  )
aws.s3::s3write_using(
  df,
  FUN = data.table::fwrite,
  # Les options de fread sont ici
  sep = " ;",
  col.names = TRUE,
  object = "data/filosofi2016_example.csv",
  bucket = "MON_BUCKET_A_REMPLACER",
  opts = list("region" = "")
)

Pour lister les fichiers dans un bucket:

bucket <- "projet-funathon"
aeroports <- aws.s3::get_bucket(bucket, region = "", prefix = "2024/sujet2/")

Pour lire un fichier directement:

bucket <- "donnees-funathon"
aeroports <- aws.s3::s3read_using(
  object = objets$Contents$Key,
  FUN = sf::st_read,
  bucket = bucket,
  opts = list(region = "")
)

library(leaflet)
leaflet(aeroports) %>% addTiles() %>%
  addMarkers(popup = ~Nom)

Illustration par la pratique avec Jupyter 🚀

Démonstration 🚀

Exemple avec Python (Sujet d’analyse textuelle)

Aide-mémoire S3

Voir https://pythonds.linogaliana.fr/content/modern-ds/s3.html

Git

Voir https://pythonds.linogaliana.fr/content/git/exogit.html

Questions

Le funathon est en cours

  • Vous pouvez rejoindre les salles de répartition sur Zoom en fonction des sujets
  • Vous pouvez poser vos questions sur Tchap

Le funathon est en cours (assistance en pause)

  • Les assistants aussi ont besoin d’une pause café

Le funathon est en cours (pause déjeuner)

  • N’oubliez pas d’aller manger