C
Contextología
Workflows IA

Qué es LLM routing y cómo reducir costes un 70% sin perder calidad

22 de abril de 2025· 5 min read

No todas las consultas necesitan el mismo modelo. Una pregunta simple no necesita GPT-4o. Una análisis complejo no puede depender de Haiku.

LLM routing es la técnica de clasificar cada consulta y enviarla al modelo apropiado. Es una de las optimizaciones de mayor impacto en sistemas de IA a escala.

El problema que resuelve

Sin routing, tienes dos opciones malas:

  • Usar siempre el modelo potente: Funciona bien, pero pagas el precio premium por consultas simples que no lo necesitan
  • Usar siempre el modelo barato: Ahorras dinero, pero la calidad sufre en los casos difíciles

Con routing, tienes lo mejor de los dos mundos: el modelo barato para el 80% de los casos, el potente para el 20% que realmente lo necesita.

Cuánto puedes ahorrar

Un sistema sin routing que usa GPT-4o para todo: 100% del costo.

El mismo sistema con routing:

  • 70% de consultas → GPT-4o mini (~8x más barato)
  • 30% → GPT-4o

Costo resultante: ~35% del original. Un ahorro del 65%.

Los números exactos dependen de tu distribución de consultas, pero reducciones del 50-70% son habituales en sistemas reales.

Los 3 tipos de routing

1. Routing por reglas fijas

Clasificas tipos de consulta y asignas modelo fijo:

def route(query: str) -> str:
    if len(query) < 50 and "?" not in query:
        return "claude-haiku"  # Muy corta y simple
    if any(word in query.lower() for word in ["analiza", "compara", "diseña"]):
        return "claude-opus"   # Complejidad alta
    return "claude-sonnet"     # Default

Ventajas: Predecible, sin latencia extra, gratis. Limitaciones: Reglas heurísticas pierden muchos casos. No se adapta.

2. Routing por clasificador ligero

Usas un modelo pequeño (o un clasificador entrenado) para decidir la dificultad:

def classify_difficulty(query: str) -> str:
    response = llm_small(f"""
    Clasifica esta consulta como SIMPLE, MEDIA o COMPLEJA.
    SIMPLE: Preguntas de datos, hechos concretos, reformulaciones
    MEDIA: Análisis básico, resúmenes, comparaciones simples
    COMPLEJA: Razonamiento multi-paso, código difícil, decisiones
    
    Consulta: {query}
    Respuesta: solo una palabra
    """)
    return response.strip()

Ventajas: Más preciso que reglas, adapta al lenguaje. Limitaciones: Añade latencia y costo del clasificador (aunque mínimos con modelo pequeño).

3. Routing por LLM-as-router

Un LLM más sofisticado evalúa la consulta y decide. Más preciso pero más lento.

Útil solo si el costo del error de routing (enviar algo complejo al modelo equivocado) es alto.

Implementación práctica

Paso 1: Analiza tu distribución de consultas

Antes de implementar routing, analiza 1000 consultas reales de tu sistema:

  • ¿Qué porcentaje son preguntas simples de hecho?
  • ¿Qué porcentaje requieren razonamiento complejo?
  • ¿Cuáles son los patrones de consultas difíciles?

Esta distribución determina el potencial de ahorro y cómo diseñar el clasificador.

Paso 2: Define los niveles

No necesitas más de 3 niveles para la mayoría de sistemas:

NIVEL 1 — Modelo rápido/barato:
  - Preguntas de hecho directo
  - Reformulaciones simples
  - Clasificación de una sola etiqueta
  - Extracción de campos estructurados

NIVEL 2 — Modelo medio:
  - Resúmenes
  - Q&A con contexto
  - Análisis básicos
  - Generación de texto estándar

NIVEL 3 — Modelo potente:
  - Razonamiento multi-paso
  - Código complejo
  - Análisis de documentos largos
  - Decisiones con alta incertidumbre

Paso 3: Implementa con fallback

Si el modelo de nivel 1 devuelve baja confianza, redirige al siguiente nivel:

def route_with_fallback(query: str) -> dict:
    # Intenta con modelo ligero
    result = model_light(query)
    
    if result.confidence < 0.7:
        # Reintenta con modelo mejor
        result = model_heavy(query)
        
    return result

Paso 4: Mide la calidad del routing

El routing solo funciona si el clasificador es preciso. Mide:

  • Routing accuracy: ¿Qué % de consultas se envían al nivel correcto?
  • False negatives: Consultas difíciles enviadas al modelo equivocado (estas son caras)
  • False positives: Consultas simples enviadas al modelo caro (estas son el sobrecoste)

Paso 5: Optimiza el umbral

El umbral de confianza para subir de nivel es un parámetro que puedes ajustar:

  • Umbral alto: Más consultas van al modelo caro → más calidad, más costo
  • Umbral bajo: Más consultas en el modelo barato → menos costo, posible pérdida de calidad

Ajusta basándote en los resultados medidos en tu eval set.

Patrones avanzados

Routing por dominio

Además de dificultad, enruta por especialidad:

Consulta médica → Modelo con contexto médico
Consulta legal → Modelo con contexto legal
Consulta de código → Modelo optimizado para código

Routing por costo de error

Algunas respuestas incorrectas son mucho más costosas que otras. Una respuesta equivocada sobre medicación es peor que una respuesta equivocada sobre el clima.

Asigna un "costo de error" a diferentes tipos de consulta y usa eso como factor de routing, no solo la dificultad.

Cascading

En lugar de clasificar primero y ejecutar después, ejecuta en cascada:

  1. Intenta con modelo barato
  2. Si la respuesta supera el umbral de calidad: úsala
  3. Si no: ejecuta con modelo caro y usa esa respuesta

Más lento pero sin necesidad de clasificador separado.

Herramientas

  • LiteLLM — proxy que soporta múltiples modelos, facilita el switching
  • RouteLLM — librería específica de routing con varios clasificadores pre-entrenados
  • LangChain Router — routing basado en tipos de consulta
  • Implementación propia — para casos simples, un clasificador propio es suficiente

Cuándo implementar routing

Routing vale la pena cuando:

  • Tienes volumen: +50K llamadas/mes donde el ahorro es significativo
  • Tu distribución tiene variedad: Si todas tus consultas son igualmente complejas, el routing no ayuda
  • Tienes datos para medir: Necesitas saber si el routing empeora la calidad

Si estás en etapas tempranas, no optimices antes de tener el sistema funcionando. El routing es una optimización de fase 2.


Recursos relacionados:

Pon en práctica lo que has aprendido

Comparador de modelos LLM

Compara modelos para diseñar tu estrategia de routing.

Abrir herramienta gratuita →

Recibe lo mejor de Contextología

Diseño de contexto, agentes y workflows de IA directamente en tu correo.