2. Les vecteurs : le sens comme un angle

CONCEPT · MATIÈRE D’AH · DÉMONSTRATION EXÉCUTABLE

La pièce maîtresse du dossier : trois mots, cinq dimensions, et une phrase de conférence qui tient debout.

Le dispositif

Trois mots, chacun réduit à cinq nombres. On les compare deux à deux.

MotVecteur
chat[0.8, 0.1, 0.9, 0.0, 0.2]
chien[0.7, 0.2, 0.8, 0.1, 0.1]
ordinateur[0.1, 0.9, 0.0, 0.8, 0.7]

Le résultat

ComparaisonDistance eucl.Produit scalaire Cosinus
chat vs chien — concepts proches0,2236 1,32000,9880
chat vs ordinateur — concepts éloignés1,6823 0,31000,1813

Les trois mesures, et pourquoi le cosinus gagne

MesureCe qu’elle ditSa faiblesse
Distance euclidienne La longueur du segment entre les deux pointes de flèche. L’histoire « en mètres » : 0,22 contre 1,68. Une flèche deux fois plus longue s’éloigne, même si elle pointe exactement dans la même direction.
Produit scalaire Combien les deux flèches vont dans le même sens, pondéré par leur longueur. Non borné : 1,32 ne se compare à rien. Un vecteur long l’emporte sur un vecteur bien orienté.
Similarité cosinus L’angle, et rien que l’angle. Borné : 1 = même direction, 0 = perpendiculaires. Elle ignore la longueur — ce qui est précisément ce qu’on veut ici, mais pas toujours.

« Chat » et « chien » se ressemblent à 98,8 %, « chat » et « ordinateur » à 18 % : la machine ne « comprend » pas les mots, elle mesure des angles entre des flèches dans un espace à des milliers de dimensions — la proximité de sens devient littéralement une proximité géométrique.

C’est la phrase de conférence retenue par AH, et elle est exacte.

D’où viennent ces quinze nombres ?

De nulle part. Ils sont posés à la main.

C’est la première question que pose un auditoire attentif, et la réponse honnête est celle-là : les quinze valeurs sont écrites en dur dans le script, choisies pour que le résultat tombe juste. Aucune n’a été mesurée sur un corpus, aucune ne sort d’un modèle, aucune dimension ne porte de nom.

Cela dit, l’intention se lit à rebours : les colonnes ont été construites en deux blocs opposés.

Dim.chatchien ordiCe que la colonne sépare
10,80,70,1 le vivant de l’objet
20,10,20,9 l’inverse — l’artefact
30,90,80,0 le vivant à nouveau, avec un zéro absolu pour l’ordinateur
40,00,10,8 l’artefact à nouveau
50,20,10,7 l’artefact, plus faiblement

Deux dimensions « animales », trois « machines ». C’est pour cela que le résultat est aussi net — il a été construit pour l’être.

Deux dimensions sur cinq font 97 % du travail

Le produit scalaire est une somme : on peut donc l’ouvrir et regarder ce que chaque dimension y apporte. C’est la manipulation la plus parlante de toute la démonstration.

Comparaisondim 1dim 2 dim 3dim 4dim 5 total
chat · chien0,560,02 0,720,000,02 1,32
chat · ordinateur0,080,09 0,000,000,14 0,31

Pour chat/chien, les dimensions 1 et 3 apportent 1,28 sur 1,32 — 97 % de la ressemblance tient à deux nombres sur cinq. Les trois autres ne pèsent rien. Pour chat/ordinateur, aucune dimension ne s’aligne : les contributions sont faibles et dispersées, et les deux plus fortes sont celles qui décrivent la machine.

En degrés, c’est encore plus clair. Le cosinus étant celui de l’angle entre les deux flèches :

8,9°entre chat et chien
79,6°entre chat et ordinateur

Presque la même direction, contre presque perpendiculaires. C’est la phrase à dire en salle plutôt que « 98,8 % ».

Ce qui change dans un vrai modèle

IciDans un modèle réel
Cinq dimensions768, 1536, 3072 selon les modèles d’embedding — et plusieurs milliers pour les états internes d’un LLM.
Choisies par une personne, lisibles Apprises, et individuellement illisibles : personne ne sait dire ce que signifie « la dimension 412 ». C’est précisément l’objet de l’interprétabilité mécaniste — voir « il faut ouvrir la boîte », conférence NDBI.
Valeurs entre 0 et 1 Des réels positifs et négatifs, à peu près centrés sur zéro.
Vecteurs non normalisés
normes : 1,22 · 1,09 · 1,40
Souvent normalisés à une longueur de 1 — et alors produit scalaire et cosinus deviennent le même nombre. C’est pourquoi ils diffèrent ici (1,32 contre 0,988) et pas ailleurs.
La nuance à ne pas escamoter. Le README de la démo dit qu’elle est « structurellement identique à ce que fait un LLM ». C’est vrai de la mesure — l’angle, le cosinus, la géométrie du sens — et faux de l’origine des coordonnées. La démonstration enseigne parfaitement la seconde moitié du geste ; la première est escamotée, et c’est justement celle où se logent les biais, puisque personne ne choisit ces nombres.

Le voir bouger

L’espace latent — le sens est un angle — page interactive : deux vecteurs dans un plan, le second orientable à la souris ou au doigt, le cosinus qui se recalcule en direct.

C’est la meilleure manière de faire sentir en salle qu’un cosinus est un angle et non un pourcentage de compréhension.

Le code

Deux versions strictement équivalentes — vérifiées identiques à la quatrième décimale. La seconde n’a aucune dépendance : c’est celle à utiliser en démonstration sur une machine qu’on ne maîtrise pas.

import math

chat = [0.8, 0.1, 0.9, 0.0, 0.2]
chien = [0.7, 0.2, 0.8, 0.1, 0.1]
ordi = [0.1, 0.9, 0.0, 0.8, 0.7]

def dist(v1, v2):
    return math.sqrt(sum((a - b) ** 2 for a, b in zip(v1, v2)))

def dot(v1, v2):
    return sum(a * b for a, b in zip(v1, v2))

def norm(v):
    return math.sqrt(sum(a * a for a in v))

def cos(v1, v2):
    d = norm(v1) * norm(v2)
    return dot(v1, v2) / d if d else 0

Les quatre fonctions tiennent en huit lignes. Le cosinus est un produit scalaire divisé par le produit des longueurs : c’est toute la « magie » de l’espace latent.

demo-vecteurs-pur.py (Python pur) · demo-vecteurs-numpy.py (version d’origine, numpy) · resultat.txt · README.md

Ce que la démonstration simplifie — à dire en salle

Où c’est mis en scène

Les diapositives 3, 4 et 5 du support de conférence reprennent ce diptyque sans montrer une ligne de code — flèches, angles, et les deux nombres en gros caractères.

← 1. Les tokens : ce que la machine lit vraiment3. Du neurone au poids : où c’est expliqué →