Comme nous le savons tous, ChatGPT d’OpenAI a pris le monde d’assaut depuis sa sortie l’année dernière. Les gens sont fascinés par sa capacité à générer un langage semblable à celui des humains et explorent son potentiel dans différents produits. Sa popularité a même incité des géants de la technologie comme Google à publier leurs propres versions de ChatGPT.

Cependant, pour ceux qui ne sont pas très au fait de la technologie, la technologie derrière ChatGPT peut sembler mystérieuse. N’ayez crainte ! Dans cet article de blog, nous vous expliquons comment fonctionne le ChatGPT de manière simple. A la fin de cet article, vous aurez une compréhension claire du modèle ChatGPT et de la manière dont il produit ses incroyables résultats.

Le transformer & la chronologie de GPT

Pour bien comprendre ChatGPT, il est essentiel de prendre un peu de recul et d’examiner l’histoire de son développement. L’architecture de transformateurs de modèles de langage, qui constitue la base de ChatGPT, évolue depuis un certain temps.

En 2017, le premier modèle de langage basé sur un transformateur a été présenté par Google, appelé « Transformer ». Ce modèle a démontré que l’architecture du transformateur pouvait produire des résultats de pointe dans les tâches de traitement du langage naturel.

Suite au succès du Transformer, OpenAI a publié la première version du Generative Pre-trained Transformer (GPT) en 2018. GPT-1 suivait une approche d’apprentissage non supervisé et était pré-entraîné sur un jeu de données massif de textes, ce qui lui permettait de générer des textes cohérents et réalistes.

La deuxième version de GPT, connue sous le nom de GPT-2, a été publiée en 2019. Elle comptait 1,5 milliard de paramètres, ce qui la rendait nettement plus grande que GPT-1, et elle a généré des résultats plus impressionnants. Cependant, GPT-2 a également suscité une certaine controverse en raison de sa capacité à générer des fake news convaincantes et des informations potentiellement trompeuses.

En 2020, OpenAI a publié GPT-3, qui comptait 175 milliards de paramètres, ce qui en faisait le plus grand modèle de langage à ce jour. GPT-3 pouvait effectuer toute une série de tâches, notamment la traduction, le résumé et la réponse à des questions, et ses capacités de génération de langage naturel étaient très impressionnantes.

Enfin, à la fin de l’année 2020, OpenAI a lancé ChatGPT, qui s’appuie sur l’architecture de GPT-3 et est spécifiquement conçu pour les applications conversationnelles. Avec ChatGPT, les utilisateurs peuvent générer des réponses de type humain aux prompts textes, ce qui en fait un outil très précieux pour les chatbots et les assistants virtuels.

Au-delà des modèles, une plongée en profondeur

Pour comprendre le fonctionnement de ChatGPT, il est essentiel de se plonger dans les composants de l’architecture du transformateur et des modèles de TPG qui l’ont précédé. Ne vous inquiétez pas si vous n’êtes pas familier avec l’apprentissage profond, les réseaux neuronaux ou l’IA – nous éviterons les équations et nous devrons suivre des analogies et des exemples pour expliquer les concepts.

L’architecture Le transformer, à la base, est un réseau neuronal qui excelle dans le traitement des séquences de données. Pensez à une séquence comme une phrase, un paragraphe ou même un document entier. Le transformer peut traiter ces séquences et en extraire les informations pertinentes, ce qui lui permet de générer des réponses cohérentes et significatives.

Le transformer se compose de deux éléments clés : l’encodeur et le décodeur. L’encodeur traite la séquence d’entrée et en génère une représentation, tandis que le décodeur prend cette représentation et génère la séquence de sortie.

Les modèles GPT utilisent l’architecture du transformateur comme élément de base mais se concentrent sur la modélisation du langage, c’est-à-dire la capacité à prédire la probabilité d’une séquence de mots donnée. En s’entraînant au préalable sur de grands ensembles de données textuelles, les modèles GPT peuvent générer un langage naturel qui ressemble à la parole humaine.

Le processus de pré-entraînement consiste à alimenter le modèle GPT avec de grandes quantités de données textuelles et à l’entraîner à prédire le mot suivant dans une séquence. Le modèle apprend à comprendre les relations entre les mots, les structures de phrases et le contexte dans lequel ils apparaissent.

Enfin, ChatGPT reprend l’architecture GPT et l’adapte aux applications conversationnelles. Il doit suivre le modèle pré-entraîné pour générer des réponses aux entrées de l’utilisateur, créant ainsi une conversation de type humain. En analysant l’entrée et en générant une réponse pertinente, ChatGPT peut être suivi par des chatbots, des assistants virtuels et d’autres interfaces conversationnelles.

Modèles linguistiques et NLP

Il existe de nombreux types de modèles d’IA ou d’apprentissage profond. Pour les tâches de traitement du langage naturel (NLP) comme les conversations, la reconnaissance vocale, la traduction et le résumé, nous nous tournerons vers les modèles de langage pour nous aider.

Les modèles de langage peuvent apprendre une bibliothèque de textes (appelée corpus) et prédire des mots ou des séquences de mots avec des distributions probabilistes, c’est-à-dire la probabilité qu’un mot ou une séquence se produise. Par exemple, lorsque vous dites « Tom aime manger … », la probabilité que le mot suivant soit « pizza » est plus élevée que « table ». S’il s’agit de prédire le mot suivant dans la séquence, on parle de prédiction du mot suivant ; s’il s’agit de prédire un mot manquant dans la séquence, on parle de modélisation du langage masqué.

Comme il s’agit d’une distribution de probabilités, il peut y avoir de nombreux mots probables avec des probabilités différentes. Même si l’on peut penser qu’il est idéal de toujours choisir le meilleur candidat avec la probabilité la plus élevée, cela peut conduire à des séquences répétitives. Dans la pratique, les chercheurs ajoutent donc une part d’aléatoire (température) lorsqu’ils choisissent le mot parmi les meilleurs candidats.

Source: On the Opportunities and Risks of Foundation Models

Il existe de nombreux types de modèles d’IA et d’apprentissage profond, mais pour les tâches de traitement du langage naturel (NLP) telles que les conversations, la reconnaissance vocale, la traduction et le résumé, les modèles de langage constituent le choix idéal.

Les modèles de langage peuvent apprendre une bibliothèque de textes, appelée corpus, et suivre des distributions probabilistes pour prédire des mots ou des séquences de mots. Par exemple, si le modèle voit la séquence « Tom aime manger… », il peut prédire « pizza » avec une probabilité plus élevée que « table ». Lorsque l’on prédit le mot suivant dans une séquence, on parle de prédiction du mot suivant. Lorsqu’il s’agit de prédire un mot manquant dans une séquence, on parle de modélisation du langage masqué.

Cependant, comme il s’agit d’une distribution de probabilités, il peut y avoir de nombreux mots probables avec des probabilités différentes. Choisir le meilleur candidat avec la probabilité la plus élevée peut conduire à des séquences répétitives. C’est pourquoi les chercheurs ajoutent un certain caractère aléatoire (température) lors de la sélection du mot parmi les meilleurs candidats afin d’introduire une certaine diversité dans le texte généré.

Dans un processus NLP typique, le texte d’entrée subit les étapes suivantes :

  1. Prétraitement : Le texte est nettoyé à l’aide de techniques telles que la segmentation des phrases, la tokenisation (découpage du texte en petits morceaux appelés tokens), la déformation (suppression des suffixes ou des préfixes), la suppression des mots vides, la correction de l’orthographe, etc. Par exemple, la phrase « Tom aime manger de la pizza » sera segmentée en [« Tom », « aime », « manger », « pizza », « . »] et épurée en [« Tom », « aime », « manger », « pizza », « . »].
  2. Encodage ou incorporation : Le texte nettoyé est transformé en un vecteur de nombres afin que le modèle puisse le traiter.
  3. Alimentation du modèle : L’entrée codée est transmise au modèle pour être traitée.
  4. Obtention du résultat : Le modèle génère une distribution de probabilité de mots potentiels représentés dans des vecteurs de nombres.
  5. Décodage : Le vecteur est retraduit en mots lisibles par l’homme.
  6. Post-traitement : Le résultat est affiné en utilisant la vérification orthographique, la vérification grammaticale, la ponctuation, la capitalisation et d’autres techniques.

En passant par ces étapes, le modèle peut générer des réponses en langage naturel qui sont cohérentes, pertinentes et grammaticalement correctes.

Architecture du transformateur

L’architecture du transformateur est le bloc de construction fondamental des modèles TPG. Il s’agit d’un type de réseau neuronal, qui est similaire aux neurones du cerveau humain. Le transformer est excellent pour comprendre les contextes dans les données séquentielles telles que le texte, la parole ou la musique, grâce à des mécanismes comme l’attention et l’auto-attention.

L’attention permet au modèle de se concentrer sur les parties les plus pertinentes de l’entrée et de la sortie en apprenant la pertinence ou la similarité entre les éléments, qui sont généralement représentés par des vecteurs. On parle d’auto-attention lorsque le modèle se concentre sur la même séquence.

Le mécanisme d’auto-attention du transformateur aide le modèle à traiter les dépendances à longue portée dans les données séquentielles plus efficacement que les réseaux neuronaux récurrents traditionnels (RNN). Le transformer peut considérer tous les éléments de la séquence simultanément, ce qui le rend plus efficace et plus rapide que les RNN.

Le transformer est composé de couches, chacune contenant un ensemble de têtes d’auto-attention parallèles. Ces têtes aident le modèle à capturer différents aspects de la séquence d’entrée et de sortie. Chaque couche comporte également un réseau neuronal à action directe qui traite la sortie du mécanisme d’auto-attention. En empilant plusieurs couches du transformateur, le modèle peut apprendre des relations plus complexes entre les éléments de la séquence.

Globalement, l’architecture du transformateur permet aux modèles GPT de générer un langage cohérent et adapté au contexte en comprenant les relations entre les mots, les expressions et les phrases d’une séquence de texte.

Pour illustrer davantage le mécanisme de l’attention, considérons la phrase suivante : « Tom aime manger des pommes. Il en mange tous les jours. » Dans cette phrase, « il » désigne « Tom » et « elle » désigne « les pommes ». Le mécanisme d’attention utilise un algorithme mathématique pour calculer un score de similarité entre les vecteurs de mots, indiquant au modèle que ces mots sont liés. Cela permet aux transformateurs de mieux comprendre le sens des séquences de texte et de générer des réponses plus cohérentes.

Les transformateurs ont quatre composants clés :

  1. Encadrement et codage positionnel : Cette étape consiste à transformer les mots en vecteurs de nombres et à ajouter des informations positionnelles pour indiquer leur position dans la séquence.
  2. Encodeur : L’encodeur extrait les caractéristiques de la séquence d’entrée et analyse sa signification et son contexte. Il produit une matrice d’états cachés pour chaque jeton d’entrée à transmettre au décodeur.
  3. Décodeur : Le décodeur génère la séquence de sortie sur la base de la sortie de l’encodeur et des jetons de sortie précédents.
  4. Couche linéaire et Softmax : Cette composante transforme le vecteur en une distribution de probabilité des mots de sortie.

L’encodeur et le décodeur sont les principaux composants de l’architecture du transformateur. L’encodeur analyse et « comprend » le texte d’entrée, tandis que le décodeur génère la séquence de sortie. Ensemble, ces composants permettent aux transformateurs de générer des réponses cohérentes et pertinentes en langage naturel.

Pour ceux qui sont intéressés par les détails des encodeurs et décodeurs, lisez la suite. Sinon, n’hésitez pas à passer à la section suivante où nous couvrirons les TPG, une variante des transformateurs.

Le codeur est une pile de plusieurs couches identiques, typiquement six couches dans le papier original du transformateur. Chaque couche est constituée de deux sous-couches : une couche d’auto-attention à têtes multiples et une couche de feed-forward. Ces sous-couches sont reliées par des connexions résiduelles et une normalisation des couches. La sous-couche d’auto-attention multi-têtes applique le mécanisme d’attention pour trouver la connexion/similarité entre les jetons d’entrée et comprendre l’entrée. La sous-couche d’anticipation traite le résultat avant de le transmettre à la couche suivante, afin d’éviter un ajustement excessif. Les encodeurs peuvent être comparés à la lecture d’un livre : vous prêtez attention à chaque nouveau mot et réfléchissez à la manière dont il est lié aux mots précédents.

Le décodeur est similaire à l’encodeur dans la mesure où il s’agit également d’une pile de couches identiques. Cependant, chaque couche du décodeur possède une couche d’attention supplémentaire entre les couches d’auto-attention et de feed-forward. Cette couche d’attention permet au décodeur de se concentrer sur la séquence d’entrée. Par exemple, lors de la traduction de « I love you » (entrée) en « Je t’aime » (sortie), le décodeur doit savoir que « Je » s’aligne sur « I » et « love » sur « aime ».

Les couches d’attention à têtes multiples du décodeur sont également différentes. Elles sont masquées pour ne pas prêter attention à ce qui se trouve à droite du jeton actuel, qui n’a pas encore été généré. Vous pouvez considérer les décodeurs comme une écriture libre – vous écrivez en fonction de ce que vous avez écrit et de ce que vous avez lu, sans vous soucier de ce que vous allez écrire ensuite.

Des transformateurs aux GPT, GPT2 et GPT3

GPT est l’abréviation de Generative Pre-trained Transformer. Ce nom indique qu’il s’agit d’un modèle génératif, capable de générer des résultats, qu’il est préformé, ce qui signifie qu’il a appris à partir d’un grand corpus de données textuelles, et qu’il s’agit d’un type de transformateur.

GPT ne suit que la partie décodeur de l’architecture du transformateur. Comme nous l’avons appris précédemment, le décodeur est responsable de la prédiction du prochain token de la séquence. GPT répète ce processus en suivant les résultats générés précédemment comme entrée pour générer des textes plus longs, ce qui est appelé auto-régressif. Par exemple, pour traduire « I love you » en français, il génère d’abord « Je », puis il doit suivre le « Je » généré pour obtenir « Je t’aime ».

Pour former la première version de GPT, les chercheurs ont dû suivre un pré-apprentissage non supervisé avec la base de données BookCorpus, qui comprend plus de 7000 livres uniques non publiés. L’apprentissage non supervisé implique que l’IA lise elle-même ces livres et tente d’apprendre les règles générales du langage et des mots. En plus du pré-entraînement, ils ont également suivi un réglage fin supervisé sur des tâches spécifiques comme le résumé ou les questions-réponses. L’apprentissage supervisé consiste à montrer à l’IA des exemples de demandes et de réponses correctes et à lui demander d’apprendre à partir de ces exemples.

Dans GPT-2, les chercheurs ont augmenté la taille du modèle (1,5 milliard de paramètres) et le corpus qu’ils ont alimenté avec WebText, qui est une collection de millions de pages Web, pendant le pré-entraînement non supervisé. Avec un corpus aussi important pour l’apprentissage, le modèle a obtenu de bons résultats dans un large éventail de tâches liées au langage, même sans réglage fin supervisé.

Dans GPT-3, les chercheurs sont allés plus loin en étendant le modèle à 175 milliards de paramètres et en suivant un énorme corpus comprenant des centaines de milliards de mots provenant du Web, de livres et de Wikipedia. Avec un modèle de cette taille et un corpus aussi important en pré-formation, les chercheurs ont constaté que GPT-3 peut apprendre à mieux exécuter des tâches avec un (one-shot) ou quelques exemples (few-shot) dans le prompt sans réglage fin supervisé explicite.

Si le modèle GPT-3 est déjà impressionnant, il s’agit plutôt d’un modèle de langage à usage général. Les chercheurs ont souhaité explorer comment il pourrait suivre des instructions humaines et avoir des conversations avec des humains. Pour ce faire, ils ont créé InstructGPT et ChatGPT sur la base du modèle général GPT. Nous allons voir comment ils ont procédé dans la section suivante.

Apprendre à GPT à interagir avec les humains : InstructGPT et ChatGPT

Les chercheurs ont découvert que les modèles plus grands ne suivent pas nécessairement bien l’intention humaine et peuvent produire des résultats nuisibles. Pour résoudre ce problème, ils ont affiné GPT-3 en suivant l’apprentissage supervisé et l’apprentissage par renforcement à partir du feedback humain (RLHF). Cela a conduit à la création de deux modèles affinés, InstructGPT et ChatGPT.

Source: Ouyang, Long, et al. “Training language models to follow instructions with human feedback.”

La première étape consiste en un apprentissage supervisé à partir d’exemples humains. Les chercheurs ont fourni au GPT pré-entraîné un ensemble de données étiquetées de paires de prompts et de réponses rédigées par des étiqueteurs humains. Cet ensemble de données est suivi par le modèle pour apprendre le comportement souhaité à partir de ces exemples. Cette étape permet d’obtenir un modèle supervisé à réglage fin (SFT).

La deuxième étape consiste à former un modèle de récompense (RM) pour évaluer les réponses du modèle génératif. Le modèle SFT génère plusieurs réponses à partir de chaque prompt, et des étiqueteurs humains classent les réponses de la meilleure à la pire en fonction de la qualité, de l’engagement, du caractère informatif, de la sécurité, de la cohérence et de la pertinence. Les prompts, les réponses et les classements sont transmis à un modèle de récompense pour apprendre les préférences humaines pour les réponses par apprentissage supervisé. Le modèle de récompense peut prédire une valeur scalaire de récompense en fonction de la mesure dans laquelle la réponse correspond aux préférences humaines.

Dans la troisième étape, les chercheurs ont suivi le modèle de récompense pour optimiser la politique du modèle SFT par apprentissage par renforcement. Le modèle SFT génère une réponse à partir d’un nouveau prompt, et le modèle de récompense évalue la réponse et lui attribue une valeur de récompense qui se rapproche des préférences humaines. La récompense doit ensuite suivre pour optimiser le modèle génératif en mettant à jour ses paramètres. Par exemple, si le modèle génératif génère une réponse que le modèle de récompense pense que les humains pourraient aimer, il recevra une récompense positive pour continuer à générer des réponses similaires à l’avenir, et vice versa.

Grâce à ce processus d’apprentissage supervisé et d’apprentissage par renforcement à partir de la rétroaction humaine, le modèle InstructGPT (avec seulement 1,3 milliard de paramètres) surpasse le modèle GPT-3 (avec 175 milliards de paramètres) dans les tâches qui suivent des instructions humaines.

Toutefois, il convient de noter que cela ne signifie pas nécessairement qu’InstructGPT est supérieur à GPT-3 dans tous les aspects ou domaines. Par exemple, le GPT-3 peut encore avoir un avantage dans la génération de textes plus longs ou plus créatifs, tels que des histoires ou des articles.

ChatGPT est un modèle frère de InstructGPT qui subit un processus de formation similaire, comprenant les mêmes méthodes d’apprentissage supervisé et de RLHF discutées précédemment. Cependant, ChatGPT est formé en utilisant des exemples de tâches conversationnelles telles que la réponse à des questions, le bavardage et le trivia. Grâce à cet entraînement, ChatGPT peut s’engager dans des conversations naturelles avec des humains, répondre à des questions de suivi et admettre ses erreurs, ce qui rend l’interaction avec lui plus agréable.

Points à retenir

Pour résumer, ChatGPT est un modèle de transformateur auto-régressif à décodeur seul qui génère du texte de manière probabiliste sur la base du corpus sur lequel il a été entraîné. Il est pré-entraîné sur un large corpus de données web et de livres et affiné avec des exemples de conversations humaines par apprentissage supervisé et apprentissage par renforcement à partir de retours humains. Ses performances dépendent principalement de la taille de son modèle ainsi que de la qualité et de la taille du corpus et des exemples sur lesquels il a été entraîné. Avec un entraînement supplémentaire, il peut être plus performant dans des contextes ou des tâches spécifiques.

Cependant, ChatGPT et d’autres modèles GPT ont des limites. Puisqu’ils sont formés sur un corpus de données, ils peuvent apprendre les biais présents dans ces données, ce qui entraîne des réponses biaisées à certaines demandes. De plus, ils peuvent générer de fausses affirmations sur des faits puisqu’ils n’ont pas la possibilité de rechercher des références en temps réel.

Malgré ces limites, il est important de rester curieux et ouvert aux nouvelles technologies comme le ChatGPT. Avec un état d’esprit ouvert, les gestionnaires de produits non techniques, les concepteurs et les entrepreneurs peuvent naviguer sur cette nouvelle vague de révolution technologique.

References:

  • Radford, A., & Huang, K. (2020). Language Models are Few-Shot Learners. OpenAI. Retrieved from https://arxiv.org/abs/2005.14165
  • Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., … & Polosukhin, I. (2017). Attention is All You Need. Advances in Neural Information Processing Systems, 30, 5998-6008.
  • Radford, A., Wu, J., Child, R., Luan, D., Amodei, D., & Sutskever, I. (2019). Language Models are Unsupervised Multitask Learners. OpenAI Blog. Retrieved from https://openai.com/blog/better-language-models/
  • Radford, A., Narasimhan, K., Salimans, T., & Sutskever, I. (2018). Improving Language Understanding by Generative Pre-Training. OpenAI. Retrieved from https://s3-us-west-2.amazonaws.com/openai-assets/research-covers/language-unsupervised/language_understanding_paper.pdf
  • Brown, T. B., Mann, B., Ryder, N., Subbiah, M., Kaplan, J., Dhariwal, P., … & Amodei, D. (2020). Language models are few-shot learners. arXiv preprint arXiv:2005.14165.
  • Holtzman, A., Buys, J., Forbes, M., Bosselut, A., & Choi, Y. (2020). The Curious Case of Neural Text Degeneration. arXiv preprint arXiv:1904.09751.
  • Adiwardana, D., Luong, M. T., Raffel, C., Kaiser, Ł., & St. John, R. (2020). Towards a Human-like Open-Domain Chatbot. arXiv preprint arXiv:2001.09977.
  • Manning, C. D., & Jurafsky, D. (2021). Speech and Language Processing (3rd ed.). Pearson.
  • Wang, A., Singh, A., Michael, J., Hill, F., Levy, O., & Bowman, S. R. (2019). GLUE: A Multi-Task Benchmark and Analysis Platform for Natural Language Understanding. Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLP-IJCNLP), 3538-3549.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.