Ir al contenido

Preprint · CC BY 4.0 · reproducible desde el repositorio

Navega, no recuperes.

Una afirmación, y la medimos: el anclaje es una propiedad del entorno, no del modelo. Suelta un modelo de 12B en un montón plano de fragmentos y saca cero en las preguntas que exigen una cadena. Pon el mismo modelo en un bosque curado por el que pueda caminar y las acierta todas, más barato por respuesta correcta, en hardware que cabe debajo del escritorio.

Autor
Jimmy Wesley Maciel Soares
Afiliación
Investigador independiente, São Paulo, Brasil
Estado
Preprint · sin revisión por pares · DOI pendiente
Licencia
Texto bajo CC BY 4.0

La tesis

El modelo no cambió. Cambió el mundo en el que lo pusimos.

Toma a la persona más inteligente que conozcas y entrégale once preguntas sobre la documentación interna de tu empresa, preguntas reales, del tipo que la gente hace de verdad. Ahora impón la condición del RAG: para cada pregunta puede leer seis párrafos, elegidos por una función de similitud que solo vio la pregunta, y nada más. Sin repreguntar. Sin “déjame revisar hacia dónde apunta ese informe”.

Va a fallar. No por falta de inteligencia, sino porque esos seis párrafos contienen el primer eslabón de una cadena cuyos eslabones restantes viven en otra parte, y el protocolo prohíbe seguirlos. Corrimos exactamente ese protocolo contra un conjunto de preguntas estrictamente multisalto. El modelo no alucinó hasta llegar a respuestas equivocadas: hizo algo más condenatorio. Once veces de once informó, correctamente y de forma inútil, que el contexto no sustentaba la pregunta.

Después quitamos la restricción. Mismo modelo, mismo corpus, las mismas once preguntas, pero esta vez podía caminar: leer un mapa, olfatear sus opciones, saltar al siguiente nodo, seguir una referencia cruzada, abrir un cuerpo de texto solo cuando ya estaba seguro. Once de once.

Ese es el paper entero. Todo lo que sigue es el mecanismo que hace posible la segunda vuelta, y la contabilidad que dice cuánto costó.

Nada del modelo cambió. Lo que cambió fue la forma del mundo en el que lo pusimos.
MonkeyLLM: Stigmergic Navigation of Knowledge Forests, §1.1

El problema

La recuperación es una apuesta hecha antes de que nadie haya leído nada

Fragmentar, generar embeddings, tomar los k primeros, generar. Es la arquitectura por defecto de la mayoría de los sistemas desplegados hoy, y cuatro propiedades de esa forma deciden el resultado antes de que el modelo entre siquiera en escena.

  • Recupera una sola vez

    La apuesta sobre qué fragmentos importan se hace antes de que el modelo haya leído una palabra, y nunca se revisa. No hay segunda mirada, porque no hay desde dónde mirar. Las preguntas encadenadas derrotan a la recuperación de un solo tiro de forma estructural, no probabilística.

  • Es ciega a la estructura

    La fragmentación destruye la organización nativa del corpus: carpetas, secciones, referencias cruzadas, la tabla que estaba junto al párrafo. Lo que sobrevive es una bolsa de fragmentos donde antes había un camino, y la similitud no es un camino.

  • No aprende nada

    La consulta número mil cuesta exactamente lo que costó la primera y cae exactamente en los mismos fragmentos. Un pipeline que respondió una pregunta ayer no sabe hoy nada que le sirva. No hay sustrato sobre el cual pudiera acumularse la experiencia.

  • Y los agentes pagan el impuesto del grep

    Mira cómo se orienta un agente de código: grep, abrir, leer, releer; minutos y miles de tokens gastados en reconstruir contexto antes de la primera decisión útil, en cada sesión. El conocimiento sin estructura grava a los agentes incluso cuando no hay ningún retriever a la vista.

El fallo es invisible al muestreo

En preguntas de dificultad mixta, el top-k clásico se ve respetable: es el número que te muestra una demo. Agrega el requisito de que cada pregunta necesite al menos tres saltos encadenados y el puntaje cae a cero. Como el colapso es estructural y no gradual, cualquier evaluación que incluya también preguntas de un salto promedia el precipicio hasta hacerlo desaparecer y reporta un número sano sobre un sistema roto.

La idea

Un bosque dentro del cual un modelo pequeño puede pararse

El conocimiento vive en un grafo jerárquico de nodos markdown versionado en git. Un modelo pequeño entra por la búsqueda y forrajea: lee pasaportes, sigue aristas tipadas y deja un rastro para quien cace después. Ningún animal que vive de recursos dispersos ejecuta búsqueda por similitud sobre su propio hábitat.

  • Pasaportes, no fragmentos

    Cada nodo lleva un pasaporte curado y validado por máquina: un título, un resumen sujeto a un presupuesto duro de sesenta tokens, etiquetas y un olor de una línea por cada vecino. Eso es lo que convierte un salto en una decisión en vez de una apuesta: el agente elige qué puerta abrir antes de abrir ninguna. Cada observación tiene presupuesto y avisa en voz alta cuando fue truncada, para que “no está aquí” nunca se confunda con “se cortó”.

  • Aristas tipadas, cada escritura un commit

    Las aristas son curadas y tipadas (esta nota reemplaza a aquella, esta entidad es dueña de aquel incidente), no inferidas de una distancia coseno. El bosque es un repositorio git: cada escritura, de una persona o de un agente, es un commit. Pregúntale a un pipeline de RAG por qué recuperó lo que recuperó y obtienes similitudes coseno; pregúntale a un bosque y obtienes un rastro que puedes recorrer tú mismo.

  • Rastros de feromona

    Una cacería exitosa deposita calor a lo largo del rastro que recorrió y puede acuñar un atajo permanente. El calor se evapora con una vida media, así que los rastros que dejan de rendir se desvanecen. El corpus se vuelve el medio por el cual los agentes se enseñan entre sí, entre sesiones, sin comunicarse jamás: estigmergia, tomada intacta de la optimización por colonia de hormigas.

El Principio del Bosque

Gasta inteligencia en el entorno para gastar menos en el modelo.
MonkeyLLM · The Forest Principle

Las tres cláusulas son independientes. La estructura curada convierte una apuesta global difícil (¿qué k fragmentos son conjuntamente suficientes?) en una secuencia de preguntas locales fáciles. La retroalimentación estigmérgica hace que la consulta número mil sea más barata y esté mejor anclada que la primera. Y la economía se sigue de las dos primeras: un modelo local de 12B supera a la arquitectura que un modelo de frontera necesita para fallar con elegancia.

El reflejo del campo es una ventana más grande, un lector más grande, un mejor re-ranker: inteligencia en tiempo de consulta, pagada en cada consulta, sin aprender nada. El Principio del Bosque mueve ese gasto al momento de la ingesta y a la estructura, donde se acumula. Además es independiente de la modalidad: cualquier cosa con un sustrato descomponible, señales curadas baratas sobre sus partes y consultas repetidas cuyos aciertos puedan registrarse es candidata. El invariante es la regla, no el markdown.

La evidencia

Lo que medimos de verdad

Un modelo de 12B servido localmente, un corpus, las mismas preguntas, tres arms. Ningún modelo de escala de frontera aparece en ninguna parte del paper, y cada figura de abajo se regenera desde scripts versionados en el repositorio.

El precipicio

11 preguntas hechas

0/1111/11

RAG top-k clásico

un tiro · seis párrafos

Navegador del bosque

mismo modelo · caminando

Once preguntas, cada una exigiendo al menos tres saltos encadenados. Mismo modelo de 12B, mismo corpus, mismas preguntas: solo cambió la forma del mundo alrededor. El top-k no respondió mal; reportó correctamente que sus seis párrafos no alcanzaban, once veces de once.

Costo en tokens por respuesta correcta

RAG iterativo1,00×
Navegador del bosque0,66×
Gráfico de barras del costo en tokens por respuesta correcta, indexado a una línea base de RAG iterativo igual a 1,00: RAG iterativo 1,00×, navegador del bosque 0,66×. Menos es mejor.
Indexado a la línea base de RAG iterativo. Los conteos brutos de tokens por pregunta son comparables entre ambos: la diferencia es que uno de ellos responde la pregunta. Fallar barato no es economía. Menos es mejor.

Latencia p95 por pregunta

RAG iterativo17,5 s
Navegador del bosque8,4 s
Gráfico de barras del tiempo de reloj en el percentil 95 por pregunta: RAG iterativo 17,5 segundos, navegador del bosque 8,4 segundos. Menos es mejor.
Tiempo de reloj en el percentil 95 sobre el mismo conjunto multisalto. El RAG iterativo recupera parte de lo que pierde el top-k, pero lo paga en varianza de latencia, y aun así falla un tercio de las preguntas. Menos es mejor.
recall@5 = 1,00
Búsqueda de entrada a 1,3 ms p95, solo con BM25: sin embeddings, sin base vectorial, sin GPU. Dar peso de ranking a los campos que el curador disciplina más (un título es un acto de nombrar; un alias, un acto de anticipar a quien pregunta) cerró por completo la distancia de recall@5 frente a la búsqueda híbrida, sin costo medible en latencia.
12/14 en un tiro
La ruta harvest sin LLM (recuperar, fusionar, empaquetar: ningún agente en el loop) más una única completion responde 12 de 14 preguntas en unos 3 segundos cada una, y recuperación y lectura nunca fallaron juntas. La regla de despliegue que se deriva: enruta primero el tiro único barato y escala al agente que camina cuando la respuesta es agregada o el paquete vuelve seco, que es exactamente donde solo la navegación llega.
1,71 s/documento
Ingesta de punta a punta sobre 100 documentos reales y heterogéneos, con el 100% de los resúmenes generados aprobando el contrato de sesenta tokens y cero enlaces rotos al final. Construir un bosque tampoco exige un modelo de frontera.
1 × RTX 3060
El equipo del benchmark: una sola tarjeta media de 12 GB, no una GPU de workstation. Un 12B cuantizado cabe entero en ella, y cualquier endpoint compatible con OpenAI (OpenRouter, llama.cpp, Ollama) ejecuta el mismo modelo sin ninguna GPU local.

Números del preprint, §5. El corpus, los conjuntos de preguntas y el harness están versionados en el repositorio; cada tabla se regenera con un comando.

La parte honesta

Lo que no afirmamos

Dos de los hallazgos del paper son fracasos frente a sus propios criterios originales, y están escritos allí en vez de descartados. Un benchmark que solo se puede aprobar no es un benchmark.

  1. El criterio de convergencia no se cumplió

    El aprendizaje por rastros debía recortar al menos un cuarto de los saltos a lo largo de exposiciones repetidas. Medido en cinco pasadas, los saltos sí bajaron, cerca de la mitad del umbral que habíamos fijado. Criterio: no cumplido. El mecanismo funcionaba de forma demostrable: los atajos se injertaron en la primera pasada, se reforzaron sin duplicados después, y el re-ranking por calor se mantuvo estable. La resolución es el hallazgo. Una buena búsqueda de entrada sumada a una curaduría disciplinada ya navega este benchmark en frío en cerca de un salto y medio, y no hay un cuarto que recuperar cerca del piso de un salto. Curaduría y aprendizaje por rastros son sustitutos económicos; los rastros necesitan corpus más profundos para rendir.

  2. Navegar no es gratis

    Caminar cuesta un salto por vez. En preguntas superficiales, el top-k clásico es más rápido y perfectamente adecuado, y por eso existe un camino de un solo tiro, sin LLM, junto al agente. La regla de despliegue que sale de las mediciones es enrutar primero por el camino barato y escalar a la navegación cuando la respuesta huela a agregación, o cuando el camino barato vuelva vacío. No estamos afirmando que haya que caminar en todas partes.

  3. Es un preprint, y el DOI está pendiente

    El paper está escrito, versionado y es público. No ha pasado por revisión por pares, y el depósito del DOI todavía no ocurrió. No vamos a describirlo de otra manera. Se publica como prior art y como invitación abierta a replicar, bajo CC BY 4.0, con la atribución como única condición.

  4. Dónde no está probado

    Una sola familia de benchmark, generada por nosotros: faltan suites multisalto externas, y los números de búsqueda de entrada premian exactamente los campos de nombres que nuestro propio pipeline cura, una razón más para que los corpus externos vayan primero. La corrección se evalúa por coincidencia de subcadenas. La tabla principal todavía no tiene repeticiones estadísticas. Nuestros corpus son pequeños, de cientos a miles de nodos, y el comportamiento en cien mil no está probado. Y la capa de aprendizaje introdujo una clase de fallo genuinamente nueva: como el calor no está condicionado a la consulta, un rastro desgastado por una pregunta puede elevar el nodo equivocado para otra. Nos topamos con él, lo rastreamos y le pusimos nombre. No lo arreglamos.

Reproduce el 0/11 primero.

Toma un comando, y es el argumento entero. Clona el repositorio, construye el bosque de fixture, apúntalo a cualquier endpoint compatible con OpenAI (un servidor llama.cpp local alcanza) y corre el bench. Si prefieres tener una contraparte antes que un fin de semana, eso también lo hacemos.