Cómo contextan ingeniería para optimizar las preguntas que responden las tuberías

La ingeniería es uno de los temas más relevantes en el aprendizaje automático hoy, por lo que estoy escribiendo mi tercer artículo sobre el tema. Mi objetivo es ampliar mi comprensión de los contextos de ingeniería para LLM y compartir ese conocimiento a través de mis artículos.

En el artículo de hoy, discutiré la mejora del contexto que alimenta en sus LLM para responder preguntas. Por lo general, este contexto se basa en la generación de recuperación aumentada (RAG), sin embargo, en el entorno siempre cambiante de hoy, este enfoque debe actualizarse.

El cofundador de Chroma (un proveedor de bases de datos de vectores) tuiteó que Rag está muerto. No estoy completamente de acuerdo en que ya no usaremos trapo, pero su tweet resalta cómo hay diferentes opciones para llenar el contexto de su LLM.

También puede leer mis artículos de ingeniería de contexto anteriores:

  1. Técnica básica de ingeniería de contextos
  2. Técnicas avanzadas de ingeniería de contexto

Tabla de contenido

Por qué debería preocuparse por la ingeniería del contexto

Primero, permítanme resaltar tres puntos clave de por qué debería preocuparse por la ingeniería del contexto:

  • Mejor salida calidad evitando contexto de pudrición. Menos tokens innecesarios aumentan la calidad de la salida. Puedes leer más detalles al respecto En este artículo
  • Más económico (No envíen fichas innecesarias, cuestan dinero)
  • Velocidad (menos fichas = tiempos de respuesta más rápidos)

Estas son tres métricas centrales para la mayoría de los sistemas de respuesta de preguntas. La calidad de salida es naturalmente de la máxima prioridad, considerando que los usuarios no querrán usar un sistema de bajo rendimiento.

Además, el precio siempre debe ser una consideración, y si puede reducirlo (sin demasiado costo de ingeniería), es una decisión simple hacerlo. Por último, un sistema de respuesta de pregunta más rápido proporciona una mejor experiencia de usuario. No desea que los usuarios esperen numerosos segundos para obtener una respuesta cuando ChatGPT responderá mucho más rápido.

El enfoque tradicional de preguntas y respuesta

Tradicional, en este sentido, significa el enfoque de respuesta de preguntas más común en los sistemas construidos después El lanzamiento de ChatGpt. Este sistema es trapo tradicional, que funciona de la siguiente manera:

  1. Obtenga los documentos más relevantes a la pregunta del usuario, utilizando la recuperación de similitud vectorial
  2. Alimentar documentos relevantes junto con una pregunta en un LLM y recibir una respuesta

Teniendo en cuenta su simplicidad, este enfoque funciona increíblemente bien. Curiosamente, también vemos que esto sucede con otro enfoque tradicional. BM25 ha existido desde 1994 y fue, por ejemplo, recientemente utilizado por antrópico cuando introdujeron Recuperación contextualdemostrando cuán efectivas son incluso las técnicas de recuperación de información simple.

Sin embargo, aún puede mejorar enormemente su sistema de respuesta de preguntas actualizando su trapo utilizando algunas técnicas que describiré en la siguiente sección.

Mejora del contexto de trapo para obtener

Aunque RAG funciona relativamente bien, es probable que pueda lograr un mejor rendimiento al introducir las técnicas que discutiré en esta sección. Las técnicas que describo aquí se centran en mejorar el contexto que alimenta al LLM. Puede mejorar este contexto con dos enfoques principales:

  1. Use menos tokens en un contexto irrelevante (por ejemplo, eliminar o usar menos material de documentos relevantes)
  2. Agregar documentos que son relevantes

Por lo tanto, debe centrarse en lograr uno de los puntos anteriores. Si piensas en términos de precisión y retiro:

  1. Aumenta la precisión (a costa del retiro)
  2. Aumentar el recuerdo (a costa de precisión)

Esta es una compensación que debe hacer mientras trabaja en el sistema de respuesta a sus preguntas.

Reduciendo el número de tokens irrelevantes

En esta sección, destaco tres enfoques principales para reducir el número de tokens irrelevantes que alimenta en el contexto de LLMS:

  • Reestructuración
  • Resumen
  • Provocando GPT

Al obtener documentos de la búsqueda de similitud vectorial, se devuelven en orden de más relevante a menos relevante, dado el puntaje de similitud vectorial. Sin embargo, este puntaje de similitud podría no representar con precisión qué documentos son más relevantes.

Reestructuración

Por lo tanto, puede usar un modelo de referencia, por ejemplo, Qwen Rerankerpara reordenar los fragmentos del documento. Luego puede elegir mantener solo los trozos más relevantes X (según el Reranker), lo que debería eliminar algunos documentos irrelevantes de su contexto.

Resumen

También puede optar por resumir documentos, reduciendo el número de tokens utilizados por documento. Puede, por ejemplo, mantener el documento completo de los 10 documentos más similares obtenidos, resumir documentos clasificados de 11-20 y descartar el resto.

Este enfoque aumentará la probabilidad de que mantenga el contexto completo de los documentos relevantes, mientras que al menos mantiene algún contexto (el resumen) de documentos que tienen menos probabilidades de ser relevantes.

Provocando GPT

Por último, también puede solicitar GPT si los documentos obtenidos son relevantes para la consulta del usuario. Por ejemplo, si obtiene 15 documentos, puede hacer 15 llamadas de LLM individuales para juzgar si cada documento es relevante. Luego descarta documentos que se consideran irrelevantes. Tenga en cuenta que estas llamadas de LLM deben ser paralelizadas para mantener el tiempo de respuesta dentro de un límite aceptable.

Agregar documentos relevantes

Antes o después de eliminar documentos irrelevantes, también se asegura de incluir documentos relevantes. Incluyo dos enfoques principales en esta subsección:

  • Mejores modelos de incrustación
  • Buscando más documentos (a costa de menor precisión)

Mejores modelos de incrustación

Para encontrar los mejores modelos de incrustación, puede ir al Huggingface incrustando la clasificación de modelosdonde Géminis y Qwen están en el top 3 a partir de la escritura de este artículo. Actualizar su modelo de incrustación suele ser un enfoque barato para obtener documentos más relevantes. Esto se debe a que ejecutar y almacenar incrustaciones suele ser barato, por ejemplo, incrustando el API GEMINIy almacenar vectores en Piña.

Buscar más documentos

Otro enfoque (relativamente simple) para obtener documentos más relevantes es obtener más documentos en general. Obtener más documentos aumenta naturalmente la probabilidad de agregar los relevantes. Sin embargo, debe equilibrar esto al evitar la pudrición del contexto y reducir el número de documentos irrelevantes al mínimo. Cada token innecesaria en una llamada LLM es, como es, como es probable que:

  • Reducir la calidad de la salida
  • Aumentar el costo
  • Velocidad más baja

Todos estos son aspectos cruciales de un sistema de preguntas y respuestas.

Enfoque de búsqueda de agente

He discutido los enfoques de búsqueda de agentes en artículos anteriores, por ejemplo, cuando discutí Escalando su búsqueda de IA. Sin embargo, en esta sección, me sumergiré en la configuración de una búsqueda de agente, que reemplaza parte o la totalidad del paso de recuperación de vectores en su trapo.

El primer paso es que el usuario proporciona su pregunta a un conjunto dado de puntos de datos, por ejemplo, un conjunto de documentos. Luego configuró un sistema de agente que consiste en un agente de orquesta y una lista de subcágulos.

Esta figura destaca un sistema de orquesta de agentes LLM. El agente principal recibe la consulta del usuario y asigna tareas a los subagentes. Imagen de Chatgpt.

Este es un ejemplo de la tubería que seguirían los agentes (aunque hay muchas formas de configurarlo).

  1. El agente de la orquesta le dice a dos subagentes que iteran sobre todos los nombres de archivos del documento y devuelvan los documentos relevantes
  2. Los documentos relevantes se remontan al agente de la orquesta, que nuevamente libera un subagente a cada uno de los documentos relevantes, para obtener subpartes (fragmentos) del documento que son relevantes para la pregunta del usuario. Estos trozos se vuelven a comer al agente de la orquesta
  3. El agente de la orquesta responde a la pregunta del usuario, dados los fragmentos proporcionados

Otro flujo que podría implementar podría ser almacenar incrustaciones de documentos y reemplazar el paso uno con similitud vectorial entre la pregunta del usuario y cada documento.

Este enfoque de agente tiene ascendentes y desventajas.

ENCENDIDOS:

  • Una mejor oportunidad de obtener trozos relevantes que con el trapo tradicional
  • Más control sobre el sistema RAG. Puede actualizar las indicaciones del sistema, etc., mientras que el RAG es relativamente estático con sus similitudes de incrustación

Desventaja:

En mi opinión, construir un sistema de recuperación basado en un agente es un enfoque súper poderoso que puede conducir a resultados sorprendentes. La consideración que debe hacer al construir dicho sistema es si la calidad mayor que (probablemente) verá vale la pena el aumento del costo.

Otros aspectos de ingeniería del contexto

En este artículo, he cubierto principalmente ingeniería de contexto para los documentos que obtenemos en un sistema de contestadores de preguntas. Sin embargo, también hay otros aspectos de los que debe tener en cuenta, principalmente:

  • El indicador del sistema/usuario que está utilizando
  • Otra información alimentada en el aviso

El mensaje que escribe para su sistema de respuesta de preguntas debe ser preciso, estructurado y evitar información irrelevante. Puede leer muchos otros artículos sobre el tema de estructuración de indicaciones, y generalmente puede pedirle a una LLM que mejore estos aspectos de su aviso.

A veces, también alimenta otra información en su aviso. Un ejemplo común es la alimentación en metadatos, por ejemplo, datos que cubren información sobre el usuario, como:

  • Nombre
  • Rol de trabajo
  • Lo que suelen buscar
  • etc.

Siempre que agregue dicha información, siempre debe preguntarse:

¿La enmendación de esta información ayuda al sistema de respuesta a mi pregunta responde la pregunta?

A veces la respuesta es sí, otras veces es no. La parte más importante es que tomó una decisión racional sobre si la información es necesaria en el aviso. Si no puede justificar tener esta información en el aviso, generalmente debe eliminarse.

Conclusión

En este artículo, he discutido la ingeniería del contexto para su sistema de respuesta de preguntas y por qué es importante. Los sistemas de respuesta de preguntas generalmente consisten en un paso inicial para obtener información relevante. El enfoque en esta información debe ser reducir el número de tokens irrelevantes al mínimo, al tiempo que incluye la mayor cantidad de información relevante posible.

👉 Encuéntrame en Socials:

🧑‍💻 Ponerse en contacto

🔗 LinkedIn

🐦 X / Twitter

✍️ Medio

También puedes leer mi artículo en profundidad en Recuperación contextual de Anthrope abajo: