Introduction
L'autorecherche de Karpathy est un projet dans lequel un agent de codage améliore de manière autonome un script d'entraînement de réseau neuronal. L'agent édite le script, exécute une expérience d'entraînement de 5 minutes sur une carte graphique (GPU), vérifie la perte de validation et répète le processus, en conservant les modifications qui améliorent les résultats et en rejetant celles qui ne sont pas efficaces.
Contexte Technique
Le projet autoresearch de Karpathy fonctionne avec trois fichiers : prepare.py, train.py et program.md. Le fichier prepare.py télécharge les données, forme un tokeniseur et fournit le chargeur de données et la fonction d'évaluation. Le fichier train.py contient le modèle GPT, l'optimiseur et la boucle d'entraînement, et est le seul fichier que l'agent peut modifier. Le fichier program.md fournit des instructions pour l'agent sur ce qu'il peut modifier, comment évaluer les résultats et quand conserver ou rejeter les modifications.
La contrainte principale est un budget de temps d'entraînement fixe de 5 minutes par expérience. L'agent doit minimiser la perte de validation (val_bpb) dans cette fenêtre de temps. Tout dans le fichier train.py peut être modifié par l'agent, à condition que le code s'exécute sans erreur.
Analyse et Implications
Lorsque l'agent est limité à une seule carte graphique, il passe la plupart de son temps à attendre. Chaque cycle d'expérience comprend l'édition du script, l'exécution de l'entraînement, la lecture du résultat et la planification de la prochaine expérience. Les étapes d'édition et de planification sont rapides, mais l'exécution de l'entraînement prend environ 5 minutes, pendant lesquelles l'agent est inactif.
En utilisant 16 cartes graphiques, l'agent peut exécuter plusieurs expériences en parallèle, testant ainsi un ensemble factorial d'hypothèses dans une seule vague d'expériences. Cela permet à l'agent de découvrir des interactions entre les paramètres qui seraient manquées par une recherche séquentielle.
Perspective
L'expérience a montré que l'agent peut atteindre les mêmes résultats de perte de validation 9 fois plus rapidement en utilisant 16 cartes graphiques que avec une seule carte graphique. L'agent a également développé une stratégie pour exploiter les différences de performances entre les cartes graphiques H100 et H200, en utilisant les H100 pour les expériences préliminaires et les H200 pour la validation.
Ces résultats suggèrent que la mise à l'échelle de l'autorecherche peut conduire à des progrès significatifs dans l'amélioration des réseaux de neurones, en particulier lorsqu'elle est combinée avec des stratégies d'exploitation efficaces des ressources matérielles.