Vecteurs de tokens et similarité

Le vecteur d'un token est le relevé de la compagnie qu'il fréquente. Cela marche bien pour les mots à compagnie spécifique, et échoue pour ceux qui voisinent tout.

Chargement de la simulation interactive...

Ces vecteurs comptent la compagnie ; ceux d'un transformeur s'apprennent 🖖

Chaque nombre ici vient du comptage du nombre de fois où deux tokens apparaissent à moins de quatre positions l'un de l'autre, converti en un score élevé quand l'appariement est plus fréquent que le hasard ne le voudrait. C'est une méthode réelle portant un nom réel, et ce n'est pas ce qu'il y a dans un modèle de langue. Les embeddings d'un transformeur partent au hasard et sont ajustés pendant l'entraînement jusqu'à ce qu'ils aident à prédire le token suivant ; ils finissent donc par encoder ce qui a facilité la prédiction — y compris des choses qu'aucune méthode de comptage ne trouverait. Ce qui survit à la comparaison, c'est la forme : un token devient une direction, et la proximité est l'angle entre deux directions.

Un voisin proche n'est pas un synonyme 🖖

Les voisins de ␣Earth sont ␣planet, ␣Sun, ␣Jupiter et ␣Moon — aucun ne signifie Terre. Ceux de ␣star sont ␣yellow, ␣white et ␣red, c'est-à-dire ses propriétés et non ses synonymes. Voilà ce que mesure réellement la similarité distributionnelle : non pas ce qu'un token signifie, mais ce dont parlait le corpus quand il l'employait. Deux tokens obtiennent un score élevé lorsqu'on les évoque dans la même compagnie, et être évoqués ensemble est une relation bien plus large que signifier la même chose.

Il n'y a pas de carte ici, et ce n'est pas un oubli 🖖

Chaque vecteur possède une dimension par token voisin possible — 2742 en tout — et rien sur cette page ne réduit cela à deux. Le cosinus n'en a pas besoin : l'angle entre deux directions est défini dans n'importe quel nombre de dimensions, et la grille ci-dessus montre directement toutes les paires d'angles. Les nuages de points plats que vous avez vus ailleurs sont une projection, choisie pour la lisibilité et non pour l'exactitude, et deux tokens qui y paraissent voisins peuvent être éloignés dans l'espace où vivent réellement les nombres.

Problème entièrement résolu

  1. Terre et Soleil à 0,299 sur 13 rencontres 6 étapes

    Le panneau évalue ␣Earth par rapport à ␣Sun à 0,299. Earth apparaît 230 fois dans le corpus et Sun 150 fois, sur un total de 385 078 tokens qui ouvrent 2 770 646 emplacements de contexte entre eux, et les deux se trouvent à 4 tokens au plus l'un de l'autre à 13 reprises. Calculez la part de ces 13 rencontres dans le score de 0,299.

    1. Une coordonnée par mot de contexte, et les vecteurs sont normalisés à une longueur de 1 avant toute comparaison. C'est cette mise à l'échelle qui fait de la similarité cosinus un simple produit scalaire : 0,299 est une somme de produits, avec un terme pour chaque mot de contexte que les deux tokens ont en commun.

    2. Une coordonnée est un rapport de surprise, et non un décompte — la fréquence à laquelle la paire apparaît réellement ensemble comparée à la fréquence à laquelle un corpus mélangé les associerait. La surprise négative est ramenée à 0, de sorte que le vecteur enregistre ce par quoi un token est attiré et n'a aucun moyen de consigner ce qu'il évite.

    3. Le hasard d'abord. Earth occupe 230 des 385 078 positions et Sun 150, si bien que sur l'ensemble des 2 770 646 emplacements, on s'attendrait à trouver la paire 0,6446 fois — soit moins de 1 occurrence dans tout le corpus.

    4. Elles apparaissent 13 fois, soit 20,17 fois ce que prédit le hasard, et la coordonnée est le logarithme de ce rapport : 3,004. Les deux vecteurs reçoivent la même valeur, car le décompte et les deux fréquences se lisent de la même manière dans les deux sens.

    5. Passons à la mise à l'échelle. Le vecteur d'Earth compte 419 coordonnées positives et une longueur de 30,381 ; celui de Sun en compte 302 et une longueur de 29,144. En divisant 3,004 par chacune d'elles, les coordonnées unitaires s'élèvent à 0,0989 et 0,1031.

    6. Leur produit, 0,0102, représente l'intégralité de la contribution de ces 13 rencontres. Earth et Sun partagent 105 mots de contexte au total ; en additionnant l'ensemble des 105 produits, on obtient 0,2992, que l'outil arrondit à 0,299 — les données directes fournissent donc 3,4 % du score.

    Réponse

    L'outil affiche 0,299, et les cooccurrences effectives de ces deux mots représentent 0,0102 de ce total. Le reste provient de l'entourage : 105 mots de contexte partagés sur les 2 742 tokens qui possèdent un vecteur. Deux conséquences en découlent. Puisque le tronquage supprime toute coordonnée négative, chacun des 105 produits est positif, si bien que l'échelle s'étend de 0 à 1 plutôt que de -1 à 1 — une paire qui n'a rien en commun obtient un score de 0, et non l'opposé de 1. Interprété comme un angle, 0,299 correspond à 72,6°, ce qui place Earth et Sun à 17,4° d'une absence totale de point commun. Et le classement issu du score est plus fin que les preuves sous-jacentes : ␣planet arrive en tête de la liste des voisins d'Earth avec 0,307, devançant Sun de 0,008, alors que la seule coordonnée propre à Earth et Sun vaut à elle seule 0,0102. Un seul mot de contexte suffit pour modifier le token désigné comme le plus proche.

Parcours

Comment un LLM choisit le mot suivant

Mène à Température et échantillonnage

Références (2)

Exemples de problèmes

  • Même sujet - ␣Earth et ␣Sun obtiennent 0,299. Le plus proche voisin d'Earth est ␣planet à 0,307 : les tokens d'astronomie se tiennent ensemble parce que le corpus les traite ensemble.
  • Quasi-synonymes - ␣speed et ␣velocity obtiennent 0,282, et ␣speed est le plus proche voisin de ␣velocity parmi les 2742 tokens. Des mots employés indifféremment fréquentent une compagnie indifférente.
  • Sujets différents - ␣Earth et ␣velocity obtiennent 0,122 — moins de la moitié du chiffre Earth–Sun. Sujets différents, voisins différents.
  • Deux mots fréquents - ␣the et ␣is obtiennent 0,505, la paire la plus haute ici et supérieure à ␣Earth et ␣Sun à 0,299. Aucun des deux ne partage de sens avec l'autre ; tous deux voisinent simplement tout.
  • Étoile et lumière - ␣star et ␣light obtiennent 0,262, et les voisins de star sont ␣yellow, ␣white et ␣red : le corpus parle des étoiles par leur couleur.