Cómo resolver los problemas del contexto largo
(dbreunig.com)- Al usar contexto largo, aparecen varios problemas típicos de gestión de información, como contaminación del contexto, confusión, conflictos y distracción
- La gestión de la información es la clave, y la información incorrecta afecta directamente de forma negativa la calidad de los resultados
- Entre las principales soluciones, tácticas como RAG, Tool Loadout, Context Quarantine, Pruning, Summarization y Offloading han mostrado ser efectivas
- Incluso cuando los LLM más recientes tienen una ventana de contexto grande, hay que tener presente que abusar de información innecesaria sigue causando problemas reales
- Cada táctica ayuda mucho a que quien diseña agentes gestione el contexto de forma sistemática y mejore la eficiencia y la precisión
Problemas que surgen con el contexto largo y resumen
Al usar contexto largo, los siguientes son tipos representativos de fallas que pueden surgir en el sistema
- Contaminación del contexto: problema en el que alucinaciones (
hallucination) o errores se incluyen en el contexto y se vuelven a referenciar repetidamente - Distracción del contexto: fenómeno en el que el contexto se vuelve demasiado largo y el modelo termina enfocándose solo en el contexto en lugar de en lo aprendido originalmente
- Confusión del contexto: situación en la que se agrega información innecesaria y se generan respuestas de menor calidad
- Conflicto del contexto: cuando la información o herramientas agregadas recientemente entran en conflicto con la información existente
Todos estos problemas se deben a la gestión de la información y, como en el dicho de programación “Garbage in, garbage out”, la información de entrada influye enormemente en el resultado.
Afortunadamente, varias tácticas permiten mitigar o prevenir de forma eficaz los problemas anteriores
Principales tácticas de gestión del contexto
RAG (Retrieval-Augmented Generation)
- RAG es un método que mejora la calidad de la respuesta al entregar al LLM solo la información necesaria
- A medida que crece la ventana de contexto de los LLM, hay muchos intentos de “meter toda la información”, pero la información innecesaria más bien arruina el resultado
- RAG sigue usándose hoy como una tecnología muy importante
Tool Loadout (selección de configuración de herramientas)
- Método para insertar selectivamente en el contexto solo las herramientas necesarias
- Las descripciones de herramientas se gestionan en una base de datos vectorial y luego, para cada prompt, se usa RAG para elegir la herramienta óptima
- A partir de más de 30 herramientas, las descripciones superpuestas generan confusión, y con más de 100 el rendimiento del modelo cae de forma drástica
- En el paper “Less is More”, Llama 3.1 8b falla cuando se le ofrecen 46 herramientas, pero tiene éxito cuando solo se le ofrecen 19
- Se usó un recomendador basado en LLM para seleccionar dinámicamente las herramientas necesarias, y con ello mejoraron el rendimiento, la velocidad y la eficiencia energética
Context Quarantine (cuarentena del contexto)
- Método para gestionar el contexto por separado en hilos independientes
- Se diseña el problema dividiéndolo en varias partes, como investigación y exploración, para que cada una quede a cargo de un agente distinto
- En el sistema multi-agent de Anthropic, se usan ventanas de contexto independientes para cada subagente, aumentando la eficiencia y la precisión
- Este diseño muestra fortalezas especialmente claras en tareas que requieren explorar varias direcciones al mismo tiempo
Context Pruning (poda del contexto)
- Método para ir filtrando continuamente la información innecesaria o desactualizada
- En el campo del NLP, desde hace mucho se han usado diversas técnicas de pruning
- Más recientemente han surgido modelos ligeros y rápidos dedicados a la “limpieza” del contexto, como Provence (1.75GB, compresión de documentos de hasta 95%)
- Si el contexto se gestiona en formas estructuradas, como diccionarios, la poda y el resumen (compresión) se vuelven más sencillos
Context Summarization (resumen del contexto)
- Forma de comprimir y resumir todo el contexto cuando su longitud crece
- No solo sirve para evitar que se sobrepase la ventana, sino que también es eficaz para prevenir repeticiones innecesarias o fenómenos de distracción
- En la etapa de compresión, es importante definir qué información se va a conservar
- Mediante una etapa separada de resumen impulsada por LLM, es posible acumular y mejorar datos de evaluación
Context Offloading (descarga del contexto)
- Estrategia que crea un espacio de memoria fuera del contexto para dejar registros
- Como ejemplo, la herramienta “think” de Anthropic prepara un
scratchpadseparado para inducir al LLM a dejar las notas intermedias que necesite - Es útil en análisis de salida de herramientas, verificación de políticas y toma de decisiones secuencial, entre otros casos
- Al conservar por separado los resultados intermedios, se evita que el contexto se contamine o se complique innecesariamente
- También se ha observado mejora en rendimiento y precisión, con casos de hasta 54% de mejora
Conclusión y puntos a tener en cuenta al diseñar agentes
- La gestión del contexto es probablemente la parte más difícil en el diseño de agentes
- Al programar con LLM, la forma de combinar y gestionar información, herramientas y contexto determina el éxito o el fracaso
- Por grande que sea la ventana de contexto, no toda la información resulta útil.
- Es necesario revisar si cada elemento realmente está aportando valor y gestionar activamente el contexto con los 6 métodos presentados arriba (RAG, Tool Loadout, Context Quarantine, Pruning, Summarization y Offloading)
Aún no hay comentarios.