Aller au contenu

Introduction

Avant de rentrer dans le vif du sujet, nous allons reprendre quelques bases, notamment sur la notion de LLM

LLM

Un Large Language Model (LLM) ou grand modèle de langage en français, peut, en simplifiant un peu, être vu comme une boîte noire (dans le sens que l'on ne comprend pas vraiment ce qui se passe à l'intérieur) avec une entrée, une sortie et des milliards de boutons. Ce que l'on obtient en sortie de la boîte dépend de deux choses : ce qui se trouve à l'entrée de la boîte et les positions des milliards de boutons.

Le but d'un LLM est de compléter une phrase en choisissant le bon mot. Exemple : si en entrée d'un LLM nous avons le début de la phrase "La nuit, tous les chats sont ...", le LLM devra "choisir" parmi tous les mots possibles le mot "gris".

Pour être plus précis, le LLM ne va pas "choisir" le mot "gris", il va attribuer une probabilité à tous les mots qu'il "connaît". Pour la liste de mots suivants (pour illustrer mon propos, j'ai choisi quelques mots, le LLM travaillera sur une liste de mots beaucoup plus grande) : tarte, cuillère, vert, gris, fatigués, endormis, robot, ...

Voici ce que pourrait proposer le LLM :

mot probabilité
tarte 0.0001
cuillère 0.0001
vert 0.001
gris 0.59
fatigués 0.19
endormis 0.19
robot 0.0001
... ...

On constate que le mot "gris" est le plus probable, mais les mots "fatigués" et "endormis" ne sont pas totalement improbables (ce qui n'est pas le cas du mot "cuillère" par exemple).

Est-ce que le LLM choisira forcément le mot le plus probable ? La réponse à cette question dépend d'un des paramètres du modèle appelé "température".

notion de température

La température est un paramètre qui contrôle le niveau de créativité, de diversité ou d'aléa dans les réponses générées. C’est une manière de moduler l'équilibre entre des réponses prévisibles et des réponses originales ou inattendues.

Techniquement, la température agit sur la distribution de probabilité des mots. Plus précisément : - Quand la température est basse (exemple 0.0 ): le modèle privilégie les mots les plus probables (ici le LLM choisirait le mot "gris" à coup sûr) - Quand la température est haute (exemple 1.0) : le modèle est plus susceptible de choisir des mots moins probables (ici le LLM pourrait, certaines fois, choisir aussi "fatigués" ou "endormis").

notion de token

En fait, les modèles ne travaillent pas sur des mots mais sur des morceaux de mot appelés tokens.

Voici pourquoi : si on prend le verbe "manger", dans une phrase on peut évidemment trouver le verbe à l'infinitif mais aussi des formes conjuguées (mange, manges, mangerai...). Au lieu de considérer tous ces "mots" indépendamment les uns des autres, le modèle va travailler sur le token 'mang'.

Cette notion de token n'a pas une grande importance pour comprendre la suite de ce cours, mais comme vous risquez de rencontrer ce terme si vous faites des recherches sur le net, j'ai préféré aborder le sujet ici.

L'entraînement d'un LLM

Comme déjà évoqué plus haut, la distribution de probabilité fournie par le LLM dépend de 2 choses : évidemment l'entrée de LLM mais aussi les positions des milliards de "boutons" (appelés paramètres du modèle). Une question devrait vous brûler les lèvres : comment choisir les positions de ces milliards de boutons pour que la distribution de probabilité que l'on obtient en sortie soit correcte ? La réponse est simple : l'entraînement !

Au tout début de l'entraînement, les milliards de paramètres du modèle sont choisis aléatoirement. A ce stade, si on utilise le LLM, les résultats obtenus seraient totalement incohérents. L'entraînement du LLM se fait en plusieurs étapes.

Pré-entraînement

On commence par collecter un très grand nombre de documents sur le Web, dans des livres, sur des forums... Ces documents vont être utilisés pour le pré-entraînement du modèle. Imaginons que dans un de ces documents on trouve la phrase "La nuit tous les chats sont gris", les algorithmes d'entraînement vont "cacher" un mot de cette phrase, on aura alors par exemple "La nuit tous les ... sont gris". Cette phrase amputée d'un mot va être donnée au modèle que l'on cherche à entraîner. Le modèle va alors proposer en sortie une distribution de probabilité pour le mot manquant (comme nous l'avons déjà vu plus haut). Si par exemple la probabilité du mot "chat" est 0.0001, les algorithmes d'entraînement vont alors modifier les paramètres du modèle (tourner les "boutons") pour que la prochaine fois que le modèle rencontrera cette phrase, la probabilité du mot "chat" soit beaucoup plus grande. Et ce processus va se répéter des milliards de milliards de fois avec des milliards de milliards de phrases.

Une fois ce très long processus terminé (cela peut durer des mois...), le modèle est capable de prédire le prochain mot d'une phrase, mais il n'est pas encore capable de "tenir" une conversation.

Avant de passer à la suite, vous devez savoir que cette phase de pré-entraînement est extrêmement coûteuse : on parle souvent de plusieurs dizaines de millions de dollars pour pré-entraîner un modèle. Coûteuse d'un point de vue financier mais aussi coûteuse d'un point de vue consommation de ressources diverses (énergie électrique, eau...). En effet l'ajustement des paramètres du modèle demande de très nombreux calculs complexes. Il faut donc des fermes de serveurs pour effectuer ces calculs, ce qui consomme beaucoup d'énergie électrique. De plus, ces fermes de serveurs ont besoin d'être refroidies en permanence, ce qui provoque aussi une forte consommation d'eau.

L'entraînement des LLM a donc un coût environnemental qu'il ne faut surtout pas négliger.

Affinage

Au cours de la phase d'affinage, le modèle va acquérir la capacité de "dialoguer". Cette phase, même si elle peut être en partie automatisée, fait souvent intervenir des humains. Pour une question donnée, on va demander à des testeurs humains de choisir la meilleure réponse du modèle parmi plusieurs possibilités. Les paramètres du modèle sont encore modifiés afin que, à l'avenir, le modèle privilégie la réponse choisie par l'humain pendant cette phase d'affinage. On aligne le modèle afin qu'il réponde comme attendu, c'est pour cela que l'on parle aussi d'alignement pour cette phase de l'entraînement.

Cette phase d'affinage est très importante dans la construction d'un modèle. En effet, c'est au cours de cette phase que l'on va définir la ligne éditoriale d'un modèle (en effet un modèle n'est pas neutre). En fonction des réponses qui ont été choisies par les humains, les futures réponses du modèle seront orientées.

Voilà, cette introduction à la notion de LLM est terminée. J'ai simplifié certaines choses afin d'éviter de vous perdre dans des explications trop longues et trop complexes. Si vous voulez approfondir cette partie un peu théorique, je vous recommande le visionnage de 2 vidéos de David Louapre (Science étonnante) sur le sujet : - Ce qui se cache derrière le fonctionnement de ChatGPT - Les 4 étapes pour entraîner un LLM