Illustration de l’apprentissage par renforcement à partir des retours humains (RLHF)

Illustration de l'apprentissage par renforcement à partir des retours humains (RLHF).

Cet article a été traduit en chinois simplifié 简体中文 et en vietnamien đọc tiếng việt . Vous souhaitez le traduire dans une autre langue ? Contactez Nathan à huggingface.co .

Les modèles de langage ont montré des capacités impressionnantes ces dernières années en générant des textes divers et captivants à partir de stimuli humains. Cependant, définir ce qui constitue un texte “bon” est intrinsèquement difficile car cela dépend du contexte et est subjectif. Il existe de nombreuses applications, telles que l’écriture d’histoires où la créativité est souhaitée, des textes informatifs qui doivent être véridiques, ou des extraits de code que nous voulons rendre exécutables.

Écrire une fonction de perte pour capturer ces attributs semble inextricable et la plupart des modèles de langage sont encore entraînés avec une simple perte de prédiction du jeton suivant (par exemple, une entropie croisée). Pour pallier les lacunes de la perte elle-même, les gens définissent des métriques qui sont conçues pour mieux capturer les préférences humaines, telles que BLEU ou ROUGE . Bien qu’elles soient mieux adaptées que la fonction de perte elle-même pour mesurer les performances, ces métriques comparent simplement le texte généré à des références avec des règles simples et sont donc également limitées. Ne serait-il pas formidable d’utiliser les commentaires humains sur le texte généré comme mesure des performances, voire d’utiliser ces commentaires comme une perte pour optimiser le modèle ? C’est l’idée de l’apprentissage par renforcement à partir des commentaires humains (RLHF) : utiliser des méthodes d’apprentissage par renforcement pour optimiser directement un modèle de langage avec les commentaires humains. Le RLHF a permis aux modèles de langage de commencer à aligner un modèle entraîné sur un corpus général de données textuelles sur des valeurs humaines complexes.

Le succès le plus récent du RLHF a été son utilisation dans ChatGPT . Étant donné les capacités impressionnantes de ChatGPT, nous lui avons demandé de nous expliquer le RLHF :

Il s’en sort étonnamment bien, mais ne couvre pas tout à fait tout. Nous allons combler ces lacunes !

L’apprentissage par renforcement à partir des commentaires humains (également appelé RL à partir des préférences humaines) est un concept complexe car il implique un processus d’entraînement à plusieurs modèles et différentes étapes de déploiement. Dans cet article de blog, nous allons décomposer le processus d’entraînement en trois étapes principales :

  1. Préentraînement d’un modèle de langage (LM),
  2. collecte de données et entraînement d’un modèle de récompense, et
  3. affinage du modèle de langage par apprentissage par renforcement.

Pour commencer, nous examinerons comment les modèles de langage sont préentraînés.

Préentraînement des modèles de langage

En tant que point de départ, le RLHF utilise un modèle de langage qui a déjà été préentraîné avec les objectifs classiques de préentraînement (voir cet article de blog pour plus de détails). OpenAI a utilisé une version plus petite de GPT-3 pour son premier modèle de RLHF populaire, InstructGPT . Anthropic a utilisé des modèles de transformateurs de 10 millions à 52 milliards de paramètres entraînés pour cette tâche. DeepMind a utilisé leur modèle Gopher de 280 milliards de paramètres.

Ce modèle initial peut également être affiné avec du texte ou des conditions supplémentaires, mais ce n’est pas nécessairement obligatoire. Par exemple, OpenAI s’est affiné avec du texte généré par des humains jugé “préférable” et Anthropic a généré son LM initial pour le RLHF en distillant un LM original sur des indices contextuels pour ses critères “utiles, honnêtes et inoffensifs”. Ce sont deux sources de ce que j’appelle des données coûteuses et augmentées, mais ce n’est pas une technique requise pour comprendre le RLHF.

En général, il n’y a pas de réponse claire sur “quel modèle” est le meilleur point de départ pour le RLHF. Ce sera un thème récurrent dans cet article de blog – l’espace de conception des options dans la formation du RLHF n’est pas suffisamment exploré.

Ensuite, avec un modèle de langage, il faut générer des données pour former un modèle de récompense , qui intègre les préférences humaines dans le système.

Entraînement du modèle de récompense

Générer un modèle de récompense (RM, également appelé modèle de préférence) calibré avec les préférences humaines est le point de départ des recherches relativement nouvelles dans le RLHF. L’objectif sous-jacent est d’obtenir un modèle ou un système qui prend une séquence de texte en entrée et renvoie une récompense scalaire qui devrait représenter numériquement la préférence humaine. Le système peut être un LM de bout en bout ou un système modulaire produisant une récompense (par exemple, un modèle classe les sorties et le classement est converti en récompense). Le fait que la sortie soit une récompense scalaire est essentiel pour intégrer ultérieurement de manière transparente les algorithmes de RL existants dans le processus du RLHF.

Ces LMs pour la modélisation de récompenses peuvent être soit un autre LM affiné, soit un LM entraîné à partir de zéro sur les données de préférence. Par exemple, Anthropic utilise une méthode spécialisée d’affinage pour initialiser ces modèles après l’entraînement préliminaire (pré-entraînement du modèle de préférence, PMP) car ils ont constaté qu’elle est plus efficace en termes d’échantillonnage que l’affinage, mais aucune variation de la modélisation de récompense n’est considérée comme le meilleur choix aujourd’hui.

L’ensemble de données d’entraînement des paires de génération de prompts pour le RM est généré en échantillonnant un ensemble de prompts à partir d’un ensemble de données prédéfini (les données d’Anthropic générées principalement avec un outil de discussion sur Amazon Mechanical Turk sont disponibles sur le Hub, et OpenAI a utilisé des prompts soumis par les utilisateurs à l’API GPT). Les prompts sont passés à travers le modèle de langage initial pour générer un nouveau texte.

Des annotateurs humains sont utilisés pour classer les sorties de texte générées par le LM. On pourrait penser initialement que les humains devraient appliquer un score scalaire directement à chaque morceau de texte afin de générer un modèle de récompense, mais cela est difficile à faire en pratique. Les valeurs différentes des humains font que ces scores ne sont pas étalonnés et bruités. À la place, des classements sont utilisés pour comparer les sorties de plusieurs modèles et créer un ensemble de données régularisé beaucoup meilleur.

Il existe plusieurs méthodes pour classer le texte. Une méthode qui a été couronnée de succès consiste à demander aux utilisateurs de comparer le texte généré par deux modèles de langage conditionnés par le même prompt. En comparant les sorties des modèles dans des confrontations tête-à-tête, un système Elo peut être utilisé pour générer un classement des modèles et des sorties les uns par rapport aux autres. Ces différentes méthodes de classement sont normalisées en un signal de récompense scalaire pour l’entraînement.

Un aspect intéressant de ce processus est que les systèmes RLHF réussis à ce jour ont utilisé des modèles de langage de récompense de tailles variables par rapport à la génération de texte (par exemple, modèle OpenAI 175B, modèle de récompense 6B, Anthropic a utilisé des modèles de langage et de récompense de 10B à 52B, DeepMind utilise des modèles Chinchilla de 70B à la fois pour le LM et la récompense). L’intuition serait que ces modèles de préférence doivent avoir une capacité similaire pour comprendre le texte qui leur est donné qu’un modèle aurait besoin pour générer ledit texte.

À ce stade du système RLHF, nous avons un modèle de langage initial qui peut être utilisé pour générer du texte et un modèle de préférence qui prend n’importe quel texte en entrée et lui attribue un score en fonction de la perception humaine. Ensuite, nous utilisons l’apprentissage par renforcement (RL) pour optimiser le modèle de langage initial par rapport au modèle de récompense.

Affinage avec RL

L’entraînement d’un modèle de langage avec l’apprentissage par renforcement était, pendant longtemps, quelque chose que les gens auraient considéré comme impossible pour des raisons d’ingénierie et algorithmiques. Ce que plusieurs organisations semblent avoir réussi à faire est d’affiner certains ou tous les paramètres d’une copie du LM initial avec un algorithme de RL par gradient de politique, la Proximal Policy Optimization (PPO). Les paramètres du LM sont figés car affiner un modèle de 10B ou plus de 100B de paramètres serait prohibitivement coûteux (pour en savoir plus, voir Low-Rank Adaptation (LoRA) pour les LMs ou le modèle Sparrow de DeepMind). La PPO existe depuis relativement longtemps – il y a des tonnes de guides sur son fonctionnement. La maturité relative de cette méthode en a fait un choix favorable pour l’extension à la nouvelle application de l’entraînement distribué pour RLHF. Il s’avère que bon nombre des avancées fondamentales de RL pour RLHF ont consisté à trouver comment mettre à jour un modèle aussi volumineux avec un algorithme familier (nous y reviendrons plus tard).

Commençons par formuler cette tâche d’affinage en tant que problème de RL. Premièrement, la politique est un modèle de langage qui prend un prompt en entrée et renvoie une séquence de texte (ou simplement des distributions de probabilité sur le texte). L’espace des actions de cette politique est constitué de tous les jetons correspondant au vocabulaire du modèle de langage (souvent de l’ordre de 50 000 jetons) et l’espace des observations est la distribution des séquences de jetons d’entrée possibles, qui est également assez large compte tenu des utilisations précédentes de RL (la dimension est approximativement de la taille du vocabulaire ^ longueur de la séquence de jetons d’entrée). La fonction de récompense est une combinaison du modèle de préférence et d’une contrainte sur le décalage de politique.

La fonction de récompense est l’endroit où le système combine tous les modèles que nous avons discutés en un seul processus RLHF. Étant donné un prompt, x, provenant de l’ensemble de données, le texte y est généré par l’itération actuelle de la politique affinée. Concaténé avec le prompt d’origine, ce texte est passé au modèle de préférence, qui renvoie une notion scalaire de “préférence”, r θ . De plus, les distributions de probabilités par jeton de la politique RL sont comparées à celles du modèle initial pour calculer une pénalité sur la différence entre elles. Dans plusieurs articles d’OpenAI, d’Anthropic et de DeepMind, cette pénalité a été conçue comme une version mise à l’échelle de la divergence de Kullback-Leibler (KL) entre ces séquences de distributions sur les jetons, r KL. Le terme de divergence KL pénalise la politique RL pour s’éloigner considérablement du modèle pré-entraîné initial à chaque lot d’entraînement, ce qui peut être utile pour s’assurer que le modèle génère des extraits de texte raisonnablement cohérents. Sans cette pénalité, l’optimisation peut commencer à générer du texte qui est du charabia mais trompe le modèle de récompense pour donner une récompense élevée. En pratique, la divergence KL est approximée par échantillonnage à partir des deux distributions (expliqué par John Schulman ici ). La récompense finale envoyée à la règle de mise à jour RL est r = r θ – λ r KL.

Certains systèmes RLHF ont ajouté des termes supplémentaires à la fonction de récompense. Par exemple, OpenAI a expérimenté avec succès sur InstructGPT en mélangeant des gradients supplémentaires de pré-entraînement (issus de l’ensemble d’annotations humaines) dans la règle de mise à jour de PPO. Il est probable que, à mesure que le RLHF sera davantage étudié, la formulation de cette fonction de récompense continuera d’évoluer.

Enfin, la règle de mise à jour est la mise à jour des paramètres de PPO qui maximise les métriques de récompense dans le lot de données actuel (PPO est sur-politique, ce qui signifie que les paramètres ne sont mis à jour qu’avec le lot actuel de paires de génération de prompt). PPO est un algorithme d’optimisation de région de confiance qui utilise des contraintes sur le gradient pour garantir que l’étape de mise à jour ne déstabilise pas le processus d’apprentissage. DeepMind a utilisé une configuration de récompense similaire pour Gopher mais a utilisé l’acteur-critique avantage synchrone (A2C) pour optimiser les gradients, ce qui est notablement différent mais n’a pas été reproduit à l’externe.

Note technique: Le diagramme ci-dessus donne l’impression que les deux modèles génèrent des réponses différentes pour le même prompt, mais ce qui se passe réellement, c’est que la politique RL génère du texte, et ce texte est alimenté dans le modèle initial pour produire ses probabilités relatives pour la pénalité KL.

En option, RLHF peut continuer à partir de ce point en mettant à jour de manière itérative le modèle de récompense et la politique ensemble. À mesure que la politique RL se met à jour, les utilisateurs peuvent continuer à classer ces sorties par rapport aux versions antérieures du modèle. La plupart des articles n’ont pas encore discuté de la mise en œuvre de cette opération, car le mode de déploiement nécessaire pour collecter ce type de données ne fonctionne que pour les agents de dialogue ayant accès à une base d’utilisateurs engagés. Anthropic aborde cette option sous le nom de RLHF en ligne itératif (voir l’article original), où les itérations de la politique sont incluses dans le système de classement ELO entre les modèles. Cela introduit des dynamiques complexes d’évolution de la politique et du modèle de récompense, ce qui représente une question de recherche complexe et ouverte.

Le premier code publié pour effectuer RLHF sur les LMs a été publié par OpenAI en TensorFlow en 2019.

Aujourd’hui, il existe déjà quelques dépôts actifs pour RLHF en PyTorch qui ont évolué à partir de cela. Les dépôts principaux sont Transformers Reinforcement Learning (TRL), TRLX qui est né d’un fork de TRL, et Reinforcement Learning for Language models (RL4LMs).

TRL est conçu pour affiner les LMs pré-entraînés dans l’écosystème Hugging Face avec PPO. TRLX est un fork étendu de TRL construit par CarperAI pour gérer des modèles plus grands pour la formation en ligne et hors ligne. Pour le moment, TRLX dispose d’une API capable de réaliser du RLHF prêt pour la production avec PPO et l’apprentissage implicite du langage Q-Learning (ILQL) aux échelles requises pour le déploiement de LLM (par exemple, 33 milliards de paramètres). Les futures versions de TRLX permettront des modèles de langage jusqu’à 200 milliards de paramètres. En tant que tel, l’interface avec TRLX est optimisée pour les ingénieurs en apprentissage automatique ayant une expérience à cette échelle.

RL4LMs offre des blocs de construction pour le raffinement et l’évaluation des LLMs avec une grande variété d’algorithmes RL (PPO, NLPO, A2C et TRPO), de fonctions de récompense et de métriques. De plus, la bibliothèque est facilement personnalisable, ce qui permet de former n’importe quel LM basé sur un transformateur encodeur-décodeur ou un encodeur spécifié par l’utilisateur avec une fonction de récompense arbitraire. Notamment, il a été largement testé et évalué sur un large éventail de tâches dans des travaux récents comprenant jusqu’à 2000 expériences mettant en évidence plusieurs idées pratiques sur la comparaison des budgets de données (démonstrations d’experts vs modélisation de récompense), la gestion des détournements de récompense et des instabilités d’apprentissage, etc. Les plans actuels de RL4LMs comprennent la formation distribuée de modèles plus grands et de nouveaux algorithmes RL.

TRLX et RL4LMs sont tous deux en cours de développement intensif, attendez-vous donc bientôt à plus de fonctionnalités.

Il existe un grand ensemble de données créé par Anthropic disponible sur le Hub.

Alors que ces techniques sont extrêmement prometteuses et impactantes et ont attiré l’attention des plus grands laboratoires de recherche en IA, il existe encore des limitations claires. Les modèles, bien qu’améliorés, peuvent toujours produire du texte nocif ou factuellement inexact sans aucune incertitude. Cette imperfection représente un défi à long terme et une motivation pour le RLHF – opérer dans un domaine de problème intrinsèquement humain signifie qu’il n’y aura jamais de ligne finale claire à franchir pour que le modèle soit considéré comme complet.

Lors du déploiement d’un système utilisant RLHF, la collecte des données de préférence humaine est assez coûteuse en raison de l’intégration directe d’autres travailleurs humains en dehors de la boucle d’entraînement. Les performances de RLHF ne sont bonnes que si la qualité de ses annotations humaines est élevée, ce qui prend deux formes : du texte généré par des humains, tel que le raffinement de l’initial LM dans InstructGPT, et des étiquettes de préférences humaines entre les sorties du modèle.

Générer un texte humain bien écrit en réponse à des indications spécifiques est très coûteux, car cela nécessite souvent d’embaucher du personnel à temps partiel (au lieu de pouvoir compter sur les utilisateurs du produit ou le crowdsourcing). Heureusement, l’échelle des données utilisées pour former le modèle de récompense pour la plupart des applications de RLHF (environ 50 000 échantillons de préférence étiquetés) n’est pas aussi coûteuse. Cependant, cela reste un coût plus élevé que ce que les laboratoires universitaires pourraient probablement se permettre. Actuellement, il n’existe qu’un seul ensemble de données à grande échelle pour RLHF sur un modèle de langage général (d’Anthropic) et quelques ensembles de données plus petits spécifiques à des tâches (comme des données de résumé d’OpenAI). Le deuxième défi concernant les données pour RLHF est que les annotateurs humains peuvent souvent être en désaccord, ce qui ajoute une variance potentielle substantielle aux données d’entraînement sans vérité absolue.

Avec ces limitations, de vastes pans d’options de conception inexplorées pourraient encore permettre à RLHF de faire des progrès substantiels. Beaucoup d’entre elles relèvent du domaine de l’amélioration de l’optimiseur RL. PPO est un algorithme relativement ancien, mais il n’y a pas de raisons structurelles pour lesquelles d’autres algorithmes ne pourraient pas offrir des avantages et des permutations dans le flux de travail RLHF existant. Un coût important de la partie de rétroaction de l’affinage de la politique LM est que chaque morceau de texte généré par la politique doit être évalué sur le modèle de récompense (car il agit comme une partie de l’environnement dans le cadre RL standard). Pour éviter ces passages coûteux d’un grand modèle, RL hors ligne pourrait être utilisé comme optimiseur de politique. Récemment, de nouveaux algorithmes ont émergé, tels que l’apprentissage implicite du langage Q (ILQL) [Conférence sur ILQL chez CarperAI], qui s’intègrent particulièrement bien à ce type d’optimisation. D’autres compromis fondamentaux du processus RL, comme l’équilibre exploration-exploitation, n’ont pas non plus été documentés. Explorer ces directions permettrait au moins de développer une compréhension substantielle de la façon dont RLHF fonctionne et, le cas échéant, d’améliorer les performances.

Nous avons organisé une conférence le mardi 13 décembre 2022 qui a approfondi ce billet ; vous pouvez la regarder ici !

Pour en savoir plus

Voici une liste des articles les plus prévalents sur RLHF à ce jour. Le domaine a récemment été popularisé avec l’émergence de DeepRL (vers 2017) et s’est développé en une étude plus large des applications des LLMs de nombreuses grandes entreprises technologiques. Voici quelques articles sur RLHF antérieurs à la focalisation sur les LM :

  • TAMER : Formation d’un agent manuellement via le renforcement évaluatif (Knox et Stone 2008) : Propose un agent appris où les humains fournissent des scores sur les actions prises de manière itérative pour apprendre un modèle de récompense.
  • Apprentissage interactif à partir des retours d’information humains dépendant de la politique (MacGlashan et al. 2017) : Propose un algorithme acteur-critique, COACH, où les retours d’information humains (positifs et négatifs) sont utilisés pour régler la fonction d’avantage.
  • Apprentissage par renforcement profond à partir des préférences humaines (Christiano et al. 2017) : RLHF appliqué aux préférences entre les trajectoires Atari.
  • Deep TAMER : Formage d’agent interactif dans des espaces d’état de grande dimension (Warnell et al. 2018) : Étend le cadre TAMER où un réseau de neurones profond est utilisé pour modéliser la prédiction de récompense.

Et voici un aperçu de l’ensemble croissant d’articles “clés” qui montrent les performances de RLHF pour les LM :

  • Affiner les modèles de langage à partir des préférences humaines (Zieglar et al. 2019) : Un article précoce qui étudie l’impact de l’apprentissage de récompense sur quatre tâches spécifiques.
  • Apprentissage de la synthèse avec des retours d’information humains (Stiennon et al., 2020) : RLHF appliqué à la tâche de résumé de texte. Également, Résumer de manière récursive des livres avec des retours d’information humains (OpenAI Alignment Team 2021), travail de suivi résumant des livres.
  • WebGPT : Réponse assistée par navigateur avec des retours d’information humains (OpenAI, 2021) : Utilisation de RLHF pour former un agent à naviguer sur le web.
  • InstructGPT : Formation de modèles de langage pour suivre des instructions avec des retours d’information humains (OpenAI Alignment Team 2022) : RLHF appliqué à un modèle de langage général [Article de blog sur InstructGPT].
  • GopherCite : Enseigner aux modèles de langage à fournir des réponses avec des citations vérifiées (Menick et al. 2022) : Entraîner un LM avec RLHF pour renvoyer des réponses avec des citations spécifiques.
  • Sparrow : Améliorer l’alignement des agents de dialogue via des jugements humains ciblés (Glaese et al. 2022) : Affiner un agent de dialogue avec RLHF
  • ChatGPT : Optimisation des modèles de langage pour le dialogue (OpenAI 2022) : Formation d’un LM avec RLHF pour une utilisation adaptée en tant que chatbot polyvalent.
  • Lois d’échelle pour la sur-optimisation du modèle de récompense (Gao et al. 2022) : Étudie les propriétés d’échelle du modèle de préférence appris dans RLHF.
  • Formation d’un assistant utile et inoffensif avec l’apprentissage par renforcement à partir des retours d’information humains (Anthropic, 2022) : Une documentation détaillée de la formation d’un assistant LM avec RLHF.
  • Tester les modèles de langage pour réduire les préjudices : méthodes, comportements d’échelle et leçons apprises (Ganguli et al. 2022) : Une documentation détaillée des efforts visant à “découvrir, mesurer et tenter de réduire les sorties potentiellement nuisibles [des modèles de langage]”.
  • Planification dynamique dans le dialogue à terminaison ouverte en utilisant l’apprentissage par renforcement (Cohen et al. 2022) : Utilisation de RL pour améliorer les compétences conversationnelles d’un agent de dialogue à terminaison ouverte.
  • L’apprentissage par renforcement (non) pour le traitement du langage naturel ? : Benchmarks, baselines et blocs de construction pour l’optimisation de la politique de langage naturel (Ramamurthy et Ammanabrolu et al. 2022) : Discute de l’espace de conception des outils open-source dans RLHF et propose un nouvel algorithme NLPO (Natural Language Policy Optimization) comme alternative à PPO.

Le domaine est la convergence de plusieurs domaines, vous pouvez donc également trouver des ressources dans d’autres domaines :

  • Apprentissage continu des instructions (Kojima et al. 2021, Suhr et Artzi 2022) ou apprentissage du bandit à partir des commentaires des utilisateurs (Sokolov et al. 2016, Gao et al. 2022)
  • Histoire antérieure sur l’utilisation d’autres algorithmes RL pour la génération de texte (pas tous avec des préférences humaines), tels que les réseaux neuronaux récurrents (Ranzato et al. 2015), un algorithme acteur-critique pour la prédiction de texte (Bahdanau et al. 2016), ou un travail précoce ajoutant les préférences humaines à ce cadre (Nguyen et al. 2017).

Citation : Si vous avez trouvé cela utile pour votre travail universitaire, veuillez envisager de citer notre travail, dans le texte :

Lambert, et al., "Illustrating Reinforcement Learning from Human Feedback (RLHF)", Hugging Face Blog, 2022.

Citation BibTeX :

@article{lambert2022illustrating,
  author = {Lambert, Nathan and Castricato, Louis and von Werra, Leandro and Havrilla, Alex},
  title = {Illustrating Reinforcement Learning from Human Feedback (RLHF)},
  journal = {Hugging Face Blog},
  year = {2022},
  note = {https://huggingface.co/blog/rlhf},
}

Merci à Robert Kirk d’avoir corrigé certaines erreurs factuelles concernant des implémentations spécifiques de RLHF. Merci à Peter Stone, Khanh X. Nguyen et Yoav Artzi d’avoir contribué à étendre les travaux connexes plus en profondeur dans l’histoire.

Merci à Stas Bekman d’avoir corrigé certaines fautes de frappe ou phrases confuses.

Merci à Igor Kotenkov d’avoir signalé une erreur technique dans le terme de pénalité KL de la procédure RLHF, son diagramme et sa description textuelle.

We will continue to update IPGirl; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more