Code-Garage #122 - Comprendre le fonctionnement d'une LLM
Durée: 19m55s
Date de sortie: 10/04/2025
Vous utilisez les LLMs au quotidien et vous voulez comprendre les bases du fonctionnement ?
Notes de l'épisode :
- Les LLMs expliquées en détails : https://www.youtube.com/watch?v=7xTGNNLPyMI
Salut et bienvenue dans ce nouvel épisode du podcast de Côte Garage, je m'appelle
Nicolas Banda Bernard et aujourd'hui on va essayer de comprendre ensemble le fonctionnement
de base des LLM.
Alors les LLM c'est tout simplement les Large Language Models et ça représente,
je pense que vous le savez déjà, une avancée majeure dans le domaine de l'intelligence
artificielle mais surtout du NLP, NLP c'est Natural Language Processing donc traitement
de langage naturel.
Alors ces modèles maintenant les utilisent dans notre vie de tous les jours et ils sont
capables de comprendre, de générer et d'interagir avec le langage humain, avec un langage,
une langue mais aussi des langages de programmation et toutes les langues possibles et inimaginables.
Mais surtout ils arrivent à le faire de manière très sophistiquée et complètement réaliste.
On a maintenant l'impression à 100% de dialoguer avec un humain.
Alors si on prend un petit peu l'historique, notamment le NLP, ça date pas d'hier et
ça date même pas d'avant-hier.
En fait les premiers travaux théoriques en traitement automatisé du langage, ils datent
de 1950 avec tout simplement un papier d'Allan Turing qui s'appelle Computing Machinery
and Intelligence et qui d'ailleurs dans ce papier c'est ce qui va donner naissance
aux fameux tests de Turing, un test qui maintenant n'est quasiment plus pertinent mais qui était
vraiment fondateur pendant des années.
Et donc là c'est vraiment les premiers travaux théoriques mais les vraies applications pratiques
en fait elles tardent pas tant que ça puisque en 1954 il y a une expérimentation conjointe
entre l'université de Georgetown et d'IBM et en fait dans cette expérimentation ils vont être
capable de mettre en place un système automatisé qui va traduire plus de 60 phrases écrite
en russe vers l'anglais.
Alors évidemment on est très loin des progrès qu'on a pu voir ces dernières années mais
tout ça pour dire que c'est un sujet qui est sur la table et surtout qui passionne depuis
par exemple plus de 70 ans et avec des bons de plus en plus grands à chaque décennie.
On a même eu des décennies qui étaient très orientées sur le sujet notamment dans les
années 70 où on voit carrément l'arrivée des premiers chatbots puisque grâce à l'invention
de l'ancêtre d'Internet Arpanet en 1969 on va commencer à avoir accès à plus de
choses, à plus de données et donc les gens vont s'y intéresser de plus en plus.
Donc concrètement qu'est-ce qu'un large language modèle, un LLM, c'est un type de
modèle d'apprentissage automatique qui est conçu pour traiter et générer du texte.
Quand on dit ça on ne voit pas forcément de grosses différences avec les travaux des
décennies précédentes parce qu'en fait oui comprendre ou générer du texte ça repose
sur deux grands principes.
D'abord comprendre la langue, la grammaire, le vocabulaire, la conjugaison, les exceptions
etc.
Et puis comprendre le sujet, le fond, le contenu d'une phrase d'un texte peu importe.
Et les LLM, ils reposent également sur ces deux principes-là mais leur efficacité
vient surtout de la manière dont sont implémentés les solutions pour ces deux problèmes-là.
Alors pour la compréhension de la langue on va s'appuyer sur des architectures de
raison neurone et des méthodes de traitement de données et de mise en relation de données
qui diffèrent des solutions historiques, des solutions précédentes.
Mais un des gros tournants et une des grosses révolutions également c'est en fait dans
la quantité de données textuelles avec lesquelles on va venir entraîner ces modèles et c'est
réellement la quantité de ces données-là qui vont permettre en fait de capturer les
nuances et les structures des différents langages, des différentes langues mais aussi
comme on l'a dit des sujets et des connaissances que renferment internet puisque l'immense
majorité des LLM que l'on connaît sont entraînés sur toutes les données que comportent
internet, enfin une grosse partie des données accessible publiquement qui renferment internet.
Et donc c'est tout ça qu'on appelle un modèle et plus particulièrement un large language
modèle et en fait le but de ces modèles-là c'est simplement de prédire à l'aide
de tous ces, tous les outils un petit peu qu'on a survolé là et dont on va rentrer
un petit peu plus dans les détails, c'est de prédire le prochain mot dans une phrase
le plus précisément possible que ce soit dans la forme mais aussi dans le fond pour
produire une réponse cohérente d'abord pour comprendre la phrase d'entrée et puis pour
produire une réponse cohérente. C'est simplement ça ces produire, enfin trouver quel mot vient
dans la suite de la phrase pour répondre à une requête. Alors pourquoi est-ce qu'on a eu un
aussi grand bon en avant à partir de 2022 sur tout ce sujet-là ? Eh bien c'est grâce à une
innovation dans la conceptualisation des réseaux de neurones. En fait en 2017 sort un article qui
s'appelle Attention Is All You Need, c'est écrit par 8 ingénieurs de chez Google et en fait ils vont
introduire le concept de Transformers. Donc en fait contrairement aux réseaux de neurones
qui étaient utilisés précédemment et qui traitaient les données de manière séquentielle,
eh bien les Transformers, ils utilisent un mécanisme d'attention pour traiter les données en parallèle.
Et en fait ça, ça va permettre d'abord d'être plus efficace mais surtout de capturer des dépendances
et donc de créer du contexte à long terme dans le texte et c'est un petit peu ce qui va tout changer.
Et c'est d'ailleurs directement dans le nom puisque GPT de chat GPT, ça signifie Generative
Pre-trained Transformer. Donc voilà, c'est pour vous dire que les Transformers c'est un petit peu
l'innovation clé qui a tout fait basculer. Alors ce qu'on va faire maintenant c'est que je vais essayer
de vous faire une explication un petit peu séquentielle de ce qui se passe dans une LLM pour qu'on essaye
en sens de comprendre un petit peu les étapes clés. Il faut savoir déjà qu'il y a deux grandes phases.
Il y a d'abord la phase d'entraînement et il y a la phase d'inférence. La phase d'entraînement c'est
évidemment dans le nom entraîné notre modèle qu'on va simplement lui fournir des données et tout ça
mais on va voir tous ensemble. Et ensuite l'inférence c'est quand on va envoyer des données, des phrases
etc. des questions à notre modèle et qu'il va nous répondre. Alors il faut savoir que les étapes
sont quasiment en tout cas très sensiblement les mêmes, hormis pour une ou deux exceptions que ce
soit pour l'entraînement ou pour l'inférence. On utilise les mêmes mécanismes donc on va commencer
par l'entraînement et puis ensuite l'inférence ce sera les mêmes étapes avec une ou deux étapes en
moins une ou deux étapes en plus. D'abord il y a évidemment les données d'entraînement.
Alors données d'entraînement on parle souvent de corpus, de corpus textuel quand c'est de l'entraînement
pour le texte. Donc en fait les LLM sont entraînés sur d'énormes quantités de textes qui proviennent
de plein de sources différentes, des livres, des articles mais en général évidemment des sites web
puisque c'est tout internet et le web spécifiquement qui est utilisé pour entraîner ces modèles-là.
Et c'est vraiment ça qui va être essentiel. Plus vous allez avoir un corpus énorme, plus vous allez
avoir à la fois une compréhension de langage et une compréhension du contexte des sujets qui va
être énorme et qui va se rapprocher de notre compréhension en tant qu'humain. Si on devait
faire une métaphore, je vais essayer de vous faire une petite métaphore tout au long de cette
chose-là pour prendre, on va dire, une IA très spécifique sur la cuisine et la pâtisserie,
la métaphore dans les données d'entraînement c'est simplement de prendre tous les livres
de cuisine et de pâtisserie qui existent et donc de créer ce corpus-là et de s'en servir pour
entraîner notre modèle. Ensuite vient donc la phase, une fois qu'on a récupéré ces données-là,
de tokenisation. La tokenisation en fait c'est le processus de diviser le texte en unité plus
petite et ces unités on va les appeler des token. Alors ces tokens ça peut être des mots, des sous-
mots ou simplement des caractères. C'est vital puisque c'est à partir de la tokenisation qu'on
va faire tout le reste du processus et donc si on le fait mal, on va avoir des problèmes de
compréhension, la structure de langage ou simplement ça va être plus dur de traiter des mots rares,
des mots inconnus etc. On reprend notre exemple, si vous trouvez dans un, enfin si notre modèle
trouve dans un livre de pâtisserie, eh bien éplucher les pommes, elle pourra être tokenisée par
exemple en éplucher les pommes. Voilà on va séparer les virgules, la ponctuation selon le
langage et la pondération qu'on va donner, eh bien ça va être soit utilisé comme un token, soit
ignoré, soit voilà. Ensuite la troisième phase c'est la phase d'embedding. Alors l'embedding c'est
tout simplement transformer les tokens qu'on a récupérés en vecteurs numériques. Chaque
mot ou plutôt chaque token va être représenté donc par un vecteur dans un espace multidimensionnel.
Alors on n'a pas forcément besoin de rentrer dans les détails, simplement c'est pour vous dire
qu'on va transformer ces mots en valeur mathématique, valeur numérique pour pouvoir faire des calculs et
des traitements sur ces valeurs numériques directement. Donc ça permet notamment de
capturer des relations sémantiques. Si on prend par exemple les mots prunes et les mots prunos,
ils auront des vecteurs proches parce qu'ils partagent des caractéristiques sémantiques. À
l'inverse, les mots par exemple couteau et le mot off, toujours dans notre truc spécifique sur la
cuisine et la pâtisserie, ils vont avoir des vecteurs un peu plus éloignés parce que en fait
vous ne coupez jamais un oeuf, vous n'épuchez pas un oeuf. Donc ces deux mots là sémantiquement,
ils vont plutôt être un peu plus éloignés en tout cas que les mots prunes et prunos qui
sont issus du même fruit. Maintenant qu'on a ces vecteurs, on va passer dans la phase dont je vous
parlais au début, la phase de transformers. Donc la phase de transformers est divisée en deux sous
parties. D'abord on a une phase d'encodeur-décodeur. L'encodeur-décodeur c'est simplement selon
si on l'utilise pour une phrase en entrée ou pour une phrase en sortie. En entrée on va utiliser
l'encodeur et en sortie ça va être le décodeur. Et donc quand l'encodeur traite une phrase ou un
texte, il va analyser la structure et le contexte des mots, plutôt le contexte des vecteurs ou des
tokens. Il va apprendre à reconnaître les motifs syntaxiques, l'ordre des mots, les relations,
sujets, verbes, objets, etc. Alors ça c'est des concepts que nous on a et sur lesquels on met des mots,
mais lui ce sont des concepts mathématiques au final, c'est un enchaînement logique et les autres
règles grammaticales. En fait ça va lui permettre de créer une espèce de représentation riche et
contextuelle de chaque phrase. Il va pouvoir l'utiliser comme un modèle pour simplement recréer des
phrases et pour comprendre les phrases en entrée et puis le décodeur s'en servira pour ré-générer
des phrases en sortie. Ensuite pour le mécanisme d'attention, et bien en fait ce mécanisme d'attention
il va simplement servir au décodeur à se concentrer sur les parties les plus pertinentes de la
représentation créée par l'encodeur. Ça va permettre de générer des phrases qui sont non
seulement syntactiquement correctes mais qui sont aussi sémantiquement corrects et qui vont être
le plus proche sémantiquement possible. Et donc évidemment on comprend assez facilement plus la
taille de notre mécanisme d'attention. En anglais on parle d'attention span, c'est un petit peu le
temps d'attention mais temps au sens machine du terme donc au nombre de nombre de tokens,
et bien plus notre attention va pouvoir avoir de contexte que ce soit en longueur mais aussi de
contexte en parallèle, et bien plus on va pouvoir avoir de réponses précises et de
réponses pertinentes. C'est vraiment ça un des points clés des LLM et de leur performance,
c'est plus vous allez avoir des transformers qui sont optimisés dans tout ce traitement là,
plus vous allez avoir des réponses vraiment impressionnantes. Alors si on reprend notre
métaphore de la cuisine et de la pâtisserie, qu'est-ce que ça veut dire ? Bien ça veut dire
qu'il va, notre modèle, une fois qu'il va être entraîné, il va lier le concept par exemple de
tarte et de pomme, et bien grâce à ces données d'entraînement et donc au mécanisme dont on vient
de parler, et bien il va être capable de dire qu'il y a plusieurs étapes dans une recette en
général de tarte au pomme, et donc il va être capable de dire qu'en général l'étape de faire
la pâte arrive plutôt vers le début parce que bien son contexte, tout le contexte on lui a donné
tant pour verser de ses mentiques là, puis ça va être en général le mélange des produits
secs, farine, sucre, etc. Puis on va venir ajouter les éléments liquides pour enfin tout
assembler et mettre au four. Donc ce qui pour ce modèle là paraîtra cohérent puisque c'est ce
qu'on lui a appris entre très gourgimmé avec les données d'entraînement, donc il va pouvoir
nous ressortir une recette de tarte au pomme la plus cohérente par rapport aux données qu'on lui
a mises. Maintenant évidemment ce modèle ne sera jamais capable de nous ressortir la recette de
tarte au pomme la meilleure puisque ça n'a pas vraiment de sens pour lui hormis si vraiment ça
a été un point qui a été appuyé pendant l'entraînement ou le fine tuning dont on va
parler après, mais ce qui va leur sortir c'est la recette la plus cohérente par rapport à ces
données d'entrée. Maintenant passons du coup comme on parlait de tout l'entraînement et bien la
phase de fine tuning donc une fois qu'on a créé notre modèle qu'on a entraîné avec des données
d'entrée, eh bien le fine tuning c'est simplement là justement une fois qu'on va commencer à lui
envoyer des requêtes, des questions, des choses comme ça et voir comment est-ce qu'il nous répond.
On va pouvoir éventuellement parfois avoir des surprises mais parfois des mauvaises surprises
sur certaines questions typiquement parce que nos données sont biaisées, typiquement si on prend
notre exemple de la cuisine et de la pâtisserie, il y a des chances qu'avec la masse de données,
eh bien quand vous lui demandez de vous donner une recette de cuisine, il y a de fortes chances
ou de pâtisserie, mais il y a de fortes chances que cette recette contienne des ingrédients à base
de lait, à base de produits d'origine animale et donc nous si jamais dans l'utilisation de notre
modèle on veut qu'ils puissent nous ressortir des recettes veganes principalement par exemple,
en tout cas par défaut, eh bien il va falloir qu'on le fine tune, donc on réentraîne des parties
spécifiques avec des corpus évidemment aussi spécifiques pour que par défaut soit pour compenser
un biais soit pour une utilisation cible particulière, eh bien on puisse avoir les résultats les plus
cohérents par rapport à nos attentes. Donc voilà on vient de faire ensemble toute la partie sur,
enfin toutes les étapes sur la partie d'entraînement et de création on va dire de la LLM et la majorité
de ces parties hormis la toute première qui est, on va dire les données d'entraînement et la
dernière qui est le fine tuning, eh bien en fait toutes ces étapes vont être réutilisées,
enfin oui, réutilisées lors de l'inférence, donc l'inférence c'est quand on va envoyer des données
au modèle qui a été entraîné et qu'on va vouloir qu'il nous envoie une réponse qu'il complète
ou voilà. La seule chose c'est que, eh bien évidemment on va passer par le décodeur dont
je vous ai parlé tout à l'heure et une dernière phase qui est la modélisation du langage, la
prédiction puisque comme je vous l'ai dit, eh bien une LLM c'est simplement quelque chose qui va
prédire un mot après l'autre, quel mot va venir ensuite et quel est celui qui a le plus de chance.
Quand vous êtes en début par exemple de notre exemple, eh bien il y a le mot préchauffage
qui apparaît très très fortement dans les débuts des recettes qu'on lui a fait à incurgiter,
donc il y a de fortes chances que l'un des premiers mots de la recette ce soit préchauffage ou
préchauffé et en général le mot préchauffage ou préchauffé est très souvent eh bien suivi
d'un article comme le et puis ensuite four ou alors là et plaque et en fait grâce eh bien à cette
structure et à toute la sémantique qu'on va venir combler en fait dans cette structure de
phrase là eh bien on va venir voilà tout simplement faire un mot et puis l'autre et donc si on a une
phrase qui dit dénoyautes les eh bien ça va être sûrement un fruit qui va venir après donc
ce ris ou prunes ou abricots mais c'est simplement voilà ce qui est une LLM c'est quelque chose c'est
un modèle qui arrive à prédire quel mot a analysé plutôt la phrase mathématiquement
on parle vraiment c'est purement mathématique et et à ressortir eh bien quel mot va venir dans
la phrase et donc un mot après l'autre on va construire comme ça la réponse j'espère que
cet épisode vous aura plu je suis désolé il est vraiment un peu plus long que les autres j'ai
essayé de de vous mettre un petit peu tout d'abord de vous donner les explications avec les mots
les termes qui qui est intéressant de connaître et puis de vous faire aussi la petite métaphore sur
la cuisine et la pâtisserie pour que j'espère tout le monde puisse comprendre je vous mettrai
dans les notes de l'épisode une vidéo complète alors là je sais plus la vidéo fait un peu plus
de trois heures par un des co-fondateurs d'open ai qui explique vraiment ça mais de manière
encore plus technique et encore plus poussée mais qui est ultra intéressante donc si jamais le sujet
vous intéresse on a on a vraiment fait qu'une introduction et je suis désolé d'ailleurs
s'il ya des experts qui passent par là j'ai fait des raccourcis j'ai essayé de faire en sorte que
soit compréhensible pour un maximum de personnes mais voilà donc n'hésitez pas à aller voir cette
vidéo parce que c'est vraiment ce qui pourra permettre d'affiner votre compréhension du sujet
moi je vous donne rendez-vous la semaine prochaine pour un prochain épisode du podcast n'hésitez pas
à partager cet épisode à des gens qui sont intéressés par le sujet et qui ne connaissent
pas réellement un petit peu les implications techniques on va dire derrière ça et pensez à
laisser cinq étoiles sur votre plateforme d'écoute de podcast que soit Spotify, Apple,
Deezer, peu importe ça permet d'augmenter la visibilité du podcast et de nous remercier
aussi pour notre travail n'hésitez pas maintenant en plus sur Spotify vous pouvez laisser des
commentaires on lit tous les commentaires ça fait super plaisir donc n'hésitez pas et moi sinon
je vous donne rendez-vous sur code-garage.com pour retrouver tous nos articles de blog tous
nos épisodes de podcast il ya un article et un épisode de podcast par semaine mais aussi pour
retrouver tous nos cours complets on a un cours sur l'éco conception logicielle qui sort très
très vite donc n'hésitez pas à venir faire un tour il ya des très belles choses qui sont
en préparation je vous donne rendez-vous la semaine prochaine prenez soin de vous salut
Episode suivant:
Les infos glanées
Code-Garage
Découvrons ensemble des sujets passionnants autour du métier de dev et de la programmation en général !
Tags