genmod / database_refresh /README.md
pbordescnil's picture
Document scheduled Job permissions
f195d41
|
Raw
History Blame Contribute Delete
2.73 kB

Actualisation hebdomadaire de la base

La source est le dataset public cfahlgren1/hub-stats. Le pipeline télécharge ses configurations models et datasets, reconstruit hors ligne une base Neo4j, crée neo4j.dump, puis publie ce dump et son fichier database_metadata.json dans le dataset privé configuré.

Le Space continue à utiliser le dump précédent pendant toute la reconstruction. Il ne voit la nouvelle base qu'après un redémarrage. La date affichée dans l'interface vient de database_metadata.json; elle n'est donc mise à jour que si la reconstruction et la publication ont réussi.

Test sans modifier la production

Le dépôt de dumps accepte une branche de test :

export HF_TOKEN=hf_...
bash database_refresh/run_weekly_refresh.sh \
  --dump-revision weekly-refresh

Pour un test rapide du prétraitement :

bash database_refresh/run_weekly_refresh.sh \
  --max-models 10000 \
  --max-datasets 10000 \
  --prepare-only

Job Hugging Face hebdomadaire

Le Job peut monter en lecture la branche du Space qui contient ce script et utiliser l'image Neo4j correspondant exactement à celle de l'application :

Le compte qui crée le Job doit avoir au minimum le rôle write dans l'organisation CNIL. Le token utilisé par la CLI doit explicitement autoriser Start and manage Jobs. Puisque le même token est transmis au Job avec --secrets HF_TOKEN, il doit également pouvoir écrire dans cnil/genmod-dump-neo4j et redémarrer le Space ciblé. L'option --namespace cnil est indispensable pour créer et facturer le Job sous l'organisation plutôt que sous le compte personnel.

hf jobs scheduled run "@weekly" \
  --namespace cnil \
  --name genmod-weekly-database-refresh \
  --flavor cpu-basic \
  --timeout 12h \
  --no-concurrency \
  --secrets HF_TOKEN \
  --env NEO4J_DUMP_REPO=cnil/genmod-dump-neo4j \
  --env NEO4J_DUMP_REVISION=weekly-refresh \
  --env SPACES_TO_RESTART=cnil/genmod-faster \
  --volume hf://spaces/cnil/genmod@refresh-hub-database:/workspace:ro \
  neo4j:2025.09.0-community \
  bash /workspace/database_refresh/run_weekly_refresh.sh

La révision weekly-refresh permet de valider le nouveau dump avec genmod-faster sans remplacer le dump de production. Après validation, il suffit de programmer le même Job avec NEO4J_DUMP_REVISION=main. Pour la production, SPACES_TO_RESTART doit alors être remplacé par cnil/genmod.

Les Hugging Face Jobs nécessitent un solde positif et sont facturés uniquement pendant leur exécution. Un Space CPU Basic ne constitue pas à lui seul un cron fiable : il peut être mis en veille et son disque est éphémère.