- Framework autonome de recherche autoportant qui condense le cœur d’entraînement LLM de nanochat en un seul GPU et un seul fichier d’environ 630 lignes, permettant à des agents IA d’itérer de manière autonome sur des expériences d’entraînement LLM pendant toute la nuit
- L’humain modifie le
prompt, et l’agent IA modifie le code d’entraînement → entraînement avec un budget temps fixe de 5 minutes → comparaison des résultats → répétition de la boucle conservation ou abandon
- L’agent fonctionne dans une boucle autonome sur une branche git de feature et accumule des commits git sur le script d’entraînement chaque fois qu’il obtient une validation loss plus faible en ajustant l’architecture du réseau neuronal, l’optimiseur, les hyperparamètres, etc.
- L’objectif est de concevoir un agent capable de produire les progrès de recherche les plus rapides sans intervention humaine
Vue d’ensemble du projet
- Structure dans laquelle un agent IA modifie et expérimente de façon autonome le code d’entraînement, sur la base d’une implémentation simplifiée mono-GPU de nanochat
- L’agent répète la boucle modification du code → entraînement de 5 minutes → vérification des résultats → conservation/abandon, tandis que l’utilisateur consulte le matin les logs d’expérience et le modèle amélioré
- Le principe consiste à connecter à ce dépôt l’agent de son choix, comme Claude ou Codex, à lui faire lire
program.md, puis à lancer les expériences
Structure des fichiers clés (3 seulement sont importants)
prepare.py - contient les constantes fixes, la préparation des données (téléchargement des données d’entraînement, entraînement du tokenizer BPE) et les utilitaires d’exécution (data loader, évaluation) ; non destiné à être modifié
train.py - fichier unique modifié par l’agent ; contient l’ensemble du modèle GPT, l’optimiseur (Muon + AdamW) et la boucle d’entraînement ; tous les éléments peuvent être modifiés, notamment l’architecture, les hyperparamètres, l’optimiseur et la taille de batch
program.md - fichier d’instructions de base pour l’agent ; édité par l’humain, il sert de compétence légère qui définit l’orientation de la recherche autonome de l’agent
Principes de conception
- Modification d’un seul fichier : l’agent ne modifie que
train.py, ce qui permet de garder un périmètre de changement maîtrisable et facilite la revue des diff
- Budget temps fixe : exécution toujours de 5 minutes exactement, quelle que soit la plateforme → environ 12 essais par heure, soit près de 100 expériences pendant le sommeil
- Les expériences restent directement comparables entre elles, quels que soient les changements de taille de modèle, de taille de batch ou d’architecture
- Inconvénient : les résultats d’exécution d’autres personnes ne sont pas comparables si elles n’utilisent pas la même plateforme
- Autoportance : aucune dépendance externe en dehors de PyTorch et de quelques paquets ; pas d’entraînement distribué ; pas de configuration complexe
Prérequis et exécution
- Prérequis : un seul GPU NVIDIA (tests réalisés sur H100), Python 3.10+, gestionnaire de paquets
uv
- Actuellement réservé aux GPU NVIDIA ; la prise en charge d’autres plateformes comme CPU ou MPS n’est pas incluse pour éviter de faire grossir le code
- Si un support plus large des plateformes est nécessaire, il est recommandé de consulter le dépôt nanochat principal ; un fork macOS (
miolini/autoresearch-macos) existe déjà
- Pour exécuter l’agent, lancez Claude, Codex ou un autre agent dans le dépôt, désactivez toutes les autorisations, puis invitez-le à lire
program.md et à démarrer les expériences
Intention de conception du program.md par défaut
- Le
program.md par défaut est volontairement conservé comme une base minimale
- Il peut être utilisé comme point de départ d’améliorations itératives au fil du temps pour trouver le « code d’organisation de recherche » qui produit les progrès les plus rapides
- La structure permet aussi clairement des extensions, comme l’ajout d’agents ou des consignes plus précises
Aucun commentaire pour le moment.