Comparer et classer des vecteurs numériques

Collez un vecteur de requête et des candidats pour comparer leur similarité ou leur distance. Choisissez une métrique de classement ; les dimensions incompatibles sont signalées, sans génération d’embeddings.

Fonctionne localement dans votre navigateur
Toutes les analyses vectorielles et arithmétiques se produisent localement. L'outil ne crée pas d'intégrations et n'envoie pas de vecteurs à un service externe.
Vecteur de requête
Vecteurs de candidats

Comparez les vecteurs sans exposer les plongements

Le cosinus compare la direction, le produit scalaire reflète également la magnitude et les mesures de distance classent les valeurs plus petites en premier. Normalisez les vecteurs de manière cohérente avec le flux de travail d'intégration que vous utilisez en production.

Comment classer des vecteurs par cosinus, distance ou produit scalaire

Collez un vecteur de requête et des candidats étiquetés : la page les renvoie classés selon la métrique choisie. Similarité cosinus, produit scalaire, distance euclidienne et distance de Manhattan sont calculés dans l’onglet avec les valeurs telles quelles : rien n’est normalisé, aucun modèle d’embeddings n’est appelé et aucun vecteur ne quitte le navigateur.

Un classement vaut ce que valent les vecteurs. Des vecteurs issus de modèles différents, ou du même modèle avec un prétraitement différent, vivent dans des espaces différents : ne comparez des scores que si les vecteurs proviennent d’une même chaîne de traitement.

  1. Collez le vecteur de requête : des nombres séparés par des virgules, des espaces ou des points-virgules, ou un tableau JSON comme [0.82, 0.15, -0.31, 0.44].
  2. Ajoutez les candidats, un par ligne : une étiquette, puis une tabulation (ou deux-points ou un espace) et le vecteur entre crochets, par exemple « segment A<TAB>[0.79, 0.18, -0.28, 0.48] ». Un tableau JSON de tableaux ou d’objets {label, vector} fonctionne aussi.
  3. Choisissez la métrique : similarité cosinus et produit scalaire placent la valeur la plus grande en tête ; les distances euclidienne et de Manhattan placent la plus petite distance en tête.
  4. Cliquez sur Calculer et classer. Un candidat dont la longueur diffère de la requête, ou dont la ligne est illisible, est listé avec la raison et écarté du classement au lieu de faire échouer toute l’exécution.
  5. Cliquez sur Effacer pour vider le formulaire ; la métrique revient à la similarité cosinus.

Formats d’entrée, formules des métriques et gestion des erreurs

Formats d’entrée acceptés par l’analyseur

Un vecteur est une liste de nombres finis. Dans le champ de requête, ils peuvent être séparés par des virgules, des espaces ou des points-virgules, ou écrits en tableau JSON ; les décimales, les signes et la notation scientifique (1e-3, 2E-3) sont acceptés, et les nombres peuvent aussi être entre guillemets, comme le font les exports de tableurs et de CSV. null, true, false, les entrées vides et tout autre texte sont refusés : la page nomme la valeur fautive au lieu de la convertir en 0 ou en 1.

Les lignes de candidats sont lues comme une étiquette suivie d’un vecteur. Le séparateur peut être une tabulation, deux-points ou un espace ; le vecteur est une liste entre crochets ou, sans étiquette, une simple liste de nombres. Les lignes sans étiquette sont numérotées « Vector 1 », « Vector 2 », etc. Une liste JSON de candidats peut être un tableau de tableaux, un tableau d’objets {label, vector} ou un seul tableau plat lu comme un candidat unique.

Ce que renvoie chaque métrique

La similarité cosinus divise le produit scalaire par les deux normes : elle ne compare que la direction et ignore la longueur, avec des valeurs de −1 (opposés) à 0 (sans rapport) puis 1 (même direction). C’est le choix habituel pour les embeddings de texte et d’image. Un vecteur nul n’a pas de direction : son cosinus est indéfini et la ligne s’affiche comme indisponible plutôt que comme 0.

Le produit scalaire multiplie les composantes correspondantes et les additionne : il croît à la fois avec l’accord de direction et avec la longueur des vecteurs ; le classement se fait par valeur décroissante et un résultat négatif passe sous tout résultat positif. La distance euclidienne est la distance en ligne droite entre les deux points et celle de Manhattan additionne les écarts absolus composante par composante : toutes deux classent la distance la plus courte en premier et dépendent de l’échelle des nombres.

Le cosinus est calculé sur des copies remises à l’échelle pour que des composantes énormes (1e200) ne fassent pas déborder les produits intermédiaires, et la distance euclidienne est cumulée avec Math.hypot pour que l’élévation au carré ne déborde pas non plus. Un produit scalaire qui dépasse réellement la plage d’un nombre JavaScript est signalé comme indisponible, avec la raison dans la ligne d’état, au lieu d’être affiché comme Infinity.

Ce que la page ne fait pas

Elle ne crée pas d’embeddings, ne télécharge pas de vecteurs depuis une API et ne parcourt aucun corpus : elle classe les nombres que vous collez. Elle ne normalise pas non plus les vecteurs, ne supprime pas les étiquettes en double et ne réordonne pas les ex æquo : deux candidats de même score conservent leur ordre d’entrée.

La barre de chaque ligne est mise à l’échelle entre le meilleur et le pire score de l’exécution en cours : elle indique une position relative dans un classement et n’est pas comparable d’une exécution ou d’une métrique à l’autre. La colonne des scores est arrondie pour l’affichage — les ordres de grandeur extrêmes passent en notation exponentielle — ; pour une arithmétique exacte sur de gros lots, utilisez une bibliothèque numérique dans votre propre chaîne.

Outils récents :