Google, Wolfram Alpha et ChatGPT interagissent tous avec les utilisateurs par le biais d’un champ de saisie de texte d’une seule ligne et fournissent des résultats textuels. Google renvoie des résultats de recherche, une liste de pages web et d’articles qui fourniront (si tout va bien) des informations en rapport avec les requêtes de recherche. Wolfram Alpha fournit des réponses liées aux mathématiques et à l’analyse de données.
ChatGPT, en revanche, donne une réponse basée sur le contexte et l’intention de la question de l’utilisateur. Vous ne pouvez pas, par exemple, demander à Google d’écrire une histoire ou à Wolfram Alpha d’écrire un module de code. Mais ChatGPT peut faire ce genre de choses.
La puissance de Google réside dans sa capacité à effectuer d’énormes recherches dans des bases de données et à fournir une série de correspondances. La puissance de Wolfram Alpha réside dans sa capacité à analyser des questions liées à des données et à effectuer des calculs sur la base de ces questions. La puissance de ChatGPT réside dans sa capacité à analyser les requêtes et à produire des réponses et des résultats détaillés basés sur la plupart des informations textuelles accessibles numériquement dans le monde – du moins les informations qui existaient au moment de la formation avant 2021.
Dans cet article, nous verrons comment ChatGPT peut produire ces réponses détaillées. Nous commencerons par examiner les principales phases du fonctionnement de ChatGPT, puis nous aborderons certains des composants essentiels de l’architecture de l’IA qui permettent à l’ensemble de fonctionner.
Outre les sources citées dans cet article (dont beaucoup sont les documents de recherche originaux à l’origine de chacune des technologies), j’ai utilisé ChatGPT pour m’aider à créer ce document.
Les deux phases principales du fonctionnement de ChatGPT
Reprenons l’analogie avec Google. Lorsque vous demandez à Google de rechercher quelque chose, vous savez probablement qu’il ne va pas, au moment où vous le demandez, parcourir l’ensemble du web pour trouver des réponses. Au contraire, Google recherche dans sa base de données les pages qui correspondent à cette demande. Google comporte en fait deux phases principales : la phase d’exploration et de collecte de données, et la phase d’interaction et de recherche avec l’utilisateur.
En gros, ChatGPT fonctionne de la même manière. La phase de collecte des données est appelée pré-entraînement, tandis que la phase de réaction de l’utilisateur est appelée inférence. La magie de l’IA générative et la raison pour laquelle elle a soudainement explosé, c’est que la façon dont fonctionne le préapprentissage s’est soudainement avérée extrêmement évolutive.
Pré-entraînement de l’IA
D’une manière générale, les IA se pré-entraînent en utilisant deux approches principales : supervisée et non-supervisée. Pour la plupart des projets d’IA jusqu’à la génération actuelle de systèmes d’IA génératifs comme ChatGPT, l’approche supervisée a été utilisée.
Le pré-entraînement supervisé
Le pré-entraînement supervisé est un processus dans lequel un modèle est entraîné sur un ensemble de données étiquetées, où chaque entrée est associée à une sortie correspondante.
Par exemple, une IA pourrait être entraînée sur un ensemble de données de conversations de service à la clientèle. Dans cet exemple, les questions et les plaintes de l’utilisateur sont étiquetées avec les réponses appropriées du représentant du service à la clientèle. Pour entraîner l’IA, des questions telles que « Comment puis-je réinitialiser mon mot de passe ? » seraient fournies en tant qu’entrée utilisateur, et des réponses telles que « Vous pouvez réinitialiser votre mot de passe en visitant la page des paramètres du compte sur notre site web et en suivant les invites » seraient fournies en tant que sortie.
Dans une approche de formation supervisée, le modèle global est formé pour apprendre une fonction de mise en correspondance qui peut mettre en correspondance les entrées et les sorties avec précision. Ce processus est souvent utilisé dans les tâches d’apprentissage supervisé, telles que la classification, la régression et l’étiquetage des séquences.
Comme vous pouvez l’imaginer, il y a des limites dans ce processus. Les formateurs humains devraient aller assez loin dans l’anticipation de toutes les entrées et sorties. La formation pourrait prendre beaucoup de temps et être limitée en termes d’expertise.
Mais comme nous l’avons appris, ChatGPT a très peu de limites en matière d’expertise. Vous pouvez lui demander de rédiger le CV de Dark Vador, lui demander d’expliquer la physique quantique, d’écrire du code, d’écrire un court texte de fiction et de comparer les styles de gouvernement des anciens présidents.
Il est en fait impossible d’anticiper toutes les questions qui peuvent lui être posées. Et il est donc impossible d’entraîner ChatGPT à l’aide d’un modèle supervisé. Au lieu de cela, ChatGPT utilise un pré-entraînement non supervisé. Et c’est ce qui change la donne.
Le pré-entraînement non supervisé
Le pré-entraînement non supervisé est le processus par lequel un modèle est entraîné sur des données où aucune sortie spécifique n’est associée à chaque entrée. Au lieu de cela, le modèle est formé pour apprendre la structure et les modèles sous-jacents dans les données d’entrée sans aucune tâche spécifique à l’esprit. Ce processus est souvent utilisé dans les tâches d’apprentissage non supervisé, telles que le regroupement, la détection d’anomalies et la réduction de la dimensionnalité. Dans le contexte de la modélisation linguistique, le pré-entraînement non supervisé peut être utilisé pour entraîner un modèle à comprendre la syntaxe et la sémantique du langage naturel, afin qu’il puisse générer un texte cohérent et significatif dans un contexte conversationnel.
C’est ici que la connaissance apparemment illimitée de ChatGPT devient possible. Comme les développeurs n’ont pas besoin de connaître les résultats obtenus à partir des entrées, il leur suffit de déverser de plus en plus d’informations dans le mécanisme de pré-entraînement de ChatGPT, appelé modélisation linguistique à base de transformateurs.
L’architecture de Transformer
L’architecture de Transformer est un type de réseau neuronal utilisé pour traiter les données du langage naturel. Un réseau neuronal simule le fonctionnement du cerveau humain en traitant les informations par le biais de couches de nœuds interconnectés. Imaginez un réseau neuronal comme une équipe de football : chaque joueur a un rôle, mais ils se passent le ballon entre des joueurs ayant des rôles spécifiques, qui travaillent tous ensemble pour marquer le but.
L’architecture de Transformer traite les séquences de mots en utilisant « l’auto-attention » pour évaluer l’importance des différents mots d’une séquence lors de l’élaboration des prédictions. L’auto-attention est similaire à la manière dont un lecteur peut se reporter à une phrase ou à un paragraphe précédent pour trouver le contexte nécessaire à la compréhension d’un nouveau mot dans un livre. Le Transformer examine tous les mots d’une séquence pour comprendre le contexte et les relations entre les mots.
Le Transformer est constitué de plusieurs couches, chacune comportant plusieurs sous-couches. Les deux principales sous-couches sont la couche d’auto-attention et la couche d’anticipation. La couche d’auto-attention calcule l’importance de chaque mot dans la séquence, tandis que la couche d’anticipation applique des transformations non linéaires aux données d’entrée. Ces couches aident le Transformer à apprendre et à comprendre les relations entre les mots d’une séquence.
Au cours de la formation, le Transformer reçoit des données d’entrée, telles qu’une phrase, et doit faire une prédiction sur la base de ces données. Le modèle est mis à jour en fonction de la correspondance entre la prédiction et la sortie réelle. Grâce à ce processus, le Transformer apprend à comprendre le contexte et les relations entre les mots d’une séquence, ce qui en fait un outil puissant pour les tâches de traitement du langage naturel telles que la traduction et la génération de textes.
Examinons d’abord les données qui alimentent ChatGPT, puis la phase d’interaction avec l’utilisateur de ChatGPT et le langage naturel.
Jeux de données d’entraînement de ChatGPT
Le jeu de données utilisé pour entraîner ChatGPT est énorme. ChatGPT est basé sur l’architecture GPT-3 (Generative Pre-trained Transformer 3). L’abréviation GPT a du sens, n’est-ce pas ? Elle est générative, c’est-à-dire qu’elle génère des résultats, elle est pré-entraînée, c’est-à-dire qu’elle est basée sur toutes les données qu’elle ingère, et elle utilise l’architecture transformatrice qui pondère les entrées de texte pour comprendre le contexte.
Le GPT-3 a été entraîné sur un ensemble de données appelé WebText2, une bibliothèque de plus de 45 téraoctets de données textuelles. Lorsque l’on peut acheter un disque dur de 16 téraoctets pour moins de 300 euros, un corpus de 45 téraoctets peut sembler peu volumineux. Mais le texte occupe beaucoup moins d’espace de stockage que les images ou les vidéos.
Cette quantité massive de données a permis à ChatGPT d’apprendre des modèles et des relations entre les mots et les phrases du langage naturel à une échelle sans précédent, ce qui est l’une des raisons pour lesquelles il est si efficace pour générer des réponses cohérentes et contextuellement pertinentes aux requêtes des utilisateurs.
Bien que ChatGPT soit basé sur l’architecture GPT-3, il a été affiné sur un ensemble de données différent et optimisé pour les cas d’utilisation conversationnelle. Cela lui permet d’offrir une expérience plus personnalisée et attrayante aux utilisateurs qui interagissent avec lui par le biais d’une interface de chat.
Par exemple, OpenAI a publié un ensemble de données appelé Persona-Chat qui est spécifiquement conçu pour l’entraînement des modèles d’IA conversationnelle comme ChatGPT. Cet ensemble de données se compose de plus de 160 000 dialogues entre deux participants humains, chaque participant se voyant attribuer un personnage unique qui décrit ses antécédents, ses intérêts et sa personnalité. Cela permet à ChatGPT d’apprendre à générer des réponses personnalisées et pertinentes dans le contexte spécifique de la conversation.
Outre Persona-Chat, de nombreux autres ensembles de données conversationnelles ont été utilisés pour affiner ChatGPT. En voici quelques exemples :
-
Cornell Movie Dialogs Corpus : un ensemble de données contenant des conversations entre des personnages dans des scénarios de films. Il comprend plus de 200 000 échanges conversationnels entre plus de 10 000 paires de personnages de films, couvrant un large éventail de sujets et de genres. -
Ubuntu Dialogue Corpus : des dialogues entre des utilisateurs cherchant une assistance technique et l’équipe d’assistance de la communauté Ubuntu. Il contient plus d’un million de dialogues, ce qui en fait l’un des plus grands ensembles de données accessibles au public pour la recherche sur les systèmes de dialogue. -
DailyDialog : des dialogues entre humains sur une variété de sujets, allant des conversations de la vie quotidienne aux discussions sur des questions sociales. Chaque dialogue de l’ensemble de données se compose de plusieurs tours et est étiqueté avec un ensemble d’informations sur les émotions, les sentiments et les sujets.
En plus de ces ensembles de données, ChatGPT a été entraîné sur une grande quantité de données non structurées trouvées sur Internet, y compris des sites Web, des livres et d’autres sources de texte. Cela a permis à ChatGPT d’apprendre à connaître la structure et les modèles de langage de manière plus générale, ce qui a ensuite pu être affiné pour des applications spécifiques telles que la gestion du dialogue ou l’analyse des sentiments.
ChatGPT est un modèle distinct qui a été formé en utilisant une approche similaire à celle de la série GPT, mais avec quelques différences dans l’architecture et les données de formation. ChatGPT compte 1,5 milliard de paramètres, ce qui est inférieur aux 175 milliards de paramètres de GPT-3.
Dans l’ensemble, les données d’entraînement utilisées pour affiner ChatGPT sont typiquement de nature conversationnelle et spécifiquement conçues pour inclure des dialogues entre humains, ce qui permet à ChatGPT d’apprendre à générer des réponses naturelles et engageantes dans un format conversationnel.
Imaginez la formation non supervisée de ChatGPT de la manière suivante : On lui a fourni beaucoup de données et on l’a laissé se débrouiller tout seul pour trouver des modèles et donner un sens à tout cela. C’est ce mécanisme qui a permis aux nouveaux systèmes d’IA générative de se développer si rapidement.
Alors que le gros du travail pour l’IA générative de ChatGPT est effectué par le pré-entraînement, elle doit également être capable de comprendre les questions et de construire des réponses à partir de toutes ces données. C’est ce que fait la phase d’inférence, qui consiste à traiter le langage naturel et à gérer le dialogue.
Qu’en est-il de l’implication humaine dans la préformation ?
Malgré l’évolutivité inhérente au préapprentissage non supervisé, certains éléments indiquent qu’une assistance humaine a pu être impliquée dans la préparation de ChatGPT en vue d’une utilisation publique.
La grande révélation a été faite dans un article du magazine TIME qui traite de l’utilisation d' »étiqueteurs de données » humains gagnant entre 1,32 $ et 2 $ de l’heure au Kenya. Ces travailleurs étaient chargés d’analyser les contenus Internet horribles et sexuellement explicites afin de les signaler pour la formation au ChatGPT.
Un autre article, publié dans Martechpost, une lettre d’information sur l’IA, indique que le grand modèle linguistique a été formé à l’aide d’un processus appelé Reinforcement Learning from Human Feedback (RLHF) (apprentissage par renforcement à partir de la rétroaction humaine). Selon l’article, « le processus de formation a impliqué un modèle initial affiné utilisant l’apprentissage supervisé, avec des formateurs humains jouant à la fois le rôle de l’utilisateur et d’un assistant d’IA ».
Il y a quelques subtilités ici, quand il s’agit de savoir ce que signifie le mot « formation ». Selon ChatGPT lui-même, « OpenAI n’a pas utilisé l’apprentissage par renforcement avec un retour d’information humain pour me former. Au lieu de cela, j’ai été préformé en utilisant une combinaison de techniques d’apprentissage supervisé et non supervisé, telles que la modélisation du langage, l’auto-encodage et la prédiction de séquences. Ma formation a consisté à traiter des quantités massives de données textuelles provenant d’Internet, ce qui m’a permis d’apprendre des schémas et des relations entre les mots et les phrases. »
L’IA poursuit : « Cependant, une fois que j’ai été pré-entraînée, les chercheurs et les développeurs peuvent utiliser l’apprentissage par renforcement avec un retour d’information humain pour m’adapter à des tâches ou à des domaines spécifiques, comme répondre à des questions ou générer du texte. Dans ces cas, les humains peuvent fournir un retour d’information sous forme de récompenses ou de pénalités, qui peuvent être utilisées pour mettre à jour mes paramètres et améliorer mes performances sur des tâches similaires à l’avenir. »
Cela semble correspondre aux articles de Marktechpost et TIME, dans la mesure où le pré-entraînement initial n’était pas supervisé, ce qui a permis d’introduire une énorme quantité de données dans le système. Mais lors de l’élaboration des réponses de dialogue qui communiquent avec les utilisateurs (voir ci-dessous), les moteurs de réponse ont apparemment été formés à la fois aux types de réponses et au filtrage des contenus inappropriés – et cette formation semble avoir été assistée par l’homme.
J’ai contacté OpenAI (le fabricant de ChatGPT) pour obtenir des éclaircissements, mais je n’ai pas encore reçu de réponse. Si la société me répond (en dehors de ChatGPT lui-même), je mettrai à jour l’article avec sa réponse.
Traitement du langage naturel
Le traitement du langage naturel (NLP – Natural Langage Processing) vise à permettre aux ordinateurs de comprendre, d’interpréter et de générer du langage humain. Avec la croissance exponentielle des données numériques et l’utilisation croissante d’interfaces en langage naturel, le NLP est devenu une technologie cruciale pour de nombreuses entreprises.
Les technologies NLP peuvent être utilisées pour un large éventail d’applications, notamment l’analyse des sentiments, les chatbots, la reconnaissance vocale et la traduction. En tirant parti du NLP, les entreprises peuvent automatiser des tâches, améliorer le service à la clientèle et obtenir des informations précieuses à partir des commentaires des clients et des messages sur les médias sociaux.
L’un des principaux défis de la mise en œuvre du NLP est de gérer la complexité et l’ambiguïté du langage humain. Les algorithmes de NLP doivent être entraînés sur de grandes quantités de données afin de reconnaître des modèles et d’apprendre les nuances du langage. Ils doivent également être continuellement affinés et mis à jour pour s’adapter aux changements dans l’utilisation et le contexte de la langue.
La technologie fonctionne en décomposant les données linguistiques, telles que les phrases ou les paragraphes, en éléments plus petits et en analysant leur signification et leurs relations afin de générer des idées ou des réponses. Les technologies NLP utilisent une combinaison de techniques, notamment la modélisation statistique, l’apprentissage automatique et l’apprentissage profond, pour reconnaître des modèles et apprendre à partir de grandes quantités de données afin d’interpréter et de générer du langage avec précision.
Gestion du dialogue
Vous avez peut-être remarqué que ChatGPT peut poser des questions de suivi pour clarifier votre intention ou mieux comprendre vos besoins, et fournir des réponses personnalisées qui prennent en compte l’ensemble de l’historique de la conversation.
C’est ainsi que ChatGPT peut avoir des conversations à plusieurs tours avec les utilisateurs d’une manière qui semble naturelle et engageante. Cela implique l’utilisation d’algorithmes et de techniques d’apprentissage automatique pour comprendre le contexte d’une conversation et le maintenir au cours de multiples échanges avec l’utilisateur.
La gestion du dialogue est un aspect important du traitement du langage naturel, car elle permet aux programmes informatiques d’interagir avec les gens d’une manière qui ressemble davantage à une conversation qu’à une série d’interactions ponctuelles. Cela peut contribuer à instaurer la confiance et l’engagement avec les utilisateurs et, en fin de compte, conduire à de meilleurs résultats tant pour l’utilisateur que pour l’organisation qui utilise le programme.
Les spécialistes du marketing souhaitent bien entendu développer la confiance, mais il s’agit également d’un domaine qui pourrait s’avérer effrayant, car c’est l’un des moyens par lesquels une IA pourrait être en mesure de manipuler les personnes qui l’utilisent.
En guise de conclusion, sur ce qui arrive
Même si nous dépassons les 2 500 mots, il s’agit encore d’un aperçu très rudimentaire de tout ce qui se passe à l’intérieur de ChatGPT. Cela dit, vous comprenez peut-être maintenant un peu mieux pourquoi cette technologie a explosé au cours des derniers mois. La clé de tout cela est que les données elles-mêmes ne sont pas « supervisées » et que l’IA est capable de prendre ce qu’on lui a donné et de le comprendre.
C’est assez impressionnant, vraiment.
Pour conclure, j’ai envoyé un brouillon de cet article à ChatGPT et j’ai demandé à l’IA de décrire l’article en une phrase. La voilà :
« ChatGPT est comme le cousin cérébral de Google et Wolfram Alpha qui peut faire des choses qu’ils ne peuvent pas faire, comme écrire des histoires et coder des modules. »
ChatGPT est censé être une technologie sans ego, mais si cette réponse ne vous donne pas un peu la chair de poule, c’est que vous n’avez pas été attentif.
Qu’en pensez-vous ? Utilisez-vous ChatGPT ? Quelles sont les questions que vous vous posez encore sur son fonctionnement ? Partagez-les avec nous dans les commentaires ci-dessous.
Source : « ZDNet.com »
(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/fr_FR/all.js#appId=243265768935&xfbml=1"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));