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.
Trois mots, chacun réduit à cinq nombres. On les compare deux à deux.
| Mot | Vecteur |
|---|---|
| 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] |
| Comparaison | Distance eucl. | Produit scalaire | Cosinus |
|---|---|---|---|
| chat vs chien — concepts proches | 0,2236 | 1,3200 | 0,9880 |
| chat vs ordinateur — concepts éloignés | 1,6823 | 0,3100 | 0,1813 |
| Mesure | Ce qu’elle dit | Sa 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.
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. | chat | chien | ordi | Ce que la colonne sépare |
|---|---|---|---|---|
| 1 | 0,8 | 0,7 | 0,1 | le vivant de l’objet |
| 2 | 0,1 | 0,2 | 0,9 | l’inverse — l’artefact |
| 3 | 0,9 | 0,8 | 0,0 | le vivant à nouveau, avec un zéro absolu pour l’ordinateur |
| 4 | 0,0 | 0,1 | 0,8 | l’artefact à nouveau |
| 5 | 0,2 | 0,1 | 0,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.
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.
| Comparaison | dim 1 | dim 2 | dim 3 | dim 4 | dim 5 | total |
|---|---|---|---|---|---|---|
| chat · chien | 0,56 | 0,02 | 0,72 | 0,00 | 0,02 | 1,32 |
| chat · ordinateur | 0,08 | 0,09 | 0,00 | 0,00 | 0,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 :
Presque la même direction, contre presque perpendiculaires. C’est la phrase à dire en salle plutôt que « 98,8 % ».
| Ici | Dans un modèle réel |
|---|---|
| Cinq dimensions | 768, 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. |
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.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.
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
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.