Grands modèles de langageApprendre l'IAGrands modèles de langageIngénierie IAApprendre l'IA
Grands modèles de langageIngénierie IA25 min de lecture

Comment les LLMs apprennent

Une explication accessible aux débutants de la façon dont les LLMs apprennent à partir de données, de prédictions, du fine-tuning et du feedback, sans les présenter comme de la magie.

Comment les LLMs apprennent
Sommaire

À retenir

  • Les LLMs apprennent en prédisant des patterns dans d’immenses quantités de texte, et non en comprenant le monde comme les humains.
  • Le fine-tuning et le feedback peuvent changer leur comportement, mais ils ne transforment pas le modèle en un raisonneur humain ancré dans la réalité.
  • Comprendre le processus d’entraînement rend les échecs des modèles moins mystérieux et facilite la conception de tests pour les gérer.

Apprenez-en davantage dans la vidéo :

Étonnamment, beaucoup de gens ont encore l’impression que les modèles d’IA sont programmés et conçus par des humains. C’était vrai pour les anciens systèmes d’IA « symbolique », mais ce n’est pas le cas de la majorité des LLMs que vous utilisez. Je veux clarifier ce point dès le début du cours, car une mauvaise compréhension fondamentale de la façon dont ces modèles sont créés mène à une mauvaise utilisation. Les gens peuvent à la fois sous-estimer les capacités de l’IA dans certains domaines (et donc ne pas pousser son utilisation jusqu’à son plein potentiel) et les surestimer dans d’autres (ce qui peut entraîner de la frustration, un rejet prématuré de ces outils ou, pire, des erreurs d’IA qui se glissent dans les livrables).

La plupart des explications sur les réseaux neuronaux, surtout celles sur l’architecture Transformer qui propulse les LLMs, se perdent dans un marécage de preuves mathématiques, de processus d’entraînement obscurs, de diagrammes d’architecture complexes et de code dense. C’est très bien si votre rêve est d’entraîner des modèles à partir de zéro ou d’inventer de nouvelles architectures. Mais si votre objectif est de commencer à construire avec les LLMs et à les utiliser efficacement, le savoir-faire pratique compte beaucoup plus que les détails du calcul matriciel. Nous pensons qu’une compréhension approfondie de la conception fondamentale des LLMs n’est plus toujours nécessaire pour les utiliser et construire efficacement des produits fondés sur eux.

Cela dit, comprendre certains concepts théoriques, comme l’objectif d’entraînement des LLMs, leurs données d’entraînement, la façon dont ils génèrent des mots et les embeddings, peut faire une grande différence pour en tirer le maximum. Le but de cet article est de vous donner une vue d’ensemble afin que vous puissiez mettre les nouveaux concepts à leur place au fur et à mesure. À la fin, vous n’aurez pas l’impression de tout maîtriser, mais ce n’est pas grave! Les concepts clés seront revisités plus tard dans notre cours pour vous assurer de bien les comprendre. Les autres concepts et le jargon moins pertinent mentionnés ici quitteront discrètement la scène après cette leçon pour ne plus jamais revenir.

La place des LLMs dans le vaste domaine de l’IA

Les LLMs ne sont pas apparus dans le vide. Ils font partie d’une tentative plus large visant à faire accomplir aux machines des choses que seuls les humains pouvaient faire jusqu’à récemment. L’intelligence artificielle (IA) est le grand terme parapluie qui englobe tout cela : la quête pour permettre aux ordinateurs de reconnaître des patterns, de comprendre le langage et de prendre des décisions. Sous ce parapluie se trouve l’apprentissage automatique, le domaine qui permet aux ordinateurs d’apprendre à partir de données au lieu de suivre des règles explicites. Les anciens systèmes d’IA, que nous appelons systèmes experts, étaient remplis de logique codée à la main. Il s’agissait d’une série d’instructions if empilées et définies par un expert du domaine pour indiquer explicitement quoi faire dans chaque cas. L’apprentissage automatique a changé la donne : nous donnons aux modèles beaucoup d’exemples, quelques règles codées en dur, puis nous les laissons comprendre par eux-mêmes.

Au sein de l’apprentissage automatique, on trouve les réseaux neuronaux, inspirés à l’origine du cerveau humain (c’est-à-dire d’un dessin très approximatif de la façon dont nous pensions que le cerveau fonctionnait). Ces réseaux ne sont que des couches de petites fonctions mathématiques qui se transmettent des nombres et ajustent leurs connexions jusqu’à pouvoir reconnaître des patterns. Lorsque nous empilons un grand nombre de ces couches, nous obtenons l’apprentissage profond, où se situent les LLMs.

Il y a ensuite l’apprentissage par renforcement, une méthode où l’IA apprend par essais et erreurs en recevant des récompenses pour les bons comportements et les bonnes prédictions. Les techniques d’apprentissage par renforcement sont maintenant souvent combinées à l’apprentissage profond pour optimiser les LLMs les plus récents. Elles nous permettent de poursuivre directement l’entraînement de ces modèles de langage grâce au feedback humain plutôt qu’avec de grands datasets préparés à l’avance.

Traditionnellement, faire comprendre le langage à une machine relevait du **traitement automatique du langage naturel (NLP),** un domaine doté d’outils spécialisés pour des tâches comme la traduction, l’analyse des sentiments et la classification de texte. Les LLMs ont maintenant tout balayé sur leur passage en NLP, prenant en charge presque tout, de la rédaction d’essais à la génération de code. Ils se sont aussi étendus à de nouveaux territoires comme le traitement d’images et la génération audio. Si vous aviez demandé à un chercheur il y a dix ans si un modèle de langage expliquerait la mécanique quantique, écrirait des poèmes et générerait des scripts Python, il aurait ri. Et pourtant, nous y voilà.

Allons maintenant au cœur des LLMs.

À la base, les LLMs sont des réseaux neuronaux artificiels sophistiqués. Ce n’est pas de la magie, ce n’est pas conscient et ça ne complote pas encore pour dominer le monde. C’est simplement une fonction très sophistiquée et complexe qui prédit le prochain mot d’une séquence. Le cerveau humain possède un vaste réseau de neurones interconnectés qui communiquent par des signaux électriques et chimiques à travers les synapses. De la même façon, les réseaux neuronaux artificiels comprennent un réseau de nœuds (ou « neurones ») qui effectuent de simples opérations mathématiques et sont reliés par des paramètres (poids et biais), soit des nombres stockés dans des matrices. Ces paramètres sont les éléments ajustés et appris pendant l’entraînement du modèle. Si cela semble représenter beaucoup d’information à la fois, ne vous inquiétez pas. À la fin de notre cours, des mots comme paramètres et poids feront partie de vos conversations quotidiennes, tandis que certains autres ne sont pas si pertinents.

Imaginez un réseau neuronal artificiel comme un immense système de mini-ordinateurs organisés en grille, tous connectés, qui ajustent et raffinent des nombres à mesure que les données circulent. Dans les réseaux neuronaux artificiels, les paramètres sont stockés dans des matrices et les nœuds sont organisés en couches. Le stockage des paramètres du modèle dans des matrices permet d’effectuer certains calculs en parallèle (ici, lorsque je parle de calculs, je fais surtout référence à des multiplications de matrices). Chaque couche traite l’information en effectuant ces multiplications, puis la transmet à la couche suivante. Elle raffine les données brutes pour produire un output significatif au fil d’une série de transformations, tout comme une fonction de base (y=8*x+2) transforme n’importe quelle valeur x en une valeur y « significative ».

Chaque connexion entre les nœuds possède un poids. Chaque poids correspond à l’un des nombres contenus dans ces matrices et détermine l’influence d’une partie du réseau sur une autre. Pendant l’entraînement, ces poids sont ajustés des millions (ou des milliards) de fois jusqu’à ce que le modèle devienne vraiment, vraiment bon pour prédire du texte.

Exemple visuel tiré de Comment les LLMs apprennent

Une représentation d’un réseau neuronal feedforward.

Le mot « profond » dans apprentissage profond signifie simplement que ces réseaux ont beaucoup de couches, pas qu’ils ont des pensées profondes. La puissance des LLMs vient principalement de leur architecture Transformer, qui leur permet de traiter efficacement d’immenses quantités de texte en parallèle. Cette architecture a très faim de données. Pour qu’elle commence à produire des réponses étrangement humaines, il lui faut une quantité absurde de données d’entraînement. Ces données, du texte, des images et des conversations, sont recueillies dans des livres, des sites Web, des conversations quotidiennes et tout ce que les ingénieurs peuvent trouver. Ces datasets représentent des téraoctets d’information. Mais les données brutes de texte et d’images ne sont pas utiles avant d’être transformées en quelque chose que le modèle peut traiter.

C’est là qu’intervient la tokenisation. Le modèle ne lit pas des mots. Il lit des tokens, des unités de texte qui peuvent être des mots, des parties de mots ou même des phrases entières. Ce processus commence par la transformation du texte ou des données brutes en tokens à l’aide d’un tokenizer. Les tokens sont les plus petites unités de données avec lesquelles le modèle peut travailler. Dans le cas des images ou de l’audio, les tokens peuvent correspondre à des portions de ces fichiers, ce qui décompose de grands inputs en morceaux gérables.

Par exemple, la phrase « Le chat est assis sur le tapis » pourrait être divisée en tokens comme « Le », « chat », « est », « assis », « sur », « le » et « tapis ». Les tokens ne sont toutefois pas toujours des mots uniques ou entiers. Ils peuvent être de simples parties de mots ou regrouper plusieurs mots. Ces tokens sont déterminés à partir de vos données d’entraînement et tentent d’en représenter la distribution des mots le plus efficacement possible en regroupant les caractères qui apparaissent souvent ensemble, comme « ing » ou « Hello », qui apparaissent fréquemment tels quels.

Une fois le texte tokenisé, l’étape suivante consiste à fournir ces tokens au réseau neuronal sous une forme qu’il peut traiter. Comme le modèle fonctionne avec des nombres, les tokens doivent être convertis en représentations numériques qui capturent leur sens et leurs relations. C’est là que les vecteurs et ce que nous appelons les embeddings entrent en jeu.

Un vecteur est simplement une liste de nombres qui représente un token dans un espace multidimensionnel. C’est aussi ce qu’est un embedding. Ces embeddings sont essentiels pour capter les relations entre différents tokens. Le modèle n’a pas seulement besoin de savoir qu’un token représente le mot « chat ». Il doit savoir comment « chat » est lié à d’autres mots comme « chien » ou « chaton ».

Même s’il est difficile de visualiser un espace qui compte des milliers de dimensions, vous pouvez l’imaginer comme un système complexe de coordonnées où chaque token occupe une position dans cet espace multidimensionnel. Ici, nous voyons trois dimensions, mais le concept reste le même s’il y en a des milliers. L’idée clé est que la position de l’embedding de chaque token par rapport aux autres indique à quel point leurs sens sont semblables ou liés. Par exemple, « chat » et « chaton » sont proches, tandis que « chat » et « jardin » sont éloignés. Mais « chaton » et « chiot » peuvent être plus proches que « chaton » et « chien » parce que les deux désignent un « bébé animal ».

Exemple visuel tiré de Comment les LLMs apprennent

Nous utilisons le terme embedding plutôt que vecteur parce que le modèle crée une représentation de chaque token qui l’« intègre » à un endroit précis de l’espace multidimensionnel. Ces embeddings sont appris par le modèle pendant l’entraînement.

Maintenant que notre texte est devenu quelque chose que le réseau neuronal peut comprendre, nous pouvons enfin le lui fournir et commencer à générer de nouveaux mots!

Les LLMs ne seraient pas possibles sans les transformeurs, un type précis d’architecture de réseau neuronal qui a révolutionné l’apprentissage automatique en 2017. Leur arme secrète est, pour l’essentiel, le mécanisme d’attention, qui permet aux modèles de se concentrer sur les mots les plus pertinents d’une phrase.

Les détails de l’architecture ne sont généralement pas importants lorsque vous construisez des applications qui appellent, étendent ou fine-tunent des LLMs. Je ne les expliquerai donc pas en détail. Cela dit, il est utile de comprendre les bases du mécanisme d’attention, qui représentait l’une des innovations clés de l’architecture.

Prenons la phrase « He sat on the bank and watched the river flow. » Si nous analysons un mot à la fois, le mot « bank » peut désigner un endroit où l’argent est gardé ou le bord d’une rivière. Le mécanisme d’attention des transformeurs fonctionne en examinant tous les mots de la phrase en même temps et en pondérant leurs relations. Dans ce cas, des tokens comme « river » et « flow » obtiennent naturellement plus de poids, ce qui guide le modèle pour interpréter « bank » comme le bord de la rivière plutôt que comme une institution financière. Ce processus, où l’influence de chaque token est évaluée dynamiquement, permet au modèle de se concentrer sur l’information la plus pertinente dans le contexte et de résoudre efficacement l’ambiguïté. En captant ces relations contextuelles et ces dépendances à longue portée, les couches d’attention comprennent les nuances du langage et le traitent d’une façon qui préserve le sens dans une séquence de tokens.

Exemple visuel tiré de Comment les LLMs apprennent

Une avancée majeure du mécanisme d’attention est qu’il permet de traiter tous les tokens d’input (disons 500 mots) dans une seule matrice, en parallèle, à chaque couche. Cela réduit radicalement le coût de calcul de l’entraînement des grands modèles et les rend bien adaptés aux GPU. Cette avancée a ouvert la voie à des modèles beaucoup plus grands, entraînés sur plus de données et dotés de plus de capacités.

La plupart des LLMs les plus récents intègrent d’autres innovations, comme l’architecture Mixture of Experts (MoE). MoE réduit le coût et augmente la vitesse d’exploitation des LLMs en production, un processus appelé inférence. Dans un modèle MoE, différentes couches contiennent plusieurs sous-modèles « experts ». Ces experts sont des sous-ensembles des nœuds ou des paramètres du modèle. Cela permet au modèle de passer efficacement à l’échelle en activant seulement un sous-ensemble d’experts (et, par conséquent, un sous-ensemble de nœuds ou de paramètres), ce qui réduit le nombre de calculs nécessaires pour l’exécuter. Seuls certains de ses « mini-ordinateurs » sont allumés. Son fonctionnement exige donc moins de compute. Les MoE peuvent exploiter les connaissances spécialisées de chaque expert, ce qui permet au modèle de gérer une variété de tâches plus efficacement qu’un réseau monolithique (dense) qui applique les mêmes calculs à tous les inputs. Vous pouvez voir cela comme l’équivalent d’une équipe composée de spécialistes différents, où seuls les experts pertinents sont consultés pour un problème précis. On ne gaspille pas le temps de tout le monde dans une réunion générale pour chaque problème (du moins, espérons-le, pas trop souvent!). Pour un développeur, cela signifie un coût d’inférence plus faible et un débit plus élevé pour votre produit.

💡 Consultez la page Transformer Explainer si vous voulez vous embrouiller encore davantage avec une représentation graphique de l’architecture Transformer.

Maintenant que nous avons vu comment ces modèles sont créés, passons à l’entraînement en commençant par la première étape, que nous appelons le pré-entraînement.

À moins que vous prévoyiez d’entraîner des modèles fondamentaux à partir de zéro, les mathématiques lourdes (softmax, back-prop, descente de gradient) ne sont que du contexte. Nous resterons concentrés sur les aspects qui vous serviront en construisant des produits propulsés par des LLMs.

Pendant l’entraînement, le modèle participe à un immense jeu de prédiction. Vous lui montrez une partie d’une séquence (des phrases provenant des pages Web, des livres et des autres données d’entraînement), et il doit deviner la suite. Au départ, il n’a aucune idée et lance des prédictions au hasard, comme un tout-petit qui babille n’importe quoi. Mais chaque fois qu’il se trompe, vous lui tapez sur les doigts (mathématiquement parlant), et chaque fois qu’il a raison, vous hochez la tête en signe d’approbation. Le processus se répète des milliards de fois, jusqu’à ce que le modèle devienne terriblement bon pour faire des prédictions.

Les futurs tokens de la séquence d’input sont « masqués », ou cachés au modèle, essentiellement pour l’empêcher de tricher à ce jeu de prédiction!

Par exemple, s’il voit :

« Le chat est sur le »,

il pourrait dire « tapis », ou peut-être « divan », ou, s’il se sent aventureux, « toit » (les chats sont imprévisibles, après tout). Le point clé est qu’il ne se contente pas de mémoriser des phrases. Il repère des patterns. Il apprend qu’un « chat » a plus de chances d’être sur un « tapis » que, disons, sur une « déclaration de revenus ». Bon, si vous posez votre déclaration de revenus par terre, le chat ira peut-être directement s’asseoir dessus, mais vous comprenez l’idée.

Mais comment prédit-il le bon mot?

Le modèle ne lance pas simplement une prédiction au hasard. Il fait passer la phrase à travers nos couches de petites fonctions mathématiques interconnectées, calcule des nombres et raffine les probabilités à chaque étape. Au lieu de dire « Je suis certain que le prochain mot est “tapis” », il produit une liste d’options avec différentes probabilités :

  • Tapis : 55 %
  • Divan : 10 %
  • Toit : 4 %
  • Scie à chaîne : 0,1 % (quelque chose a clairement mal tourné ici), et ainsi de suite

À la toute fin, cette soupe de probabilités est triée à l’aide d’une fonction appelée softmax, qui aide le modèle à choisir une réponse tout en gardant les autres possibilités à l’esprit. C’est aussi là qu’intervient le paramètre de température, que vous avez peut-être déjà vu ou utilisé. Il modifie cette fonction softmax afin d’augmenter ou de réduire le caractère aléatoire de ces probabilités.

Ce jeu de prédiction ne serait pas très utile à lui seul si le modèle n’apprenait pas de ses erreurs. C’est là qu’intervient la rétropropagation. Si le modèle répond « scie à chaîne » avec assurance plutôt que « tapis », nous devons le corriger. La rétropropagation revient à rembobiner le processus décisionnel et à trouver les parties du réseau qui ont mené à cette réponse ridicule. Les paramètres les plus fautifs, ceux qui ont poussé le modèle vers « scie à chaîne », sont légèrement ajustés afin qu’il soit moins susceptible de répéter la même erreur.

Pour éviter que tout ce processus devienne incontrôlable, nous utilisons la descente de gradient, une méthode qui aide le modèle à ajuster ses paramètres juste ce qu’il faut, comme si on donnait un petit coup de volant plutôt que de braquer brusquement à gauche. Entraînez-le trop prudemment et il lui faudra une éternité pour apprendre. Entraînez-le trop agressivement et il réagira de façon excessive, ce qui le rendra instable. Tout repose sur le juste équilibre.

Et, bien sûr, beaucoup de choses peuvent mal tourner. Le modèle peut surapprendre, c’est-à-dire mémoriser trop bien ses données d’entraînement, puis être déstabilisé devant de nouveaux inputs. Ses paramètres peuvent aussi exploser au fil des calculs successifs et devenir des nombres ingérables qui détruisent tout. En pratique, entraîner efficacement des LLMs est très complexe et exige plusieurs techniques nuancées pour assurer des performances optimales et corriger ces problèmes.

En bref, entraîner un LLM est un immense jeu de nombres où le modèle joue encore et encore à remplir les blancs, apprend de ses erreurs et se fine-tune en chemin.

Même si le modèle est entraîné sur d’immenses quantités de données textuelles, il ne se contente pas de stocker et de mémoriser cette information. Il apprend plutôt à naviguer dans les données d’entraînement et à les contextualiser en reconnaissant les patterns et les relations qui forment la structure de nos langues et de nos connaissances humaines partagées.

Vous pouvez voir le processus d’entraînement d’un LLM comme la compression d’assez d’information sur les caractéristiques, les patterns et les relations présents dans les données de son dataset d’entraînement et entre elles pour pouvoir reproduire une « copie avec perte » d’une aussi grande partie que possible de ces données. Par exemple, les LLMs peuvent produire des outputs qui semblent cohérents, mais contiennent des inexactitudes factuelles ou des hallucinations lorsqu’ils essaient de deviner ce qui comble les trous dans leurs connaissances. Cela ressemble à un fichier image compressé avec perte qui peut paraître clair tout en perdant des détails au niveau des pixels. Selon la résolution, certains détails importants de la scène peuvent être confondus.

Exemple visuel tiré de Comment les LLMs apprennent

Un exemple de compression avec perte d’une image.

Une autre façon de comprendre ce processus d’entraînement est de dire qu’il simule essentiellement ce sur quoi vous l’entraînez. Ce que je veux dire, c’est que si vous entraînez le LLM sur Internet, vous l’entraînez en gros à devenir une sorte de simulation d’Internet. Si vous lui donnez une partie d’une page Wikipédia, il prédira simplement la suite exacte de cette page.

Prédire le prochain mot (ou token) d’une séquence peut exiger une compréhension étonnamment complexe de la grammaire, des relations entre les différentes parties du texte et des domaines de la connaissance humaine. Par exemple, lorsqu’il est entraîné sur un court roman policier, le modèle a besoin de beaucoup de complexité pour prédire correctement le prochain mot de la phrase qui révèle l’identité du meurtrier à la fin de l’histoire.

Rappelez-vous que toute l’information utile qu’un LLM apprend pendant l’entraînement est stockée dans les paramètres du modèle. Le modèle doit apprendre des patterns et des caractéristiques dans ses données plutôt que de simplement mémoriser des faits, en partie parce que son budget de mémoire est très limité. Par exemple, le populaire Llama 3 70B de Meta est entraîné sur environ 15 téraoctets (To) de données textuelles pour produire un fichier de poids du modèle d’à peine 140 gigaoctets (Go). L’information est donc comprimée environ 100 fois. Ces LLMs ne peuvent pas mémoriser toutes leurs données d’entraînement dans les poids du modèle, et ce n’est pas ce pour quoi ils sont conçus. Le modèle doit développer une capacité beaucoup plus robuste à « comprendre », chercher, utiliser et combiner les caractéristiques apprises dans son dataset d’entraînement que celle que lui donnerait le simple fait de tout mémoriser dans une base de données.

💡D’ailleurs, il est essentiel de vous en souvenir lorsque vous travaillez avec des LLMs! Vous ne pouvez pas supposer qu’ils connaissent quelque chose simplement parce que cette information se trouve sur Internet et qu’ils ont été entraînés sur celle-ci.

À l’occasion, le modèle mémorise effectivement certains faits et certains passages de texte de façon plus directe. Mais cette mémorisation mot à mot concerne généralement seulement l’information souvent répétée dans ses données d’entraînement, comme les livres open source populaires ou les expressions qui apparaissent particulièrement fréquemment sur Internet.

💡Cette « mémorisation » intégrale occasionnelle peut être utile, mais elle peut aussi poser problème lorsqu’on utilise ces modèles en pratique. Vous devrez peut-être construire des garde-fous pour éviter de générer du contenu protégé par le droit d’auteur ou des expressions nuisibles. Les laboratoires d’IA intègrent normalement ces garde-fous dans leurs chatbots et leurs applications destinés aux utilisateurs, mais ces protections ne sont pas parfaites.

Une fois le prétraitement terminé, place au processus de « post-entraînement ».

Vous avez donc ce grand modèle de langage sophistiqué. Vous avez passé des mois à lui fournir des montagnes de texte, à le laisser jouer à son gigantesque jeu de prédiction de mots et à ajuster ses mécanismes internes par essais et erreurs. Parfait. Mais voici le problème : il ne sait toujours pas comment parler correctement à de vraies personnes. Vous êtes encore à l’étape de la « simulation d’Internet ».

Après la phase initiale de pré-entraînement, les LLMs doivent être raffinés davantage au moyen de ce que nous appelons l’instruction tuning et l’apprentissage par renforcement à partir de feedback humain (RLHF) afin d’améliorer leurs performances et leur adaptabilité. Cela signifie que nous devons encore réentraîner le modèle… deux fois!

Vous voyez tout le texte sur lequel il a été entraîné? Il n’était pas soigneusement étiqueté avec des questions et des réponses ou des instructions claires. Le modèle a vu des livres, des articles et des débats aléatoires sur Internet, mais il n’a pas été entraîné à répondre comme un humain s’y attendrait dans une conversation. Il a été entraîné à prédire le prochain mot qui donnerait une suite logique. Donc, si vous lui demandez quelque chose de précis, il pourrait simplement produire une liste de questions vaguement liées plutôt que de vous répondre.

Pour régler ce problème, nous faisons ce qu’on appelle de l’instruction tuning ou du fine-tuning supervisé (SFT). Il s’agit de la même chose. Au lieu de lui fournir seulement du texte brut, nous lui donnons un dataset soigneusement conçu, rempli d’instructions et de réponses adéquates. Imaginez qu’on apprend enfin au modèle à réellement suivre des directives au lieu de divaguer sur tout ce qu’il connaît. Ce fine-tuning supplémentaire le rend beaucoup meilleur pour suivre des commandes, répondre correctement aux questions et, en général, agir davantage comme un assistant utile que comme un mélangeur de mots d’Internet.

Mais nous n’avons pas terminé. Même après l’instruction tuning, le modèle n’est toujours pas parfait. Il peut passer à côté du sens de certaines questions, mal comprendre le ton, fournir de l’information dangereuse ou simplement partir sur d’étranges tangentes. C’est là qu’intervient l’apprentissage par renforcement à partir de feedback humain (RLHF). Des humains classent plusieurs réponses générées par l’IA afin de fournir du feedback qui améliorera ces réponses et les alignera sur les préférences humaines (ou sur les politiques précises du laboratoire d’IA qui le crée).

Vous pourriez imaginer que des humains corrigent le modèle en direct pendant qu’il génère ses réponses, mais ce n’est pas vraiment ainsi que cela fonctionne. Le feedback humain n’est pas transmis directement au modèle. Il sert à entraîner un système séparé appelé modèle de récompense, qui apprend ensuite à juger les réponses comme le ferait un humain.

Une fois ce modèle de récompense entraîné, il sert à fine-tuner et à adapter automatiquement le LLM original. Le LLM génère des réponses, le modèle de récompense les note, et le LLM apprend graduellement à produire des réponses mieux classées par le modèle de récompense, ce qui correspond idéalement à ce que les humains préfèrent. Au lieu d’ajuster manuellement chaque réponse, les humains entraînent donc un correcteur, et c’est ce correcteur qui guide réellement l’apprentissage du modèle pendant l’entraînement.

Maintenant, pourquoi ne pas simplement demander aux humains d’écrire chaque fois des réponses parfaites? Parce qu’écrire des réponses impeccables pour tous les inputs possibles prendrait une éternité. Il est beaucoup plus facile de demander aux humains de classer quelques options que de leur demander de créer la réponse idéale à partir de zéro. En construisant un modèle de récompense à partir des préférences humaines, nous rendons donc le LLM plus utile, plus aligné sur ce que les gens veulent réellement et moins susceptible de complètement dérailler.

Bien sûr, des problèmes subsistent. Ces modèles peuvent absorber les biais de leurs données d’entraînement (ou du feedback humain), inventer des choses ou dire des choses qu’ils ne devraient pas. Les entreprises cherchent constamment des façons de les garder sous contrôle en ajustant leurs réponses aux sujets sensibles, en filtrant la désinformation et en s’assurant qu’ils n’encouragent pas accidentellement de mauvais comportements. Mais peu importe la quantité de fine-tuning, les LLMs ne sont pas parfaits. Ils sont simplement vraiment, vraiment bons pour deviner ce qui semble raisonnable.

Alors, que faut-il retenir? Le pré-entraînement rend le modèle intelligent, mais l’instruction tuning et le RLHF le rendent réellement utilisable dans les applications que vous construirez. Sans ces étapes supplémentaires, le modèle n’est qu’un gigantesque prédicteur de texte qui ne sait pas ce que les humains veulent réellement. Avec elles, il commence à agir comme un assistant IA qui donne l’impression de vous comprendre. (Enfin, la plupart du temps.)

💡Après la fin de l’entraînement d’un nouveau modèle, son lancement officiel est souvent retardé de plusieurs mois pour permettre des tests de sécurité internes et externes. Un post-entraînement supplémentaire peut être nécessaire pour corriger ses lacunes avant le lancement.

Enfin, le processus qui consiste à utiliser concrètement un LLM dont l’entraînement est terminé s’appelle l’inférence. Dans le contexte des LLMs, l’inférence consiste à générer des réponses aux questions ou aux « prompts » en appliquant les patterns qu’il a repérés et les connaissances qu’il a acquises pendant la phase d’entraînement.

Mais voici le problème : l’inférence doit être rapide et efficace, surtout dans les applications réelles. Personne ne veut attendre dix minutes pour obtenir une réponse à un email générée par l’IA ou la réponse d’un chatbot alors qu’une recherche Google prend quelques secondes. Et rappelez-vous que ces modèles sont gigantesques et possèdent des milliards de paramètres. Chaque fois qu’ils génèrent une réponse, ils effectuent donc une quantité énorme de calculs. Si vous les exécutiez exactement de la même façon qu’ils ont été entraînés, ils seraient terriblement lents, sans compter qu’ils coûteraient ridiculement cher.

Voilà pourquoi les laboratoires d’IA utilisent toutes sortes d’astuces ingénieuses pour les accélérer. Certaines méthodes réduisent la taille du modèle (avec des techniques comme la quantification et d’autres), ce qui le rend plus petit et plus facile à exécuter. D’autres optimisent la façon dont les calculs sont effectués afin d’obtenir le même output en moins d’étapes.

En bref : le pré-entraînement rend le modèle intelligent, le post-entraînement le rend utilisable, mais les optimisations de l’inférence le rendent réellement viable sur le plan économique. Toutes ces étapes jouent un rôle crucial. Rendre l’inférence rapide et efficace est l’un des plus grands défis du déploiement des LLMs les plus intelligents dans le monde réel, et vous apprendrez plusieurs techniques d’optimisation si vous décidez de suivre notre cours L’IA pour les professionnels en entreprise.

Exemple visuel tiré de Comment les LLMs apprennent

J’espère que cet aperçu de la façon dont les LLMs traitent le langage et transforment d’immenses quantités de données en réponses semblables à celles d’un humain vous a paru utile, ou du moins intéressant. Rappelez-vous simplement qu’à la base, les LLMs sont de gigantesques moteurs statistiques qui prédisent le prochain mot. Votre travail comme développeur consiste à exploiter ce moteur de prédiction de façons sûres, fiables et créatives. Ce sont des outils remarquables, mais ce sont encore des outils.

Merci d’avoir lu!

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 les LLMs apprennent-ils?

Ils apprennent des patterns statistiques dans leurs données d’entraînement en prédisant des tokens, puis peuvent être ajustés par fine-tuning et à l’aide de feedback.

L’entraînement permet-il aux LLMs de comprendre comme les humains?

Non. Ils peuvent apprendre des patterns et des comportements utiles, mais leur processus d’apprentissage n’est pas équivalent à l’expérience humaine ni à un ancrage dans la réalité.

Pourquoi les builders devraient-ils comprendre l’entraînement?

Cela aide à expliquer les hallucinations, les biais, les limites de contexte et pourquoi même les réponses fluides doivent être vérifiées.

Pourquoi les données d’entraînement doivent-elles être converties en tokens?

Les modèles fonctionnent avec des nombres. Le texte et les autres inputs bruts ont donc besoin de représentations que le réseau peut traiter et prédire.

Que fait la descente de gradient pendant l’entraînement?

Elle ajuste les paramètres du modèle par étapes contrôlées afin de réduire la différence entre les prédictions et les outputs cibles.

Que représente un embedding dans un LLM?

Un embedding est une liste de nombres apprise qui place un token dans un espace où des sens connexes peuvent se retrouver plus près les uns des autres.

Qu’est-ce que l’attention ajoute au traitement des tokens?

L’attention pondère les relations entre les tokens. Un mot de contexte comme river peut ainsi modifier la façon dont le modèle interprète un mot ambigu comme bank.