Grands modèles de langageGrands modèles de langage
Grands modèles de langage7 min de lecture

Comment les LLMs savent-ils quand arrêter de parler ?

Comprenez comment les LLMs comme GPT-4 décident qu’ils ont répondu adéquatement à votre question.

Audio de la vidéo française

Écouter l’article

Source

Comment GPT-4 Décide d’Arrêter de Générer : Explication Simple

Comment les LLMs savent-ils quand arrêter de parler ?
Sommaire

À retenir

  • Par exemple, lorsque vous posez une question simple comme « Quelle est la capitale de la France ? », le modèle génère une réponse, puis place le token EOS juste après « Paris ».
  • Deux scénarios peuvent amener le modèle à arrêter de générer : les « tokens EOS » ( ) et les « longueurs maximales de tokens ». Nous allons les découvrir.
  • Dans le contexte de LLMs comme GPT-4, les tokens ne sont pas nécessairement des mots entiers ; ils peuvent aussi être des parties de mots ou des sous-mots courants.

Introduction

Il y a quelques jours, une question m’est venue au hasard : comment ChatGPT décide-t-il quand arrêter de répondre ? Comment sait-il qu’il a donné une réponse assez bonne ? Comment arrête-t-il de parler ?

Deux scénarios peuvent amener le modèle à arrêter de générer : les « tokens EOS » (<|endoftext|>) et les « longueurs maximales de tokens ». Nous allons les découvrir, mais nous devons d’abord faire un petit détour pour en apprendre davantage sur les tokens et le processus de génération de GPT…

Tokens

Les LLMs ne voient pas les mots. Ils n’ont jamais vu un mot. Ce qu’ils voient s’appelle des tokens. Dans le contexte de LLMs comme GPT-4, les tokens ne sont pas nécessairement des mots entiers ; ils peuvent aussi être des parties de mots, des sous-mots courants, des signes de ponctuation ou même des parties d’images comme des pixels. Par exemple, le mot « unbelievable » pourrait être divisé en tokens comme « un », « believ » et « able ». Nous les décomposons en composantes familières selon la fréquence à laquelle elles se répètent dans les données d’entraînement. C’est ce qu’on appelle le processus de tokenisation.

Exemple visuel de l’article « Comment les LLMs savent-ils quand arrêter de parler ? »

Mais nous avons encore des mots, et les modèles ne connaissent pas les mots… Nous devons les transformer en nombres pour que le modèle puisse effectuer des opérations mathématiques avec eux, puisqu’il ne sait pas ce qu’est un mot. Il ne connaît que les bits et les nombres. Ici, nous utilisons ce qu’on appelle un dictionnaire du modèle. Ce dictionnaire est simplement une énorme liste de tous les tokens possibles que nous avons choisis à l’étape précédente. Nous pouvons maintenant représenter nos mots sous forme de nombres en prenant simplement leurs indices dans notre dictionnaire. En passant, Karpathy a réalisé une excellente vidéo qui présente tout le processus de tokenisation à partir de zéro si vous voulez en apprendre davantage.

Exemple visuel de l’article « Comment les LLMs savent-ils quand arrêter de parler ? »

Exemple visuel de l’article « Comment les LLMs savent-ils quand arrêter de parler ? »

Ce processus de tokenisation existe pour deux raisons. Premièrement, diviser les mots en composantes courantes aide à réduire la taille du vocabulaire du modèle, ce qui rend le traitement plus efficace. Deuxièmement, cela permet au modèle de générer et d’interpréter le texte à un niveau plus granulaire, améliorant ainsi sa capacité à comprendre et à produire un langage nuancé.

Le processus de génération

Notre question est maintenant transformée en liste de tokens. Mais que fait GPT-4 avec ces tokens ? Il les utilise pour générer un nouveau token à la fois, de manière statistique. Autrement dit, il génère le prochain token ou mot qui a le plus de sens selon tout ce qui lui a été envoyé et tout ce qui a déjà été généré.

Si vous lui demandez pourquoi vous devriez vous abonner à la chaîne, il répondra selon ce qui est le plus logique dans ses données d’entraînement, ici Internet, ce qui semble vouloir dire dans ce cas qu’il vous donnera une liste de raisons de vous abonner.

Exemple visuel de l’article « Comment les LLMs savent-ils quand arrêter de parler ? »

Il y a donc quelques éléments à comprendre ici :

Premièrement, le modèle a commencé à générer les mots les plus logiques, en reformulant la question comme on l’a appris à l’école, puis en poursuivant avec « pour plusieurs raisons » et un deux-points (« : »). Dans ses données d’entraînement, la plupart des questions semblables obtenaient une réponse sous forme de liste à puces, alors il a simplement copié ce style.

Ce qui est drôle, c’est qu’il ne réfléchit pas comme nous. Il fonctionne à l’envers. Nous réfléchissons à la question et déterminons qu’il serait probablement préférable de donner une liste à puces contenant quelques raisons de s’abonner, puis de les énumérer. Dans le cas de GPT, il a déjà commencé à générer sa réponse sans avoir ce plan mental. Quand il génère le deux-points, il se dit : « Merde, je viens de dire que je donnerais plusieurs raisons et j’ai mis un deux-points ; je devrais probablement commencer à les énumérer maintenant ! » Et il commence.

Mais alors, comment savait-il combien d’éléments inclure dans sa liste et quand terminer ? Souvenez-vous, il n’a aucun plan. Il crée simplement un mot à la fois selon tous les mots précédents. Il ne sait pas ce qui suivra ni quand il aura bien répondu et devrait arrêter d’écrire. C’est la question à laquelle nous allons maintenant répondre…

Comme nous l’avons dit, deux scénarios peuvent amener un modèle à arrêter de générer…

Scénario 1 : le token EOS (fin de texte)

Le premier scénario est le plus courant. Lorsqu’il a répondu à votre question, il s’arrête grâce à un token spécial appelé EOS, ou <|endoftext|>. GPT-4, comme beaucoup de grands modèles de langage, utilise ce token spécial pour déterminer quand arrêter de générer du texte. Imaginez que vous apprenez à un enfant à reconnaître la fin d’un chapitre dans un livre. Lorsqu’il voit des expressions comme « pour conclure » ou « pour récapituler », l’enfant suppose que nous approchons de la fin. Eh bien, GPT-4 apprend à arrêter de générer du texte d’une façon semblable.

Pendant son entraînement, chaque texte se termine habituellement par un token EOS, ce qui apprend au modèle à le reconnaître comme un point d’arrêt naturel, avec le texte précédent qui mène à cette fin. Un peu comme le dernier point d’un chapitre, si vous voulez. Par exemple, lorsque vous posez une question simple comme « Quelle est la capitale de la France ? », le modèle génère une réponse, puis place le token EOS juste après « Paris », signalant que la réponse est terminée.

C’est aussi simple que cela. Pendant l’entraînement, tous les exemples que nous lui donnons comportent ce token EOS à la fin. Le modèle apprend essentiellement à arrêter de générer par lui-même à partir de ses données d’entraînement. Rien d’autre. Il n’y a aucune longueur imposée, aucun maximum ni minimum. Tout fonctionne grâce à la façon dont nous l’avons entraîné et à ce token EOS spécial. Pour le modèle, il est comme n’importe quel autre signe de ponctuation, simplement un autre nombre, sauf qu’il lui indique que tout est terminé.

Cela nous amène à notre deuxième scénario qui peut l’amener à arrêter de générer : que se passe-t-il si nous lui demandons d’être plus bref ou plus détaillé, ou si nous définissons manuellement une limite de tokens sur la plateforme d’OpenAI ?

Scénario 2 : longueur maximale de tokens

Lorsque vous définissez une limite maximale de tokens ou que vous la demandez dans votre texte, GPT-4 s’appuie sur son vaste entraînement avec des textes de différentes longueurs pour déterminer comment répartir le contenu adéquatement en respectant cette contrainte. Par exemple, si vous demandez au modèle d’expliquer brièvement un concept complexe comme la mécanique quantique, il planifie sa réponse pour transmettre l’information la plus importante avant d’atteindre la limite de tokens. Il utilise souvent une phrase d’introduction suivie de points clés afin d’assurer clarté et concision. 

Exemple visuel de l’article « Comment les LLMs savent-ils quand arrêter de parler ? »

Encore une fois, c’est parce que les humains produisent ainsi des résumés concis ou des présentations PowerPoint claires et denses. Cependant, si la question est trop vaste ou complexe par rapport à la limite de tokens, le modèle peut finir par fournir une réponse qui semble incomplète, comme celle-ci.

Exemple visuel de l’article « Comment les LLMs savent-ils quand arrêter de parler ? »

Comme nous le voyons, ce n’est pas toujours parfait, mais le système continue de s’améliorer. C’est plutôt simple et ça ressemble à de la magie, non ? Tout repose sur le fait d’apprendre à ces machines à imiter les interactions humaines et à répondre comme nous le ferions dans le même contexte, grâce à un incroyable travail d’ingénierie et à des données d’entraînement soigneusement sélectionnées. Rien de magique, rien de très sophistiqué. C’est de l’imitation, des statistiques et un token important qui indique qu’il est temps de conclure.

<|endoftext|>

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 un LLM décide-t-il d’arrêter de générer ?

Il prédit un token spécial de fin de séquence lorsque sa distribution apprise indique que la réponse est terminée.

Qu’est-ce qu’un token EOS ?

Le token de fin de séquence est un symbole de contrôle qui indique au système de génération qu’aucun autre texte n’est nécessaire.

Que se passe-t-il si le modèle ne prédit jamais le token EOS ?

La génération s’arrête lorsqu’elle atteint la limite maximale de tokens d’output configurée par l’application ou le modèle.

Pourquoi les mots sont-ils divisés en tokens ?

Les morceaux de mots réutilisables permettent de garder un vocabulaire gérable tout en représentant les mots rares, la ponctuation et les variations linguistiques.

Un développeur peut-il contrôler la longueur d’une réponse ?

Oui. Les instructions et les limites d’output influencent la longueur, même si le modèle peut s’arrêter plus tôt en produisant le token EOS.