Le juge et l’oracle : pourquoi un modèle ne peut pas dépasser ce qui le note
Laisser un modèle réfléchir plus longtemps est l’ingrédient qui manque. Mais un générateur entraîné contre un juge appris hérite du plafond de ce juge.
National Gallery of Art, Washington
Demandez à un modèle de langage quelle est la capitale de la France. Puis demandez-lui de vous décrire le théorème d’incomplétude de Gödel.
La première question ne demande aucune réflexion. La réponse est mémorisée, le modèle a peu de chances de se tromper, et aucune puissance de calcul supplémentaire ne l’améliorerait. La seconde est un autre objet. Le modèle peut certes recracher l’ensemble des informations qu’il a mémorisées sur le sujet. Mais vu la complexité du problème, il aurait besoin d’un peu de temps pour vérifier que chacune des étapes qu’il décrit est correcte, et que ce qu’il délivre l’est aussi.
Voici le pacte que la plupart d’entre nous accepteraient, je crois. Nous préférerions tous attendre une minute ou deux avant d’avoir une réponse, plutôt que d’en avoir une en moins d’une seconde et qu’elle soit fausse. Et si l’on imagine un modèle nous aidant à résoudre un problème que l’humanité n’a pas résolu, ce qui me semble être l’un des objectifs derrière le terme d’intelligence générale, alors le pacte s’élargit. Nous serions prêts à dire : voilà un mois de puissance de calcul pour réfléchir à ce problème et explorer les possibles, à condition qu’à la fin tu l’aies résolu.
La question devient donc concrète. Comment fait-on pour laisser un modèle réfléchir plus longtemps à un problème ?
L’hallucination comme ressource
Quel que soit le mécanisme retenu, il lui faut un processus d’exploration : générer des possibles, vérifier s’ils tiennent, et regarder s’ils nous rapprochent d’une solution.
Ce qui mène quelque part de contre-intuitif. Ce dont ce processus a besoin, c’est d’hallucinations.
L’hallucination, c’est précisément ce que l’on cherche à minimiser lorsqu’on met un modèle en production, et à juste titre. Mais si l’on veut un modèle efficace pour raisonner, qui explore des possibles afin de converger vers une solution, alors paradoxalement on a envie qu’il hallucine. Les deux régimes méritent d’être séparés nettement, parce que c’est là que l’idée passe ou ne passe pas. Il y a une phase où l’on génère, et une phase où l’on sélectionne. En production, une hallucination est une réponse, et c’est un défaut. À l’intérieur d’une exploration, la même hallucination est une hypothèse, et c’est la matière première. Le mot ne désigne pas deux phénomènes. Il désigne un seul phénomène à deux endroits différents de la chaîne.
C’est après tout un processus cognitif que nous utilisons nous-mêmes. Nous générons des possibles, mauvais pour la plupart, puis nous les sélectionnons, nous les confrontons au monde réel, et nous utilisons ce qui survit comme solution au problème que nous voulions résoudre.
Voyez ce que cela donne sur une tâche de programmation. Nous ne voudrions pas que le modèle nous recrache intuitivement une solution plausible. Nous voudrions qu’il se dise : attends, je vais vérifier les différentes étapes que je te propose. J’ai ma propre simulation de mon côté, mon propre éditeur de code, ma propre manière de compiler, et je vais pouvoir vérifier, pourquoi pas en faisant un test unitaire, que cela fonctionne. Et à la fin, je peux te donner mon raisonnement, ou directement la réponse.
Retenez cet exemple. Il travaille plus qu’il n’en a l’air.
Superviser le processus, non la sortie
Il existe un papier de chercheurs d’OpenAI, Let’s Verify Step by Step, qui donne une forme à ce mécanisme.
Le dispositif : un premier modèle génère une série d’étapes de raisonnement qui convergent vers une réponse finale, et un modèle de récompense examine ce qui a été produit pour le juger. Toute l’affaire tient à ce que ce modèle de récompense regarde. Il peut ne regarder que la sortie et dire si la réponse finale est correcte : c’est un modèle de récompense avec supervision de la sortie, un ORM. Ou il peut avoir un avis sur chaque étape intermédiaire, cette étape de raisonnement est bonne, celle-ci aussi, et la réponse à la fin suit : c’est un modèle de récompense avec supervision du processus, un PRM.
La conclusion du papier est que le PRM a tendance à être meilleur que l’ORM, précisément parce qu’il a appris à superviser un processus de raisonnement plutôt qu’à noter un résultat.
Mais je pense qu’il y a dans ce papier une conclusion plus importante, et elle est à peu près cachée. Ce n’était pas l’élément principal d’attention. Une fois que l’on dispose d’un modèle de récompense capable de superviser des raisonnements, ce modèle cesse d’être un filtre que l’on applique à l’inférence. Il devient une cible d’entraînement. Le modèle génératif peut s’entraîner lui-même, avec le modèle de récompense comme signal de retour, jusqu’à le satisfaire.
C’est ce saut-là. Non plus un dispositif de sélection : une boucle d’apprentissage. Et c’est la seule raison pour laquelle j’appellerais tout ceci un ingrédient de l’intelligence générale plutôt qu’une astuce de décodage.
On peut pousser plus loin en pensée. Un générateur qui produit un très grand nombre de raisonnements candidats, un PRM qui les émonde étape par étape, et une seule solution, la meilleure, délivrée à celui qui a posé la question. Je ne serais pas surpris d’en voir une version dans ce qu’OpenAI publiera ensuite, dans une 4.5 ou une 5. Je n’ai pas de boule de cristal, et ce n’est pas la partie intéressante.
Le mur qui rend ce détour nécessaire
Pourquoi aller chercher du calcul supplémentaire à la sortie, plutôt que d’entraîner simplement sur davantage de données ?
J’en ai parlé il y a un mois, dans un épisode sur le Bitter Lesson, je serai donc bref. Les travaux autour de Chinchilla regardent ensemble trois quantités : la puissance de calcul disponible, le nombre de paramètres et la taille du jeu de données. Ce qu’ils disent, c’est que ces trois-là doivent rester en équilibre. Trop peu de données pour l’architecture et l’on sous-exploite ses paramètres ; trop de données pour la puissance de calcul et l’on n’y trouve plus les motifs. On ne peut pas faire grossir un terme sans les autres.
Or le Bitter Lesson réclame des méthodes assez simples pour continuer à profiter de la croissance du calcul. Soit. Mais de ces trois quantités, celle qui s’épuise en premier n’est pas le calcul. C’est le texte humain.
Et voici l’observation qui m’a convaincu que le problème est ailleurs. Vu la taille des bases de données utilisées aujourd’hui, nous nous approchons d’avoir collecté la totalité du texte humain. Ce corpus devrait déjà contenir toute l’information dont un modèle a besoin pour comprendre au moins une partie du fonctionnement du monde. Et pourtant, quand on utilise ces modèles, on constate encore un réel plafond de raisonnement. Certains enchaînements ne se font tout simplement pas, alors qu’ils devraient être dans les données.
Le problème n’est donc pas ce qui entre. C’est ce qui se passe à la sortie. Ce à quoi la section précédente répondait, en réalité.
Une remarque en passant, et j’espère qu’elle le restera : à mesure que les modèles publient leur propre production sur internet, cette production commence à revenir dans les jeux d’entraînement. Un modèle qui s’empoisonne avec ce qu’il a écrit. Nous verrons l’ampleur que cela prendra.
La limite
Vient la partie sur laquelle je bute, parce que je ne crois pas qu’elle ait encore une solution.
Le modèle de récompense apprend sur des annotations humaines. Ce qui veut dire deux choses, et la seconde découle de la première. Il n’a aucun moyen de progresser par lui-même. Et donc le modèle génératif qui s’entraîne contre lui ne pourra pas non plus le surpasser. Il peut s’en approcher. Il peut le rejoindre. Il ne peut pas le franchir.
Voyez ce qui s’est passé au juste. Le plafond n’a pas été supprimé, il a été déplacé : des données d’entraînement vers les annotations de raisonnement. C’est un gain véritable, parce qu’il y a plus de marge sous le second que sous le premier. Ce n’est pas une sortie.
Le précédent mérite d’être énoncé simplement, parce que nous avons déjà vu cette forme. AlphaGo a appris depuis une base de parties humaines, a absorbé les motifs de la manière dont joue un humain, et les a reproduits extrêmement bien. C’est seulement avec AlphaGo Zero, quand on a cessé de montrer au modèle comment faire et qu’on l’a laissé découvrir par lui-même en explorant, qu’il est devenu meilleur que n’importe quel joueur, et meilleur que l’AlphaGo d’origine. Un PRM appris sur des annotations humaines, c’est AlphaGo. Ce qu’il faudrait, c’est AlphaGo Zero.
Ce qui nous dit vers quoi viser. Non pas un juge mais un oracle. Et un cadre où les deux modèles coapprennent : à mesure que le générateur se rapproche des capacités du modèle de récompense, ce progrès devrait débloquer de nouveaux chemins d’exploration, que le modèle de récompense pourra ensuite vérifier par lui-même, sans annotation humaine, comme étant bons. Le modèle de récompense pourrait même apprendre à solliciter l’oracle à l’inférence, pour vérifier les étapes intermédiaires dans la limite de ce que l’oracle sait vérifier.
Et voici la question qui coûte. Au Go, quelque chose était disponible trivialement qui ne l’est pas du tout ici : l’environnement de simulation venait avec le jeu. Les règles étaient l’oracle. Pour le raisonnement en général, quel est l’environnement dans lequel une intelligence apprend en constatant les effets de ses propres actes ? Je n’ai pas de réponse. Je ne suis pas certain que quiconque en ait une.
Ce qui manque n’est pas un modèle, c’est un monde
Je termine sur ce qui me semble le plus intéressant dans tout cela, et qui est aussi le moins intuitif.
Nous n’avons pas besoin d’une machine dotée de l’intelligence d’un humain pour résoudre des problèmes qu’un humain n’a pas résolus. Un modèle moins intelligent que les meilleurs d’entre nous, mais qui teste un nombre énorme de solutions sans se fatiguer, pourrait converger vers des réponses qu’aucun humain brillant n’a trouvées, pour la simple raison qu’aucun humain n’allait y passer autant de temps.
Mais cela ne marche que dans un sens, et l’asymétrie compte. Le temps passé à réfléchir vaut exactement ce contre quoi on peut le vérifier. Sans rien qui réponde, un modèle qui explore un mois est un modèle qui élabore un mois, et rien ne garantit que ce qu’il produit à la fin soit plus vrai que ce qu’il produisait à la première heure.
Städel Museum, Frankfurt
Un oracle, c’est du réel qui refuse d’être d’accord. Toute la difficulté de l’étape suivante, pour autant que je puisse en juger, tient à ceci : nous savons construire celui qui pense, et nous ne savons pas construire ce contre quoi il pense.