Capítulo 2: Cuándo hacer Fine-Tuning vs Usar RAG
Tomar la decisión correcta para su caso de uso
Una de las decisiones más importantes en el desarrollo de aplicaciones con LLM es elegir entre fine-tuning, RAG (Retrieval-Augmented Generation) o simplemente prompt engineering. Cada enfoque tiene fortalezas distintas.
Los tres enfoques
1. Prompt Engineering
Elaborar cuidadosamente los prompts de entrada para obtener las salidas deseadas sin ningún entrenamiento.
2. RAG (Retrieval-Augmented Generation)
Recuperar contexto relevante de una base de datos e incluirlo en el prompt.
3. Fine-Tuning
Entrenar el modelo con sus propios datos para que internalice nuevos conocimientos o comportamientos.
Marco de decisión
Elija Fine-Tuning cuando:
| Escenario | Por qué funciona el Fine-Tuning |
|---|---|
| Enseñar un estilo o tono específico | El estilo se internaliza, no solo se imita |
| Formato de salida consistente | El modelo aprende profundamente la estructura |
| Terminología específica de dominio | La terminología se vuelve natural para el modelo |
| Tarea personalizada difícil de lograr con prompts | El entrenamiento proporciona un comportamiento más confiable |
| Reducir tamaño/costos del prompt | Los comportamientos están integrados, no dependen del prompt |
Elija RAG cuando:
| Escenario | Por qué funciona RAG |
|---|---|
| El conocimiento cambia frecuentemente | Solo actualice la base de datos |
| Necesita citas/fuentes | La recuperación proporciona trazabilidad |
| Base de conocimiento muy grande | No cabe en el contexto ni en el entrenamiento |
| Precisión factual crítica | Hechos recuperados vs hechos aprendidos |
| Privacidad/control de acceso | Controle qué contexto se recupera |
Elija Prompt Engineering cuando:
| Escenario | Por qué funciona el Prompting |
|---|---|
| Experimentación rápida | No se necesita infraestructura de entrenamiento |
| Cambios simples de formato | Ejemplos few-shot funcionan bien |
| Pocos casos de uso | Los prompts pueden cubrir cada caso |
| Presupuesto limitado | Sin costos de entrenamiento ni de vector DB |
| Requisitos que cambian rápidamente | Cambie el prompt en vez de reentrenar |
Comparación de costos
| Enfoque | Costo de configuración | Costo por consulta | Mantenimiento |
|---|---|---|---|
| Prompting | Bajo | Alto (prompts largos) | Bajo |
| RAG | Medio | Medio | Medio (actualización de BD) |
| Fine-Tuning | Alto | Bajo (prompts más cortos) | Alto (reentrenamiento) |
El fine-tuning se vuelve rentable a escala. Si realiza millones de llamadas a la API, el ahorro por prompts más cortos suele justificar el costo del fine-tuning.
Enfoques híbridos
En la práctica, las mejores soluciones suelen combinar enfoques:
Fine-Tuning + RAG
# Fine-tune para estilo y formato
# Use RAG para recuperación de conocimiento
# 1. Recupere el contexto relevante
context = vector_db.search(query)
# 2. Use el modelo fine-tuned con el contexto recuperado
response = fine_tuned_model.generate(
f"Context: {context}\nQuery: {query}"
)
Ventajas:
- El modelo sabe cómo utilizar la información recuperada de manera efectiva
- Estilo y formato consistentes
- Conocimiento actualizado mediante recuperación
Fine-Tuning + Prompting
# Fine-tune para el comportamiento principal
# Prompt para variaciones
response = fine_tuned_model.generate(
f"Respond in a formal tone: {query}" # El prompt modifica el comportamiento fine-tuned
)
Análisis de casos de uso
Caso 1: Bot de soporte al cliente
| Requisito | Mejor enfoque |
|---|---|
| Voz y tono de la empresa | Fine-Tuning |
| Información de productos | RAG |
| Plantillas de respuesta | Fine-Tuning |
| Anuncios recientes | RAG |
| Reglas de escalamiento | Fine-Tuning |
Recomendación: Fine-tune para comportamiento + RAG para conocimiento
Caso 2: Análisis de documentos legales
| Requisito | Mejor enfoque |
|---|---|
| Terminología legal | Fine-Tuning |
| Referencias a jurisprudencia | RAG |
| Formato de citación | Fine-Tuning |
| Fallos recientes | RAG |
| Estructura de documentos | Fine-Tuning |
Recomendación: Fine-tune para lenguaje legal + RAG para la base de casos
Caso 3: Asistente de código
| Requisito | Mejor enfoque |
|---|---|
| Estilo de codificación | Fine-Tuning |
| Contexto del código de la empresa | RAG |
| APIs internas | RAG + Fine-Tuning |
| Mejores prácticas | Fine-Tuning |
| Documentación | RAG |
Recomendación: Enfoque híbrido para mejores resultados
Comparación técnica
Memoria y conocimiento
| Aspecto | Fine-Tuning | RAG |
|---|---|---|
| Capacidad de conocimiento | Limitada por el entrenamiento | Limitada por el tamaño de la BD |
| Actualización de conocimiento | Requiere reentrenamiento | Actualice la base de datos |
| Latencia | Rápido (sin recuperación) | Más lento (paso de recuperación) |
| Precisión | Puede alucinar | Fuentes citables |
| Escalabilidad | Mismo costo a escala | Los costos de BD crecen |
Cuando el conocimiento es importante
# RAG es mejor para consultas factuales
query = "What is our refund policy for Pro plan customers?"
# → Recuperar de la base de políticas
# Fine-tuning es mejor para patrones de comportamiento
query = "Respond to an angry customer about billing"
# → El modelo fine-tuned sabe el tono y enfoque adecuados
Errores comunes
❌ Fine-Tuning para conocimiento dinámico
"Hicimos fine-tuning de nuestro modelo con datos de la empresa, pero ya están desactualizados."
Solución: Use RAG para conocimiento que cambia, fine-tune para comportamiento.
❌ RAG para estilo/formato
"Nuestro sistema RAG recupera la información correcta pero las salidas son inconsistentes."
Solución: Fine-tune para estilo consistente, RAG para contenido.
❌ Sobre-ingeniería con Fine-Tuning
"Pasamos semanas haciendo fine-tuning cuando el prompting few-shot habría funcionado."
Solución: Comience con prompting, pase a fine-tuning solo si es necesario.
❌ Ignorar la opción híbrida
"Tuvimos que elegir entre RAG y fine-tuning."
Solución: Combine enfoques para mejores resultados.
Árbol de decisión
Ejemplo práctico: Construyendo un asistente médico
Requisitos:
- Usar terminología médica adecuada
- Referenciar guías de tratamiento actuales
- Citar fuentes para las recomendaciones
- Seguir formatos de respuesta compatibles con HIPAA
Solución:
# 1. Fine-tune para lenguaje y formato médico
model = load_finetuned_model("medical-assistant-v1")
# 2. RAG para guías y estudios actuales
guidelines = medical_db.search(patient_query)
# 3. Generación combinada
prompt = f"""
You are a medical assistant. Use the following current guidelines:
{guidelines}
Patient Query: {patient_query}
Respond using proper medical terminology and cite your sources.
"""
response = model.generate(prompt)
Puntos clave
✅ Fine-tuning es ideal para estilo, formato y comportamientos internalizados
✅ RAG es ideal para conocimiento dinámico y fuentes citables
✅ Prompting es ideal para iteración rápida y personalización sencilla
✅ Los enfoques híbridos suelen ofrecer los mejores resultados
✅ Considere los costos tanto de configuración como por consulta
✅ Adapte su enfoque a sus requisitos específicos
Próximos pasos
Ahora exploremos el panorama de métodos y herramientas de fine-tuning en Capítulo 3: Panorama del Fine-Tuning.
Comprobación rápida
Antes de continuar, asegúrese de poder responder:
- ¿Cuándo elegiría RAG en lugar de fine-tuning?
- ¿Cuáles son las compensaciones de costos entre los tres enfoques?
- ¿Cómo diseñaría un sistema de soporte al cliente usando ambos enfoques?