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

AspectoRAGFine-tuning
Costo inicialBajo ($50-500)Alto ($500-5000+)
Tiempo setupHorasDías/semanas
Actualización de datosInmediata (agregar docs)Lento (re-entrenar)
HallucinationsReducidas (si búsqueda funciona)Reducidas pero no eliminadas
ExplicabilidadAlta (muestra fuentes)Baja (modelo es caja negra)
LatenciaAlta (2-5s)Baja (1-2s)
EscalabilidadEscala con docsEscala con modelo
Precisión en tareaMedia-altaAlta (si bien entrenado)

Ventajas y desventajas

RAG

Ventajas:

  1. Siempre actualizado: Agregar documento nuevo = inmediato
  2. Explicable: Muestra qué documentos usó
  3. Bajo costo inicial: Solo indexar docs
  4. No requiere expertise en ML: Implementar con LangChain/LlamaIndex
  5. Flexible: Cambiar vector DB, embeddings, LLM fácilmente

Desventajas:

  1. Latencia alta: Búsqueda + generación (2-5s)
  2. Dependencia de búsqueda: Si búsqueda falla, respuesta incorrecta
  3. Costo por query: Embedding + LLM cada vez
  4. Límite de contexto: Solo top-K chunks caben en prompt
  5. No aprende estilo: LLM no se adapta a tu tono/vocabulario

Fine-tuning

Ventajas:

  1. Menor latencia: Solo inferencia (1-2s)
  2. Aprende estilo: Modelo se adapta a tu tono/vocabulario específico
  3. Mayor precisión en tareas específicas: (ej: clasificación, extracción)
  4. No requiere búsqueda: Conocimiento "internalizado" en pesos

Desventajas:

  1. Costo alto: $500-5000+ por fine-tuning (según tamaño modelo)
  2. Tiempo lento: Días/semanas de entrenamiento
  3. Desactualización: Si datos cambian, re-entrenar
  4. No elimina hallucinations: Solo reduce frecuencia
  5. Menos explicable: No puedes ver qué "aprendió"
  6. Requiere expertise: Preparar datos, ajustar hiperparámetros

Casos de uso ideales

Usa RAG cuando:

  1. Datos cambian frecuentemente

    Ejemplo: Documentación de producto (se actualiza semanalmente)
    → RAG: Agregar nuevo doc = instantáneo
    
  2. Necesitas explicabilidad

    Ejemplo: Sistema legal/médico
    → RAG: Muestra qué artículo/paper citó
    
  3. Dataset grande y diverso

    Ejemplo: 10K documentos sobre múltiples temas
    → RAG: Busca solo lo relevante por query
    
  4. Presupuesto limitado

    Ejemplo: Startup temprana
    → RAG: $50-500 setup, $0.02/query
    
  5. Prototipo rápido

    Ejemplo: Validar idea en 1 semana
    → RAG: Implementar en horas/días
    

Usa Fine-tuning cuando:

  1. Tarea muy específica

    Ejemplo: Clasificar tickets de soporte en 20 categorías exactas
    → Fine-tuning: Modelo aprende patrones específicos
    
  2. Estilo/tono muy particular

    Ejemplo: Asistente que debe hablar como Shakespeare
    → Fine-tuning: Modelo internaliza estilo
    
  3. Datos NO cambian (o cambian lento)

    Ejemplo: Corpus histórico de literatura del siglo XIX
    → Fine-tuning: Conocimiento estático
    
  4. Latencia crítica

    Ejemplo: Chat en vivo con respuestas < 1 segundo
    → Fine-tuning: Solo inferencia (sin búsqueda)
    
  5. 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ónMétodo recomendado
Datos cambian frecuentementeRAG ✅
Tarea muy específica (clasificación, extracción)Fine-tuning ✅
Dataset grande (10K+ docs)RAG ✅
Dataset pequeño (500 ejemplos)Fine-tuning ✅
Necesitas explicabilidadRAG ✅
Latencia < 1s críticaFine-tuning ✅
Presupuesto limitado (< $1000)RAG ✅
Estilo/tono muy particularFine-tuning ✅
Prototipo rápido (días)RAG ✅
Producción con datos estáticosFine-tuning ✅
Múltiples dominios/temasRAG ✅
Dominio único y específicoFine-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.