Différences de latence de recherche entre la recherche sémantique IA et la recherche par mots-clés

Y a-t-il des données sur la latence pour la recherche sémantique et les sujets connexes sémantiques par rapport à la recherche par mots-clés et aux sujets suggérés ?

Merci d’avance.

Pouvez-vous préciser ce que vous entendez par latence ici ?

Pour les sujets connexes, étant donné que chaque embedding est pré-calculé, il n’y a pas de coût d’exécution supplémentaire. Au contraire, la requête SQL pour trouver des sujets connexes est plus rapide que notre ancienne requête de sujets suggérés, et nous mettons en cache les sujets connexes pour des performances encore plus rapides.

En ce qui concerne la recherche IA, notre approche actuelle HyDE[^1] entraîne une latence importante, c’est pourquoi elle s’exécute de manière asynchrone et que l’utilisateur voit d’abord la recherche standard avec la possibilité de l’augmenter avec les résultats de l’IA lorsqu’ils sont prêts. Ici sur Meta, les résultats de la recherche IA sont prêts 4 secondes après les résultats de la recherche normale, en moyenne.

[^1] : GPT-4 : HyDE signifie Hypothetical Document Embeddings, une technique utilisée dans la recherche sémantique pour trouver des documents en fonction des similitudes de leur contenu. Cette approche permet d’obtenir des résultats de recherche plus précis et contextuellement pertinents en évaluant les similitudes conceptuelles entre les documents, plutôt qu’en se basant uniquement sur la correspondance des mots-clés. Elle représente une technique d’apprentissage zero-shot qui combine les capacités de compréhension du langage de GPT-3 avec des encodeurs de texte contrastifs, améliorant ainsi la capacité de l’IA à comprendre et à traiter les données en langage naturel de manière plus nuancée et efficace.

3 « J'aime »

Exactement ce que je cherchais. Merci Falco.

Y a-t-il eu des recherches sur les moyens de réduire cette latence pour la recherche sémantique ?

La première version d’AI Search avait une latence bien meilleure, mais aussi des résultats bien pires.

Quant à la prochaine version, nous avons plusieurs plans pour réduire la latence :

  • Utiliser des plongements de niveau de publication au lieu de plongements de niveau de sujet
  • Utiliser un modèle de re-classement pour trier les résultats de recherche
  • Rendre HyDE facultatif

Nous pensons que cela nous donnera de meilleurs résultats de recherche, et le rendra également plus rapide dans le processus. Et associé au nouveau matériel que nous proposons sans frais supplémentaires à tous nos clients hébergés, capable de faire de l’inférence de plongements en seulement 2 ms, nous ne faisons que commencer à explorer ce qui est possible ici.

2 « J'aime »

Cool. Merci pour ces informations, Falco.

Quelques questions supplémentaires, car nous envisageons d’activer cette fonctionnalité pour nos communautés.

  1. Il semble que lorsque vous activez le bouton pour afficher les résultats de la recherche sémantique, ce qui est affiché à l’utilisateur est un mélange de résultats de l’API de recherche sémantique et de l’API de recherche par mots-clés. Est-ce correct ? Si oui, comment ces deux ensembles de résultats sont-ils classés l’un par rapport à l’autre ?
  2. De manière connexe, pouvez-vous commenter la fonction “Trier par” avec les résultats sémantiques ? Je remarque, par exemple, qu’un article qui a une étoile à côté de lui dans un tri ne l’a pas dans un autre.



1 « J'aime »

Oui, exactement.

En utilisant une technique appelée « fusion de rang réciproque ». Nous pourrions passer à un re-classeur à l’avenir.

La recherche sémantique est incompatible avec les options de tri, car nous n’avons pas de calcul de seuil de distance. Elle est censée désactiver / bloquer toute option de tri autre que la pertinence.

1 « J'aime »

Génial, merci Falco. D’après ce que nous voyons, l’API de recherche sémantique ne fournit que des résultats de recherche sémantique au client. Donc, vraisemblablement, le Reciprocal Rank Fusion se produit côté client. Est-ce exact ? Aurions-nous également la possibilité de remplacer nous-mêmes cet algorithme de re-classement si nous voulions expérimenter différentes options ?

1 « J'aime »

Oui, exactement.

Techniquement, puisque tout est basé sur le client, vous pourriez le remplacer.

Cela dit, à long terme, je nous vois nous appuyer de plus en plus sur des modèles de re-classement, qui seront tous côté serveur pour des raisons évidentes.

Compris. Merci !

1 « J'aime »