Módulo 7: RAG y Semantic Search
5. RAG vs Fine-tuning: Cuándo Usar Cada Uno
Descripción
RAG y fine-tuning son dos estrategias diferentes para adaptar LLMs a tu dominio. Esta cápsula compara ambas en profundidad: ventajas, limitaciones, costos, y matriz de decisión.
¿Qué es cada uno?
RAG (Retrieval-Augmented Generation)
Búsqueda en tiempo real + LLM base (no modificado)
Query → Buscar docs → Augment prompt → LLM genera
Fine-tuning
Re-entrenar LLM con tus datos específicos
Tus datos → Re-entrenamiento → LLM personalizado
Comparación completa
| Aspecto | RAG | Fine-tuning |
|---|---|---|
| Costo inicial | Bajo ($50-500) | Alto ($500-5000+) |
| Tiempo setup | Horas | Días/semanas |
| Actualización de datos | Inmediata (agregar docs) | Lento (re-entrenar) |
| Hallucinations | Reducidas (si búsqueda funciona) | Reducidas pero no eliminadas |
| Explicabilidad | Alta (muestra fuentes) | Baja (modelo es caja negra) |
| Latencia | Alta (2-5s) | Baja (1-2s) |
| Escalabilidad | Escala con docs | Escala con modelo |
| Precisión en tarea | Media-alta | Alta (si bien entrenado) |
Ventajas y desventajas
RAG
Ventajas:
- ✅ Siempre actualizado: Agregar documento nuevo = inmediato
- ✅ Explicable: Muestra qué documentos usó
- ✅ Bajo costo inicial: Solo indexar docs
- ✅ No requiere expertise en ML: Implementar con LangChain/LlamaIndex
- ✅ Flexible: Cambiar vector DB, embeddings, LLM fácilmente
Desventajas:
- ❌ Latencia alta: Búsqueda + generación (2-5s)
- ❌ Dependencia de búsqueda: Si búsqueda falla, respuesta incorrecta
- ❌ Costo por query: Embedding + LLM cada vez
- ❌ Límite de contexto: Solo top-K chunks caben en prompt
- ❌ No aprende estilo: LLM no se adapta a tu tono/vocabulario
Fine-tuning
Ventajas:
- ✅ Menor latencia: Solo inferencia (1-2s)
- ✅ Aprende estilo: Modelo se adapta a tu tono/vocabulario específico
- ✅ Mayor precisión en tareas específicas: (ej: clasificación, extracción)
- ✅ No requiere búsqueda: Conocimiento "internalizado" en pesos
Desventajas:
- ❌ Costo alto: $500-5000+ por fine-tuning (según tamaño modelo)
- ❌ Tiempo lento: Días/semanas de entrenamiento
- ❌ Desactualización: Si datos cambian, re-entrenar
- ❌ No elimina hallucinations: Solo reduce frecuencia
- ❌ Menos explicable: No puedes ver qué "aprendió"
- ❌ Requiere expertise: Preparar datos, ajustar hiperparámetros
Casos de uso ideales
Usa RAG cuando:
-
Datos cambian frecuentemente
Ejemplo: Documentación de producto (se actualiza semanalmente) → RAG: Agregar nuevo doc = instantáneo -
Necesitas explicabilidad
Ejemplo: Sistema legal/médico → RAG: Muestra qué artículo/paper citó -
Dataset grande y diverso
Ejemplo: 10K documentos sobre múltiples temas → RAG: Busca solo lo relevante por query -
Presupuesto limitado
Ejemplo: Startup temprana → RAG: $50-500 setup, $0.02/query -
Prototipo rápido
Ejemplo: Validar idea en 1 semana → RAG: Implementar en horas/días
Usa Fine-tuning cuando:
-
Tarea muy específica
Ejemplo: Clasificar tickets de soporte en 20 categorías exactas → Fine-tuning: Modelo aprende patrones específicos -
Estilo/tono muy particular
Ejemplo: Asistente que debe hablar como Shakespeare → Fine-tuning: Modelo internaliza estilo -
Datos NO cambian (o cambian lento)
Ejemplo: Corpus histórico de literatura del siglo XIX → Fine-tuning: Conocimiento estático -
Latencia crítica
Ejemplo: Chat en vivo con respuestas < 1 segundo → Fine-tuning: Solo inferencia (sin búsqueda) -
Dataset pequeño y estructurado
Ejemplo: 500 ejemplos de emails de ventas → Fine-tuning: Aprende patrones específicos
Combinación: RAG + Fine-tuning
¿Se pueden combinar? ¡Sí!
Arquitectura:
1. Fine-tune LLM con tu estilo/tono específico
2. Usar ese LLM fine-tuned como generador en RAG
→ Búsqueda (RAG) + Estilo personalizado (Fine-tuning)
Ejemplo:
Startup con:
- Documentación técnica (cambia semanalmente)
- Tono de marca muy específico (casual, amigable)
Solución:
1. Fine-tune GPT-3.5 con ejemplos de tu tono
→ LLM aprende estilo
2. RAG sobre documentación
→ Búsqueda siempre actualizada
3. LLM fine-tuned genera respuesta con tu estilo
Trade-off: Mayor complejidad y costo (ambos métodos).
Matriz de decisión
| Tu situación | Método recomendado |
|---|---|
| Datos cambian frecuentemente | RAG ✅ |
| Tarea muy específica (clasificación, extracción) | Fine-tuning ✅ |
| Dataset grande (10K+ docs) | RAG ✅ |
| Dataset pequeño (500 ejemplos) | Fine-tuning ✅ |
| Necesitas explicabilidad | RAG ✅ |
| Latencia < 1s crítica | Fine-tuning ✅ |
| Presupuesto limitado (< $1000) | RAG ✅ |
| Estilo/tono muy particular | Fine-tuning ✅ |
| Prototipo rápido (días) | RAG ✅ |
| Producción con datos estáticos | Fine-tuning ✅ |
| Múltiples dominios/temas | RAG ✅ |
| Dominio único y específico | Fine-tuning ✅ |
Comparación de costos (1 año)
Escenario: Sistema de Q&A interno
RAG:
Setup: $200 (indexación inicial)
Queries: 10K/mes × $0.02 = $200/mes
Vector DB: $70/mes (Pinecone Starter)
Total año 1: $200 + ($270 × 12) = $3440
Fine-tuning:
Setup: $2000 (fine-tuning GPT-3.5)
Re-training: $2000 × 4 (cada 3 meses) = $8000
Inferencia: 10K/mes × $0.002 = $20/mes
Total año 1: $10,000 + ($20 × 12) = $10,240
Resultado: RAG es 3x más barato en este escenario.
Resumen
Puntos clave:
- RAG: Actualización inmediata, explicable, bajo costo inicial
- Fine-tuning: Aprende estilo, menor latencia, mayor costo
- Decisión: Depende de frecuencia de actualización, presupuesto, latencia
- Combinación: RAG + Fine-tuning para lo mejor de ambos mundos
Próxima cápsula: 06-rag-limitations.md — Problemas comunes y soluciones.