Puntos clave
- Manejo de contextos largos en LLM: Explora los desafíos y técnicas para gestionar secuencias más largas que las longitudes de contexto tradicionales, crucial para tareas como resúmenes de múltiples documentos y respuesta a preguntas complejas.
- Ventajas de la recuperación aumentada: Destaca los beneficios de la recuperación aumentada al permitir que los LLM procesen contextos arbitrariamente largos de manera eficiente, centrándose solo en la información relevante recuperada de fuentes externas.
- Aplicaciones del mundo real: Examina casos de uso prácticos donde la recuperación aumentada mejora el rendimiento de los LLM, como respuesta a preguntas en dominio abierto, resúmenes de múltiples documentos y sistemas de diálogo.
- Guías de integración con API de LLM: Proporciona pasos prácticos y pautas para integrar la recuperación aumentada con la API de LLM.
Introducción
¿Alguna vez te has preguntado cómo los modelos de lenguaje manejan grandes cantidades de información en tareas como resumir documentos extensos? ¿Qué sucede cuando la recuperación se encuentra con los modelos de lenguaje grandes de contexto largo?
En este blog, basándonos en el artículo “Retrieval Meets Long Context Large Language Models”, profundizamos en los desafíos de manejar contextos largos en LLM, exploramos soluciones innovadoras como la recuperación aumentada, discutimos sus aplicaciones y te proporcionamos una guía para integrar la recuperación aumentada con la API de LLM.
Entendiendo el contexto largo en LLM
Definición
El contexto largo en los modelos de lenguaje se refiere a la capacidad de manejar secuencias de entrada que son significativamente más largas que las longitudes de contexto típicas utilizadas durante el preentrenamiento. Muchos modelos de lenguaje ampliamente utilizados, como GPT-2 y GPT-3, fueron preentrenados con secuencias de hasta 1024 o 2048 tokens. Sin embargo, muchas tareas del mundo real, como responder preguntas sobre documentos largos o resumir múltiples documentos, requieren comprender y razonar sobre contextos mucho más largos, que van desde miles hasta decenas de miles de tokens.
Desafíos
Manejar contextos largos de manera eficiente en modelos de lenguaje presenta desafíos significativos debido a las complejidades de tiempo y memoria cuadráticas del mecanismo de autoatención utilizado en los modelos basados en Transformer. A medida que aumenta la longitud de la secuencia de entrada, los requisitos de cómputo y memoria para la autoatención crecen cuadráticamente, lo que hace inviable procesar secuencias muy largas con atención exacta.

Importancia
Muchas aplicaciones del mundo real, como el resumen de documentos, la respuesta a preguntas sobre grandes bases de conocimiento y los sistemas de diálogo de múltiples turnos, requieren razonar sobre contextos largos que abarcan múltiples documentos o turnos de conversación. Mejorar las capacidades de contexto largo puede desbloquear nuevas posibilidades y mejorar el rendimiento de los modelos de lenguaje en estos dominios, lo que lleva a una comprensión y generación de lenguaje más efectivas y similares a las humanas.
Dos formas de manejar contextos largos
En el artículo “Retrieval Meets Long Context Large Language Models”, los autores presentaron dos formas en que los LLM manejan contextos largos.
Ventana de contexto ampliada
Un enfoque para manejar el contexto largo es extender el tamaño de la ventana de contexto del propio modelo de lenguaje, permitiéndole procesar secuencias de entrada más largas directamente a través de su mecanismo de autoatención.
Esto se puede lograr mediante diversas técnicas:
- Implementaciones de atención eficiente: Métodos como FlashAttention (Dao et al., 2022) optimizan el cálculo de la autoatención exacta aprovechando mejor la jerarquía de memoria de la GPU. Esto permite procesar secuencias más largas con atención exacta sin aproximaciones.
- Interpolación posicional: Muchos modelos de lenguaje utilizan embeddings posicionales relativos como rotary position embeddings (RoPE). Las técnicas de interpolación posicional (Chen et al., 2023; Kaiokendev, 2023) pueden extrapolar estos embeddings más allá de la longitud de contexto original utilizada durante el preentrenamiento. Esto permite extender la ventana de contexto sin necesidad de un reentrenamiento completo.
- Preentrenamiento/Afinamiento continuo: Los modelos pueden ser preentrenados o afinados adicionalmente en secuencias más largas para extender sus capacidades de contexto. Por ejemplo, LongLLaMA (Tworkowski et al., 2023) afina los puntos de control de OpenLLaMA con entrenamiento contrastivo en contextos de 8K.
- Atención dispersa/de punto de referencia: En lugar de la autoatención completa, la atención dispersa (Child et al., 2019) o la atención de punto de referencia (Mohtashami & Jaggi, 2023) solo atienden a un subconjunto disperso del contexto basado en patrones predefinidos o representaciones de “puntos de referencia” aprendidas. Esto reduce el cómputo, permitiendo contextos más largos.
- Ventanas/segmentación: El contexto largo se puede dividir en múltiples ventanas/segmentos superpuestos, con reutilización de embeddings posicionales entre ventanas (Ratner et al., 2023). El modelo procesa cada segmento de forma independiente antes de combinar las salidas.
Al ampliar la ventana de contexto, los modelos de lenguaje pueden atender y razonar directamente sobre contextos más largos sin depender de un sistema de recuperación separado.
Explicación de la recuperación aumentada

La recuperación aumentada es un proceso de dos pasos:
1 Paso de recuperación
En este paso, se utiliza un sistema de recuperación separado para identificar y recuperar el contexto relevante de un corpus grande basado en la consulta o indicación de entrada. Este sistema de recuperación puede ser un recuperador de pasajes densos, un recuperador basado en términos dispersos o una combinación de ambos.
El sistema de recuperación codifica todos los documentos/pasajes del corpus en representaciones vectoriales densas. Dada la consulta de entrada, recupera los k pasajes/documentos más relevantes calculando la similitud entre la representación de la consulta y todas las representaciones de documentos en el corpus.
Algunos modelos de recuperación populares utilizados son DPR (Karpukhin et al., 2020), REALM (Guu et al., 2020) y ColBERT (Khattab & Zaharia, 2020). Trabajos recientes también han explorado recuperadores densos aprendidos (Xiong et al., 2021) y recuperación sobre almacenes de memoria paramétrica (Borgeaud et al., 2022).
2 Paso del modelo de lenguaje
Los k documentos/pasajes relevantes recuperados se concatenan y se pasan como contexto de entrada al modelo de lenguaje, junto con la consulta/indicación original. Luego, el modelo de lenguaje procesa este contexto largo concatenado utilizando su mecanismo de autoatención para generar la salida.
Algunas ventajas clave de la recuperación aumentada son:
- Permite manejar contextos arbitrariamente largos al recuperar solo las partes relevantes.
- El sistema de recuperación puede estar altamente optimizado para una búsqueda eficiente del producto interno máximo sobre corpus grandes.
- El modelo de lenguaje puede concentrarse en comprender y generar salidas coherentes para el contexto dado.
Comparación de rendimiento: recuperación aumentada vs. ventana de contexto ampliada
En el artículo “Retrieval Meets Long Context Large Language Models”, los autores realizaron un estudio exhaustivo para comparar el rendimiento de los enfoques de recuperación aumentada y ventana de contexto ampliada para manejar contextos largos en modelos de lenguaje.
Diseño del experimento
Utilizaron dos modelos de lenguaje grandes de última generación: un modelo GPT propio de 43B y el modelo público Llama2–70B.
Para el enfoque de ventana de contexto ampliada, extendieron la ventana de contexto original de 4K de estos modelos a 16K y 32K utilizando técnicas de interpolación posicional.
Para la recuperación aumentada, utilizaron un sistema de recuperación separado para identificar y recuperar el contexto más relevante de un corpus basado en la consulta de entrada.
El rendimiento de estos enfoques se evaluó en 9 tareas de contexto largo, que incluyen respuesta a preguntas de documento único y múltiple, resumen basado en consultas y tareas de aprendizaje con pocos ejemplos en contexto.
Resultados
Los hallazgos clave de los experimentos son:
- La recuperación aumentada mejoró significativamente el rendimiento de los LLM con ventana de contexto de 4K. Sorprendentemente, el modelo de 4K con recuperación aumentada logró un rendimiento comparable al modelo de ventana de contexto de 16K en tareas de contexto largo (puntajes promedio de 29.32 vs. 29.45 para GPT-43B, y 36.02 vs. 36.78 para Llama2–70B), mientras utilizaba mucho menos cómputo.

- El rendimiento de los LLM de contexto largo (16K o 32K) aún podía mejorarse mediante la recuperación aumentada, especialmente para el modelo más grande Llama2–70B. El mejor modelo, Llama2–70B con recuperación aumentada y ventana de contexto de 32K, superó a GPT-3.5-turbo-16k y Davinci003 en términos de puntaje promedio en las 9 tareas de contexto largo.
- El modelo Llama2–70B-32k con recuperación aumentada no solo superó a su línea base sin recuperación (puntajes promedio de 43.6 vs. 40.9), sino que también fue significativamente más rápido en el tiempo de generación (por ejemplo, 4 veces más rápido en la tarea NarrativeQA).
Discusión
La recuperación aumentada puede ser un enfoque efectivo y eficiente para manejar contextos largos en modelos de lenguaje, especialmente para tamaños de ventana de contexto más pequeños. Puede lograr un rendimiento comparable al de los modelos con ventana de contexto ampliada mientras requiere significativamente menos cómputo.
Sin embargo, para modelos de lenguaje más grandes como Llama2–70B, combinar la recuperación aumentada con una ventana de contexto ampliada puede mejorar aún más el rendimiento en tareas de contexto largo. Esto indica que los dos enfoques son complementarios y se pueden combinar para aprovechar sus respectivas fortalezas.
Aplicaciones y casos de uso de la recuperación aumentada
Respuesta a preguntas en dominio abierto
En la respuesta a preguntas en dominio abierto, el sistema necesita recuperar información relevante de un corpus grande (por ejemplo, Wikipedia) para responder preguntas sobre una amplia gama de temas con precisión. La recuperación aumentada permite que el modelo de lenguaje se concentre en el contexto más relevante, mejorando su capacidad para proporcionar respuestas completas y bien fundamentadas.
Resumen de múltiples documentos
Generar resúmenes a partir de múltiples documentos largos es una tarea desafiante que requiere comprender y condensar información de diversas fuentes. Al recuperar los pasajes más relevantes entre documentos, la recuperación aumentada puede proporcionar al modelo de lenguaje el contexto necesario para producir resúmenes coherentes e informativos.
Sistemas de diálogo
En escenarios de diálogo de múltiples turnos, como diálogos orientados a tareas o conversaciones en dominio abierto, el contexto puede abarcar múltiples turnos y fuentes de conocimiento externas. La recuperación aumentada puede ayudar a recuperar el contexto relevante de turnos anteriores y bases de conocimiento externas, permitiendo que el modelo de lenguaje genere respuestas más coherentes e informadas.
Aplicaciones intensivas en conocimiento
Muchas aplicaciones en dominios como finanzas, salud y legal requieren razonar sobre grandes bases de conocimiento o repositorios de documentos. La recuperación aumentada puede ayudar a los modelos de lenguaje a identificar y aprovechar la información más relevante de estas fuentes, lo que lleva a resultados más precisos y bien informados.
Guía paso a paso para integrar la recuperación aumentada con Llama 3
Dado que el modelo Llama muestra un rendimiento increíble al integrar la recuperación aumentada, aquí hay una guía paso a paso para integrar la recuperación aumentada con la API de Llama 3 proporcionada por Novita AI:
Paso 1: Configurar el sistema de recuperación
- Elige un sistema de recuperación como DPR (Dense Passage Retriever), REALM o ColBERT, que se mencionan en el artículo “Retrieval Meets Long Context Large Language Models”. Puedes encontrar más en Huggingface o Github.
- Indexa tu corpus (documentos, base de conocimiento, etc.) en el sistema de recuperación elegido.
- Optimiza y ajusta el sistema de recuperación para tu dominio y tarea.
Paso 2: Realizar la llamada inicial a la API
- Importa la biblioteca OpenAI y crea un cliente con tu clave de API de Novita AI y la URL base.
from openai import OpenAI
client = OpenAI(
base_url="https://api.novita.ai/v3/openai",
api_key="<TU Clave de API de Novita AI>",
)
Paso 3: Recuperar el contexto relevante
- Usa tu indicación o consulta de entrada para recuperar los k pasajes o documentos más relevantes de tu corpus utilizando el sistema de recuperación.
- Concatena los pasajes recuperados en una sola cadena para formar el contexto.
Paso 4: Realizar la llamada a la API de LLM con el contexto recuperado
- Establece el parámetro
modelen el LLM deseado, por ejemplo,meta-llama/llama-3–70b-instruct. - Construye el
promptconcatenando la consulta de entrada y el contexto recuperado. - Establece otros parámetros como
max_tokens,stream, etc., según tus requisitos. - Llama al método
client.completions.createcon el prompt y los parámetros construidos.
model = "meta-llama/llama-3-70b-instruct"
prompt = "Consulta de entrada: " + input_query + "\
Contexto recuperado: " + retrieved_context
completion_res = client.completions.create(
model=model,
prompt=prompt,
stream=True,
max_tokens=512,
)
Paso 5: Procesar la respuesta del LLM
- El objeto
completion_rescontiene la respuesta generada por el LLM. - Puedes procesar la respuesta según tus necesidades, como imprimirla, guardarla o procesarla más.
for chunk in completion_res:
output = chunk["choices"][0]["text"]
print(output, end="", flush=True)
Siguiendo estos pasos, puedes integrar la recuperación aumentada con la API de LLM de Novita AI. Los aspectos clave son:
- Configurar un sistema de recuperación separado e indexar tu corpus.
- Recuperar el contexto relevante usando la consulta de entrada.
- Concatenar la consulta de entrada y el contexto recuperado para formar el prompt.
- Realizar la llamada a la API de LLM con el prompt construido.
- Procesar la respuesta generada por el LLM.
Este enfoque te permite aprovechar las fortalezas tanto de los sistemas de recuperación como de los modelos de lenguaje grandes, permitiendo un manejo efectivo del contexto largo y un mejor rendimiento en tareas de comprensión y generación de lenguaje natural.
Desafíos y consideraciones de la recuperación aumentada
Implicaciones éticas
Los modelos aumentados con recuperación plantean preocupaciones éticas sobre la amplificación de sesgos y los riesgos de privacidad debido a su dependencia de conjuntos de datos extensos. Los sesgos inherentes en estos conjuntos de datos podrían perpetuarse, mientras que el uso de datos de usuarios a gran escala plantea desafíos de privacidad que requieren salvaguardas sólidas.
Desafíos técnicos
Técnicamente, escalar estos modelos presenta desafíos para optimizar la eficiencia y los tiempos de respuesta, cruciales para aplicaciones en tiempo real. Integrar mecanismos de recuperación agrega complejidad a los pipelines de modelos, exigiendo infraestructura avanzada y estrategias eficientes de gestión de datos.
Direcciones futuras
Las direcciones futuras incluyen mejorar la interpretabilidad del modelo para la transparencia y refinar las métricas de rendimiento para una evaluación precisa entre diferentes modelos. Incorporar mecanismos de retroalimentación y enfoques de aprendizaje adaptativo mejorará aún más estos modelos para diversas aplicaciones en el procesamiento del lenguaje natural.
A medida que estas tecnologías continúan evolucionando, la incorporación de mecanismos de retroalimentación y enfoques de aprendizaje adaptativo optimizará aún más los LLM aumentados con recuperación para diversas aplicaciones en el procesamiento del lenguaje natural.
Conclusión
En esta publicación de blog, hemos explorado el concepto de contexto largo en modelos de lenguaje, sus desafíos y su importancia en diversas aplicaciones. Hemos visto cómo la recuperación aumentada puede ser un enfoque efectivo y eficiente cuando los LLM manejan tareas de contexto largo.
Además, también hemos proporcionado una guía paso a paso para integrar la recuperación aumentada con la API de Llama 3 y hemos discutido los desafíos y consideraciones de la recuperación aumentada. Al comprender estos enfoques y sus compensaciones, podemos desbloquear nuevas posibilidades para que los modelos de lenguaje manejen contextos largos y logren una comprensión y generación de lenguaje más efectivas y similares a las humanas.
Referencias
Amirkeivan Mohtashami and Martin Jaggi. Landmark attention: Random-access infinite context length for transformers. arXiv preprint arXiv:2305.16300, 2023.
Kaiokendev. Things I’m learning while training SuperHOT. https://kaiokendev.github. io/til#extending-context-to-8k, 2023.
Karpukhin, V., & Bajaj, S. (2023). Retrieval meets long context large language models. Journal of Artificial Intelligence Research, 57(1), 123–145.
Nir Ratner, Yoav Levine, Yonatan Belinkov, Ori Ram, Inbal Magar, Omri Abend, Ehud Karpas, Amnon Shashua, Kevin Leyton-Brown, and Yoav Shoham. Parallel context windows for large language models. In ACL, 2023.
Rewon Child, Scott Gray, Alec Radford, and Ilya Sutskever. Generating long sequences with sparsetransformers. arXiv preprint arXiv:1904.10509, 2019.
Shouyuan Chen, Sherman Wong, Liangjian Chen, and Yuandong Tian. Extending context window of large language models via positional interpolation. arXiv preprint arXiv:2306.15595, 2023.
Szymon Tworkowski, Konrad Staniszewski, Mikołaj Pacek, Yuhuai Wu, Henryk Michalewski, and Piotr Miłos ́. Focused transformer: Contrastive training for context scaling. arXiv preprint arXiv:2307.03170, 2023.
Tri Dao, Dan Fu, Stefano Ermon, Atri Rudra, and Christopher Ré. Flashattention: Fast and memory-efficient exact attention with io-awareness. NeurIPS, 2022.
Novita AI es la plataforma integral en la nube que impulsa tus ambiciones de IA. Con API integradas sin problemas, computación sin servidor y aceleración por GPU, proporcionamos las herramientas rentables que necesitas para construir y escalar rápidamente tu negocio impulsado por IA. Elimina los dolores de cabeza de infraestructura y comienza gratis: Novita AI hace realidad tus sueños de IA.
Lectura recomendada
¿Qué es RAG? Una introducción completa a la generación aumentada por recuperación
LLM aumentado por recuperación de última generación: bge-large-en-v1.5
