Fonctionnement des LLMs.


Cette série d’article traite du fonctionnemet des Large Langage Models, en choisissant une approche intuitive et la moins mathématisée possible. Elle est issue d’un post de blog rédigé par Timothy B. Lee and Sean Trott en juillet 2023, dont le texte original est disponible ici.

Par souci de lisibilité, cet article a été découpé en plusieurs séquences.

Le premier article introduit le concept et la notion de vecteurs de mots.

Le deuxième approfondit les vecteurs de mots et leur arithmétique.

Le troisième traite du fonctionnement des Transformers, et du mécanisme d’attention.

Introduction.

Le lancement de Chat-GPT le trente novembre 2022 secoua tout le monde, en offrant au grand public l’accès aux Large Language Models (LLMs), qui étaient jusqu’alors réservés aux chercheurs en apprentissage profond.

Les LLMs ont pour principe de base la prédiction du mot suivant, en fonction du contexte et de la requête, après que l’algorithme ait appris à partir de document servant de référence.

Aller au delà de cette explication est difficile car ces algorithmes ne sont pas développés de manière habituelle, en suivant des instructions pas à pas définies par un développeur. En effet, Chat-GPT est basé sur des réseaux de neurones formels (voir neurones formels et réseaux de neurones) entraînés sur des milliards de mots de langage naturel. De ce fait, personne ne sait réellement interpréter, comprendre le mécanisme interne de ces algorithmes, avec des recherches qui ne fournissent pour l’heure que de lents progrès.

L’objectif est de permettre l’accès à ce fonctionnement intime, en réduisant la charge mathématique et technique.

La démarche consistera en :

  • Décortiquer le contexte de Vecteur de Mot, qui permet de traiter le mot sous un format numérique,
  • Montrer comment le sens dépend du contexte, et comment ce contexte peut être considérer dans un sens mathématique,
  • A partir de là, interpréter le mécanisme d’attention et la mécanique informatique des Transformers,
  • Enfin, la manière dont ces algorithmes sont alimentés par des données, et pourquoi il existe une dépendance entre le volume de ces données et l’efficacité des modèles.

Vecteurs de Mots.

Comprendre comment les LLMs fonctionnent impose de saisir comment ils se représentent les mots. Les mots en eux mêmes sont difficiles à traiter par les ordinateurs. Ils sont pour cela remplacer par un vecteur, qui permettra un traitement numérique de ses relations avec les autres mots.

On pourrait par exemple définir une ville en fonction de ses coordonnées GPS, en lui rattachant une longitude et une latitude. Par exemple:

Washington, DC [38.9, 77]
New York [40.7, 74]
London [51.5, 0.1]
Paris [48.9, -2.4]

On peut ainsi, à partir des coordonnées du vecteur, calculer la distance entre ces villes. Ce ne serait toutefois pas très utile pour étudier le sens des termes. Il s’agit donc de définir un mot par une suite de nombres, qui va déterminer sa position et ses relations par rapport aux autres mots. On intègre ce mot dans un ensemble de mots et on détermine sa position par rapport aux autres mots. Ceci se rapproche de l’analyse structuraliste du langage, proposé par Ferdinand SAUSSURE, pour lequel le langage est une totalité, une structure, dont les composants n’ont par de sens en soi, mais dont le sens se definit par la différence qu’il présente par rapport aux autres composants – la diacriticité.

En considérant les données disponibles à partir du site webvector, le mot CHAT en anglais – CAT – est représenté par un vecteur ayant 300 coordonnées (300 dimensions), dont les premières sont:

0.007398007903248072, 
0.0029612560756504536, 
-0.010482859797775745, 
0.0741681158542633, ... 

Ces coordonnées sont disponibles ici et sont résumées sur le graphique ci dessous.

La proximité de CAT par rapport aux autres mots du même regroupement sémantique (cluster) est représenté dans cet autre schéma, dans lequel les divers mots proches (cat, rabbit, dog et fog, kitten, …) sont représenté, tandis que les lignes les reliant signifie que la proximité de ces mots est de plus de 0,6 (Seuil de similarité ou Similarity threshold > 0,6).

Cet concept de vecteur de mot est ancien, mais n’a décollé qu’à partir du travail réalisé par Tomas Mikolov et col., (publication ici) qui ont publié en 2013 la description d’un algorithme permettant de décrire cet espace de mot. Après analyse de millions de documents issus de Google News, un réseau neuronal a appris à prédire les associations entre chaque mot et a pu placer chaque mot dans un espace vectoriel.

Ci dessous, un extrait de l’article montrant un exemple des résultats d’un modèle (Skipgram), entraîné sur un jeu de données de 793 millions de mots, codant chaque mot par un vecteur à 300 dimensions.

Ces vecteurs de mots montrent des relations arithmétiques entre les mots et les concepts. Ainsi, l’opération qui permet de passer de ‘Cambodgien’ à ‘Cambodge’ sera la même que celle qui permet de passer d’Allemand’ à ‘Allemagne’. De même pour le genre, avec la même opération entre ‘Homme’ et ‘Femme’ qu’entre ‘Roi’ et ‘Reine’. Ces opérations peuvent même comporter plusieurs étapes: ‘Biggest’ – ‘Big’ + ‘Small’ = ‘Smallest’.

Ces relations sont déterminées par le jeu de données employé pour l’entraînement. Elles en gardent les biais exprimés par ces jeu de données (le féminin de médecin est … infirmière).

Article suivant: (LLMs: emploi des vecteurs de mots)[https://poreia.eu/2023/12/llms-2-sens-et-contexte-du-mot/]


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *