Maison > Article > Périphériques technologiques > Explication détaillée de ChatGPT/InstructGPT
La série GPT est une série d'articles de pré-formation d'OpenAI. Le nom complet de GPT est Generative Pre-Trained Transformer. Comme son nom l'indique, le but de GPT est d'utiliser Transformer comme modèle de base et d'utiliser pré-entraîné. -technologie de formation pour obtenir un modèle de texte universel. Les articles publiés jusqu'à présent incluent la pré-formation de texte GPT-1, GPT-2, GPT-3 et la pré-formation d'images iGPT. GPT-4, qui n'a pas encore été publié, serait un modèle multimodal. Les très populaires ChatGPT et [1] annoncés au début de cette année sont une paire de modèles frères. Ce sont des modèles de préchauffage sortis avant GPT-4, parfois également appelés GPT3.5. ChatGPT et InstructGPT sont complètement cohérents en termes de structure du modèle et de méthodes de formation, c'est-à-dire qu'ils utilisent tous deux l'apprentissage des instructions (Instruction Learning) et l'apprentissage par renforcement à partir de la rétroaction humaine (RLHF) pour guider la formation du modèle. Il existe des différences dans la manière dont les données sont collectées. Donc, pour comprendre ChatGPT, nous devons d'abord comprendre InstructGPT.
Avant de présenter ChatGPT/InstructGPT, nous présentons d'abord les algorithmes de base sur lesquels ils s'appuient.
Les modèles de trois générations de GPT-1[2], GPT-2[3] et GPT-3[4] basés sur la pré-formation textuelle utilisent tous des modèles avec Transformer comme structure de base ( Figure 1). La différence réside dans le nombre de couches du modèle et la longueur des vecteurs de mots et autres hyperparamètres. Leur contenu spécifique est présenté dans le tableau 1.
Figure 1 : Structure du modèle de la série GPT (où Trm est une structure de transformateur)
Tableau 1 : Temps de libération, quantité de paramètres et quantité d'entraînement des générations précédentes de GPT
Modèle |
Durée de sortie |
Nombre de couches |
Nombre de têtes |
Longueur du vecteur de mot |
Montant du paramètre |
Quantité de données pré-entraînement |
GPT- 1 |
Juin 2018 |
12 |
12 |
768 |
117 millions |
Environ 5 Go |
GPT-2 |
Février 2019 |
48 |
- |
1600 | 1,5 milliard |
40 Go |
GPT-3 |
Mai 2020 |
96 |
96 |
12888 |
175 milliards |
45 To |
GPT-1 est né quelques mois plus tôt que BERT. Ils utilisent tous Transformer comme structure de base. La différence est que GPT-1 construit les tâches de pré-formation de manière générative de gauche à droite, puis obtient un modèle de pré-formation général qui peut être utilisé pour des tâches en aval comme BERT. . GPT-1 a obtenu des résultats SOTA sur 9 tâches NLP à cette époque, mais la taille du modèle et le volume de données utilisés par GPT-1 étaient relativement petits, ce qui a conduit à la naissance de GPT-2.
Par rapport à GPT-1, GPT-2 n'a pas fait beaucoup de bruit sur la structure du modèle, mais a uniquement utilisé un modèle avec plus de paramètres et plus de données d'entraînement (Tableau 1). L'idée la plus importante de GPT-2 est l'idée selon laquelle « tout apprentissage supervisé est un sous-ensemble de modèles de langage non supervisés ». Cette idée est également le prédécesseur de l'apprentissage rapide. GPT-2 a également fait beaucoup de sensation lors de sa première naissance. Les nouvelles qu'il a générées étaient suffisantes pour tromper la plupart des humains et avoir pour effet de confondre les fausses nouvelles avec les vraies nouvelles. Elle était même qualifiée à l'époque d'"arme la plus dangereuse du monde de l'IA", et de nombreux portails ont ordonné d'interdire l'utilisation des informations générées par GPT-2.
Lorsque GPT-3 a été proposé, en plus de son effet dépassant de loin GPT-2, ce qui a suscité davantage de discussions a été son nombre de 175 milliards de paramètres. En plus du fait que GPT-3 soit capable d'accomplir des tâches courantes de PNL, les chercheurs ont découvert de manière inattendue que GPT-3 avait également de bonnes performances dans l'écriture de codes dans des langages tels que SQL et JavaScript et dans l'exécution d'opérations mathématiques simples. La formation de GPT-3 utilise l'apprentissage en contexte, qui est un type de méta-apprentissage. L'idée centrale du méta-apprentissage est de trouver une plage d'initialisation appropriée à travers une petite quantité de données, afin que le modèle puisse être rapide. s'adapter à des ensembles de données limités et à de bons résultats.
Grâce à l'analyse ci-dessus, nous pouvons voir que du point de vue des performances, GPT a deux objectifs :
De plus, depuis la naissance du modèle pré-entraîné, un problème qui a été critiqué est le biais du modèle pré-entraîné. Étant donné que les modèles pré-entraînés sont formés sur des modèles avec des niveaux de paramètres extrêmement importants grâce à des données massives, par rapport aux systèmes experts entièrement contrôlés par des règles artificielles, les modèles pré-entraînés sont comme une boîte noire. Personne ne peut garantir que le modèle pré-entraîné ne générera pas de contenu dangereux contenant de la discrimination raciale, du sexisme, etc., car ses dizaines de gigaoctets, voire ses dizaines de téraoctets de données d'entraînement contiennent presque certainement des échantillons d'entraînement similaires. C'est la motivation d'InstructGPT et ChatGPT. Le journal utilise 3H pour résumer leurs objectifs d'optimisation :
1.2 Instruct Learning (Instruct Learning) et Prompt Learning (Prompt Learning) Learning
Figure 2 : Similitudes et différences entre le réglage fin du modèle, l'apprentissage rapide et l'apprentissage instruit
Le modèle entraîné n'étant pas très contrôlable, le modèle peut être considéré comme un ajustement de la distribution de l'ensemble d'entraînement. Ensuite, lorsqu'elle est réinjectée dans le modèle génératif, la distribution des données de formation est le facteur le plus important affectant la qualité du contenu généré. Parfois, nous espérons que le modèle sera non seulement affecté par les données d'entraînement, mais également artificiellement contrôlable, afin de garantir l'utilité, l'authenticité et l'innocuité des données générées. La question de l'alignement est mentionnée à plusieurs reprises dans l'article. Nous pouvons la comprendre comme l'alignement du contenu de sortie du modèle et du contenu de sortie que les humains aiment n'inclut pas seulement la fluidité et l'exactitude grammaticale du contenu généré. mais aussi la qualité du contenu généré, l'utilité, l'authenticité et l'innocuité.
Nous savons que l'apprentissage par renforcement guide la formation du modèle via un mécanisme de récompense (Reward). Le mécanisme de récompense peut être considéré comme la fonction de perte du mécanisme traditionnel de formation du modèle. Le calcul des récompenses est plus flexible et diversifié que la fonction de perte (la récompense d'AlphaGO est le résultat du jeu). Le prix est que le calcul des récompenses n'est pas différentiable, il ne peut donc pas être utilisé directement pour la rétropropagation. L'idée de l'apprentissage par renforcement est d'adapter la fonction de perte à travers un grand nombre d'échantillons de récompenses pour réaliser une formation sur modèle. De même, la rétroaction humaine n'est pas non plus dérivable, nous pouvons donc également utiliser la rétroaction artificielle comme récompense pour l'apprentissage par renforcement, et l'apprentissage par renforcement basé sur la rétroaction artificielle est apparu au fur et à mesure que les temps l'exigent.
RLHF remonte à « Deep Reinforcement Learning from Human Preferences » [6] publié par Google en 2017. Il utilise l'annotation manuelle comme retour d'information pour améliorer les performances de l'apprentissage par renforcement sur des robots simulés et des jeux Atari.
Figure 3 : Le principe de base de l'apprentissage par renforcement avec feedback artificiel
InstructGPT/ChatGPT utilise également un algorithme classique en apprentissage par renforcement : le récent Proximal Policy Optimization (PPO) proposé par OpenAI [7]. L'algorithme PPO est un nouveau type d'algorithme de gradient de politique. L'algorithme de gradient de politique est très sensible à la taille du pas, mais il est difficile de choisir une taille de pas appropriée pendant le processus de formation, si la différence entre l'ancienne et la nouvelle politique est modifiée. est trop grand, cela nuira à l’apprentissage. PPO a proposé une nouvelle fonction d'objectif qui peut réaliser des mises à jour par petits lots en plusieurs étapes de formation, résolvant ainsi le problème selon lequel la taille de l'étape dans l'algorithme Policy Gradient est difficile à déterminer. En fait, TRPO est également conçu pour résoudre cette idée, mais comparé à l'algorithme TRPO, l'algorithme PPO est plus facile à résoudre.
Avec les connaissances de base ci-dessus, il nous sera beaucoup plus facile de comprendre InstructGPT et ChatGPT. Pour faire simple, InstructGPT/ChatGPT adoptent tous deux la structure de réseau de GPT-3 et construisent des échantillons de formation grâce à l'apprentissage d'instructions pour former un modèle de récompense (RM) qui reflète l'effet du contenu prédit. Enfin, le score de ce modèle de récompense est. utilisé pour guider le modèle d’apprentissage par renforcement. Le processus de formation d’InstructGPT/ChatGPT est illustré à la figure 4.
Figure 4 : Processus de calcul InstructGPT : (1) Affinement supervisé (SFT) ; (2) Formation sur le modèle de récompense (RM) ; (3) Apprentissage par renforcement basé sur le modèle de récompense via PPO.
À partir de la figure 4, nous pouvons voir que la formation d'InstructGPT/ChatGPT peut être divisée en 3 étapes, dont les étapes 2 et 3 sont le modèle de récompense et le modèle d'apprentissage par renforcement SFT qui peuvent être optimisés de manière itérative.
2.1 Collecte d'ensembles de données
2.1.1 Ensemble de données SFT
L'ensemble de données RM est utilisé pour entraîner le modèle de récompense à l'étape 2. Nous devons également définir un objectif de récompense pour la formation d'InstructGPT/ChatGPT. Cet objectif de récompense ne doit pas nécessairement être différenciable, mais il doit s'aligner de manière aussi complète et réaliste que possible sur ce que le modèle doit générer. Naturellement, nous pouvons fournir cette récompense via une annotation manuelle. Grâce à un couplage artificiel, nous pouvons attribuer des scores plus faibles au contenu généré impliquant des biais pour encourager le modèle à ne pas générer de contenu que les humains n'aiment pas. L'approche d'InstructGPT/ChatGPT consiste d'abord à laisser le modèle générer un lot de textes candidats, puis à utiliser l'étiqueteur pour trier le contenu généré en fonction de la qualité des données générées.
Les données PPO d'InstructGPT ne sont pas annotées, elles proviennent des utilisateurs de l'API GPT-3. Il existe différents types de tâches de génération fournies par différents utilisateurs, la proportion la plus élevée comprenant les tâches de génération (45,6 %), l'assurance qualité (12,4 %), le brainstorming (11,2 %), le dialogue (8,4 %), etc.
Étant donné qu'InstructGPT/ChatGPT est affiné sur la base de GPT-3 et qu'il implique une annotation manuelle, leur volume total de données n'est pas important. Le tableau 2 montre les sources des trois données et. leur volume de données.
Tableau 2 : Distribution des données d'InstructGPT
L'annexe A du document traite de la distribution des données plus en détail. J'énumère ici quelques éléments qui peuvent affecter l'effet du modèle :
De plus, le blog ChatGPT a mentionné que les méthodes de formation de ChatGPT et InstructGPT sont les mêmes. La seule différence est qu'ils collectent des données, mais il n'y a pas plus d'informations sur les détails de la collecte des données. Étant donné que ChatGPT n'est utilisé que dans le domaine du dialogue, je suppose que ChatGPT présente ici deux différences dans la collecte de données : 1. Il augmente la proportion de tâches de dialogue ; 2. Il convertit la méthode d'invite en une méthode de questions-réponses. Bien sûr, ce ne sont que des spéculations. Une description plus précise ne sera pas connue tant que des informations plus détaillées telles que les documents et le code source de ChatGPT ne seront pas publiées.
Nous venons d'introduire qu'InstructGPT/ChatGPT dispose d'une méthode de formation en trois étapes. Ces trois étapes de formation feront intervenir trois modèles : SFT, RM et PPO Nous les présenterons en détail ci-dessous.
La formation dans cette étape est cohérente avec GPT-3, et l'auteur a constaté que permettre au modèle de surajuster de manière appropriée facilitera la formation dans les deux étapes suivantes.
Étant donné que les données pour la formation RM se présentent sous la forme d'un étiqueteur trié en fonction des résultats générés, elles peuvent être considérées comme un modèle de régression. La structure RM est un modèle qui supprime la couche d'intégration finale du modèle formé par SFT. Ses entrées sont l'invite et la réponse, et sa sortie est la valeur de la récompense. Plus précisément, pour chaque invite, InstructGPT/ChatGPT générera de manière aléatoire K sorties (4≤K≤9), puis affichera les résultats de sortie par paires pour chaque étiqueteur, c'est-à-dire que chaque invite affichera ensuite un total de résultats CK2 à l'utilisateur. sélectionne le meilleur résultat parmi eux. Pendant la formation, InstructGPT/ChatGPT traite les paires de réponses CK2 de chaque invite comme un lot. Cette méthode de formation de regroupement par invite est moins susceptible de surajuster que la méthode traditionnelle de regroupement par échantillon, car cette méthode Chaque invite sera saisie dans le modèle. une seule fois.
La fonction de perte du modèle de récompense est exprimée par l'équation (1). Le but de cette fonction de perte est de maximiser la différence entre la réponse que l’étiqueteur préfère et la réponse qu’il n’aime pas.
(1)loss(θ)=−1(K2)E(x,yw,yl)∼D[log(σ(rθ(x,yw)−rθ(x,yl)))]
où rθ(x,y) est la valeur de récompense de l'invite x et de la réponse y sous le modèle de récompense avec le paramètre θ, yw est le résultat de réponse que l'étiqueteur préfère et yl est le résultat de réponse que l'étiqueteur n'aime pas. D est l'ensemble des données d'entraînement.
Les modèles d'apprentissage par renforcement et de pré-entraînement sont deux des directions les plus en vogue de l'IA au cours des deux dernières années. De nombreux chercheurs scientifiques ont déjà déclaré que l'apprentissage par renforcement n'est pas une application très appropriée pour le pré-apprentissage. -modèles de formation, car il est difficile d'établir un mécanisme de récompense à travers le contenu de sortie du modèle. InstructGPT/ChatGPT y parvient de manière contre-intuitive. Il introduit l'apprentissage par renforcement dans le modèle de langage pré-entraîné en combinant l'annotation manuelle, ce qui constitue la plus grande innovation de cet algorithme.
Comme le montre le tableau 2, l'ensemble de formation du PPO provient entièrement de l'API. Il utilise le modèle de récompense obtenu à l'étape 2 pour guider la formation continue du modèle SFT. Souvent, l'apprentissage par renforcement est très difficile à entraîner. InstructGPT/ChatGPT a rencontré deux problèmes pendant le processus de formation :
Pour résumer, l'objectif d'entraînement du PPO est la formule (2). (2) objectif (ϕ)=E(x,y)∼DπϕRL[rθ(x,y)−βlog(πϕRL(y∣x)/πSFT(y∣x))]+γEx∼Dpretrain [log( πϕRL(x))]
Il est indéniable que l'effet d'InstructGPT/ChatGPT est très bon, surtout après l'introduction de l'annotation manuelle, les "valeurs" du modèle sont correctes. Le niveau et « l’authenticité » des modèles de comportement humain ont été considérablement améliorés. Ainsi, simplement sur la base des solutions techniques et des méthodes de formation d’InstructGPT/ChatGPT, nous pouvons analyser quels effets les améliorations peuvent apporter ?
Figure 5 : Plan pour détruire l'humanité rédigé par ChatGPT.
Nous avons analysé la solution technique d'InstrcutGPT/ChatGPT et ses problèmes, puis nous pouvons également voir les angles d'optimisation d'InstrcutGPT/ChatGPT.
Tout comme les algorithmes de nombreuses personnes à leur naissance, ChatGPT a attiré une large attention dans l'industrie et la réflexion humaine sur l'IA en raison de son utilité, de son authenticité et de ses effets inoffensifs. Mais après avoir examiné les principes de son algorithme, nous avons constaté qu’il n’est pas aussi effrayant qu’annoncé dans l’industrie. Au contraire, nous pouvons apprendre beaucoup de choses précieuses de ses solutions techniques. La contribution la plus importante d'InstrcutGPT/ChatGPT dans le monde de l'IA est la combinaison intelligente de modèles d'apprentissage par renforcement et de pré-formation. De plus, le feedback artificiel améliore l’utilité, l’authenticité et l’innocuité du modèle. ChatGPT a également augmenté le coût des grands modèles. Auparavant, il s'agissait simplement d'une compétition entre le volume de données et l'échelle du modèle. Aujourd'hui, il introduit même les coûts d'embauche en sous-traitance, ce qui rend les travailleurs individuels encore plus prohibitifs.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!