Cómo enriquecer el contexto LLM para mejorar significativamente las capacidades

Con un enorme corpus de datos de texto, donde ellos, durante su etapa previa a la capacitación, consumen todo el Internet. Los LLM prosperan cuando tienen acceso a todos los datos relevantes para responder a las preguntas del usuario de manera adecuada. Sin embargo, en muchos casos, limitamos las capacidades de nuestros LLM al no proporcionarles suficientes datos. En este artículo, discutiré por qué debería preocuparse por alimentar a nuestro LLM más datos, cómo obtener estos datos y aplicaciones específicas.

También comenzaré con una nueva característica en mis artículos: escribir mi objetivo principal, lo que quiero lograr con el artículo y lo que debes saber después de leerlo. Si tiene éxito, comenzaré a escribirlo en cada uno de mis artículos:

Mi objetivo Para este artículo es resaltar la importancia de proporcionar datos relevantes y cómo puede alimentarlo en sus LLM para mejorar el rendimiento

En este artículo, destaco cómo puede mejorar el rendimiento de LLM alimentando más datos en sus LLM. Imagen de Chatgpt.

También puedes leer mis artículos en Cómo analizar y optimizar sus LLM en 3 pasos y Documento QA utilizando LLM multimodales.

Tabla de contenido

¿Por qué agregar más datos a LLM?

Comenzaré mi artículo señalando por qué es importante. Los LLM tienen hambre de datos increíblemente hambrientos, lo que significa que requieren muchos datos para trabajar bien. Esto se muestra comúnmente en el corpus de pre-entrenamiento de LLM, que consiste en billones de tokens de texto que se utilizan para capacitar a la LLM.

Andrej Karpathy tuiteando sobre los datos utilizados para LLM.

Sin embargo, el concepto de utilizar muchos datos también se aplica a LLM durante el tiempo de inferencia (cuando utiliza la LLM en producción). Debe proporcionar a la LLM todos los datos necesarios para responder una solicitud de usuario.

En muchos casos, inadvertidamente reduce el rendimiento de la LLM al no proporcionar información relevante.

Por ejemplo, si crea un sistema de respuesta a preguntas, donde los usuarios pueden cargar archivos y hablar con ellos. Naturalmente, proporciona el contenido de texto de cada archivo para que el usuario pueda chatear con el documento; Sin embargo, podría, por ejemplo, olvidar agregar el nombre de archivo de los documentos al contexto con el que el usuario está chateando. Esto afectará el rendimiento de la LLM, por ejemplo, si alguna información solo está presente en el nombre de archivo o el usuario hace referencia al nombre de archivo en el chat. Algunas otras aplicaciones LLM específicas donde los datos adicionales son útiles son:

  • Clasificación
  • Extracción de información
  • Búsqueda de palabras clave para encontrar documentos relevantes para alimentar a LLM

En el resto del artículo, discutiré dónde puede encontrar dichos datos, técnicas para recuperar datos adicionales y algunos casos de uso específicos para los datos.

En esta sección, discutiré los datos que probablemente ya tenga disponibles en su aplicación. Un ejemplo es mi última analogía, donde tiene un sistema de respuesta a las preguntas para los archivos, pero olvide agregar el nombre de archivo al contexto. Algunos otros ejemplos son:

  • Extensiones de archivo (.pdf, .docx, .xlsx)
  • Ruta de carpeta (si el usuario cargó una carpeta)
  • Marcas de tiempo (por ejemplo, si un usuario pregunta sobre el documento más reciente, esto es necesario)
  • Números de página (el usuario puede pedirle al LLM que obtenga información específica ubicada en la página 5)
Alternativas de metadatos
Esta imagen resalta diferentes tipos de metadatos que puede obtener, con tipos de archivos, rutas de carpetas, marcas de tiempo y números de página. Imagen de Google Gemini.

Hay un montón de otros ejemplos de datos que probablemente ya tenga disponibles, o que puede obtener rápidamente y agregar al contexto de su LLM.

El tipo de datos que tiene disponibles variará ampliamente de la aplicación a la aplicación. Muchos de los ejemplos que he proporcionado en este artículo se adaptan a la IA basada en texto, ya que ese es el espacio en el que paso más tiempo. Sin embargo, si usted, por ejemplo, trabaja más en IA visual o IA basada en audio, le insto a que encuentre ejemplos similares en su espacio.

Para la IA visual, podría ser:

  • Datos de ubicación para donde se tomó la imagen/video
  • El nombre de archivo del archivo de imagen/video
  • El autor del archivo de imagen/video

O para audio ai, podría ser

  • Metadatos sobre quién habla cuando
  • Marcas de tiempo para cada oración
  • Datos de ubicación desde donde se grabó el audio

Mi punto es que hay una gran cantidad de datos disponibles; Todo lo que necesita hacer es buscarlo y considerar cómo puede ser útil para su aplicación.

A veces, los datos que ya tiene disponibles no son suficientes. Desea proporcionar a su LLM aún más datos para ayudarlo a responder preguntas adecuadamente. En este caso, debe recuperar datos adicionales. Naturalmente, dado que estamos en la edad de LLMS, utilizaremos LLM para obtener estos datos.

Recuperar información de antemano

El enfoque más fácil es recuperar datos adicionales obteniéndolo antes de procesar cualquier solicitud en vivo. Para el documento AI, esto significa extraer información específica de documentos durante el procesamiento. Podrías extraer el Tipo de documento (documento legal, documento fiscal o folleto de ventas) o información específica contenida en el documento (fechas, nombres, ubicaciones, …).

La ventaja de obtener la información de antemano es:

  • Velocidad (en producción, solo necesita obtener el valor de su base de datos)
  • Puedes aprovechar procesamiento por lotes Para reducir los costos

Hoy, obtener este tipo de información es bastante simple. Configura un LLM con un sistema específico indicado para obtener información y alimentar el mensaje junto con el texto en el LLM. El LLM luego procesará el texto y extraerá la información relevante para usted. Es posible que desee considerar evaluar el desempeño de su extracción de información, en cuyo caso puede leer mi artículo sobre Evaluación de 5 millones de solicitudes LLM con evals automatizadas.

Es probable que también desee trazar todos los puntos de información para recuperar, por ejemplo:

Cuando haya creado esta lista, puede recuperar todos sus metadatos y almacenarlo en la base de datos.

Sin embargo, el principal inconveniente de obtener información de antemano es que debe predeterminar qué información extraer. Esto es difícil en muchos escenarios, en cuyo caso puede hacer la recuperación de información en vivo, que cubro en la siguiente sección.

Recuperación de información a pedido

Cuando no puede determinar qué información recuperar de antemano, puede obtenerla a pedido. Esto significa configurar una función genérica que toma un punto de datos para extraer y el texto para extraerlo. Por ejemplo

import json
def retrieve_info(data_point: str, text: str) -> str:
    prompt = f"""
        Extract the following data point from the text below and return it in a JSON object.

        Data Point: {data_point}
        Text: {text}
        
        Example JSON Output: {{"result": "example value"}}
    """

    return json.loads(call_llm(prompt))

Usted define esta función como una herramienta a la que su LLM tiene acceso y que puede llamar cada vez que necesita información. Esto es esencialmente como Anthrope ha establecido su sistema de investigación profundadonde crean un agente de orquestadores que puede generar subciburentes para obtener información adicional. Tenga en cuenta que dar acceso a su LLM para usar indicaciones adicionales puede conducir a mucho uso de tokens, por lo que debe prestar atención al gasto de token de su LLM.

Hasta ahora, he discutido por qué debería utilizar datos adicionales y cómo obtenerlos. Sin embargo, para comprender completamente el contenido de este artículo, también proporcionaré aplicaciones específicas donde estos datos mejoren el rendimiento de LLM.

Filtrado de metadatos

Esta figura resalta cómo se realiza la búsqueda de filtrado de metadatos, donde puede filtrar documentos irrelevantes utilizando el filtrado de metadatos. Imagen de Google Gemini.

Mi primer ejemplo es que puede realizar una búsqueda con filtrado de metadatos. Proporcionar información como:

  • File-type (PDF, XLSX, DOCX, …)
  • tamaño de archivo
  • Nombre del archivo

Puede ayudar a su aplicación al obtener información relevante. Esto puede, por ejemplo, ser información obtenida para ser alimentada en el contexto de su LLM, como al realizar RAG. Puede utilizar los metadatos adicionales para filtrar archivos irrelevantes.

Un usuario podría haber hecho una pregunta relacionada solo con documentos de Excel. Usar trapo para obtener fragmentos de archivos distintos de los documentos de Excel es, por lo tanto, un mal uso de la ventana de contexto de la LLM. En su lugar, debe filtrar los fragmentos disponibles para encontrar solo documentos de Excel y utilizar fragmentos de los documentos de Excel para responder mejor a la consulta del usuario. Puede obtener más información sobre el manejo de contextos LLM en Mi artículo sobre la construcción de agentes de IA efectivos.

Otro ejemplo es si le está haciendo preguntas a su agente de IA sobre la historia reciente que ocurrió después del límite de pre-entrenamiento para el LLM. LLMS generalmente tiene un límite de datos de capacitación para los datos previos al entrenamiento, porque los datos deben ser cuidadosamente seleccionados, y mantenerlo completamente actualizado es un desafío.

Esto presenta un problema cuando los usuarios hacen preguntas sobre la historia reciente, por ejemplo, sobre eventos recientes en las noticias. En este caso, el agente de IA que responde a la consulta necesita acceso a una búsqueda en Internet (esencialmente realizando extracción de información en Internet). Este es un ejemplo de extracción de información bajo demanda.

Conclusión

En este artículo, he discutido cómo mejorar significativamente su LLM proporcionándole datos adicionales. Puede encontrar estos datos en sus metadatos existentes (nombres de archivo, tamaño de archivo, datos de ubicación), o puede recuperar los datos a través de la extracción de información (tipo de documento, nombres mencionados en un documento, etc.). Esta información a menudo es crítica para la capacidad de una LLM para responder con éxito las consultas de los usuarios y, en muchos casos, la falta de estos datos esencialmente garantiza la falla de la LLM para responder una pregunta correctamente.

👉 Encuéntrame en Socials:

🧑‍💻 Ponerse en contacto

🔗 LinkedIn

🐦 X / Twitter

✍️ Medio