Capítulo 2: ¿Por qué RAG? Problemas con los LLM puros
Introducción
Los modelos de lenguaje grande como GPT-4, Claude y Llama son increíblemente potentes, pero tienen limitaciones fundamentales que los hacen inadecuados para muchas aplicaciones empresariales sin algún tipo de aumento. Este capítulo explora estas limitaciones y muestra cómo RAG aborda cada una de ellas.
Las cuatro grandes limitaciones de los LLM
1. Alucinaciones
El problema: Los LLM pueden generar información falsa de manera convincente que suena plausible. Están entrenados para predecir el siguiente token, no para ser precisos en cuanto a hechos.
Usuario: "¿Quién ganó el Super Bowl 2024?"
LLM (sin RAG): "Los Kansas City Chiefs ganaron el Super Bowl 2024,
derrotando a los San Francisco 49ers 25-22."
¿Pero qué pasa si esto es incorrecto? El LLM no lo "sabe", solo predice.
Por qué ocurre:
- Los LLM son máquinas de probabilidad, no bases de datos de hechos
- Los datos de entrenamiento contienen errores y contradicciones
- No hay un mecanismo para verificar el contenido generado
Solución RAG:
# Con RAG, fundamentamos la respuesta en hechos recuperados
retrieved_doc = "Super Bowl LVIII (2024): Kansas City Chiefs derrotaron
a San Francisco 49ers 25-22 el 11 de febrero de 2024."
# Ahora el LLM tiene información verificada como referencia
response = llm.generate(
f"Basándose en este hecho: {retrieved_doc}, responda la pregunta..."
)
2. Límite de conocimiento
El problema: Los LLM tienen una fecha de corte de conocimiento: no saben sobre eventos posteriores a la recopilación de sus datos de entrenamiento.
| Modelo | Límite de conocimiento |
|---|---|
| GPT-4 | Septiembre 2023 |
| Claude 3 | Principios de 2024 |
| Llama 2 | Julio 2023 |
Impacto real:
Usuario: "¿Cuál es el precio actual de Bitcoin?"
LLM (sin RAG): "Hasta mi límite de conocimiento, Bitcoin cotizaba
alrededor de $30,000..."
❌ ¡Esto podría estar desactualizado por meses o años!
Solución RAG:
# Recuperar datos actuales de una fuente en vivo
current_price = retrieve_from_api("bitcoin_price")
# Resultado: {"price": 97500, "timestamp": "2024-12-23"}
# Ahora el LLM puede proporcionar información precisa y en tiempo real
response = llm.generate(
f"El precio actual de Bitcoin es ${current_price['price']}..."
)
3. Sin acceso a datos privados
El problema: Los LLM están entrenados con datos públicos. No tienen conocimiento de:
- Documentos internos de su empresa
- Datos privados de clientes
- Investigación propietaria
- Políticas y procedimientos internos
Impacto empresarial:
Empleado: "¿Cuál es nuestra política de vacaciones para empleados con más de 5 años?"
LLM (sin RAG): "No tengo acceso a las políticas específicas de su empresa..."
❌ ¡El LLM es inútil para consultas internas!
Solución RAG:
# Indexar documentos de la empresa en la base de conocimiento
knowledge_base.add_documents([
"Manual del Empleado 2024.pdf",
"Políticas de RRHH.docx",
"Guía de Beneficios.pdf"
])
# Ahora las consultas pueden responderse con datos privados
retrieved = knowledge_base.search("política de vacaciones 5 años antigüedad")
# Devuelve: "Los empleados con más de 5 años reciben 25 días de PTO..."
response = llm.generate(f"Según la política de la empresa: {retrieved}...")
4. Límites de tokens / ventanas de contexto
El problema: Los LLM tienen ventanas de contexto limitadas. Incluso GPT-4 con 128K tokens no puede procesar:
- Una base de datos completa de contratos legales
- Años de tickets de soporte al cliente
- Una base de código completa
Comparación de ventanas de contexto:
| Modelo | Ventana de contexto | ~Páginas de texto |
|---|---|---|
| GPT-3.5 | 4K tokens | ~3 páginas |
| GPT-4 | 8K-128K tokens | 6-100 páginas |
| Claude 3 | 200K tokens | ~150 páginas |
El problema matemático:
Su base de conocimiento: 10,000 documentos
Documento promedio: 5,000 tokens
Total: 50,000,000 tokens
¡Incluso los 200K de contexto de Claude 3 solo pueden contener el 0.4% de sus datos!
Solución RAG:
# En lugar de cargar todo, recupere solo los documentos relevantes
def smart_retrieval(query, knowledge_base):
# Solo recuperar los 5 documentos más relevantes
relevant_docs = knowledge_base.similarity_search(
query,
top_k=5 # ~25,000 tokens en vez de 50M
)
return relevant_docs
# Ahora usamos eficientemente la ventana de contexto
retrieved = smart_retrieval("política de vacaciones", kb) # ~5 documentos
response = llm.generate(f"Contexto: {retrieved}\n\nPregunta: ...")
Comparación lado a lado
Sin RAG
Problemas:
- Puede alucinar
- Limitado a los datos de entrenamiento
- Sin acceso a datos privados
- Riesgo de desbordamiento de contexto
Con RAG
Beneficios:
- Fundamentado en hechos
- Información en tiempo real
- Acceso a datos privados
- Uso eficiente del contexto
Comparación de costos
| Enfoque | Costo mensual* | Precisión | Actualidad |
|---|---|---|---|
| LLM puro | $500 | 70-80% | Estático |
| RAG | $700 | 90-95% | En tiempo real |
| Fine-tuning | $5,000+ | 85-90% | Estático |
*Estimado para un caso de uso empresarial con 10K consultas/día
Cuando RAG falla
RAG no es perfecto. Tenga en cuenta estos escenarios:
1. Fallos en la recuperación
Problema: Se recuperaron documentos incorrectos
Ejemplo: El usuario pregunta por "acciones de Apple" pero se recuperan documentos sobre manzanas (fruta)
Solución: Mejores embeddings, filtrado por metadatos, búsqueda híbrida
2. Mal uso del contexto
Problema: El LLM ignora o interpreta mal el contexto recuperado
Ejemplo: La política recuperada dice "30 días" pero el LLM responde "60 días"
Solución: Mejorar el prompt, contexto más pequeño, instrucciones explícitas
3. Base de conocimiento desactualizada
Problema: La base de conocimiento no está actualizada
Ejemplo: Los documentos tienen 6 meses de antigüedad, la información está obsoleta
Solución: Sincronización regular, actualizaciones automáticas, indicadores de actualidad
Tabla resumen
| Problema | Impacto | Solución RAG |
|---|---|---|
| Alucinaciones | Información falsa | Fundamentar en hechos recuperados |
| Límite de conocimiento | Respuestas desactualizadas | Conectar a datos recientes |
| Sin datos privados | No puede responder consultas internas | Indexar documentos de la empresa |
| Límites de tokens | No puede procesar grandes volúmenes de datos | Recuperación inteligente |
Puntos clave
- Los LLM tienen limitaciones fundamentales que impiden su adopción empresarial
- RAG resuelve los mayores problemas: alucinaciones, límite de conocimiento, datos privados, escalabilidad
- RAG es rentable en comparación con el fine-tuning
- RAG no es perfecto pero ofrece mejoras significativas
- Comprender las limitaciones ayuda a diseñar mejores sistemas
Próximos pasos
Continúe a Capítulo 3: Arquitectura de RAG para aprender sobre las tres fases de RAG.