Actualiza la búsqueda en tu sitio: Respuestas contextuales con la IA generativa

La IA generativa se refiere al uso de la Inteligencia Artificial para crear contenido nuevo, como texto, imágenes, música, audio, y videos. La IA generativa se basa en un modelo de aprendizaje automático (AA) para aprender la relaciones y patrones en un conjunto de datos de contenido creado por humanos.

Esta tecnología ha demostrado capacidades increíbles, a través de aplicaciones como Gemini. Quizá te preguntes cómo implemento herramientas de IA generativa a mis productos web?

Un caso de uso común consiste en proporcionar a los usuarios una mejor interfaz para hacer preguntas sobre el contenido de un sitio web. Puedes mejorar en gran medida los resultados de la búsqueda de los usuarios con la ayuda del aprendizaje automático.

Podrías crear una interfaz en la que los usuarios escriban su pregunta, que luego enviados a un modelo de lenguaje extenso (LLM), como Gemini, y luego mostrar las respuestas a los usuarios.

Supongamos que existe una función de este tipo en este sitio. Un usuario quiere saber cuáles son las APIs incluida en Interoperabilidad 2024, y escribe la siguiente consulta:

What are the features included in Interop 24?

Lamentablemente, es probable que el resultado sea incorrecto por los siguientes motivos:

  • El usuario proporcionó al LLM poco contexto para la pregunta; por lo tanto, el LLM es más propenso a devolver respuestas incorrectas o alucinaciones.
  • Es probable que el LLM se entrenó antes de que se creara la Interoperabilidad 2024, o sus funciones decidido, por lo que no conoce esa información.

Si bien es posible que los LLM encuentren información más actualizada, su capacitación conjuntos de datos están intrínsecamente desactualizados. Mantener los resultados actualizados puede ser increíblemente requiere mucho tiempo y dinero.

Usa la ingeniería de instrucciones

Ingeniería de instrucciones es un conjunto de técnicas para obtener el mejor resultado de un LLM.

Una técnica consiste en proporcionar contexto adicional en la instrucción, lo que hace que el LLM es más probable que genere contenido relacionado con el contexto.

Continuando con nuestro ejemplo de interoperabilidad, el primer paso es proporcionar la el contenido del artículo como contexto. Luego, agrega la pregunta como entrada para el el LLM para responder. Por ejemplo:

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?

Puedes esperar que Gemini muestre un resultado similar al siguiente:

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

Esta respuesta probablemente sea mucho mejor que con una instrucción sin contexto, ya que esta respuesta se basa en el contexto proporcionado.

Escala verticalmente con la RAG

Por ejemplo, en lugar de responder una pregunta sobre un solo artículo, queremos el LLM para responder más preguntas sobre web.dev usando cualquier artículo como contexto adicional. Si bien esto puede ser posible en el caso de los sitios más pequeños, si se tiene en cuenta Ventana de contexto de 1 millón de tokens de Gemini 1.5, Los mensajes más grandes son más lentos y más costosos de ejecutar.

Las longitudes de entrada y salida de los LLM se miden y se cobran en tokens, que son un de representar una secuencia común de caracteres en una entrada de texto. El la cantidad de tokens generalmente será mayor que la cantidad de palabras. Como Ejemplo: La entrada del primer ejemplo tenía 775 palabras, representadas por 1,097. tokens. Los LLM pueden calcular tokens de forma diferente y la mayoría una API o un extremo para calcular el número de tokens para la entrada de texto.

Una solución es proporcionar los artículos de LLM relacionados con las instrucciones. Esta tarea debe estar tiene dos partes:

  1. Agrega el contenido de los artículos principales como contexto cuando se solicite al LLM.
  2. Busca en el contenido artículos relacionados con "¿Cuáles son las características incluidas en 2024?”.

Queremos que los resultados de Gemini muestren contenido basado en los siguientes artículos:

La entrada debería verse de la siguiente manera:

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?

Este contexto produce el resultado esperado.

* 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

Para quienes están familiarizados con las técnicas de IA, este enfoque usa la RAG, una práctica común para mejorar las probabilidades de respuestas reales con las herramientas de IA generativa.

Si bien la técnica RAV puede funcionar con la búsqueda normal de texto completo, hay deficiencias del enfoque.

  • La búsqueda en el texto completo ayuda a la IA a encontrar concordancias exactas de palabras clave. Sin embargo, los LLM no pueden para determinar el significado previsto detrás de la consulta de un usuario. Esto puede producir los resultados están incompletos o son incorrectos.
  • Puede haber problemas cuando las palabras tienen varios significados o cuando las consultas usan sinónimos. Por ejemplo, "banco" (institución financiera frente a la ribera) puede liderar a resultados irrelevantes.
  • La búsqueda en el texto completo puede mostrar resultados que contengan las palabras clave, pero no se alinean con el objetivo del usuario.

Búsqueda semántica es una técnica para mejorar la precisión de las búsquedas al enfocarse en estos aspectos clave:

  • Intención del usuario que busca: Intenta comprender el motivo por el que un usuario realiza una búsqueda. para algo. ¿Qué están tratando de encontrar o lograr?
  • Significado contextual: interpreta palabras y frases en relación con su texto que lo rodea, así como otros factores, como la ubicación del usuario o de Google Chat.
  • Relación entre conceptos: la búsqueda semántica utiliza gráficos de conocimiento (grandes redes de entidades relacionadas) y el procesamiento de lenguaje natural para comprender cómo se conectan las palabras y las ideas.

Como resultado, cuando compilas herramientas con búsqueda semántica, el resultado de la búsqueda se basa en función del propósito general de la consulta, en lugar de las palabras clave. Esto significa que una herramienta puede determinar documentos relevantes, aunque no esté presente la palabra clave exacta. Puede Evita también los resultados en los que la palabra esté presente, pero tenga un significado diferente.

En este momento, puedes implementar dos herramientas de búsqueda que emplean la búsqueda semántica: Vertex AI Search y Algolia AI Search.

Extrae respuestas a partir del contenido publicado

Aprendiste a usar la ingeniería de instrucciones para permitir que un LLM proporcione respuestas está relacionado con contenido que nunca se vio agregando contexto a la instrucción. Y has y aprendiste a escalar este enfoque desde artículos individuales hasta todo un corpus de contenido con la Generación aumentada de recuperación (RAG) técnica. Aprendiste cómo la búsqueda semántica puede mejorar aún más los resultados para los usuarios búsquedas, lo que mejora la implementación de la RAG en tu producto.

Es un problema conocido que las herramientas de IA generativa lo que facilita en el mejor de los casos, a veces poco confiables o, en el peor, activamente perjudiciales para un empresa. Con estas técnicas, tanto los usuarios como los desarrolladores pueden mejorar y generar confianza en los resultados de estas aplicaciones.