Spaces:
Running
Running
File size: 2,727 Bytes
50657ac f195d41 50657ac f195d41 50657ac | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | # Actualisation hebdomadaire de la base
La source est le dataset public
[`cfahlgren1/hub-stats`](https://huggingface.co/datasets/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 :
```bash
export HF_TOKEN=hf_...
bash database_refresh/run_weekly_refresh.sh \
--dump-revision weekly-refresh
```
Pour un test rapide du prétraitement :
```bash
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.
```bash
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.
|