Ultralytics YOLO27 : Rejoins la liste d'attente.
Licence YOLO
Retour au glossaire Ultralytics

Vector Search

La recherche vectorielle trouve les plongements stockés les plus proches d’un vecteur de requête, au moyen d’une recherche exacte des k plus proches voisins ou d’index approximatifs comme HNSW et IVF, pour parcourir rapidement des millions de vecteurs.

La recherche vectorielle récupère les éléments dont les plongements sont les plus proches d’un plongement de requête selon une mesure de similarité telle que la similarité cosinus, le produit scalaire ou la distance euclidienne. Un modèle de plongement place les éléments ayant un sens ou une apparence similaire à proximité les uns des autres ; les vecteurs les plus proches correspondent donc aux documents, images ou produits les plus similaires, même s’ils ne partagent aucun mot-clé avec la requête. La recherche vectorielle exacte consiste à rechercher les k plus proches voisins (k-NN) parmi tous les vecteurs stockés. À grande échelle, les systèmes utilisent des index de plus proches voisins approximatifs (ANN), qui comparent la requête à une petite fraction des vecteurs tout en renvoyant presque tous les vrais voisins.

Fonctionnement de la recherche vectorielle#

La requête et les éléments stockés sont transformés en vecteurs par le même modèle ou par une paire entraînée conjointement : un encodeur de phrases pour le texte, CLIP pour faire correspondre le texte aux images, ou un réseau dorsal de vision pour faire correspondre des images entre elles. La métrique doit correspondre à la façon dont le modèle a été entraîné. Pour des vecteurs de longueur unitaire, la similarité cosinus est égale au produit scalaire, et le classement par distance euclidienne donne le même ordre. La recherche exacte nécessite une comparaison par vecteur stocké pour chaque requête : elle est rapide pour des dizaines de milliers de vecteurs, mais trop lente pour des centaines de millions. Les grands systèmes utilisent donc l’une des quatre familles d’index ANN suivantes :

  • Index par graphe comme HNSW : chaque vecteur est relié à ses voisins proches dans un graphe à plusieurs niveaux, et une requête obtient sa réponse en parcourant le graphe de manière gloutonne.
  • Index de clustering (IVF) : les vecteurs sont regroupés avec k-means et seuls les groupes dont les centroïdes sont les plus proches de la requête sont parcourus.
  • Quantification vectorielle : elle compresse chaque vecteur en quelques octets, comme avec la quantification produit, afin d’estimer les distances à partir de codes compacts conservés en mémoire.
  • Graphes sur disque : ils conservent un index de graphe sur SSD, comme le fait DiskANN, pour rechercher des milliards de vecteurs sur une seule machine.

L’idée fondamentale d’un index IVF tient dans un court exemple avec NumPy et scikit-learn qui le compare à une recherche exacte :

import numpy as np
from sklearn.cluster import KMeans

# 20,000 embeddings grouped by topic, normalized so a dot product is cosine similarity
rng = np.random.default_rng(0)
topics = rng.normal(size=(200, 64))
vectors = topics[rng.integers(200, size=20000)] + 0.5 * rng.normal(size=(20000, 64))
vectors /= np.linalg.norm(vectors, axis=1, keepdims=True)
query = vectors[0] + 0.1 * rng.normal(size=64)

# Exact search: score every stored vector
exact = np.argsort(-(vectors @ query))[:10]

# IVF index: cluster the vectors, then scan only the lists of the 5 closest centroids
kmeans = KMeans(n_clusters=100, n_init=1, random_state=0).fit(vectors)
probed = np.argsort(-(kmeans.cluster_centers_ @ query))[:5]
candidates = np.flatnonzero(np.isin(kmeans.labels_, probed))
approx = candidates[np.argsort(-(vectors[candidates] @ query))[:10]]

print(f"scanned {len(candidates) / len(vectors):.1%} of vectors")
print(f"recall@10: {len(set(exact) & set(approx)) / 10:.0%}")

Sonder 5 des 100 groupes parcourt 5,1 % des vecteurs et trouve tout de même les 10 vrais plus proches voisins, soit un rappel@10 de 100 %. Sonder davantage de groupes augmente à la fois le rappel et le coût ; le nombre de sondes est donc le principal paramètre à régler dans un index IVF.

  • Recherche par mots-clés : elle recherche des termes exacts dans un index inversé et les classe à l’aide de formules comme BM25. Elle excelle pour les noms, les codes et les mots rares, mais ne repère pas les synonymes.
  • Recherche sémantique : recherche par le sens, l’objectif le plus souvent visé par la recherche vectorielle. Les systèmes de recherche sémantique ajoutent souvent une reformulation de la requête ou un reclasseur.
  • Recherche hybride : elle exécute ensemble une recherche par mots-clés et une recherche vectorielle, puis fusionne les deux listes classées.
  • Base de données vectorielle : système qui stocke les vecteurs avec leurs métadonnées et fournit une recherche vectorielle avec filtrage, mises à jour et persistance.

Applications concrètes#

  • Génération augmentée par récupération (RAG) : elle trouve les passages de documents dont un modèle de langage a besoin pour répondre à une question.
  • Réidentification d’objets : elle compare le plongement d’apparence d’une personne ou d’un véhicule à des observations antérieures afin de relier le même objet entre plusieurs caméras.
  • Reconnaissance faciale : elle compare le plongement d’un visage aux visages enregistrés et accepte le plus proche s’il est suffisamment similaire.
  • Systèmes de recommandation : ils suggèrent des produits, des chansons ou des vidéos dont les plongements sont proches des choix récents d’un utilisateur.

La plateforme Ultralytics utilise la recherche vectorielle pour enrichir les jeux de données d’entraînement. Son action Rechercher des images similaires prend une image sélectionnée, recherche les images les plus proches par plongement dans les jeux de données publics, personnels et d’équipe, puis affiche jusqu’à 24 résultats avec leurs scores de similarité. Tu peux ajouter ces résultats au jeu de données comme images d’entraînement non annotées.

Découvre les solutions

La vision par ordinateur dans le sport

La vision par ordinateur dans le sport

Découvre comment Ultralytics YOLO propulse la vision par ordinateur dans le sport grâce au suivi des joueurs et du ballon, aux analyses de performance, aux conseils d’entraînement et à la rééducation des athlètes.
En savoir plus
Vision par ordinateur pour les images aériennes

Vision par ordinateur pour les images aériennes

Transforme les images de drones et les images aériennes en informations exploitables en temps réel pour l’agriculture, l’aquaculture, la conservation et l’analyse géospatiale avec Ultralytics YOLO.
En savoir plus
Vision par ordinateur dans l’aérospatiale

Vision par ordinateur dans l’aérospatiale

Applique la vision par ordinateur dans l’aérospatiale avec Ultralytics YOLO pour l’inspection des aéronefs, la détection des corps étrangers sur les pistes, les opérations au sol des aéroports et la détection des défauts des matériaux composites.
En savoir plus
La vision par ordinateur dans la sécurité

La vision par ordinateur dans la sécurité

Protège chaque site avec les modèles Ultralytics YOLO. L’IA visuelle permet la surveillance des périmètres, la détection des menaces, la reconnaissance des plaques d’immatriculation et la sécurité au travail.
En savoir plus
La vision par ordinateur en robotique

La vision par ordinateur en robotique

Donne plus de capacités à tes machines grâce aux modèles Ultralytics YOLO. Dans la robotique, l’IA visuelle permet la navigation autonome, la perception, le suivi des objets et le contrôle en temps réel.
En savoir plus
La vision par ordinateur dans la logistique

La vision par ordinateur dans la logistique

Optimise la logistique avec les modèles Ultralytics YOLO. La vision par IA permet d’inspecter les colis, de les trier, de suivre les véhicules et de surveiller la sécurité des entrepôts en temps réel.
En savoir plus
La vision par ordinateur dans le commerce de détail

La vision par ordinateur dans le commerce de détail

Réinvente le commerce de détail avec les modèles Ultralytics YOLO. La vision par IA permet de suivre les stocks, de surveiller les rayons, de gérer les files d’attente et de mieux comprendre les clients.
En savoir plus
La vision par ordinateur dans le secteur de la santé

La vision par ordinateur dans le secteur de la santé

Crée des solutions de santé avec les modèles Ultralytics YOLO. La vision par IA dans le secteur de la santé accélère l’imagerie médicale, améliore les diagnostics et facilite la surveillance des patients.
En savoir plus
La vision par ordinateur dans l’industrie manufacturière

La vision par ordinateur dans l’industrie manufacturière

Optimise la fabrication avec les modèles Ultralytics YOLO. La vision par IA améliore le contrôle qualité, la détection des défauts, le respect des règles concernant les EPI et l’automatisation des chaînes de montage.
En savoir plus
La vision par ordinateur dans l’automobile

La vision par ordinateur dans l’automobile

Mets la vision par ordinateur au service de l’automobile avec les modèles Ultralytics YOLO. La vision par IA renforce la sécurité routière, l’aide à la conduite et l’automatisation des véhicules pour des routes plus intelligentes.
En savoir plus
Vision par ordinateur dans l’agriculture

Vision par ordinateur dans l’agriculture

Fais entrer l’IA de vision dans l’agriculture intelligente avec les modèles Ultralytics YOLO. Optimise le suivi des cultures et du bétail ainsi que l’agriculture de précision pour obtenir des rendements plus élevés et plus intelligents.
En savoir plus

Construisons ensemble l’avenir de l’IA !

Commence ton parcours vers l’avenir de l’apprentissage automatique