Por qué tu sistema RAG te está desangrando en costos (y cómo arreglarlo)
La mayoría de prototipos RAG cuestan $2-5 por consulta. Con 10,000 consultas diarias eso es $1.5M al año. Reduje costos de retrieval en un 99% en producción. Este es el playbook.
Por qué tu sistema RAG te está desangrando en costos (y cómo arreglarlo)
Tu prototipo RAG funciona. Responde preguntas, recupera contexto e impresiona en demos. Solo hay un problema: cuesta $2-5 por consulta, y con 10,000 usuarios diarios eso se convierte en $30,000 al mes. $360,000 al año. Por un solo feature. Eso no es un producto viable. Es una línea de presupuesto que matará tu proyecto en la próxima revisión.
Yo estuve ahí. Re-arquitecté un sistema RAG en producción y reduje el costo por consulta en un 99%. No fue magia. Fue disciplina de ingeniería, economía unitaria y un enfoque sistemático para entender a dónde va cada centavo.
Dónde se va el dinero
Una consulta RAG toca cuatro componentes facturables.
Embeddings -- la parte más barata. text-embedding-3-small cuesta $0.02 por 1M tokens. Donde los equipos pierden dinero: re-embeddean todo el corpus por cada documento actualizado, o usan 3072 dimensiones cuando 1024 daría el 95% de la calidad a un tercio del costo.
Almacenamiento vectorial -- Pinecone managed cuesta $70-150/mes por un millón de vectores; pgvector self-hosted es gratis si ya corres Postgres. El costo oculto no es almacenamiento, son las consultas: las bases managed cobran por operación de lectura.
Reranking -- Un cross-encoder puntúa candidatos contra tu consulta con más precisión que la similitud vectorial. Cuesta $0.001-0.005 por consulta, pero enviar 5 chunks relevantes en vez de 20 marginales al LLM reduce tokens de entrada un 75%.
Generación LLM (70-85% del costo) -- Una consulta naive que envía 20 chunks (~40,000 tokens) a Claude Sonnet cuesta ~$0.13. Eso 10,000 veces al día son $1,300 diarios. Con loops de agentes que hacen 3-5 llamadas LLM por interacción, el costo sube a $0.50-5.00 por consulta.
El playbook del 99%
No fue un solo truco. Fue el efecto compuesto de cuatro estrategias. Cada una entrega 30-70% de ahorro. Juntas, transforman.
Caché semántico
La optimización de mayor impacto. Los usuarios hacen preguntas similares. Un caché semántico almacena embeddings de consultas pasadas con sus respuestas. Si la nueva consulta supera el umbral de similitud (0.92-0.95), se devuelve al instante. Sin búsqueda vectorial. Sin reranking. Sin LLM. Costo: cero.
En producción logra 60-70% de hit rate en aplicaciones de dominio. Para soporte puede superar el 80%. Una capa de exact-match atrapa otro 5-10%. Implementación: Redis + un índice FAISS ligero. Costo de infra: menos de $20/mes.
Impacto: 65-75% de reducción en costos totales.
Optimización de chunks
La mayoría hereda chunks de 1,000 tokens con 200 de overlap de un tutorial y nunca lo revisa. Chunks más pequeños (300-500 tokens) reducen tokens de entrada al LLM un 50%. Chunking semántico en fronteras naturales mejora precisión de retrieval un 15-25%. Reducir dimensiones de 3072 a 512 con Matryoshka baja costos de almacenamiento un 80%.
Impacto: 40-60% de reducción en almacenamiento y generación.
Modelos por nivel
No toda consulta merece tu modelo más caro. Un clasificador ligero rutea: simples (60-70% del tráfico) a GPT-4o mini o Gemini Flash, 10-20x más baratos; complejas (20-30%) a Claude Sonnet o GPT-4o; críticas (5-10%) a Claude Opus. Si el 65% usa un modelo a $0.15/1M en vez de $3.00/1M, reduces el costo en ese segmento un 95%.
Impacto: 60-80% de reducción en inferencia LLM.
Batch processing y retrieval inteligente
Batch embedding fuera de pico con 50% de descuento vía Batch API. Retrievals precomputados para patrones predecibles (40-60% de consultas de dominio). Reranking condicional solo cuando la confianza es baja, eliminando reranking en 40-50% de consultas. Clasificador de intención que reduce búsqueda vectorial un 30-45%.
Impacto: 30-50% de reducción en infraestructura y embedding.
Números reales: antes y después
Sistema en producción, ~8,000 consultas diarias, documentación B2B.
Antes: $0.1552/consulta. $1,241.60/día. $37,248/mes. $446,976/año.
| Componente | Costo/consulta | |------------|---------------| | Embedding (large) | $0.0052 | | Búsqueda vectorial (Pinecone, 20 retrievals) | $0.0080 | | Reranking (50 candidatos, cada consulta) | $0.0040 | | LLM (Claude Sonnet, 40K contexto) | $0.1350 | | Infraestructura | $0.0030 |
Después: $0.0039/consulta. $31.20/día. $936/mes. $11,232/año.
| Componente | Costo/consulta | |------------|---------------| | Caché semántico + exact (68% hit rate) | $0.0000 | | Embedding (small, batch) | $0.0001 | | Búsqueda vectorial (pgvector, 5 retrievals) | $0.0005 | | Reranking condicional (40% de no cacheadas) | $0.0004 | | LLM (65% mini, 30% Sonnet, 5% Opus) | $0.0089 | | Infra (Redis + pgvector + monitoreo) | $0.0008 |
Reducción del 97.5%. El restante hasta 99%+ se logra con retrievals precomputados, gestión agresiva de TTL y ajuste continuo del clasificador.
Economía unitaria
Optimizar sin medir es adivinar. La regla:
- Producto SaaS: CPQ debe ser menor al 5% del ingreso mensual por usuario atribuido al feature de IA.
- Herramienta interna: CPQ debe generar ahorro de tiempo equivalente a 10x el costo de la consulta.
- Producto consumer: CPQ bajo $0.01 con ads, bajo $0.05 con suscripción.
Si tu costo por consulta no pasa estos umbrales, tu feature de IA es un centro de costo, no un producto.
El efecto compuesto
Las estrategias no son aditivas. Se componen:
Costo original: $0.1552/consulta
Después de caché (68% gratis): $0.1552 * 0.32 = $0.0497
Después de chunk optimization (-50%): $0.0497 * 0.50 = $0.0248
Después de model tiering (-70% generación): ~$0.0039
Esto es IA endurecida. No se trata de la demo más llamativa. Se trata de sistemas que sobrevivan la economía de producción, donde conoces tu economía unitaria al detalle y defiendes cada decisión con una hoja de cálculo.
Qué hacer ahora
- Instrumenta tu CPQ hoy. Si no conoces tu costo por consulta desglosado por componente, estás volando a ciegas.
- Despliega caché semántico esta semana. Mayor ROI, menor costo de implementación. Incluso una versión naive ahorra 40-50%.
- Audita tus tamaños de chunk. Corre evals de retrieval. Tus chunks son más grandes de lo necesario.
- Construye un clasificador de routing. Empieza simple. Un router por keywords que envíe consultas factuales a un modelo barato ya mueve la aguja.
Construí un curso completo sobre llevar sistemas RAG de prototipo a producción: capas de caché, frameworks de evaluación, routing de modelos y monitoreo para controlar costos a escala. Revisa el curso de ingeniería RAG si quieres el sistema completo.
Y si quieres ver un sistema RAG endurecido en acción, habla con mi IA. Corre sobre la arquitectura exacta que describí en este post. Me cuesta menos de un centavo por conversación.
Así se ve la IA viable.