Grands modèles de langageIA générativeApprendre l'IAGrands modèles de langageIngénierie IAIA générativeApprendre l'IA
Grands modèles de langageIngénierie IA15 min de lecture

Dans les coulisses de ChatGPT : comment l’IA comprend et génère le langage

Une explication pour débutants de la façon dont ChatGPT transforme le texte en tokens, prédit ses réponses et génère un langage qui semble cohérent.

Dans les coulisses de ChatGPT : comment l’IA comprend et génère le langage
Sommaire

À retenir

  • ChatGPT ne lit pas le texte comme les humains. Il travaille avec des tokens et prédit les suites probables.
  • Ce qui est impressionnant, ce n’est pas une seule prédiction, mais la façon dont plusieurs petites prédictions s’assemblent pour former une réponse utile.
  • Comprendre la tokenisation et la génération aide à expliquer pourquoi ChatGPT peut être fluide, utile et tout de même se tromper.

Regardez la vidéo (surtout pour tous les superbes visuels!) :

Vous avez peut-être entendu dire que l’IA peut accomplir toutes sortes de choses impressionnantes, qu’il s’agisse de vous parler comme un humain, de générer du code ou même d’analyser des images. Mais comment ces modèles fonctionnent-ils réellement en coulisses? Si vous débutez en Python ou avez peu d’expérience en programmation, ne vous inquiétez pas. Nous allons essayer de garder les choses simples tout en couvrant les idées essentielles. À la fin, vous comprendrez plus clairement la place des LLMs dans le grand portrait de l’IA, la façon dont ils traitent le langage, les raisons pour lesquelles ils se trompent parfois et pourquoi ils demeurent des outils incroyablement puissants pour construire les applications de prochaine génération.

Commençons par une petite histoire. Imaginez-vous dans un cours de langue. Vous voulez apprendre le français, mais au lieu d’étudier toutes les règles de grammaire une par une, vous commencez à lire une quantité énorme de textes français, comme des romans, des articles de nouvelles et des publications aléatoires sur les médias sociaux. Vous essayez ensuite de prédire la suite des phrases françaises en ne regardant que leurs premiers mots. Au début, vous ferez évidemment des erreurs et des suppositions au hasard. Mais après beaucoup de pratique et de feedback, si on vous explique dans votre langue ce qu’aurait dû être la bonne réponse, vous commencez à repérer des patterns. Vous remarquez que certains mots apparaissent plus souvent ensemble que d’autres. Après avoir lu un million de phrases françaises, vous devenez plutôt bon pour prédire les mots suivants. C’est plus ou moins ce que font les LLMs à une échelle gigantesque. Ils lisent d’immenses quantités de données provenant d’Internet, comme des pages Web, des livres et du code, puis essaient de prédire le prochain mot d’une séquence. C’est ce qu’on appelle la prédiction du prochain token, mais vous n’avez pas besoin de vous soucier de ce terme.

Lorsque nous parlons d’IA, nous désignons tout un domaine de recherche et de technologie qui vise à construire des machines capables d’accomplir des tâches exigeant normalement l’intelligence humaine, comme reconnaître la parole, identifier des images ou prendre des décisions. L’IA comprend un sous-domaine appelé apprentissage automatique, qui consiste à enseigner aux ordinateurs à apprendre à partir de données sans programmer chaque règle individuellement. Traditionnellement, si on voulait qu’un ordinateur accomplisse une tâche, on codait tout en dur, par exemple : « Si X, fais Y; si A, fais B. » L’apprentissage automatique inverse cette logique en laissant des algorithmes absorber les données et apprendre eux-mêmes ces patterns. Nous pouvons ainsi passer à des patterns beaucoup plus complexes que quelques instructions « si, alors ».

L’apprentissage automatique comprend aussi le concept de réseaux neuronaux, qui s’inspirent très librement du fonctionnement du cerveau humain. Imaginez un réseau composé d’un ensemble de petites unités, que nous appelons des neurones, reliées entre elles. Dans le cerveau humain, les neurones se transmettent des signaux par des connexions appelées synapses. Dans un réseau neuronal artificiel, ces « neurones » se transmettent des nombres, plutôt que les substances chimiques et le courant utilisés par notre cerveau. En ajustant ces connexions à partir de milliards d’exemples, le réseau apprend à accomplir une tâche. Comme les bébés apprennent en observant les choses et en jouant avec elles. De la même façon, le deep learning se distingue simplement de l’apprentissage automatique par l’utilisation de très grands réseaux comptant de nombreuses couches de neurones, qui peuvent ainsi détecter des patterns plus complexes.

Les LLMs appartiennent à cette catégorie du deep learning et utilisent un type précis de réseau neuronal appelé transformeur. Imaginez un transformeur comme une chaîne de montage capable de traiter beaucoup de texte en parallèle, au lieu de le traiter élément par élément comme le faisaient les réseaux précédents. Plutôt que de lire une phrase mot par mot de gauche à droite, le modèle peut tout examiner simultanément et déterminer quelles parties du texte comptent le plus. Un élément appelé « mécanisme d’attention » rend cela possible en indiquant au modèle de porter une attention particulière à certains mots selon le contexte. Si le texte dit : « He sat on the bank and watched the river flow », le mécanisme d’attention aide le modèle à comprendre que le mot anglais « bank » désigne ici le bord d’une rivière et non une institution financière. Tout cela s’apprend en observant des exemples et en en tirant des leçons. Comme dans notre exemple du français ou lorsque vous apprenez de nouveaux mouvements dans certains sports, où « c’est en forgeant qu’on devient forgeron ». Il en va de même pour les LLMs, ce qui explique leurs énormes besoins en données, soit pratiquement tout Internet.

Mais avant d’aborder toutes ces notions complexes, revenons à la façon dont nous transformons des données textuelles brutes en quelque chose qu’un réseau neuronal peut comprendre. Le modèle ne peut pas simplement lire des lettres comme un humain. Tout doit prendre la forme de nombres. Nous divisons donc le texte en morceaux appelés tokens. Prenons une phrase comme « Le chat s’est assis sur le tapis ». On pourrait la diviser en tokens comme « Le », « chat », « s’est », « assis », « sur », « le », « tapis ». Ces tokens sont généralement des mots, mais selon le tokenizer, soit le programme qui divise le texte en tokens, ils peuvent être des morceaux plus petits comme des sous-mots ou même des caractères individuels. L’important est que le modèle voit une séquence de tokens et non de simples lettres brutes. Il ne comprend pas les lettres, seulement des bits.

Après la tokenisation, chaque token est associé à une liste de nombres, généralement appelée embedding, pour que l’ordinateur puisse effectuer des calculs. Par exemple, « chat » pourrait être associé à [0.12, -0.99, 3.11, …], tandis que « chien » pourrait correspondre à [0.10, -1.02, 3.20, …]. La différence entre ces nombres peut être petite ou grande, et elle capture essentiellement la proximité de leurs significations. Des mots comme « chat » et « chaton » se trouveront très près dans cet espace d’embedding, puisque leurs significations se chevauchent beaucoup. « Chat » et « banane » seront beaucoup plus éloignés. Vous pouvez imaginer que chaque nombre représente la relation du mot avec une caractéristique, comme sa taille, sa couleur ou sa forme. Notre chat et nos chiens seraient donc assez semblables, surtout les petits chiens, tandis que la banane serait très différente. Cela explique aussi le mème ci-dessous, où toutes ces images sont extrêmement semblables, même pour nous!

Exemple visuel tiré de Dans les coulisses de ChatGPT : comment l’IA comprend et génère le langage

Ces associations sont cruciales pour tout ce que fait le modèle. Elles lui permettent de mesurer les similarités, les différences et les relations entre les mots. Elles ne sont pas directement intuitives pour vous ou moi, mais elles le sont pour le réseau neuronal, qui peut les traiter très efficacement sous forme de grandes multiplications matricielles de ces listes.

La magie opère vraiment lorsque nous parlons de l’entraînement de ces modèles. Pendant l’entraînement, le LLM essaie de deviner le prochain token dans un dataset massif. Imaginez lire mille milliards de mots provenant d’Internet et, chaque fois, cacher le mot suivant pour essayer de le prédire. La différence entre la réponse du modèle et le véritable prochain mot porte le nom d’erreur. Le processus d’entraînement ajuste les paramètres internes du modèle, soit les milliards de valeurs qui relient les neurones, pour réduire cette erreur petit à petit. Après plusieurs passages dans cet immense dataset, le modèle raffine ses paramètres et devient excellent pour prédire le prochain token. Dans ce sens, un LLM ressemble un peu à un énorme système de compression qui tente de stocker l’essence de tout ce qu’il a lu. Mais comme cette information est extrêmement compressée, il ne mémorise pas parfaitement chaque ligne. Il retient essentiellement les patterns et les relations pour produire de nouveaux textes cohérents avec ce qu’il a appris.

L’une des principales raisons qui expliquent la puissance des LLMs est leur capacité à générer des phrases cohérentes, et même des paragraphes entiers, dans plusieurs styles. Ils peuvent imiter l’écriture formelle, la conversation décontractée ou même le style d’auteurs précis, simplement en utilisant les patterns extraits de leurs données d’entraînement. Voilà pourquoi vous pouvez demander à un LLM : « Écris-moi un poème sur une fusée solitaire », et obtenir un texte qui ressemble réellement à un poème.

À ce stade, vous vous demandez peut-être : « Si ces modèles ont tout appris d’Internet, pourquoi se trompent-ils parfois? » C’est parce que leur méthode d’entraînement consiste essentiellement à prédire le prochain mot. Le modèle ne « connaît » pas les faits comme nous. Il ne connaît que des patterns et des probabilités. S’il reçoit une question dont il n’est pas certain à 100 %, il pourrait produire une séquence probable de mots qui semble juste, mais qui est factuellement incorrecte. C’est ce qu’on appelle une hallucination. Il pourrait vous affirmer avec conviction que la capitale de l’Argentine est Bogotá, ce qui est complètement faux, tout en semblant très sûr de lui parce qu’il génère simplement du texte. Imaginez une personne qui parle avec beaucoup d’aisance, mais n’a pas bien étudié la géographie. Elle pourrait énoncer un fait erroné avec une confiance absolue simplement parce qu’elle essaie de « sembler correcte ».

Pour rendre les LLMs plus utiles et moins susceptibles de produire des réponses étranges ou dangereuses, une deuxième phase appelée « post-entraînement » suit l’entraînement. Cette phase commence par ce qu’on appelle l’« instruction tuning », où nous donnons au LLM des exemples d’instructions d’utilisateurs et de bonnes réponses. L’objectif est d’apprendre au modèle à suivre les instructions plus attentivement, au lieu de simplement poursuivre le pattern de prédiction du prochain mot appris sur Internet. Encore une fois, il apprend simplement à partir d’exemples. Ensuite, plusieurs laboratoires appliquent une méthode appelée apprentissage par renforcement à partir de feedback humain, ou RLHF. Des humains évaluent la qualité des réponses du modèle, qui reçoit une récompense ou une pénalité selon ces évaluations. Après de nombreuses rondes et de nombreux exemples, le modèle s’aligne mieux sur ce que les gens considèrent généralement comme une « bonne » réponse. C’est un peu comme dresser un chien avec des gâteries lorsqu’il réussit un tour. C’est ainsi que ChatGPT et les systèmes semblables se sont améliorés pour répondre aux questions de la façon que les humains préfèrent.

Ce processus n’est toutefois pas parfait. Même avec le RLHF et l’instruction tuning, le modèle peut encore produire des inexactitudes ou parfois refuser de répondre à des questions parfaitement valides. Il faut toujours trouver un équilibre entre la sécurité, l’alignement sur les valeurs humaines et la quantité maximale d’information utile. Voilà pourquoi plusieurs mois peuvent s’écouler entre la fin de l’entraînement d’un nouveau modèle et sa sortie.

Certains modèles avancés utilisent aussi des techniques comme la mixture d’experts, qui divise le réseau en sections spécialisées chargées de différentes parties du texte ou de différentes tâches. J’en ai déjà parlé sur ma chaîne si vous voulez en apprendre davantage sur cette approche. Elle peut améliorer l’efficacité du modèle en activant seulement certaines parties, les experts, pour un input donné, plutôt que le réseau en entier. C’est comme un groupe de personnes spécialisées chacune dans un domaine différent : tout le monde n’a pas besoin de travailler en même temps sur la même question. Cela peut réduire les coûts et accélérer l’inférence, soit le processus d’exécution du modèle lorsque vous interagissez avec lui.

Lorsque nous parlons d’inférence, nous faisons référence à la phase où vous, l’utilisateur, envoyez une instruction ou une question au modèle et recevez une réponse. L’entraînement peut avoir lieu une seule fois, ou quelques fois, mais l’inférence se produit constamment chaque fois qu’un utilisateur interagit avec le modèle. Son efficacité est extrêmement importante, parce que vous ne voulez pas attendre une éternité pour obtenir une réponse ni payer une fortune en coûts de serveur. C’est pourquoi les laboratoires consacrent beaucoup de temps à ajuster ces modèles pour qu’ils s’exécutent aussi rapidement et à aussi peu de frais que possible, sans perdre trop de qualité.

Décrivons simplement le pipeline complet. Vous commencez avec un énorme volume de textes provenant d’Internet, ainsi que d’autres éléments comme des images, du code ou même de l’audio pour certains modèles. Vous le tokenisez, donc vous le divisez en morceaux de texte faciles à gérer que vous transformez en nombres correspondants. Vous associez ces tokens à des embeddings, nos listes de nombres. Vous faites ensuite passer ces embeddings à travers les nombreuses couches d’un réseau de transformeurs qui essaie de deviner le prochain token. Chaque fois qu’il se trompe, il ajuste ses paramètres. Après avoir vu une tonne d’exemples, le modèle finit par pouvoir produire un texte qui ressemble à ce qu’un humain pourrait écrire. Vous effectuez ensuite une deuxième phase d’entraînement plus petite, pendant laquelle vous lui montrez des instructions précises et des réponses évaluées par des humains. Il devient alors meilleur pour suivre les commandes et donner les réponses que nous aimons. Enfin, vous le déployez pour permettre aux gens de lui poser des questions par une API ou une interface de clavardage. Lorsque vous parlez à ChatGPT, le texte que vous écrivez est toujours converti en tokens, puis en embeddings que le modèle traite pour déterminer quels mots, ou tokens, sont les plus susceptibles de suivre. Il vous renvoie ce texte prédit un token à la fois, ce qui donne l’impression qu’il écrit.

Capture d’écran tirée de Dans les coulisses de ChatGPT : comment l’IA comprend et génère le langage

Vous entendrez peut-être aussi souvent parler du RAG, ou génération augmentée par la recherche d’information, du prompt engineering ou d’autres techniques. Ces modèles ont beau être incroyables, ils présentent encore des limites. Ils ne peuvent pas stocker chaque fait dans leurs paramètres et peuvent avoir du mal à répondre aux questions portant sur des sujets très récents ou des connaissances spécialisées absentes de leurs données d’entraînement. Des techniques comme le RAG nous permettent de consulter des sources externes, comme une base de données privée ou Internet en temps réel, afin que le modèle génère ses réponses avec de l’information à jour. Mais ce sera le sujet d’une prochaine leçon du cours.

Vous devez aussi savoir que les LLMs ne se limitent plus au langage. Certains peuvent traiter des images, de l’audio ou même de la vidéo. Tant que nous pouvons transformer ces types de données en nombres, tout fonctionne. Cela brouille davantage les frontières entre différents domaines de l’IA, comme le traitement du langage naturel, la vision par ordinateur ou la reconnaissance vocale. Aujourd’hui, un seul grand modèle peut accomplir plusieurs tâches qui exigeaient auparavant des modèles distincts et spécialisés. C’est en partie ce qui suscite autant d’enthousiasme autour de l’IA générative et des progrès rapides que nous observons. Il ne s’agit pas seulement de texte, mais d’un système général capable de traiter plusieurs formes d’input et de produire plusieurs formes d’output.

Bien sûr, les LLMs peuvent générer du contenu trompeur, présenter des biais ou produire du texte nuisible s’ils ne sont pas gérés correctement. C’est pourquoi les laboratoires effectuent des tests de sécurité et mettent en place des outils comme des filtres de contenu, qui demandent au modèle de refuser les requêtes susceptibles d’entraîner des conséquences nuisibles ou contraires à l’éthique. Cela ne fonctionne pas toujours parfaitement, et un jeu constant du chat et de la souris oppose les développeurs qui cherchent à rendre les modèles plus sécuritaires aux utilisateurs qui essaient de repousser leurs limites. Si vous construisez votre propre application sur un LLM, il est préférable d’ajouter vos propres filtres et de réfléchir aux façons dont les utilisateurs pourraient essayer de détourner la technologie.

Au bout du compte, l’idée principale est que les LLMs sont des réseaux neuronaux qui ont appris une représentation compressée d’immenses quantités de données. Ils prédisent le prochain token, ce qui peut sembler peu, mais suffit pour générer du texte capable d’expliquer, de résumer, d’inventer des histoires et même d’écrire du code. Comme ils dépendent beaucoup des patterns observés, ils peuvent se tromper sur des faits pour lesquels ils n’ont pas vu assez d’exemples ou sur des questions qui exigent une chaîne de raisonnement logique qu’ils ne maîtrisent pas encore. Vous devez donc toujours vérifier les réponses importantes, particulièrement dans les domaines qui exigent de la fiabilité, comme les conseils médicaux ou les avis juridiques. La technologie évolue toutefois rapidement. Tous les quelques mois, vous entendrez parler de modèles plus grands, de meilleures méthodes d’entraînement ou de techniques plus avancées comme l’instruction tuning, qui repoussent les limites de leurs capacités.

Nous espérons que cet article vous a aidé à comprendre ce qui se passe en coulisses et pourquoi tant de gens ont hâte de construire des applications avec des LLMs. Si vous débutez en Python, ne laissez pas les réseaux neuronaux et les grands modèles de langage vous intimider. Vous n’avez pas besoin d’un doctorat en mathématiques pour commencer à expérimenter avec ces systèmes. Il vous faut seulement de la curiosité, un peu de temps pour explorer la documentation et demander aux LLMs de vous l’expliquer, ainsi qu’une volonté d’avancer par essais et erreurs pour trouver ce qui convient le mieux à votre cas d’utilisation. Les plus grandes avancées surviennent lorsque des gens de tous les horizons font preuve de créativité avec ces outils et découvrent de nouvelles façons de les utiliser. Continuez donc d’apprendre, de bricoler et de vous amuser en explorant l’univers des LLMs. Vous pourriez créer quelque chose qui surprendra tout le monde, y compris vous-même. 

Si cet article vous a été utile, découvrez notre cours complet d’introduction à Python pour l’IA générative ici!

Discussion

Commentaires

Chargement

Aucun compte requis. Votre nom et votre commentaire seront publics, alors n'incluez pas de renseignements privés. Consultez la page de confidentialité pour les détails.

Continuez à apprendre

Vous voulez le côté pratique de l'IA, sans le brouillard marketing ?

Je partage ce qui est utile sur YouTube, Substack et dans mes guides d'ingénierie IA.

FAQ

Comment ChatGPT comprend-il le langage?

Il divise le texte en tokens, utilise les patterns appris pendant l’entraînement et prédit ce qui devrait suivre selon le contexte.

Pourquoi ChatGPT peut-il sembler aussi cohérent?

Sa cohérence vient de nombreuses prédictions de tokens guidées par le prompt, le contexte précédent et les patterns appris dans les données d’entraînement.

Quelle est la principale limite à retenir?

La fluidité ne prouve pas la véracité. ChatGPT peut générer une réponse convaincante même lorsque l’affirmation sous-jacente doit être vérifiée.

Comment l’attention résout-elle le sens d’un mot ambigu?

Elle pondère les tokens qui l’entourent, de sorte que le mot anglais « bank » peut désigner la rive d’une rivière dans une phrase et une institution financière dans une autre.

Comment le feedback humain modifie-t-il les réponses de ChatGPT?

Des signaux de préférence répétés rendent les outputs plus susceptibles de correspondre à ce que les évaluateurs jugent utile et approprié.

Qu’est-ce que la prédiction du prochain token?

Le modèle apprend des patterns en prédisant à répétition quel token devrait suivre dans une séquence, puis utilise ces patterns pour générer du texte.