0Pricing
AI Agents · Leçon

Choisir les métriques de distance (cosinus, L2, produit scalaire)

Sachez quand choisir la distance cosinus, L2 (euclidienne) ou le produit scalaire, et pourquoi la plupart des modèles d’embeddings privilégient le cosinus.

Choisir les métriques de distance (cosinus, L2, produit scalaire) est une leçon AI Agents gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage AI Agents, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours AI Agents comprend 4 leçons au total.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

Trois métriques courantes

Les bases de données vectorielles vous permettent de choisir une métrique de distance. Voici les trois que vous rencontrerez le plus souvent :

  • Similarité cosinus — angle entre les vecteurs
  • Produit scalaire — projection d’un vecteur sur l’autre
  • Distance euclidienne (L2) — distance en ligne droite

Cosinus

Plage : -1 à 1. Plus la valeur est élevée, plus les vecteurs sont similaires.

import numpy as np
def cosine(a, b):
    return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))

Produit scalaire

Plage : -infini à +infini. Plus la valeur est élevée, plus les vecteurs sont similaires.

def dot(a, b):
    return np.dot(a, b)

# Equivalent to cosine when both vectors are unit-normalized.

Euclidienne (L2)

Plage : 0 à +infini. Plus la valeur est basse, plus les vecteurs sont similaires.

def l2(a, b):
    return np.linalg.norm(np.array(a) - np.array(b))

Que devez-vous utiliser ?

Pour les plongements textuels, la convention est la suivante :

  • OpenAI text-embedding-3 — cosinus (les vecteurs sont préalablement normalisés)
  • Cohere — cosinus
  • Sentence Transformers / BGE — généralement le cosinus, consultez la fiche du modèle

En cas de doute, choisissez le cosinus.

Le produit scalaire équivaut au cosinus après normalisation

Si |a| = |b| = 1, alors cos(a,b) = a . b. Le produit scalaire est plus rapide (aucune division) : les systèmes de production utilisent souvent le produit scalaire sur des vecteurs préalablement normalisés.

Quand L2 est utilisé

Certains modèles de recherche (anciennes variantes de Sentence-BERT, plongements d’images) sont entraînés avec la distance L2 et donnent de meilleurs résultats avec celle-ci. Consultez toujours la fiche du modèle.

Pourquoi cela compte pour l’index

La structure de l’index (HNSW, IVF, FAISS) est conçue pour une métrique SPECIFIC. Changer de métrique après l’indexation signifie généralement reconstruire l’index depuis zéro.

Setting Metric in Pinecone

from pinecone import ServerlessSpec
pc.create_index(
    name='docs',
    dimension=1536,
    metric='cosine',   # or 'dotproduct' or 'euclidean'
    spec=ServerlessSpec(cloud='aws', region='us-east-1')
)

Setting Metric in Qdrant

from qdrant_client.models import VectorParams, Distance
client.create_collection(
    collection_name='docs',
    vectors_config=VectorParams(size=1536, distance=Distance.COSINE)
)

Métrique incohérente entre les systèmes

Si vous reclassez ensuite les résultats avec un encodeur croisé, celui-ci possède sa propre échelle de scores. Ne mélangez pas les métriques dans un score composite unique sans les normaliser au préalable.

Visualiser la différence

Pour deux vecteurs unitaires :

  • cos = 1, L2 = 0 -> identiques
  • cos = 0.5, L2 ~ 1 -> apparentés
  • cos = 0, L2 ~ sqrt(2) -> orthogonaux
  • cos = -1, L2 = 2 -> opposés

Normaliser une seule fois avant l’indexation

La normalisation lors du chargement est peu coûteuse (une seule division). Elle garantit la compatibilité avec le cosinus et le produit scalaire, et évite une normalisation à chaque requête par la suite.

vec = vec / np.linalg.norm(vec)

Métrique par défaut

Pour les plongements textuels OpenAI, quelle métrique de distance est utilisée par défaut ?

Récapitulatif

Le cosinus pour le texte. Normalisez une seule fois au préalable et utilisez le produit scalaire pour gagner en vitesse. Définissez la métrique lors de la création de l’index : la modifier ensuite signifie reconstruire l’index.

Questions Fréquemment Posées

La leçon « Choisir les métriques de distance (cosinus, L2, produit scalaire) » est-elle gratuite ?

Oui — le texte complet de « Choisir les métriques de distance (cosinus, L2, produit scalaire) » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours AI Agents, passe à CoddyKit PRO. Le cours AI Agents comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Choisir les métriques de distance (cosinus, L2, produit scalaire) » ?

Sachez quand choisir la distance cosinus, L2 (euclidienne) ou le produit scalaire, et pourquoi la plupart des modèles d’embeddings privilégient le cosinus. Tu pratiques AI Agents avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer AI Agents ?

Aucune expérience préalable n'est requise. AI Agents sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Choisir les métriques de distance (cosinus, L2, produit scalaire) » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon AI Agents ?

Oui. Chaque leçon AI Agents inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Pinecone, Weaviate, Qdrant : comparaison
  2. Filtrage des métadonnées pour la recherche hybride
  3. Mettre à jour et supprimer des vecteurs
  4. Choisir les métriques de distance (cosinus, L2, produit scalaire)
← Retour à AI Agents