Encontrado en el medio: La calibración del sesgo de atención posicional mejora el RAG de contexto largo
He estado pensando en el problema de "perdido en el medio" (lost-in-the-middle) desde que escribí el registro sobre el hallazgo original de Liu et al.: pasa un contexto largo a un LLM, y este ignorará de manera fiable la evidencia enterrada en el medio. "Found in the Middle: Calibrating Positional Attention Bias Improves Long Context Utilization" (Hsieh et al., ACL Findings 2024, arXiv:2406.16008) ofrece el arreglo más directo y práctico que he visto: una calibración en tiempo de inferencia, sin entrenamiento, que resta el sesgo posicional del modelo de sus pesos de atención, recuperando hasta 15 puntos porcentuales de precisión en RAG.
El artículo
Hsieh et al. parten de una observación diagnóstica: los LLM —incluso aquellos entrenados en contextos largos— exhiben un patrón de atención persistente en forma de U. Los tokens al principio y al final de la entrada reciben una atención desproporcionadamente alta independientemente de si son relevantes, mientras que los tokens en el medio son sistemáticamente infraponderados. Los autores conectan esto empíricamente con la caída de precisión de "perdido en el medio" en lugar de tratarlo como un fenómeno separado.
Su solución es elegante en concepto. Descomponen la atención en dos componentes aditivos: relevancia (lo que queremos) y sesgo posicional (lo que no queremos). Para aislar el término de sesgo, pasan un "documento ficticio" (dummy document) —contenido de relleno poco informativo— a través del mismo contexto en cada posición y registran la distribución de atención resultante. Esa atención del documento ficticio se aproxima a la prioridad posicional pura. Restarla de las puntuaciones de atención reales deja un residual que refleja mejor la verdadera relevancia:
Atención calibrada = Attn(documento, k) − Attn(ficticio, k)
Las puntuaciones reescaladas se utilizan luego para reclasificar o reponderar los documentos recuperados antes del paso final de generación de la respuesta. Fundamentalmente, no se requiere entrenamiento. La calibración se aplica en el momento de la inferencia a las últimas 16 capas del decodificador y a todos los cabezales de atención. El costo es de O(K) pasadas hacia adelante adicionales, donde K es el número de documentos recuperados —algo no trivial pero predecible.
Ideas clave
- El sesgo de atención en forma de U es intrínseco a la arquitectura del modelo y persiste incluso en modelos entrenados explícitamente con objetivos de contexto largo.
- Pasar un documento ficticio (vacío/ruido) a través del mismo contexto de recuperación aísla la prioridad posicional; restarla elimina el sesgo sin ningún ajuste fino.
- El Recall@3 en NaturalQuestion (K=20, documento de referencia colocado en el medio) salta del 20.52% al 68.32% con la calibración; en K=10, del 36.38% al 74.27%.
- La precisión de QA de extremo a extremo mejora entre 6 y 15 puntos porcentuales cuando el documento de referencia está en el medio del contexto; las mejoras se mantienen en 22 de las 24 configuraciones experimentales.
- El método supera a seis líneas base de comparación: atención vainilla, clasificación por generación de consultas, prompting de generación de relevancia, clasificación por atención (Peysakhovich & Lerer 2023), reordenamiento de prompts y LongLLMLingua-rk.
- El método fue evaluado en NaturalQuestion (2,655 consultas reales sobre Wikipedia) y SynthWiki (990 entradas sintéticas generadas por GPT-4).
Lo que se sostiene — y lo que no
El resultado principal es sorprendente y lo creo. Una brecha de Recall@3 del 20.52%→68.32% para documentos de referencia en el medio del contexto no es el tipo de número que se evapora bajo escrutinio; está midiendo algo real sobre cómo se distribuye la atención. El diseño sin entrenamiento es una ventaja práctica genuina: puedes implementar esto sobre cualquier flujo de RAG existente sin tocar los pesos del modelo.
Dicho esto, tengo algunas reservas. Primero, el enfoque del "documento ficticio" asume que el sesgo posicional es aproximadamente separable por posición y aditivo —una descomposición lineal que los propios autores señalan como una posible simplificación excesiva. El sesgo de atención real puede interactuar con el contenido de formas no lineales. Segundo, las O(K) pasadas hacia adelante adicionales se valoran como "aceptables" pero nunca se comparan en términos de latencia o costo. En un sistema de producción con K=20 recuperaciones, estás ejecutando 21 pasadas hacia adelante en lugar de 1 por consulta. Para un agente de Beancount que clasifica cientos de transacciones, este multiplicador importa.
Tercero —y esta es la limitación más interesante—, los autores señalan que el sesgo posicional podría ser realmente útil para ciertas tareas. El sesgo de recencia, por ejemplo, podría ser lo que hace que un modelo pondere correctamente los asientos contables recientes sobre los más antiguos. Eliminar el sesgo de forma indiscriminada podría perjudicar tareas donde la posición es una señal válida. Esto se reconoce pero no se estudia.
Finalmente, los experimentos utilizan NaturalQuestion y un conjunto de datos sintético. Los documentos específicos de finanzas —tablas densas, informes de varios años, asientos contables con estructura repetitiva— son muy diferentes de los pasajes de Wikipedia de dominio abierto. La calibración necesitaría ser validada en esas distribuciones antes de afirmar que funcionará para el RAG financiero.
Por qué esto importa para la IA financiera
La conexión directa es clara: cada registro desde DocFinQA ha estado rondando el mismo problema. Cuando un agente de Beancount recupera 20 asientos contables relevantes para responder a una pregunta como "conciliar marzo con el extracto bancario", las entradas de la mitad de la ventana recuperada serán sistemáticamente desatendidas en relación con las entradas en la parte superior e inferior del contexto. Eso no es un fallo de recuperación, es un fallo en la fase de generación que ninguna mejora en la clasificación de recuperación podrá solucionar.
La calibración de "encontrado en el medio" es una mitigación plausible que no requiere reentrenamiento del modelo subyacente y podría aplicarse directamente dentro del paso de generación de cualquier flujo de QA de libros contables. La preocupación por el costo O(K) es real pero manejable: una ventana de recuperación de 20 documentos con un modelo de tamaño moderado todavía está dentro de los límites prácticos. Lo que querría ver antes de desplegarlo es una validación específica en datos estructurados de Beancount: ¿ayuda la corrección posicional de manera uniforme, o suprime inadvertidamente la señal de recencia que hace que las transacciones recientes sean más confiables que las antiguas?
El principio más amplio —que los mecanismos de atención codifican prioridades posicionales independientemente de la relevancia del contenido, y que esas prioridades pueden calibrarse sin reentrenamiento— es algo que vale la pena mantener. Abre la puerta a calibraciones similares para otros sesgos: sesgo de frecuencia de tokens, normalización de la longitud de entrada, sesgo de verbosidad en la generación.
Qué leer a continuación
- "Mitigate Position Bias in LLMs via Scaling a Single Hidden States Channel" (arXiv:2406.02536, ACL Findings 2025) — propone escalar una única dimensión de estado oculto en lugar de restar puntuaciones de atención; vale la pena compararlo directamente con el enfoque de "encontrado en el medio".
- "Large Language Models for Anomaly and Out-of-Distribution Detection: A Survey" (arXiv:2409.01980, NAACL 2025) — el siguiente en la lista de lectura; une el hilo de AnoLLM, CausalTAD y AD-LLM en una taxonomía unificada.
- Liu et al., "Lost in the Middle: How Language Models Use Long Contexts" (arXiv:2307.03172, TACL 2023) — el diagnóstico original al que responde "encontrado en el medio"; lectura de fondo esencial.
