Améliorez la recherche sur votre site: réponses contextuelles grâce à l'IA générative

André Cipriani Bandarra
André Cipriani Bandarra

L'IA générative désigne l'utilisation l'intelligence artificielle pour créer des contenus, comme du texte, des images, de la musique, de l'audio, et des vidéos. L'IA générative s'appuie sur un modèle de machine learning (ML) pour apprendre des modèles et des relations dans un ensemble de données de contenus créés par l'humain.

Cette technologie a fait preuve d'incroyables capacités, grâce à des applications telles que Gemini. Vous vous demandez peut-être comment implémenter d'IA générative dans mes produits Web ?

Un cas d'utilisation courant consiste à fournir aux utilisateurs une meilleure interface pour poser des questions sur le contenu d'un site Web. Vous pouvez améliorer considérablement les résultats de recherche de vos utilisateurs, grâce au machine learning.

Vous pouvez créer une interface dans laquelle les utilisateurs écrivent leur question, qui est ensuite envoyées à un grand modèle de langage (LLM), Gemini, puis présenter les réponses aux utilisateurs.

Supposons qu'un tel élément géographique existe sur ce site. Un utilisateur veut savoir quelles API sont inclus dans Interop 2024, et ils saisissent la requête suivante:

What are the features included in Interop 24?

Malheureusement, le résultat sera probablement incorrect pour plusieurs raisons:

  • Étant donné que l'utilisateur a fourni peu de contexte au LLM pour sa question, le LLM est plus sujette à de mauvaises réponses ou à des hallucinations.
  • Le LLM a probablement été entraîné avant la création d'Interop 2024 ou de ses fonctionnalités qu’il a décidé, il n’a donc pas connaissance de cette information.

Même s'il est possible pour les LLM de trouver des informations plus récentes, l'entraînement LLM les jeux de données sont par nature obsolètes. Conserver des résultats à jour peut être incroyablement chronophages et coûteux.

Utiliser l'ingénierie des requêtes

Ingénierie des requêtes Il s'agit d'un ensemble de techniques permettant d'obtenir les meilleurs résultats d'un LLM.

L'une des techniques consiste à fournir davantage de contexte dans la requête, ce qui fait que le LLM plus susceptibles de générer du contenu en rapport avec le contexte.

Pour poursuivre avec notre exemple d'interopérabilité, la première étape consiste à fournir contenu de l'article pour le contexte. Ajoutez ensuite la question en tant qu'entrée du LLM pour répondre. Exemple :

Context:
Following on from the success of Interop 2022 and Interop 2023, we
are excited about the opportunity to collaborate once again with
all key browser vendors and other relevant stakeholders...
(trimmed to fit in this article)

Input:
What are the features included in Interop 2024?

Vous pouvez vous attendre à ce que Gemini génère un résultat semblable à celui-ci:

The features included in Interop 24 are Accessibility, CSS Nesting, Custom
Properties, Declarative Shadow DOM, font-size-adjust, HTTPS URLs for
WebSocket, IndexedDB, Layout, Pointer and Mouse Events, Popover, Relative
Color Syntax, requestVideoFrameCallback, Scrollbar Styling, @starting-style
and, transition-behavior, Text Directionality, text-wrap: balance,URL

Cette réponse est probablement beaucoup mieux qu'avec une requête sans contexte, car est basée sur le contexte fourni.

Faites évoluer votre infrastructure avec la RAG

Par exemple, au lieu de répondre à une question sur un seul article, nous voulons pour répondre à davantage de questions concernant web.dev, en utilisant n'importe quel article comme plus de contexte. Bien que cela puisse être possible pour les petits sites, étant donné la fenêtre de contexte d'un million de jetons Gemini 1.5, les requêtes volumineuses sont plus lentes et plus coûteuses à exécuter.

Les longueurs d'entrée et de sortie des LLM sont mesurées et facturées en jetons, qui sont pour représenter une séquence courante de caractères trouvés dans une entrée de texte. La le nombre de jetons sera généralement plus élevé que le nombre de mots. En tant que exemple. L'entrée du premier exemple contenait 775 mots, soit 1097 de jetons. Les LLM peuvent calculer les jetons différemment et la plupart fournissent une API ou un point de terminaison pour calculer le nombre de jetons pour la saisie de texte.

Une solution consiste à fournir les articles pertinents pour les requêtes LLM. Cette tâche doit être compte tenu de deux parties:

  1. Ajoutez le contenu des articles les plus populaires en tant que contexte lorsque vous demandez au LLM.
  2. Recherchez dans le contenu des articles liés à "Quelles sont les fonctionnalités incluses dans Interop 2024?".

Nous souhaitons que les résultats de Gemini renvoient du contenu basé sur les articles suivants:

L'entrée doit se présenter comme suit:

Context:
Article 1:
Over the past two years... (trimmed)

Article 2:
At the end of last year Interop 2023 wrapped up. This effort... (trimmed)

Article 3:
Following on from the success of Interop 2022... (trimmed)

Input:
What are the features included in Interop 2024?

Ce contexte produit le résultat attendu.

* Accessibility * CSS Nesting * Custom Properties
* Declarative Shadow DOM * font-size-adjust
* HTTPS URLs for WebSocket * IndexedDB * Layout
* Pointer and Mouse Events * Popover * Relative Color Syntax
* requestVideoFrameCallback * Scrollbar Styling
* @starting-style and transition-behavior * Text Directionality
* text-wrap: balance * URL

Pour ceux qui connaissent les techniques d'IA, cette approche utilise la RAG, une pratique courante pour que les outils d'IA générative aient plus de chances d'obtenir des réponses réelles.

Bien que la technique RAG puisse fonctionner avec la recherche en texte intégral standard, il existe des lacunes de l'approche.

  • La recherche en texte intégral aide l'IA à identifier les correspondances exactes de mots clés. Toutefois, les LLM ne sont pas en mesure pour déterminer le sens de la requête d'un utilisateur. Cela peut entraîner les résultats sont incomplets ou incorrects.
  • Il peut y avoir des problèmes lorsque les mots ont plusieurs sens ou que les requêtes utilisent et des synonymes. Exemple : "banque" (institution financière par rapport aux berges) peut générer à des résultats non pertinents.
  • La recherche en texte intégral peut générer des résultats contenant les mots clés, mais ne sont pas alignés avec l’objectif de l’utilisateur.

Recherche sémantique permet d'améliorer la précision des recherches en se concentrant sur les aspects clés suivants:

  • L'intention de l'internaute: essayer de comprendre la raison pour laquelle un utilisateur effectue une recherche pour quelque chose. Qu'essaie-t-il de trouver ou d'accomplir ?
  • Signification contextuelle: elle permet de traduire des mots et des expressions par rapport à leur le texte qui les entoure, ainsi que d'autres facteurs comme la position de l'utilisateur ou historique.
  • Relation entre les concepts: la recherche sémantique utilise des Knowledge Graphs (grand format réseaux d'entités associées) et le traitement du langage naturel pour comprendre comment les mots et les idées sont connectés.

Par conséquent, lorsque vous créez des outils avec la recherche sémantique, le résultat de la recherche repose sur l'objectif général de la requête, plutôt que sur les mots clés. Cela signifie qu’un outil peut Déterminer les documents pertinents, même en l'absence du mot clé exact Il peut éviter également les résultats où le mot est présent, mais a une signification différente.

À l'heure actuelle, vous pouvez implémenter deux outils de recherche qui utilisent la recherche sémantique: Vertex AI Search et Algolia AI Search :

Tirer des réponses à partir de contenus publiés

Vous avez appris à utiliser l'ingénierie des requêtes pour permettre à un LLM de fournir des réponses. en ajoutant du contexte à la requête. Et, vous avez vous avez appris à appliquer cette approche à un corpus complet, à partir d'articles individuels de contenu à l'aide des Génération augmentée de récupération (RAG) technique. Vous avez appris comment la recherche sémantique peut améliorer davantage les résultats requêtes de recherche, une meilleure implémentation de la RAG dans votre produit.

Les outils d'IA générative peuvent "halluciner" ce qui fait au mieux, parfois peu fiables, ou au pire, activement dangereuses pour entreprise. Grâce à ces techniques, les utilisateurs et les développeurs peuvent améliorer de la fiabilité et, éventuellement, d'instaurer la confiance dans le résultat de ces applications.