TARGET_SPACE / docs /LEARNING.md
RDS777's picture
Upload 13 files
8efb1a5 verified
|
Raw History Blame Contribute Delete
4.89 kB

Apprentissage automatique d'UNIQUE

Space M.O.U.H. ──(chaque session avec tests)──▶ dataset privé RDS777/mouh-trajectories
      ▲                                                   │
      │ redémarrage après promotion                       ▼  job HF planifié (t4-small, hebdomadaire)
      └──── adaptateur promu ◀── porte pass@1 ◀── LoRA sur Qwen/Qwen2.5-Coder-0.5B-Instruct
            RDS777/unique-qwen2.5-coder-0.5b-lora

Ce qui est automatique

  1. Collecte. Chaque session du Space qui contient des tests est écrite localement, puis poussée dans le dataset privé toutes les 10 minutes (CommitScheduler). Une case à cocher dans l'interface permet de l'exclure.
  2. Sélection. Le job ne garde que les sessions certifiées dont les tests importent solution et contiennent un assert. Il les dédoublonne et les découpe par tâche (90 % train, 10 % heldout) ; une tâche n'est jamais des deux côtés.
  3. Exemples. Pour chaque session, un exemple de génération (énoncé + tests vers code certifié) et un exemple de réparation par tentative ratée (code faux + diagnostics vers code certifié).
  4. Seuil. Sans au moins MIN_NEW_EXAMPLES (50) nouveaux exemples depuis le dernier cycle, le job s'arrête en quelques minutes sans charger de modèle.
  5. Porte. Le job exécute réellement les tests du heldout pour la base, l'adaptateur promu actuel et le candidat. Le candidat n'est promu que s'il fait passer strictement plus de tâches que les deux, avec au moins MIN_HELDOUT (15) tâches. Sinon seules ses métriques sont gardées (runs/*.json).
  6. Mise en service. Après une promotion, le job redémarre le Space, qui charge le nouvel adaptateur (générateur « UNIQUE » dans la liste).

Mise en place (une fois, uniquement sur huggingface.co)

  1. Jeton : huggingface.co/settings/tokens → Create new token → type Write → copier.
  2. Fichiers : page du Space → onglet Files → Contribute → Upload files → glisser les dossiers mouh, jobs, docs, tests et les fichiers app.py, requirements.txt du paquet → Commit.
  3. Réglages : page du Space → Settings → Variables and secrets :
    • New secret HF_TOKEN = le jeton ;
    • New secret UNIQUE_ADMIN_KEY = un mot de passe de votre choix (pour le bouton « Lancer un cycle maintenant ») ;
    • New variable MOUH_DATASET_REPO = RDS777/mouh-trajectories ;
    • New variable UNIQUE_ADAPTER_REPO = RDS777/unique-qwen2.5-coder-0.5b-lora ;
    • New variable UNIQUE_AUTOTRAIN = 1 (c'est l'accord pour les dépenses GPU).
  4. Le Space redémarre et crée lui-même le job planifié (lundi 03:17 UTC, t4-small). Vérifiez dans le panneau « Apprentissage automatique d'UNIQUE » du Space (bouton Actualiser) et sur huggingface.co/settings/jobs.

Réglages facultatifs (variables du Space) : UNIQUE_SCHEDULE (expression CRON), UNIQUE_FLAVOR, UNIQUE_TIMEOUT, MOUH_RECORD_DEFAULT=0 (journalisation décochée par défaut). Pour arrêter : supprimer UNIQUE_AUTOTRAIN ne suffit pas, il faut aussi suspendre ou supprimer le job sur huggingface.co/settings/jobs.

Coûts

t4-small coûte 0,40 $/h, facturé à la seconde. Un cycle sous le seuil dure quelques minutes (installation des dépendances comprise). Un cycle complet avec 0,5 Md de paramètres et quelques centaines d'exemples tient en général dans l'heure, mais ce n'est pas mesuré : regardez la durée réelle du premier cycle dans runs/*.json.

Limites à connaître

  • Le volume est le vrai goulot. Il faut environ 150 tâches certifiées distinctes pour atteindre 15 tâches de heldout, donc une première promotion. Tant que le Space n'est utilisé qu'à la main, cela n'arrivera pas vite. La prochaine étape utile est d'alimenter le Space en lot avec des tâches munies de tests.
  • Certifié ne veut pas dire correct. Le code certifié passe les tests fournis, rien de plus. Des tests faibles produisent des exemples faibles ; le filtre écarte seulement les cas les plus évidents.
  • Space public = données ouvertes à tous. N'importe qui peut soumettre des tâches qui entreront dans l'entraînement. Rendez le Space privé, ou décochez la journalisation par défaut (variable MOUH_RECORD_DEFAULT=0).
  • Le heldout grandit avec le temps. La porte réévalue la base et l'adaptateur actuel sur le heldout du moment : la comparaison est toujours faite sur les mêmes tâches. Sur 15 à 30 tâches, l'intervalle de confiance reste large (ci95 dans les métriques).
  • Inférence CPU. Sur le matériel gratuit du Space (2 vCPU), une réponse de 512 jetons peut prendre une minute ou plus.
  • Le code généré pendant l'évaluation est exécuté dans le conteneur éphémère du job, sans autre bac à sable.