Entraîner la capacité d’auto-correction des modèles de langage par apprentissage par renforcement
(arxiv.org)- SCoRe de Google DeepMind est une approche d’apprentissage par renforcement en ligne multi-tour où le LLM apprend à partir de trajectoires de correction qu’il génère lui-même, afin de développer sa capacité à corriger ses propres réponses sans feedback externe
- Les approches SFT classiques sont vulnérables soit à un décalage de distribution entre les erreurs du jeu d’entraînement et les erreurs réelles du modèle, soit à un effondrement du comportement où la seconde réponse corrige à peine la première
- SCoRe commence par contraindre la distribution de la première tentative à rester proche du modèle de base, tout en initialisant la seconde tentative pour qu’elle s’améliore, puis renforce ensuite les vrais comportements de correction via du reward shaping
- Dans des expériences avec Gemini 1.0 Pro et Gemini 1.5 Flash, les performances d’auto-correction progressent de 15,6 points sur MATH et de 9,1 points sur HumanEval par rapport au modèle de base
- Le prompting ou un simple SFT hors ligne ne suffisent pas à faire émerger de façon stable une auto-correction intrinsèque ; il faut une conception d’apprentissage par renforcement sur données auto-générées qui empêche l’effondrement
Le problème d’auto-correction visé par SCoRe
- Les LLM sont utiles pour des tâches de raisonnement comme les mathématiques et le code, mais ne parviennent pas à exécuter de manière fiable, au moment de l’inférence, une méta-stratégie consistant à revoir puis corriger leur propre réponse
- L’auto-correction désigne la capacité du modèle à réexaminer sa réponse initiale pour la transformer en une meilleure réponse finale
- Ce travail se concentre sur le cadre d’auto-correction intrinsèque, où le modèle corrige sa propre réponse sans entrée externe
- Au moment de l’inférence, on n’utilise ni vérificateur de réponse ni feedback externe
- Pendant l’entraînement, on suppose l’accès à une fonction de récompense évaluant si la sortie du modèle est correcte
- SCoRe entraîne un modèle unique à produire à la fois la première réponse et sa correction, sans modèle de révision séparé
Où les approches existantes bloquent
- Quand on tente de provoquer l’auto-correction uniquement par prompting, plusieurs travaux antérieurs montrent que les performances peuvent au contraire baisser
- Certaines méthodes dépendent de conditions supplémentaires comme la bonne réponse, des cas de test, un modèle plus puissant, des annotations humaines ou un modèle de refinement distinct
- Les approches fondées sur le SFT peuvent exploiter des trajectoires de correction auto-générées, mais en pratique elles ne produisent pas de fort effet d’auto-correction
- Les expériences comparatives sur MATH utilisent des variantes de STaR et de Pair-SFT
- STaR conserve uniquement les trajectoires où une réponse erronée a été corrigée avec succès, puis applique un SFT
- Pair-SFT entraîne un modèle unique sur des traces de réparation synthétiques associant une réponse incorrecte à une réponse correcte
Résultats des expériences d’auto-correction fondées sur le SFT
- Dans des expériences MATH basées sur Gemini 1.5 Flash, le modèle de base obtient 52,6 % de précision au premier essai, puis 41,4 % au second, soit une dégradation de -11,2 points
- Pair-SFT fait monter la précision du second essai à 54,2 %, mais le gain par rapport au premier essai ne s’élève qu’à 1,8 point
- Dans sa configuration de base, STaR passe de 55,4 % au premier essai à 41,2 % au second, soit une baisse de -14,2 points
- Avec l’ajout de données correct-to-correct, STaR améliore Δ(t1,t2) à 0,4 point, mais l’effet d’auto-correction reste faible
- Avec l’ajout de données correct-to-correct, Pair-SFT obtient 55,0 % au premier comme au second essai, ce qui traduit un biais vers l’absence de modification de la réponse
Deux modes d’échec
- Les méthodes fondées sur le SFT sont fragiles face au décalage de distribution
- Les données d’entraînement sont alignées sur les erreurs de première tentative produites par le modèle de base
- Les performances de correction peuvent se dégrader sur la distribution d’erreurs de première tentative générée directement par le modèle entraîné
- Pair-SFT améliore la correction sur un ensemble fixe de premières réponses, mais dégrade la précision d’auto-correction lorsque l’apprenant génère lui-même ses premières réponses
- En cas d’effondrement du comportement, la seconde tentative n’apporte pas de correction réelle, ou seulement des modifications très conservatrices
- L’analyse du ratio d’edit distance montre que les modèles STaR et SFT suivent souvent un schéma où ils modifient à peine leur réponse
- Un RL multi-tour standard peut améliorer les performances des deux tentatives, mais sans accroître l’écart Δ(t1,t2) entre la première et la seconde, ce qui rend difficile l’émergence d’une véritable capacité d’auto-correction
La structure d’apprentissage de SCoRe
- SCoRe est une approche de RL multi-tour on-policy qui apprend sur des données en ligne auto-générées afin de réduire le décalage de distribution
- L’apprentissage RL de base utilise une méthode de gradient de politique REINFORCE avec une pénalité de divergence KL par rapport à un modèle figé
- Le Stage I est une phase d’initialisation destinée à séparer les comportements des deux tentatives
- Une contrainte KL maintient la distribution de la première tentative proche du modèle de base
- La seconde tentative est entraînée à obtenir une récompense élevée
- L’objectif est de produire une politique initiale capable d’explorer de meilleures réponses lors du second essai
- Le Stage II optimise ensuite les deux tentatives conjointement
- Un bonus de progression est ajouté à la récompense de la seconde tentative
- Ce bonus est renforcé quand la seconde tentative améliore la justesse par rapport à la première
- Les transitions où une première réponse correcte devient incorrecte au second essai reçoivent un fort effet négatif
Pourquoi le reward shaping est nécessaire
- Avec un objectif RL standard uniquement, deux stratégies différentes peuvent toutes deux émerger
- Une stratégie qui améliore la première réponse dans la seconde
- Une stratégie qui produit dès le départ la meilleure première réponse possible et ne modifie presque rien ensuite
- Dans les données d’entraînement, les deux stratégies peuvent sembler bonnes, mais la seconde ne se généralise pas à l’auto-correction sur de nouveaux problèmes
- Le reward shaping de SCoRe fait entrer dans la récompense non seulement la correction finale, mais aussi l’évolution de la correction
- Cette conception renforce non pas simplement les réponses à forte récompense, mais le comportement consistant à transformer une première réponse erronée en une seconde réponse correcte
Performances et exemples
- SCoRe montre sur MATH des exemples où des erreurs arithmétiques et de raisonnement sont corrigées au second essai
- Dans l’exemple arithmétique, la première réponse 1 issue d’un calcul de produit modulo est corrigée en 3 au second essai
- Dans l’exemple de raisonnement, la première réponse ∞ à un problème de comptage de valeurs d’une fonction est corrigée en 3 au second essai
- Avec Gemini 1.0 Pro et Gemini 1.5 Flash, SCoRe atteint un niveau de référence en auto-correction
- Par rapport aux modèles Gemini de base, le gain d’auto-correction atteint 15,6 points sur MATH et 9,1 points sur HumanEval
- Dans les expériences de scaling à l’inférence sur MATH, il existe une plage où utiliser les échantillons pour de l’auto-correction séquentielle est plus efficace que de les consacrer uniquement à une génération directe en parallèle
Implications pratiques
- L’apprentissage de l’auto-correction se prête mal à une approche consistant uniquement à collecter des réponses correctes puis à faire du SFT
- Si le modèle doit corriger au moment de l’inférence les erreurs qu’il produit lui-même, il doit aussi apprendre pendant l’entraînement les comportements de correction sur la distribution de ses propres réponses
- La contrainte clé de SCoRe est qu’il faut une fonction de récompense capable d’évaluer la correction pendant l’entraînement, mais que cette récompense n’est pas utilisée au moment de l’inférence
- Pour développer la capacité d’auto-correction tout en conservant le déploiement d’un modèle unique, il faut un RL multi-tour et une conception de récompense anti-effondrement, sans modèle de correction séparé ni supervision d’un teacher
1 commentaires
Avis sur Hacker News
Cela ressemble à une approche similaire au modèle o1 d’OpenAI, mais comme l’article sur o1 n’est pas public, il n’est pas cité.
Malheureusement, je ne vois aucune mention d’une publication des poids.
C’est peut-être aussi ce qu’a fait o1, mais le changement le plus important me semble être le processus de pensée à l’exécution, où, après avoir reçu un prompt et avant de donner une réponse définitive, le modèle « pense » avec des mots et se réajuste au moment de l’exécution.
Si cette compréhension est correcte, les deux approches ne sont pas similaires. À ma connaissance, OpenAI utilise l’apprentissage par renforcement pour tous ses modèles ultérieurs depuis la première version de ChatGPT, et c’est d’ailleurs pour cela qu’on peut laisser du feedback dans l’UI.
L’article tournait beaucoup autour du sujet au lieu d’expliquer directement sa thèse centrale, donc je l’ai trouvé un peu difficile à comprendre. D’après ce que j’ai compris, l’objectif est de faire en sorte que les LLM donnent des réponses plus exactes à des problèmes difficiles.
Une hypothèse consiste à entraîner le modèle à un comportement d’auto-correction, afin qu’il prenne en entrée une mauvaise réponse et l’améliore pour produire une meilleure réponse, voire la bonne.
Par le passé, plusieurs techniques d’apprentissage par renforcement ont déjà tenté d’entraîner ce comportement en utilisant la qualité de la réponse corrigée comme récompense, mais elles n’ont pas bien fonctionné, et le comportement appris ne s’est pas bien généralisé.
Le point central de cet article est que, lorsqu’un modèle reçoit des exemples d’entraînement
Answer 1, Reasoning, Corrected Answerainsi qu’un signal lui disant de « rendre Corrected Answer meilleure », il existe en réalité deux solutions parfaitement possibles. La première consiste à améliorerReasoning, Corrected Answer, comme nous le souhaitons ; l’autre consiste simplement à améliorerAnswer 1lui-même, de sorte queCorrected Answer=Answer 1.Dans les travaux précédents, c’est cette seconde option qui se serait produite, ce qui expliquerait l’échec de l’apprentissage du comportement souhaité. Le modèle ne cherchait pas à améliorer son comportement de correction, mais simplement sa première réponse.
La solution proposée par cet article consiste à modifier légèrement la procédure d’entraînement pour favoriser la première approche. C’est donc une tentative d’entraîner réellement le comportement souhaité, à savoir corriger une réponse précédente.
L’entraînement se déroule en deux étapes. À la première étape, on force la première réponse à rester inchangée au moyen d’une perte de divergence KL, tout en donnant une récompense si la deuxième réponse s’améliore. Cela permet de conserver la distribution des réponses initiales, évitant ainsi que les mauvaises réponses disparaissent plus tard du modèle pendant l’entraînement et que celui-ci voie moins de « mauvaises réponses », tout en initialisant le comportement d’auto-correction dans le modèle.
À la deuxième étape, le modèle peut aussi modifier la première réponse, mais la fonction de récompense est ajustée pour attribuer une récompense plus élevée aux retournements où la première réponse était mauvaise et la deuxième bonne. À cette étape, le modèle peut utiliser à la fois une stratégie consistant à améliorer la première réponse et une stratégie consistant à améliorer l’auto-correction, mais la seconde reçoit une récompense plus importante. Cela ressemble à un processus d’affinage visant à améliorer la performance globale tout en conservant le comportement d’auto-correction.
D’après les métriques, cette technique fonctionne mieux et se généralise mieux.
Cela dit, je crains un peu qu’à la deuxième étape, le modèle n’apprenne à rendre volontairement
Answer 1plus mauvaise pour maximiser la récompense de retournement. Il faudrait un mécanisme d’équilibrage pour éviter queAnswer 1ne se dégrade, mais je ne sais pas s’il est inclus dans la fonction de récompense ni si cette inquiétude est réellement pertinente.Answer 1lui-même, de sorte queCorrected Answer=Answer 1».Améliorer
Answer 1n’est-il pas justement l’objectif au départ ? À lire l’explication seule,Answer 1donne l’impression d’être une sortie du LLM, pas une entrée.Les LLM ne peuvent pas se souvenir directement de l’expérience sensorielle de leur propre processus d’apprentissage. L’une des principales façons dont je me corrige moi-même consiste, quand je m’apprête à parler de quelque chose, à examiner comment/pourquoi je le sais, et à estimer si je le sais réellement, si je suis en train d’inventer, ou si je l’ai entendu d’une source peu fiable
Si un LLM ne peut pas, d’une manière ou d’une autre, se souvenir de son propre apprentissage, je pense que l’autocorrection est difficile
Puis de post-entraîner le modèle final pour qu’il se souvienne où il a lu tel ou tel texte, ou pour qu’il ne se souvienne d’aucune expérience si un texte qu’il n’a pas lu apparaît ?
Si quelqu’un essaie ça et réussit, j’arrête mon doctorat et je retourne être moniteur de camp de vacances
D’après le résumé, l’article explore l’entraînement conscient des sources pour donner cette capacité aux LLM. Concrètement, il s’agit (i) d’entraîner un LLM à associer les connaissances de chaque document à un identifiant unique du document source, puis (ii) de faire de l’instruction tuning pour qu’il cite, à partir d’un prompt donné, les sources de pré-entraînement qui l’étayent
Ceci vaut aussi le détour : https://www.sciencedirect.com/science/article/pii/S1571064523001094
La manière dont o1 est entraîné est décrite, dans cette formalisation, par le modèle de la strange particle
Même pour des connaissances inscrites dans un système, comme l’informatique, l’expérience sensorielle s’estompe avec le temps à l’arrière-plan. Par exemple, comme beaucoup de gens qui font de l’informatique, je peux donner spontanément les caractéristiques de performance en O() de pas mal d’algorithmes, mais l’endroit précis où j’ai appris tel algorithme s’est effacé depuis longtemps
Le processus habituel quand les humains se corrigent eux-mêmes n’a rien d’une grande opération du type « évaluer si je sais ça » ou « me rappeler si je l’ai entendu d’une source peu fiable ». En général, il y a une sensation floue de « je n’ai pas totalement compris », et l’autocorrection consiste à revérifier l’information auprès d’une source fiable
Je ne pense donc pas que l’expérience sensorielle soit aussi importante qu’on l’imagine dans le rappel en mémoire
Spoiler : dans le paradigme de la prédiction autorégressive du prochain token, on ne peut pas éliminer les hallucinations ; c’est la fameuse loi de LeCun
Le problème ici, c’est que les gens veulent utiliser les modèles de langage non pas pour ce qu’ils savent réellement bien faire — générer du texte semi-créatif — mais comme des solveurs déterministes de problèmes
Dans ce cas, on pourrait peut-être l’entraîner à donner des réponses moins assurées et réduire sa tendance à halluciner
Je l’explique souvent ainsi aux gens : imaginez une entreprise qui n’aurait qu’un service de communication. Elle est très douée pour produire des communiqués de presse et répondre aux questions des journalistes, mais comme le reste de l’entreprise n’existe pas, rien ne contraint réellement le texte produit
Dans un autre univers où les gens comprendraient cela, les LLM ne seraient absolument pas utilisés pour des choses sérieuses, mais beaucoup pour de petits projets artistiques amusants
Il suffit de résoudre correctement la fusion nucléaire une seule fois
Est-ce en fait une forme de distillation de connaissances ?
Je n’aime pas que les critiques de l’IA aient popularisé le terme hallucination. Il anthropomorphise un amas de statistiques et donne l’impression qu’il est engagé dans un processus de pensée profond, proche de l’esprit humain
Non, il n’« hallucine » pas. Il ne ment pas et n’invente pas non plus. Il recrache des données selon ce que déclenchent les weights sous-jacents
Si c’était un endpoint d’API JSON ordinaire, on ne dirait pas que l’API hallucine ; on dirait qu’elle est cassée, que « cette API est nulle »
Aucun système nerveux ne pouvant stocker parfaitement ses données d’apprentissage, nous confabulons tous dans une certaine mesure
En revanche, l’« hallucination » humaine ressemble plutôt à un effondrement spécifique de la boucle de rétroaction sensorielle. Les LLM n’ont tout simplement pas ce processus au départ
Une hallucination survient lorsque la boucle interne de rétroaction sensorielle prend le dessus sur l’entrée sensorielle réelle, produisant et traitant une fausse expérience sensorielle ou un flux de signaux. Cette fausse expérience en cours peut inclure ou non une partie d’informations sensorielles réelles
Quand nous rêvons, nous hallucinons. Une boucle d’expérience sensorielle détachée des sensations réelles tourne librement, mais elle a aussi un but productif
La raison pour laquelle les sensations comportent une rétroaction est que l’interprétation des entrées sensorielles sert d’indice pour faciliter l’interprétation de l’entrée de l’instant suivant. Mais si une nouvelle entrée s’écarte fortement des attentes, il est important que l’interprétation en cours soit réinitialisée afin de se réorienter rapidement
Pour corriger une mauvaise interprétation face à un changement réel de contexte, il est non seulement important de revenir à l’interprétation brute de l’entrée, mais cette réinitialisation signale aussi qu’un événement nouveau ou inattendu s’est produit, et a donc de fortes chances de déclencher l’apprentissage
Le choix du terme « hallucination » a donc été malheureux et source de malentendus
Voici des exemples d’articles qui l’utilisaient ainsi avant les LLM
2021 : The Curious Case of Hallucinations in Neural Machine Translation (https://arxiv.org/abs/2104.06683)
2019 : Identifying Fluently Inadequate Output in Neural and Statistical Machine Translation (https://aclanthology.org/W19-6623/)
Même si l’on guide avec un algorithme intelligent un prédicteur idiot et non intelligent du mot suivant, cela reste au final un algorithme non intelligent
Certes, il classe les déchets avec plus d’élégance, mais cela reste des déchets
J’espérais qu’une approche proche de l’apprentissage par renforcement remplacerait les approches proches des Transformers, mais c’était plutôt un rêve vain