IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

GPT-5-Codex est un meilleur chercheur en IA que moi
Par Sean Goedecke

Le , par Sean Goedecke

67PARTAGES

3  2 
GPT-5-Codex est un meilleur chercheur en IA que moi, par Sean Goedecke

Dans « Quel est le modèle d'IA le plus puissant que vous pouvez entraîner sur un ordinateur portable en cinq minutes ? », j'ai tenté de répondre à une question idiote sur la recherche en IA. Vous pouvez probablement deviner de quoi il s'agissait.

J'ai discuté avec GPT-5 pour m'aider à démarrer avec les scripts Python et échanger des idées, mais c'était toujours moi qui faisais la recherche. C'est moi qui ai trouvé les idées, mené les expériences et décidé de la suite à donner en fonction des données. Le meilleur modèle que j'ai pu entraîner était un transformateur à 1,8 million de paramètres qui produisait des résultats comme celui-ci :

Il était une fois, un petit garçon nommé Tim. Tim avait une petite boîte avec laquelle il aimait jouer. Il poussait la boîte pour l'ouvrir. Un jour, il trouva une grosse balle rouge dans son jardin. Tim était tellement heureux. Il la ramassa et la montra à son amie Jane. « Regarde mon sac ! J'en ai besoin ! » dit-elle. Ils ont joué avec la balle toute la journée et se sont bien amusés.
Depuis, OpenAI a lancé GPT-5-codex et l'utilise apparemment (avec Codex, son outil de codage CLI) pour automatiser une grande partie de son développement de produits et de sa recherche en IA. Je voulais essayer la même chose. Codex-plus-moi a fait un bien meilleur travail que moi seul. Voici un exemple du meilleur résultat que j'ai obtenu avec le modèle que j'ai entraîné avec Codex :

Il était une fois, dans une grande forêt, un petit lapin nommé Ben. Ben adorait jouer avec ses amis dans la forêt. Un jour, la maman de Ben l'a vu et était triste parce qu'il ne trouvait pas son ami. Elle lui a demandé : « Pourquoi es-tu triste, Ben ? » Ben a répondu : « J'ai perdu mon jouet. Je ne le trouve pas. » Ben voulait aider Ben à retrouver son jouet. Il savait qu'ils pouvaient réparer le jouet. Il est allé chez Sam et a trouvé le jouet sous un arbre. Sam était très heureux et a dit : « Merci, Ben ! Tu es un très joli jouet ! » Ben sourit et répondit : « Oui, je serais ravi de t'aider. » Ils jouèrent ensemble toute la journée. La morale de l'histoire est qu'il faut aider les autres quand ils en ont besoin.
Comment s'est déroulé le processus pour y parvenir ?

À quoi ressemble la vibe research ?

Je voudrais l'appeler « vibe research ». Comme le « vibe coding », il s'agit d'effectuer une tâche technique difficile en s'appuyant sur le modèle. J'ai une idée intuitive assez large des approches qui sont essayées, mais je n'ai certainement pas une compréhension suffisamment approfondie pour mener cette recherche sans aide. Un véritable chercheur en IA tirerait beaucoup plus parti de cet outil.

Néanmoins, il a été très facile de se lancer. J'ai donné à Codex le chemin d'accès à mon répertoire scratch, je lui ai dit « continue la recherche », et il a immédiatement commencé à trouver des idées et à mener des expériences de son propre chef. D'une certaine manière, le défi « s'entraîner en cinq minutes » est parfait, car la boucle de rétroaction est très courte.

La boucle de base de la recherche en IA avec Codex (du moins en tant qu'amateur enthousiaste) ressemble à ceci :

  1. Codex modifie le script d'entraînement et effectue trois ou quatre exécutions (ce qui prend environ 20 minutes au total).
  2. En fonction des résultats, Codex suggère deux ou trois choses que vous pourriez essayer ensuite
  3. Je choisis l'une d'entre elles (ou, très occasionnellement, je suggère ma propre idée) et je reviens à (1).

Au bout de deux jours, j'ai collé les notes de recherche actuelles dans GPT-5-Pro, ce qui m'a un peu aidé, mais j'ai passé la grande majorité de mon temps dans cette boucle. Comme nous le verrons, les meilleures idées étaient celles que Codex avait déjà trouvées.

J'ai utilisé beaucoup de jetons pour faire cela. Cela ne me dérange pas, car j'ai payé pour le forfait à 200 dollars par mois, mais si vous ne voulez pas faire cela, vous devrez espacer un peu plus vos recherches. J'ai redémarré mon processus Codex tous les millions de jetons environ. Il n'y avait aucun problème pour reprendre là où il s'était arrêté dans ses notes précédentes, ce qui était appréciable.

J'ai exécuté Codex avec --sandbox danger-full-access. Par défaut, il n'avait pas accès à MPS, ce qui signifiait qu'il ne pouvait entraîner des modèles que sur le CPU. Il existe probablement une manière plus rationnelle de le mettre en sandbox, mais je n'ai pas pris la peine de la trouver. Je n'ai rencontré aucun problème d'agent incontrôlable, à moins que vous ne comptiez les quelques plantages de mon ordinateur portable dus à une utilisation excessive de la mémoire.

Comment s'est déroulée la recherche ?

Voici un bref résumé de la façon dont la recherche s'est déroulée au cours des quatre ou cinq jours que j'ai passés à l'étudier. Je suis resté avec l'ensemble de données TinyStories pour tout cela, en partie parce que je pense que c'est le meilleur choix et en partie parce que je voulais une comparaison 1:1 entre Codex et mes propres efforts.

Modèles N-gram

Codex et moi avons commencé par une série de modèles N-gram : au lieu d'entraîner un réseau neuronal, les modèles N-gram stockent simplement les probabilités conditionnelles d'un jeton en fonction des n jeton qui le précèdent. Ces modèles sont très rapides à produire (quelques secondes, pas quelques minutes), mais ils ne sont pas très performants. La raison principale est que même un modèle 5-gram ne peut pas inclure le contexte de plus de cinq jetons précédents, ce qui rend difficile la production d'un texte cohérent sur l'ensemble d'une phrase. Voici un exemple :

Il était une fois, dans une petite école. « Ils sont amis. Ils ont vu un grand étang. Il a tiré et tiré, mais la table ne bougeait toujours pas. Elle a rapidement couru vers la maison. Elle dit : « Sara a dit : « C'est toi qui l'as fait ! » Le plus lisse, dit-il, pour m'avoir aidé à décorer le gâteau.
Ce n'est pas si terrible ! Il y a des segments courts qui sont tout à fait cohérents. Mais cela ressemble un peu à ce que les sceptiques de l'IA pensent des LLM : juste des fragments de la source originale, remixés sans aucune ligne directrice unificatrice. La perplexité est de 18,5, pire que pratiquement tous les transformateurs que j'ai entraînés lors de ma dernière tentative.

Codex a formé 19 modèles n-gram différents, dont l'exemple ci-dessus (un modèle 4-gram) était le meilleur. À mon avis, c'est l'un des points forts de la recherche IA basée sur les LLM : il est trivial de dire au modèle « va balayer un tas de valeurs différentes pour les hyperparamètres ». Bien sûr, vous pouvez le faire vous-même. Mais il est beaucoup plus facile de simplement demander au modèle de le faire.

Retour aux transformateurs

Après cela, Codex a passé beaucoup de temps à travailler sur les transformateurs. Il a formé environ 50 transformateurs normaux de différentes tailles, avec différents nombres de têtes, de couches, etc. La plupart de ces essais n'ont pas été particulièrement fructueux. J'ai été surpris de constater que les hyperparamètres que j'avais sélectionnés lors de ma précédente tentative étaient assez compétitifs, même si cela n'aurait peut-être pas dû m'étonner, car ils correspondaient à la limite inférieure des lois d'échelle de Chinchilla.

Finalement, Codex a tout de même trouvé un modèle de perplexité de 8,53 (3 couches, 4 têtes et une dimension de 144), ce qui constituait une nette amélioration par rapport à ma dernière tentative. Je ne suis pas vraiment convaincu qu'il s'agisse d'une amélioration architecturale. L'une des leçons tirées de l'entraînement de cinquante modèles différents est qu'il existe une grande variance entre les différentes graines. Une amélioration de la perplexité d'un peu plus de 1 correspond plus ou moins à ce que j'ai observé avec une « graine chanceuse ».

C'était une approche intéressante pour relever le défi : miser sur le volume pur et espérer une formation chanceuse. Vous ne pouvez pas faire cela avec un modèle plus grand, car la formation prend trop de temps, mais la limite de cinq minutes le rend possible.

Minimiser la perplexité était une erreur

La prochaine chose que Codex a essayée, sur la base de certains commentaires que j'ai collés à partir de GPT-5-Pro, était la « fusion superficielle » : au lieu de former un nouveau modèle, mettre à jour la logique de génération pour mélanger les jetons prédits par le transformateur avec un modèle n-gram, une « tête kNN » (qui recherche les états cachés « proches » de l'état caché actuel du transformateur et prédit leurs jetons) et une « tête cache » qui rend le modèle plus susceptible de répéter les mots qui sont déjà dans le contexte.

Cela a immédiatement fait baisser la perplexité à 7,38 : un point de moins que notre meilleur transformateur. J'étais enthousiaste, mais le contenu généré était vraiment mauvais :

Il était une fois, dans une petite maison, un garçon nommé Tim. Tim adorait jouer dehors avec son ballon. Un certain M. Skip s'amusait beaucoup. Il courait partout tous les jours. Un jour, Tim jouait avec son nouveau ballon près de sa maison. Tim jouait avec son ballon et s'amusait beaucoup. Mais alors, il a vu un grand arbre et a décidé de l'escalader. Tim a essayé de grimper à l'arbre, mais il était trop grand. Il était trop petit pour atteindre le sommet de l'arbre. Mais l'arbre était trop haut. Le petit arbre était trop haut pour lui. Bientôt, Tim était près de l'arbre. Il était courageux et a grimpé à l'arbre. Mais quand il est arrivé au sommet, il était triste. Tim a vu un oiseau sur
Que s'est-il passé ? J'ai trop optimisé la perplexité. Il s'avère que les transformateurs purs qui avaient une perplexité plus élevée étaient meilleurs pour écrire des histoires. Ils avaient plus de cohérence sur toute la longueur de l'histoire, ils évitaient de générer des artefacts de répétition étranges (comme « , ») et ils n'étaient pas aussi répétitifs.

Je me suis un peu perdu en essayant de trouver comment noter mes modèles sans me fier uniquement à la perplexité. J'ai proposé quelques critères, comme la cohérence grammaticale, les schémas de répétition, etc., avant d'abandonner et d'utiliser simplement le LLM comme juge. À ma grande honte, j'ai même généré une nouvelle clé API pour le LLM avant de réaliser que je communiquais déjà avec un LLM puissant via Codex et que je pouvais simplement demander à Codex d'évaluer directement les résultats du modèle.

Distillation à partir de n-gram

La dernière idée que j'ai essayée, et qui s'est avérée la plus fructueuse, consistait à distiller un transformateur à partir d'un modèle enseignant n-gram. Tout d'abord, nous entraînons un modèle n-gram, ce qui ne prend qu'environ 10 secondes. Ensuite, nous entraînons un transformateur, mais pendant les 200 premières étapes d'entraînement, nous poussons le transformateur à prédire les tokens que le modèle n-gram prédirait. Après cela, le transformateur continue à s'entraîner sur les données TinyStories comme d'habitude.

Voici un exemple de résultat :

Il était une fois, dans une grande forêt, un petit lapin nommé Ben. Ben adorait jouer avec ses amis dans la forêt. Un jour, la maman de Ben l'a vu et était triste parce qu'il ne trouvait pas son ami. Elle lui a demandé : « Pourquoi es-tu triste, Ben ? » Ben a répondu : « J'ai perdu mon jouet. Je ne le trouve pas. » Ben voulait aider Ben à retrouver son jouet. Il savait qu'ils pouvaient réparer le jouet. Il est allé chez Sam et a trouvé le jouet sous un arbre. Sam était très heureux et a dit : « Merci, Ben ! Tu es un très joli jouet ! » Ben sourit et répondit : « Oui, je serais ravi de t'aider. » Ils jouèrent ensemble toute la journée. La morale de l'histoire est qu'il faut aider les autres quand ils en ont besoin.
Je trouve ça plutôt bien ! Il y a des personnages qui reviennent tout au long de l'histoire. Il y a un fil conducteur – le jouet perdu de Ben – même si cela confond un peu « jouet » et « ami ». C'est une histoire cohérente, avec une introduction, un problème, une solution et une morale. C'est bien mieux que tout ce que j'ai pu créer en cinq minutes.

Pourquoi est-ce mieux ? Je pense que l'intuition juste ici est que les transformateurs doivent consacrer beaucoup de temps de calcul initial (disons deux minutes) à apprendre à construire des phrases en anglais grammaticalement correctes. Si vous commencez l'entraînement en passant dix secondes à entraîner un modèle n-gram qui peut déjà produire une grammaire plus ou moins correcte, vous pouvez accélérer votre apprentissage de la grammaire et consacrer une minute et cinquante secondes supplémentaires à l'apprentissage du contenu.

J'aime beaucoup cette approche. C'est exactement ce que je recherchais depuis le début : une astuce architecturale sympa qui aide vraiment, mais qui n'a vraiment de sens que pour ce défi étrange.

Conclusion

Je ne me fais aucune illusion sur le fait que cela fasse de moi un véritable chercheur en IA, pas plus qu'un « vibe codeur » n'est un ingénieur logiciel. Néanmoins, je suis surpris que cela ait réellement fonctionné. Et c'était très amusant !

J'ai mis le code en ligne ici si vous voulez reprendre là où je me suis arrêté, mais vous feriez peut-être mieux de repartir de zéro avec Codex ou votre agent de codage préféré.

Source : GPT-5-Codex is a better AI researcher than me

Et vous ?

Pensez-vous que cette expérience est crédible ou pertinente ?
Quel est votre avis sur le sujet ?

Voir aussi :

Pourquoi DeepSeek est bon marché à grande échelle mais coûteux à exploiter localement, par Sean Goedecke

Déployez votre propre plateforme d'IA de Vibe Coding en un seul clic : Cloudflare met en open source sa plateforme de codage IA complète de bout en bout "VibeSDK"

Comment construire une recherche d'entreprise de type ChatGPT sur vos propres données, d'après Microsoft
Vous avez lu gratuitement 240 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !