Calculateur de similarité cosinus entre vecteurs d'embedding | Comparez deux embeddings côte à côte
Collez deux vecteurs d'embedding issus d'OpenAI, Cohere ou SBERT et obtenez la similarité cosinus, l'angle (en degrés) et la distance cosinus en une fois. Formats virgule, espace ou tableau JSON jusqu'à 4096 dimensions, avec les normes et une étiquette d'interprétation.
💡 À propos de cet outil
Quand on construit une recherche sémantique ou un pipeline RAG, une question revient sans cesse : ces deux textes sont-ils vraiment proches dans l'espace vectoriel ? Avant de faire confiance au score renvoyé par Pinecone ou pgvector, il est utile de recalculer la distance à la main à partir des vecteurs bruts pour comprendre d'où vient le chiffre.
La similarité cosinus mesure l'angle entre deux vecteurs et ignore leur magnitude (longueur). C'est exactement ce qu'il faut pour les embeddings de texte : une requête courte et un long paragraphe peuvent pointer dans la même direction sémantique malgré des tailles très différentes. Cet outil accepte trois formats réels pour coller une réponse JSON d'API ou une ligne séparée par des virgules, et affiche l'angle et la distance à côté de la valeur cosinus afin de situer le résultat par rapport aux seuils 0.85 / 0.5 / 0.
Il intercepte aussi les pièges habituels : dimensions différentes, vecteur nul ou élément non numérique déclenchent une erreur au lieu de produire un score trompeur.
🧐 Questions fréquentes
Quelle est la formule de la similarité cosinus ? cos(θ) = (A · B) / (‖A‖ × ‖B‖) : le produit scalaire des deux vecteurs divisé par le produit de leurs normes. Le résultat va de -1 (opposés) à 1 (même direction), en passant par 0 (orthogonaux, sans rapport).
Cosinus ou distance euclidienne ? Le cosinus ne regarde que la direction ; la distance euclidienne mesure l'écart en ligne droite (longueur comprise). Comme les modèles d'embedding normalisent souvent leurs sorties, comparer les directions suffit, d'où le statut de standard du cosinus.
À partir de quelle valeur deux textes « se ressemblent » ? Pour les embeddings de texte, 0.7–0.95 est la plage habituelle de « similaire ». L'outil étiquette cos > 0.85 comme forte, 0.50–0.85 comme modérée et 0–0.50 comme faible ou sans rapport. Les seuils varient selon le modèle ; observez la distribution sur vos propres données.
Pourquoi afficher aussi la distance cosinus (1 − cos) ? Les bases vectorielles classent par distance, où plus petit signifie plus proche. Disposer de la distance facilite le rapprochement avec ce que renvoie la base.
Y a-t-il une limite de dimensions ? Jusqu'à 4096. Les modèles text-embedding-3-large (3072) et ada-002 (1536) d'OpenAI passent sans souci. Si A et B n'ont pas le même nombre de dimensions, une erreur est signalée.
Que se passe-t-il avec un vecteur nul ? Un vecteur de norme 0 n'a pas de direction définie : la similarité cosinus n'est pas définie (division par zéro) et l'outil affiche un avertissement plutôt qu'une valeur erronée.
📚 Le cosinus, ou l'angle entre deux sens
Une image aide à saisir le cosinus : représentez chaque texte par une flèche partant de l'origine. Deux flèches qui pointent presque au même endroit forment un petit angle dont le cosinus s'approche de 1 ; à 90° elles sont orthogonales (cosinus 0) et jugées sans rapport ; en sens opposés le cosinus atteint -1. C'est pourquoi ce calculateur affiche l'angle en degrés : il traduit un nombre abstrait en une notion géométrique concrète.
Un raccourci mérite d'être retenu : si les deux vecteurs sont normalisés (norme = 1), la similarité cosinus égale exactement le produit scalaire. Comme l'outil affiche ‖A‖ et ‖B‖, vérifiez si vos embeddings sont déjà normalisés en regardant si les deux normes valent environ 1.