Tienes un problema que tu LLM estándar no resuelve. Claude o GPT-4 manejan tareas básicas bien, pero para tu caso de uso específico —extraer datos de cláusulas contractuales, calificar ensayos de tu currículum o clasificar tickets de soporte al cliente con un 95% de precisión— el modelo estándar se desvía. Entonces, ahora eliges entre tres caminos: ajustar finamente el modelo, diseñar mejores prompts o construir un sistema RAG. Cada uno funciona. Cada uno falla por diferentes razones. La diferencia entre elegir bien y elegir mal es la diferencia entre lanzar esta semana y hundir tres meses en una solución que costó demasiado y funciona demasiado lento.
Conoce Qué Estás Intentando Arreglar Realmente
Antes de comprometerte con cualquier enfoque, diagnostica el problema real.
Ejecuta 20-30 ejemplos a través de tu modelo base. Guarda los fallos. Busca el patrón. ¿El modelo:
- ¿Alucina hechos que no conoce? RAG resuelve esto. El ajuste fino no.
- ¿Malinterpreta la terminología o la lógica específica de tu dominio? El ajuste fino o un prompt muy específico soluciona esto.
- ¿Olvida instrucciones a mitad de una respuesta larga? La ingeniería de prompts (estructura, optimización de tokens) soluciona esto. A veces RAG ayuda.
- ¿Comete errores descuidados en el formato o razonamiento que claramente entiende? La ingeniería de prompts casi siempre lo soluciona primero.
He visto equipos gastar $40k ajustando finamente un modelo para manejar alucinaciones cuando una capa RAG habría costado $800 y se habría lanzado en dos semanas. El diagnóstico precede a la prescripción.
Ingeniería de Prompts: Tu Primera Parada
Empieza aquí. Siempre.
La ingeniería de prompts es gratuita (en términos de cómputo), reversible y resuelve el 60% de los problemas que la gente cree que requieren ajuste fino. Un enfoque disciplinado toma cuatro horas, no cuatro semanas.
Aquí tienes un antes/después realista:
# Prompt malo
Extrae los términos clave del contrato de este documento:
{document_text}
Modo de fallo: El modelo elige términos aleatorios, omite fechas críticas, confunde fechas de entrada en vigor con fechas de terminación.
# Prompt mejorado
Eres un analista de contratos legales. Extrae solo los siguientes términos del contrato:
- Fecha de Entrada en Vigor (cuándo comienza el contrato)
- Fecha de Terminación (cuándo finaliza)
- Términos de Renovación (automática o manual)
- Monto de Pago (valor total del contrato)
- Calendario de Pagos (cuándo se realizan los pagos)
Para cada término:
1. Encuentra la referencia exacta de la cláusula (ej. "Sección 3.2")
2. Cita el texto relevante
3. Proporciona el valor extraído
4. Si un término no está presente, escribe "NO ENCONTRADO" — no adivines
Documento:
{document_text}
Análisis:
Mejor. No es magia — simplemente has eliminado la ambigüedad y añadido instrucciones explícitas para manejar datos faltantes. En la práctica, este enfoque reduce los errores de extracción en un 40-60% en tareas estructuradas. Usa prompts de anclaje (proporcionar al modelo el contexto que necesita) y cadena de pensamiento (hacer que el modelo muestre su trabajo) antes de pensar en el ajuste fino.
Cuando la ingeniería de prompts falla por sí sola: Has optimizado el prompt, lo has probado con más de 100 ejemplos y sigues obteniendo un 75% de precisión cuando necesitas un 95%. Esa es tu señal para pasar a la siguiente capa.
RAG: Para Conocimiento Que Tu Modelo No Tiene
RAG (Retrieval-Augmented Generation – Generación Aumentada por Recuperación) funciona alimentando al modelo con contexto relevante que no tiene en sus datos de entrenamiento. Le das una base de datos vectorial de tus documentos de dominio, y antes de cada respuesta, el sistema recupera los pasajes más relevantes.
Construye RAG cuando:
- Tu modelo necesita citar fuentes específicas o responder preguntas sobre tus datos propietarios
- Tu base de conocimiento cambia mensualmente (contratos, políticas, documentación de productos)
- Necesitas reducir las alucinaciones en preguntas fácticas
- Quieres que el modelo diga «No lo sé» en lugar de adivinar
Aquí tienes un ejemplo práctico en Python usando Claude y una función de recuperación simulada:
import anthropic
def retrieve_context(query: str) -> list[str]:
# En producción, esto consulta una base de datos vectorial (Pinecone, Weaviate, etc.)
# Para demostración, devolviendo documentos simulados
docs = {
"refund_policy": "Los reembolsos se permiten dentro de los 30 días posteriores a la compra.",
"shipping": "El envío estándar tarda de 5 a 7 días hábiles.",
}
return [docs[k] for k in docs if any(word in query.lower() for word in docs[k].lower().split())]
def rag_query(user_question: str) -> str:
client = anthropic.Anthropic()
# Recuperar documentos relevantes
retrieved_docs = retrieve_context(user_question)
context = "\n".join(retrieved_docs) if retrieved_docs else "No se encontraron documentos relevantes."
# Construir prompt con contexto
prompt = f"""Responde la pregunta usando ÚNICAMENTE el contexto proporcionado.
Si el contexto no contiene la respuesta, di 'No tengo esa información.'
Contexto:
{context}
Pregunta: {user_question}"""
message = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=1024,
messages=[{"role": "user", "content": prompt}]
)
return message.content[0].text
# Prueba
print(rag_query("¿Puedo devolver algo que compré la semana pasada?"))
# Salida: "Sí, según nuestra política de reembolsos, los reembolsos se permiten dentro de los 30 días posteriores a la compra."
Fortaleza de RAG: Es barato de mantener, maneja datos frescos sin reentrenamiento y reduce las alucinaciones en tareas fácticas en un 70-90%. Su debilidad: Solo ayuda si tu problema es la falta de conocimiento, no el razonamiento o el formato.
Ajuste Fino: Cuando lo Básico No Es Suficiente
El ajuste fino enseña a un modelo una nueva habilidad o un estilo consistente que no exhibe naturalmente. Esto cuesta tiempo y dinero — el ajuste fino de Anthropic (a marzo de 2025) cuesta $3 por 1M de tokens de entrada y $15 por 1M de tokens de salida, además del costo base de la API.
Ajusta finamente cuando:
- Necesitas que el modelo siga un formato de salida muy específico (estructura XML, JSON con claves exactas) de manera consistente
- El modelo necesita aprender razonamiento específico del dominio (ej. rúbricas de calificación que usa tu plataforma educativa)
- La ingeniería de prompts ha llegado a un punto de estancamiento — estás en un 85% de precisión y ahí te quedas
- Necesitas este comportamiento en 500+ llamadas a la API por mes (el beneficio costo se vuelve favorable)
El ajuste fino NO solucionará las alucinaciones. NO le enseñará al modelo hechos que no conoce. SÍ le enseñará patrones.
Aquí están las matemáticas de costos: Si ejecutas 1000 llamadas de inferencia/mes con Claude 3.5 Sonnet, cada llamada ~2000 tokens de salida, eso son 2B tokens/mes × $15/1M = $30/mes en costo de inferencia. La configuración del ajuste fino cuesta ~$100-300. El retorno de la inversión ocurre alrededor del mes 5 si el ajuste fino reduce la latencia o mejora la calidad de la salida lo suficiente como para omitir la revisión humana en el 30% de las respuestas. Por debajo de ese umbral, no vale la pena.
La Matriz de Decisión
| Problema | Primer Intento | Si Eso Falla |
|---|---|---|
| El modelo inventa hechos | RAG + prompt de anclaje | Actualizar modelo (GPT-4o vs Sonnet) |
| Formato de salida incorrecto | Prompt estructurado + ejemplos | Ajuste fino o modo JSON |
| Omite conceptos del dominio | Prompt few-shot + definiciones | Ajuste fino (150+ ejemplos etiquetados) |
| Olvida instrucciones a mitad de respuesta | Ingeniería de prompts (optimización de tokens) | Dividir tarea en pasos más pequeños |
| Lenta latencia de inferencia | Usar modelo más pequeño (Sonnet vs Opus) | Ajuste fino o modelo local (Mistral 7B) |
Qué Hacer Hoy
Toma tu caso de fallo más difícil — el que has estado pensando en ajustar finamente o en aplicar RAG. Ejecútalo primero con un prompt debidamente estructurado. Usa la plantilla de extracción de contratos anterior si es un problema de datos, o escribe un prompt de cadena de pensamiento si es un problema de razonamiento. Pruébalo con 20 ejemplos. Cuenta la precisión.
Si alcanzas un 90%+ de precisión solo con ingeniería de prompts, detente. Has terminado. Si te quedas atascado en 75-85%, diagnostica: ¿al modelo le falta conocimiento (RAG) o le falta una habilidad (ajuste fino)? Esa distinción te ahorrará semanas.