Categories
Artificial Intelligence

Comment fonctionne ChatGPT : le data model derrière le bot

Cette introduction en douceur aux modèles d’apprentissage automatique qui alimentent ChatGPT commencera par l’introduction des grands modèles de langage, plongera dans le mécanisme révolutionnaire d’auto-attention qui a permis à GPT-3 d’être formé, puis s’enfouira dans l’apprentissage par renforcement à partir de la rétroaction humaine, le nouvelle technique qui a rendu ChatGPT exceptionnel.

Grands modèles de langage

ChatGPT est une extrapolation d’une classe de modèles de traitement automatique du langage naturel connus sous le nom de Large Language Model (LLM). Les LLM digèrent d’énormes quantités de données textuelles et déduisent des relations entre les mots dans le texte. Ces modèles se sont développés au cours des dernières années à mesure que nous avons vu des progrès dans la puissance de calcul. Les LLM augmentent leur capacité à mesure que la taille de leurs ensembles de données d’entrée et de l’espace de paramètres augmente.

La formation la plus élémentaire des modèles de langage consiste à prédire un mot dans une séquence de mots. Le plus souvent, cela est observé sous forme de prédiction du jeton suivant et de modélisation de langage masqué.

Exemple arbitraire de prédiction de jeton suivant et de modélisation de langage masqué généré par l’auteur.

Dans cette technique de séquençage de base, souvent déployée via un modèle LSTM (Long-Short-Term-Memory), le modèle remplit le vide avec le mot le plus probable statistiquement compte tenu du contexte environnant. Il existe deux limitations majeures avec cette structure de modélisation séquentielle.

  1. Le modèle est incapable de valoriser certains des mots environnants plus que d’autres. Dans l’exemple ci-dessus, alors que ‘lire’ peut le plus souvent être associé à ‘déteste’, dans la base de données ‘Jacob’ peut être un lecteur si avide que le modèle devrait donner plus de poids à ‘Jacob’ qu’à ‘lire’ et choisir ‘aimer ‘ au lieu de ‘déteste’.
  2. Les données d’entrée sont traitées individuellement et séquentiellement plutôt que comme un corpus entier. Cela signifie que lorsqu’un LSTM est formé, la fenêtre de contexte est fixe, s’étendant uniquement au-delà d’une entrée individuelle pour plusieurs étapes de la séquence. Cela limite la complexité des relations entre les mots et les significations qui peuvent en être dérivées.

En réponse à ce problème, en 2017, une équipe de Google Brain a introduit les transformateurs. Contrairement aux LSTM, les transformateurs peuvent traiter toutes les données d’entrée simultanément. En utilisant un mécanisme d’auto-attention, le modèle peut donner un poids variable à différentes parties des données d’entrée par rapport à n’importe quelle position de la séquence linguistique. Cette fonctionnalité a permis d’améliorer considérablement la signification des LLM et de traiter des ensembles de données beaucoup plus volumineux.

GPT et auto-attention

Les modèles Generative Pre-training Transformer (GPT) ont été lancés pour la première fois en 2018 par openAI sous le nom de GPT-1. Les modèles ont continué à évoluer en 2019 avec GPT-2, 2020 avec GPT-3, et plus récemment en 2022 avec InstructGPT et ChatGPT. Avant d’intégrer la rétroaction humaine dans le système, la plus grande avancée dans l’évolution du modèle GPT était due aux réalisations en matière d’efficacité de calcul, ce qui a permis à GPT-3 d’être formé sur beaucoup plus de données que GPT-2, lui donnant une base de connaissances plus diversifiée et la capacité d’effectuer un plus large éventail de tâches.

Comparaison de GPT-2 (à gauche) et de GPT-3 (à droite). Généré par l’auteur.

Tous les modèles GPT tirent parti de l’architecture du transformateur, ce qui signifie qu’ils disposent d’un encodeur pour traiter la séquence d’entrée et d’un décodeur pour générer la séquence de sortie. L’encodeur et le décodeur ont tous deux un mécanisme d’auto-attention à plusieurs têtes qui permet au modèle de pondérer différemment des parties de la séquence pour en déduire le sens et le contexte. De plus, l’encodeur exploite la modélisation du langage masqué pour comprendre la relation entre les mots et produire des réponses plus compréhensibles.

Le mécanisme d’auto-attention qui pilote GPT fonctionne en convertissant des jetons (morceaux de texte, qui peuvent être un mot, une phrase ou un autre groupe de texte) en vecteurs qui représentent l’importance du jeton dans la séquence d’entrée. Pour ce faire, le modèle,

  1. Crée une requête, une clé et un vecteur de valeur pour chaque jeton dans la séquence d’entrée.
  2. Calcule la similarité entre le vecteur de requête de la première étape et le vecteur clé de tous les autres jetons en prenant le produit scalaire des deux vecteurs.
  3. Génère des poids normalisés en alimentant la sortie de l’étape 2 dans une fonction softmax .
  4. Génère un vecteur final, représentant l’importance du jeton dans la séquence en multipliant les poids générés à l’étape 3 par les vecteurs de valeur de chaque jeton.

Le mécanisme d’attention «multi-têtes» utilisé par GPT est une évolution de l’auto-attention. Plutôt que d’effectuer les étapes 1 à 4 une fois, en parallèle, le modèle itère ce mécanisme plusieurs fois, générant à chaque fois une nouvelle projection linéaire des vecteurs de requête, de clé et de valeur. En élargissant l’attention de soi de cette manière, le modèle est capable de saisir des sous-significations et des relations plus complexes au sein des données d’entrée.

Capture d’écran de ChatGPT générée par l’auteur.

Bien que GPT-3 ait introduit des avancées remarquables dans le traitement du langage naturel, sa capacité à s’aligner sur les intentions de l’utilisateur est limitée. Par exemple, GPT-3 peut produire des sorties qui

  • Manque d’utilité signifiant qu’ils ne suivent pas les instructions explicites de l’utilisateur.
  • Contenir des hallucinations qui reflètent des faits inexistants ou incorrects.
  • Manque d’interprétabilité, ce qui rend difficile pour les humains de comprendre comment le modèle est arrivé à une décision ou à une prédiction particulière.
  • Incluez du contenu toxique ou biaisé qui est nuisible ou offensant et diffuse des informations erronées.

Des méthodologies de formation innovantes ont été introduites dans ChatGPT pour contrer certains de ces problèmes inhérents aux LLM standard.

ChatGPT

ChatGPT est un spin-off d’InstructGPT, qui a introduit une nouvelle approche pour intégrer la rétroaction humaine dans le processus de formation afin de mieux aligner les sorties du modèle sur l’intention de l’utilisateur. L’apprentissage par renforcement à partir de la rétroaction humaine (RLHF) est décrit en détail dans openAI 2022  papierFormer des modèles de langage pour suivre les instructions avec un retour humainet est simplifié ci-dessous.

Étape 1 : modèle de réglage fin supervisé (SFT)

Le premier développement a consisté à affiner le modèle GPT-3 en embauchant 40 sous-traitants pour créer un ensemble de données de formation supervisé, dans lequel l’entrée a une sortie connue pour que le modèle puisse apprendre. Les entrées, ou invites, ont été collectées à partir des entrées utilisateur réelles dans l’API ouverte. Les étiqueteurs ont ensuite écrit une réponse appropriée à l’invite, créant ainsi une sortie connue pour chaque entrée. Le modèle GPT-3 a ensuite été affiné à l’aide de ce nouvel ensemble de données supervisé, pour créer GPT-3.5, également appelé modèle SFT.

Afin de maximiser la diversité dans l’ensemble de données des invites, seules 200 invites pouvaient provenir d’un ID utilisateur donné et toutes les invites partageant de longs préfixes communs ont été supprimées. Enfin, toutes les invites contenant des informations personnellement identifiables (PII) ont été supprimées.

Après avoir agrégé les invites de l’API OpenAI, les étiqueteurs ont également été invités à créer des exemples d’invites pour remplir les catégories dans lesquelles il n’y avait qu’un minimum de données d’échantillon réelles. Les catégories d’intérêt incluses

  • Invites simples : toute demande arbitraire.
  • Invites peu nombreuses : instructions contenant plusieurs paires requête/réponse.
  • Invites basées sur l’utilisateur : correspondent à un cas d’utilisation spécifique qui a été demandé pour l’API OpenAI.

Lors de la génération des réponses, les étiqueteurs ont été invités à faire de leur mieux pour déduire quelle était l’instruction de l’utilisateur. Le document décrit les trois principales manières qui invitent à demander des informations.

  1. Direct : “Parlez-moi de…”
  2. Quelques plans : Étant donné ces deux exemples d’histoire, écrivez une autre histoire sur le même sujet.
  3. Suite : Étant donné le début d’une histoire, terminez-la.

La compilation des invites de l’API OpenAI et écrites à la main par les étiqueteurs a donné lieu à 13 000 échantillons d’entrée/sortie à exploiter pour le modèle supervisé.

Image (à gauche) insérée à partir de Training language models to follow instructions with human feedback OpenAI et al., 2022 https://arxiv.org/pdf/2203.02155.pdf . Contexte supplémentaire ajouté en rouge (à droite) par l’auteur.

Étape 2 : modèle de récompense

Une fois le modèle SFT formé à l’étape 1, le modèle génère des réponses mieux alignées aux invites de l’utilisateur. Le raffinement suivant se présente sous la forme de la formation d’un modèle de récompense dans lequel une entrée de modèle est une série d’invites et de réponses, et la sortie est une valeur de mise à l’échelle, appelée récompense. Le modèle de récompense est nécessaire pour tirer parti de l’apprentissage par renforcement dans lequel un modèle apprend à produire des sorties pour maximiser sa récompense (voir étape 3).

Pour former le modèle de récompense, les étiqueteurs reçoivent 4 à 9 sorties de modèle SFT pour une seule invite d’entrée. On leur demande de classer ces extrants du meilleur au pire, en créant des combinaisons de classement des extrants comme suit.

Exemple de combinaisons de classement des réponses. Généré par l’auteur.

L’inclusion de chaque combinaison dans le modèle en tant que point de données distinct a conduit à un surajustement (incapacité à extrapoler au-delà des données vues). Pour résoudre le problème, le modèle a été construit en exploitant chaque groupe de classements comme un seul point de données de lot.

Image (à gauche) insérée à partir de Training language models to follow instructions with human feedback OpenAI et al., 2022 https://arxiv.org/pdf/2203.02155.pdf . Contexte supplémentaire ajouté en rouge (à droite) par l’auteur.

Étape 3 : Modèle d’apprentissage par renforcement

Dans la dernière étape, le modèle est présenté avec une invite aléatoire et renvoie une réponse. La réponse est générée à l’aide de la « politique » que le modèle a apprise à l’étape 2. La politique représente une stratégie que la machine a appris à utiliser pour atteindre son objectif ; dans ce cas, maximiser sa récompense. Sur la base du modèle de récompense développé à l’étape 2, une valeur de récompense de mise à l’échelle est ensuite déterminée pour la paire d’invite et de réponse. La récompense est ensuite réinjectée dans le modèle pour faire évoluer la politique.

En 2017, Schulman et al. introduit Proximal Policy Optimization (PPO) , la méthodologie utilisée pour mettre à jour la politique du modèle à mesure que chaque réponse est générée. PPO intègre une pénalité Kullback – Leibler (KL) par jeton du modèle SFT. La divergence KL mesure la similarité de deux fonctions de distribution et pénalise les distances extrêmes. Dans ce cas, l’utilisation d’une pénalité KL réduit la distance entre les réponses et les sorties du modèle SFT formées à l’étape 1 pour éviter de trop optimiser le modèle de récompense et de s’écarter trop radicalement de l’ensemble de données d’intention humaine.

Image (à gauche) insérée à partir de Training language models to follow instructions with human feedback OpenAI et al., 2022 https://arxiv.org/pdf/2203.02155.pdf . Contexte supplémentaire ajouté en rouge (à droite) par l’auteur.

Les étapes 2 et 3 du processus peuvent être itérées à plusieurs reprises bien que cela n’ait pas été fait de manière intensive dans la pratique.

Capture d’écran de ChatGPT générée par l’auteur.

Évaluation du modèle

L’évaluation du modèle est effectuée en mettant de côté un ensemble de tests pendant l’entraînement que le modèle n’a pas vu. Sur l’ensemble de test, une série d’évaluations sont menées pour déterminer si le modèle est mieux aligné que son prédécesseur, GPT-3.

Utilité : la capacité du modèle à déduire et à suivre les instructions de l’utilisateur. Les étiqueteurs préféraient les sorties de InstructGPT à celles de GPT-3 85 ± 3 % du temps.

Véracité : la tendance du modèle aux hallucinations. Le modèle PPO a produit des sorties qui ont montré des augmentations mineures de la véracité et de l’informativité lorsqu’elles ont été évaluées à l’aide de l’ ensemble de données TruthfulQA .

Innocuité : la capacité du modèle à éviter les contenus inappropriés, désobligeants et dénigrants. L’innocuité a été testée à l’aide de l’ensemble de données RealToxicityPrompts. Le test a été réalisé dans trois conditions.

  1. Instruit de fournir des réponses respectueuses : a entraîné une diminution significative des réponses toxiques.
  2. Instruction d’apporter des réponses, sans aucun cadre de respect : pas de changement significatif de la toxicité.
  3. Instruit de fournir une réponse toxique : les réponses étaient en fait significativement plus toxiques que le modèle GPT-3.

Pour plus d’informations sur les méthodologies utilisées pour créer ChatGPT et InstructGPT, lisez l’article original publié par OpenAI Training language models to follow instructions with human feedback , 2022 https://arxiv.org/pdf/2203.02155.pdf .

Capture d’écran de ChatGPT générée par l’auteur.

Bon apprentissage!

Articles similaires

How does ChatGPT work?

Ressources utiles pour ChatGPT

Sources

  1. https://arxiv.org/pdf/2203.02155.pdf
  2. https://medium.com/r/?url=https%3A%2F%2Fdeepai.org%2Fmachine-learning-glossary-and-terms%2Fsoftmax-layer
  3. https://www.assemblyai.com/blog/how-chatgpt-actually-works/
  4. https://medium.com/r/?url=https%3A%2F%2Ftowardsdatascience.com%2Fproximal-policy-optimization-ppo-explained-abed1952457b

Leave a Reply Cancel reply