se construyen de manera agencial: coloque un modelo dondequiera que una decisión requiera juicio y déjelo decidir. Eso significa muchas llamadas de modelos. El proceso del Artículo 9 (un proceso RAG de producción para archivos PDF) se construye exactamente así. Pregunte "¿Cuál es la prima anual?" y ejecuta tres llamadas de modelos en serie:
uno para analizar la pregunta, otro para arbitrar los candidatos recuperados, otro para generar la respuesta escrita.
Cada llamada compra algo real. La llamada de análisis absorbe errores tipográficos y frases vagas antes de ejecutar la recuperación. La llamada del árbitro evita que una página equivocada llegue a la generación. La llamada de generación devuelve una respuesta escrita con una cita que puede consultar en la página. En una pregunta difícil, estos tres llamados son los que hacen que la respuesta sea confiable, y es por eso que el Artículo 9 los incluye allí.
El problema es que no podemos permitirnos esto en todas las cuestiones, porque es lento. Tres llamadas en serie significan que el usuario espera unos dos segundos y paga fichas por cada pregunta, incluidas las fáciles. Y muchas preguntas empresariales nunca fueron difíciles: "¿Cuál es la prima anual?" tiene una respuesta, en una línea, y la concordancia determinista de palabras clave ya la había aislado en la primera pasada. Por eso, este artículo agrega un enrutador: una señal económica por pregunta, leída antes de cualquier llamada modelo, que envía preguntas fáciles por el camino rápido y mantiene las tres llamadas para las difíciles. Este artículo es el mapa de esa ruta: la señal (una puntuación que el pipeline ya calcula), el margen que la hace honesta, lo que ahorra (unos dos segundos en una coincidencia de palabras clave) y las preguntas que debe negarse a acelerar. Cada número es una ejecución real del corpus ficticio del corredor, reproducible en el cuaderno complementario.
🧭 ¿Nuevo en la serie? Comience con el mapa: Aviso, Contexto, Bucle establece las tres capas de ingeniería en las que se construye cada sistema RAG, el aviso (la llamada en sí), el contexto (lo que llena la ventana del modelo), el bucle (cuándo se activa la siguiente llamada y cuando se detiene) y recorre toda la serie a través de esa lente, artículo por artículo. Es el camino más corto para ver qué está cubierto y dónde se asienta éste.
📓 El cuaderno ejecutable para este artículo está en GitHub: doc-intel/notebooks-vol1. Ejecuta el enrutador en el corpus del corredor, imprime la puntuación de confianza por pregunta y muestra qué preguntas omiten el modelo y cuáles lo mantienen.
1. Cada pregunta paga por todo el proceso
El oleoducto mejorado vale su costo en cuestiones difíciles. El problema es que cobra el mismo coste en los fáciles. Rastree una sola pregunta y las llamadas del modelo se acumulan: una para normalizar la pregunta y extraer sus palabras clave, otra para el árbitro que clasifica a los candidatos recuperados y otra para generar la respuesta escrita. Tres viajes de ida y vuelta a un modelo alojado, en serie, antes de que el usuario vea una palabra.
Sobre una cuestión difícil: el dinero bien gastado. Sobre "¿cuál es la prima?" son tres saltos de red para devolver un valor que una coincidencia de palabra clave ya había aislado en el primer paso. La latencia es real y es la parte que siente el usuario. El costo del token es menor por llamada, pero se factura en cada pregunta, para siempre, y las preguntas fáciles son las que más repiten los usuarios.
Antes de que se active cualquiera de esas tres llamadas, la canalización puede tomar una decisión sin una llamada al modelo, a partir de la pregunta analizada y la línea_df del documento: ¿se puede responder esta pregunta solo con la ruta de la palabra clave?
La decisión necesita una señal. Tiene que ser barato, porque el objetivo es no gastar nada cuando la respuesta es fácil, y tiene que ser honesto, porque un enrutador que envía una pregunta difícil por el camino rápido devuelve una respuesta incorrecta y segura, el error exacto que la serie trata de evitar.
2. No todas las preguntas necesitan el modelo.
La señal ya está en trámite. La recuperación califica cada línea según la intensidad con la que las palabras clave de la pregunta coexisten en ella, y esa puntuación, antes de cualquier llamada de árbitro o generación, ya separa las preguntas que se responden solas de las que no.
2.1 Una pregunta que se responde sola
Tomemos como ejemplo "¿cuál es la prima anual?" contra la póliza de propietario de vivienda. El puntuador determinista de palabras clave del artículo 7 (recuperación como filtrado en line_df), co_occurrence_score, cuenta cuántas de las palabras clave de la pregunta aparecen en cada línea, ponderando un término principal (prima) junto con las coseñales que marcan una respuesta real (EUR, anual, pagadero). Ejecútelo y una línea gana por completo.
La línea superior, “La prima anual es de 1.200 EUR, pagadera…”, obtiene una puntuación de 5. Cada dos líneas obtiene una puntuación de 0. Un ganador claro, un margen de 5 sobre el segundo lugar, y la línea ganadora ya tiene la forma de la respuesta, una moneda y una cantidad. El modelo no tiene nada que desambiguar. La ruta de la palabra clave respondió la pregunta y una llamada de generación aquí solo reformatearía un valor que ya está aislado.
2.2 Una pregunta que necesita el modelo.
Ahora pregúntate “¿qué garantías puedo evitar en mi caso?” contra la misma política. El marcador de palabras clave se ejecuta de la misma manera, pero el resultado es diferente.
Tres líneas empatan a 2 puntos: las dos garantías opcionales y la línea que menciona ajustarlas. El margen entre el primero y el segundo es cero. No destaca ninguna línea, porque la pregunta no pide una línea. “En mi caso” le pide al modelo que sopese la situación del usuario frente a varias garantías opcionales y razone cuáles es seguro descartar. Ese es un trabajo de generación, y la puntuación fija es la indicación: la ruta de palabras clave encontró candidatos, no una respuesta.
3. La señal es el margen
El enrutador no necesita un modelo nuevo. Necesita el número que el ladrillo de recuperación ya produjo. Dos características de las puntuaciones de palabras clave deciden la ruta: la puntuación más alta y el margen entre la línea superior y la siguiente.
Una puntuación máxima alta con un amplio margen, el 5 contra 0 del primer trimestre, significa que una línea coincidió fuertemente y nada más se acercó. La respuesta está en esa línea. Enrútelo a un extractor determinista que extrae el valor y omite el modelo por completo. Una puntuación máxima baja, o una puntuación máxima sin margen, los 2 planos del segundo trimestre, significa que las palabras clave se distribuyen en varias líneas sin establecerse. Envíe esa pregunta a través del proceso completo: árbitro, luego generación, las llamadas del modelo se justifican exactamente sobre las preguntas que las necesitan.
Todo el enrutador depende de esa decisión y no necesita ningún modelo propio. Califique las líneas, lea la puntuación superior y su margen y devuelva una ruta.
# co_occurrence_score: el anotador de palabras clave del Artículo 7, en el cuaderno complementario. def route_question(line_df, primario, secundario, *, min_score=4, min_margin=3): """Decide, sin llamada de modelo, si la ruta de la palabra clave ya responde.""" puntuaciones = [co_occurrence_score(t, primario, secundario) for t in line_df["text"]] top, second = sorted(scores, reverse=True)[:2] # La señal es del ladrillo de recuperación salida propia: una puntuación máxima alta con un # margen claro significa una línea respondida; una puntuación fija significa que no fue así. confident = top >= min_score y (top – second) >= min_margin # "fast" omite el modelo. "completo" ejecuta el árbitro y la generación. devolver "rápido" si está seguro de lo contrario "completo"
El umbral no es una constante universal. Lo que se considera un margen de confianza depende del dominio: el vocabulario que utiliza una aseguradora, qué plantilla tienen las preguntas, cuántas líneas abarca una respuesta típica. Ese es el límite honesto de esta técnica. La señal es barata y general, pero el límite es una decisión empresarial, ajustada por corpus a un conjunto etiquetado de la misma manera que el Artículo 20 (evaluación) mide cada dos ladrillos. Lo que viaja es la forma: lea la confianza que el ladrillo de recuperación ya calculó y gaste el modelo solo cuando sea baja.
Esto también se compone con el despachador del Artículo 6C (enviando la pregunta analizada: estrategia de fragmentos, nivel de modelo, activaciones). El despachador ya decide, por pregunta, qué ladrillos activar. La ruta es una activación más: un indicador skip_spawn que el despachador establece cuando el margen de la palabra clave borra la barra, junto con los que ya establece para la estrategia de fragmentos y el nivel de modelo. El enrutador no es una nueva etapa: es el despachador que aprende a decir "este no necesita el modelo".
4. Qué ahorra: dos segundos o nada
El ahorro es el objetivo, así que mídelo. El camino rápido es determinista: calificar las líneas, leer el margen, devolver una respuesta. Temporizada en el corpus del corredor, toda la decisión de enrutamiento se ejecuta en aproximadamente 0,1 milisegundos, sin ninguna llamada de red.
El proceso completo consta de tres llamadas de modelos alojados en serie. El análisis de preguntas, el árbitro de recuperación y la generación cuestan cada uno de unos cientos de milisegundos a más de un segundo, y se ejecutan uno tras otro. Para una pregunta sencilla que suma aproximadamente dos segundos en los que el usuario mira una ruleta, para devolver un número, una coincidencia de palabra clave ya había aislado.
Dos segundos frente a una décima de milisegundo es un orden de magnitud diferente, no una ganancia de sintonización, y se refiere exactamente a las preguntas que más hacen los usuarios: las simples y basadas en plantillas. El lado de los costos se mueve en la misma dirección. Cada pregunta enviada son tres llamadas modelo no facturadas, y en un servicio de soporte que ejecuta las mismas cincuenta preguntas con plantilla en diez mil contratos, esas preguntas fáciles representan la mayor parte del tráfico. Por lo tanto, el camino rápido es tanto gratuito como rápido.
5. Indicadores, no un modelo más grande
El margen es un indicador. Es el más barato y soluciona los casos limpios, pero no es la optimización completa. Hacer rápidamente un pipeline completo es una cuestión de encontrar, para cada decisión que el pipeline actualmente entrega a un modelo, una señal que lo decida sin él. Hay varios frentes y cada uno de ellos es un verdadero trabajo.
5.1 Los frentes
La respuesta que ya existe. La mayoría de las preguntas empresariales se repiten. Si una pregunta coincide con una ya respondida, en un documento que no ha cambiado, la respuesta está archivada: devuélvela, sin recuperación y sin modelo. El problema es el partido en sí. Decidir “esta es la misma pregunta” es su propia clasificación: normalice la redacción, compare las palabras clave, compare la inserción de la pregunta con un conjunto de preguntas anteriores y acepte solo un resultado cercano. Ese almacén es la base de preguntas con plantilla del Artículo 6C (enviar la pregunta analizada) y las tablas de corpus del Artículo 25 (el modelo de almacenamiento); el indicador los lee.
La recuperación que ya respondió. La señal que utiliza este artículo. Marque las líneas, y cuando uno lleva claramente la forma de la respuesta, se encuentra la respuesta y la generación no tiene nada más que hacer.
El tipo de pregunta, del diccionario de expertos. Para saber que una pregunta necesita una línea y no un párrafo, el canal necesita la forma de su respuesta, y hoy un modelo la lee. Pero para un concepto conocido la forma ya está escrita: el diccionario asigna prima a (único, cantidad). Busque el concepto y tendrá el tipo de manera determinista, sin modelo. Se deja el modelo para la pregunta genuinamente nueva que el diccionario nunca ha visto. Esto amplifica el traslado del experto al flujo de control: el diccionario del experto decide la ruta, no el LLM.
5.2 Dónde terminan los indicadores y comienza el agente
Dos fronteras se sitúan al borde de esto. La ingeniería completa de latencia y costo, los niveles de modelo pequeño, las cachés, la reducción de contexto, la transmisión y la medición del costo por consulta y la latencia de cola, se encuentra en el Artículo 21 (costo y latencia). Este artículo trabaja con la palanca más alta, sin nombrar el modelo, y apunta allí para el resto.
El otro límite es el RAG agente y cae en una línea precisa: quién toma la decisión de la ruta. Realizada mediante un indicador, una puntuación de palabra clave, un acierto de caché, una búsqueda en un diccionario, la decisión es determinista y pertenece a la ingeniería Vol.1 de la que forma parte este artículo. Hecho por el modelo, clasificando la intención y planificando los pasos, es lo que hace que un sistema sea agente. La continuación agente de esta serie lleva el mismo patrón determinista primero, de modelo sólo si es ambiguo, hasta un nivel superior, hasta elegir una herramienta en lugar de solo una ruta. Los dos no son rivales sino capas: los indicadores deterministas manejan la mayoría fácil de forma gratuita, y el agente es el respaldo para las preguntas que los indicadores no pueden clasificar. Crear indicadores que sean rápidos y, a menudo, solo reglas clásicas o un pequeño modelo entrenado, es la forma de mantener el agente y su latencia para los casos que realmente lo necesitan.
6. Conclusión
El reflejo cuando un oleoducto RAG se siente lento es buscar un modelo más rápido. La ganancia más barata y mayor es llamar menos al modelo. El bloque de recuperación ya calcula, de forma gratuita, una señal que separa las preguntas respondidas por una concordancia de palabras clave de aquellas que necesitan que el modelo razone: la puntuación de palabra clave más alta y su margen. Ruta por él. Envíe "¿cuál es la prima?", una línea con puntuación 5, directamente a un extractor determinista y conserve el modelo de "¿qué garantías puedo evitar en mi caso?", donde la puntuación fija es el canal que le indica que necesita ayuda.
El umbral es suyo para sintonizarlo, por corpus, con respecto a un conjunto etiquetado. El mecanismo es portátil, y es la misma lección en la que sigue aterrizando la serie: el trabajo de palabras clave del experto no es un recurso alternativo bajo el modelo, a menudo es la respuesta completa, y saber cuándo es suficiente es lo que mantiene el proceso rápido.
7. Lecturas adicionales y fuentes
Al principio de la serie:
Un canal de producción RAG para archivos PDF: análisis relacional, recuperación de TOC, respuestas escritas. La canalización mejorada que este artículo optimiza, ladrillo a ladrillo. Envío de la pregunta RAG analizada: estrategia de fragmentos, nivel de modelo, activaciones, auditoría. El despachador que el enrutador extiende con una activación para omitir el modelo. La recuperación es filtrado, no búsqueda: un modelo mental para RAG empresarial. De dónde viene co_occurrence_score: filtrado de palabras clave en line_df.
Fuentes
La idea en cascada, ejecutar etapas económicas primero y detenerse tan pronto como uno esté seguro, es la clásica cascada de detección de Viola y Jones (Detección rápida de objetos usando una cascada impulsada de características simples, CVPR 2001), aplicada aquí para modelar llamadas en lugar de ventanas de imágenes. FrugalGPT (Chen, Zaharia y Zou, arXiv:2305.05176, 2023) hace el mismo movimiento para las API de LLM: una cascada que consulta primero un modelo barato y escala solo cuando la respuesta barata no es segura. RouteLLM (Ong et al., arXiv:2406.18665, 2024) aprende un enrutador que envía consultas fáciles a un modelo pequeño y consultas difíciles a uno grande; la misma clasificación que este artículo aplica un paso antes, antes que cualquier modelo.
El tratamiento más amplio de costos y latencia es el Artículo 21 (costo y latencia).