Choisir un index vectoriel

Sélectionnez une version de la documentation :

Vous devez sélectionner un type d'index pour votre recherche vectorielle qui vous offre un équilibre entre la latence des requêtes et la précision de vos résultats. Une indexation efficace a un impact direct sur la vitesse des requêtes et sur la capacité à récupérer des correspondances réellement pertinentes, mesurées par le rappel.

Termes clés

Avant de choisir une stratégie d'indexation, vous devez connaître les termes suivants :

  • Rappel : il définit l'efficacité avec laquelle une recherche récupère tous les éléments pertinents pour une requête donnée. Par exemple, si vous avez 100 images dont 10 de chats (correspondance exacte) et que votre recherche sur "chat" renvoie 6 images de chats, votre rappel est de 6 sur 10, soit 60 %. Dans la recherche approximative des voisins les plus proches (ANN) pour les index vectoriels, le rappel est mesuré en comparant les résultats obtenus avec l'index ANN aux résultats de correspondance exacte obtenus par une recherche par force brute.
  • Latence des requêtes : elle définit la vitesse à laquelle les résultats de recherche sont générés. Par exemple, la latence est calculée en fonction du temps passé sur une recherche pour renvoyer les 6 images de chats après l'envoi d'une requête.

Stratégie de recherche

Vous devez sélectionner l'une des stratégies de recherche suivantes. Prenons l'exemple d'une table contenant des données client, y compris des informations telles que l'historique des achats, les préférences et les données démographiques, pour comprendre la différence entre les deux algorithmes :

  • K-Nearest Neighbors (KNN) est un algorithme qui recherche les k points de données les plus proches d'un point de données de requête donné. Dans l'exemple précédent, pour exécuter une requête qui recommande des produits à de nouveaux clients en fonction des préférences de clients similaires, KNN calcule la distance entre les points de données des nouveaux clients et les points de données de chaque client de la table à l'aide d'une métrique de distance. KNN identifie les k clients qui correspondent aux critères en fonction de la distance, puis recommande au nouveau client les produits que les clients identifiés (k) apprécient.

    Une requête KNN avec une métrique de distance, telle que la distance euclidienne ou la similarité cosinus, est recommandée pour les ensembles de données plus petits. Si votre cas d'utilisation nécessite une précision de 100 % et que vous pouvez tolérer une latence de requête plus élevée, nous vous recommandons d'utiliser KNN. Pour en savoir plus sur l'exécution d'une recherche KNN, consultez Effectuer une recherche de similarité search.

  • Les index basés sur l'algorithme Approximate Nearest Neighbors (ANN) permettent d'exécuter les requêtes plus rapidement, mais peuvent compromettre la précision ou le rappel des requêtes. Dans l'exemple précédent, pour exécuter une requête qui recommande des produits à de nouveaux clients en fonction des préférences de clients similaires, ANN divise les points de données des clients existants en petits groupes en fonction des similitudes. Lorsqu'un nouveau point de données client est ajouté, ANN identifie d'abord un groupe, parmi plusieurs groupes, auquel appartient le point de données, puis calcule uniquement la distance à l'aide d'une métrique de distance au sein du groupe. Ce filtrage réduit le nombre de calculs nécessaires pour afficher les recommandations.

    Google recommande de créer un index vectoriel qui implémente l'index ANN lorsque vous disposez d'un grand ensemble de données, car il trouve les similitudes plus rapidement et consomme moins de ressources, mais il compromet la précision. Pour en savoir plus sur l'utilisation de l'index ANN pour les recherches de similarité, consultez Créer des index et des vecteurs de requête à l'aide de ScaNN. Pour obtenir la précision KNN avec un index vectoriel, définissez les paramètres de recherche sur le nombre de partitions. Cette stratégie permet d'obtenir la précision KNN avec un équilibre de latence des requêtes.

Utilisez l'organigramme suivant comme guide pour déterminer le type d'index optimal en fonction de votre ensemble de données et de vos exigences.

Choisir une stratégie d'index

Étape suivante