Ingeniería5 de julio de 20266 min de lectura
96,58% de recall en LoCoMo: cómo construimos un engine de retrieval en CPU
La arquitectura detrás de nuestro pipeline de retrieval: BM25 + dense vectors + RRF + cross-encoder. Sin LLM en el camino de ranking.
Nuestro run canónico de la tabla completa midió 96,58% de recall@10 por sesión en LoCoMo — la sesión que contiene la evidencia aparece entre los 10 primeros resultados. Sortear 10 sesiones al azar acierta el 42,25% de las veces; lee el 96,58% contra ese número. Esta es la arquitectura de retrieval detrás del resultado y por qué el ranking no necesita LLM.
El benchmark
LoCoMo (Long Context Memory) es un benchmark público y peer-reviewed para memoria conversacional. Nuestra tabla completa tiene 1986 preguntas en 10 conversaciones de 19 a 32 sesiones cada una, con un documento por sesión.
El pipeline
Hay un solo pipeline de producción, el mismo descrito en la documentación y en el provider del benchmark:
- BM25 (búsqueda por palabra clave, portugués e inglés) captura los matches exactos.
- Dense vectors (LFM2.5-Embedding-350M, 1024 dimensiones) tratan la similitud semántica.
- RRF (Reciprocal Rank Fusion) fusiona los resultados BM25 y dense.
- Cross-encoder (BGE-Reranker-v2-m3) reordena el tope; MMR cuida la diversidad.
Un LLM solo expande la pregunta; nunca ordena. El Personalized PageRank, que aparece en la ablación original de este post, existe detrás de una flag y está apagado en producción desde 07/2026 — en aquella ablación de junio sumó 2,4 puntos, y el cambio de Jina v5-small a LFM2.5 llevó el dense-only de 32,7% a 63,5%.
Sin LLM en el ranking
El pipeline de ranking corre en CPU, en menos de un segundo, con costo de token cero. El rerank de cross-encoder y el MMR son álgebra y similitud, no inferencia de modelo.
Eso separa el costo de búsqueda de los tokens de OpenAI o Anthropic. La generación de la respuesta sigue siendo otra etapa y puede usar un modelo de lenguaje.
Lo que aprendimos
- El modelo de embedding respondió por la mayor parte de la ganancia. El cambio de Jina a LFM2.5 sumó 30,8 puntos en la ablación original.
- La búsqueda híbrida cubre fallas diferentes. Dense-only pierde matches exactos; BM25-only pierde matches semánticos.
- Personalized PageRank es barato — y está apagado. En la ablación de junio, una operación de matriz por query sumó 2,4 puntos; en producción queda detrás de una flag, desactivado.
La capa end-to-end
LoCoMo mide recuperación; la exactitud de respuesta en el mismo arnés todavía no tiene un run completo publicado (la página de benchmarks dice en qué estado está). En BEAM-100K, el pipeline end-to-end acertó 323/400 preguntas (media 75,5%; binario 80,8%) en 20 conversaciones. El run de 2026-08-23 usó GLM-5.3 Flash (Ox Alpha), effort=max y juez GLM-5.2 — configuración de benchmark, no el estándar del producto: quien lee es el LLM del cliente. Consulta la metodología y el informe completo del run.
Próximo paso
Menos volver a empezar. Más continuidad
Trae un proyecto real. En una conversación mapeamos dónde se pierde el contexto entre las personas y los agentes de tu equipo, y por dónde empezar.