El problema fundamental que aborda este artículo es la fragilidad y el alto coste de mantener la calidad de los juicios de relevancia basados en Large Language Models (LLMs) en sistemas distribuidos a escala de hyperscaler. La dependencia de prompts ajustados manualmente para modelos específicos genera un cuello de botella significativo: cada cambio de modelo, o incluso una pequeña edición del prompt, introduce el riesgo de regresiones no deseadas y un alto coste operativo. La tesis central es que la optimización sistemática de prompts, tratada como un problema de optimización con un objetivo medible, puede transformar este proceso manual y propenso a errores en un bucle de mejora repetible y escalable.
Históricamente, la evaluación de relevancia ha sido un componente crítico en sistemas de recuperación de información, desde los primeros motores de búsqueda hasta los sistemas de recomendación modernos. Con la llegada de los LLMs, la capacidad de "razonar" sobre la relevancia ha abierto nuevas vías, pero también ha introducido desafíos operativos. La necesidad de adaptar estos jueces de relevancia a diferentes modelos, con diferentes presupuestos de latencia y coste, sin sacrificar la calidad, es un imperativo para la viabilidad a largo plazo de productos como Dropbox Dash. Este enfoque se alinea con la evolución de la ingeniería de software hacia la automatización de tareas que tradicionalmente requerían intervención humana experta, aplicando principios de optimización iterativa a un dominio emergente.
Arquitectura del Sistema
El sistema de juicio de relevancia en Dropbox Dash se basa en un LLM que, dada una consulta y un documento candidato, asigna una puntuación de relevancia de 1 a 5. La arquitectura clave aquí no es la del LLM en sí, sino la del marco de optimización que lo rodea: DSPy. DSPy opera como un meta-optimizador que toma un programa LLM (el juez de relevancia), un dataset de entrenamiento (juicios humanos anotados) y una métrica de evaluación (Normalized Mean Squared Error - NMSE, y fiabilidad estructural del JSON de salida).
El proceso de optimización con DSPy, específicamente utilizando el optimizador GEPA (Generative Pre-trained Agent), funciona en un bucle de reflexión. Primero, el programa LLM se ejecuta sobre el dataset de evaluación. Luego, GEPA analiza las discrepancias entre las puntuaciones del modelo y las puntuaciones humanas, generando feedback estructurado. Este feedback no es solo una puntuación agregada, sino una explicación textual de por qué el modelo falló, combinando la magnitud y dirección del error con las explicaciones humanas y el razonamiento del modelo. Este feedback se utiliza para revisar iterativamente el prompt del LLM, buscando variantes que mejoren el rendimiento en la métrica definida. Se implementan guardrails explícitos para evitar el overfitting (ej. copiar palabras clave específicas) y asegurar que los parámetros fundamentales de la tarea (ej. rango de puntuación 1-5) permanezcan estables. Para modelos de producción críticos como o3, se utiliza una "instruction library" donde DSPy selecciona y combina reglas de instrucción predefinidas, permitiendo mejoras incrementales y controladas en lugar de reescrituras completas del prompt.
Bucle de Optimización de Juez de Relevancia con DSPy
- 1 Definir Tarea Especificar la tarea del LLM (ej. puntuar relevancia 1-5), dataset y métrica ...
- 2 Ejecutar LLM Juez El LLM procesa query-document pairs y genera puntuaciones y explicaciones.
- 3 Evaluar Discrepancias Comparar puntuaciones del LLM con juicios humanos y verificar formato JSON.
- 4 Generar Feedback GEPA Crear feedback textual estructurado sobre errores, incluyendo explicaciones h...
- 5 Revisar Prompt DSPy ajusta el prompt del LLM basándose en el feedback, aplicando guardrails.
- 6 Repetir El ciclo se repite hasta alcanzar el objetivo de rendimiento o convergencia.
| Capa | Tecnología | Justificación |
|---|---|---|
| compute | Large Language Models (LLMs) | Núcleo del juez de relevancia, asignando puntuaciones a pares query-document. Se utilizan modelos propietarios (OpenAI o3) y open-weight (gpt-oss-120b, gemma-3-12b). |
| data-processing | DSPy | Framework de optimización sistemática de prompts. Permite definir tareas, métricas y datasets para adaptar LLMs a objetivos específicos, automatizando la ingeniería de prompts. Utiliza el optimizador GEPA para generar feedback estructurado y el bucle de reflexión. |
| data-processing | NMSE (Normalized Mean Squared Error) | Métrica principal para cuantificar el desacuerdo entre las puntuaciones del LLM y las puntuaciones humanas de relevancia. Normalizado a un rango de 0-100. |
Trade-offs
Ganancias
- ▲ Reducción de NMSE (alineación con humanos)
- ▲▲ Reducción de errores de formato (fiabilidad operativa)
- ▲ Reducción del tiempo de adaptación de modelos
- ▲▲ Reducción de costes de inferencia
- ▲▲ Aumento de la capacidad de generación de datos de entrenamiento
Costes
diff = predicted_rating - expected_rating
direction = "higher" if diff > 0 else "lower"
feedback_parts = [
f"Predicted rating {int(predicted_rating)} but expected {int(expected_rating)}.",
f"Model rated {abs(diff):.0f} point(s) {direction} than the expected human rating.",
]
# Include human explanation if available
if gold.explanation:
feedback_parts.append(f"Human rationale: {gold.explanation}")
# Include model's explanation for comparison
if pred.explanation:
feedback_parts.append(f"Model's reasoning: {pred.explanation}")
feedback_parts.append(
"Remember: when adapting the prompt, avoid overfitting to specific\nexample(s). Do not include exact examples or keywords from them in the prompt.\nAlso ensure you do not change the basic parameters of the task (e.g. changing the\nrating range to be anything but 1-5). Try to add a general rule to an execution\nplan to rate similar documents in the future."
)
feedback = "\n".join(feedback_parts)Fundamentos Teóricos
Este trabajo se conecta directamente con los fundamentos de la recuperación de información y el aprendizaje automático. La evaluación de la relevancia, medida aquí por NMSE contra juicios humanos, es un problema clásico en Information Retrieval (IR), donde métricas como la precisión, el recall, F1-score o NDCG (Normalized Discounted Cumulative Gain) se utilizan para cuantificar la calidad de los resultados de búsqueda. La idea de un "juez" automatizado que emula el juicio humano se remonta a los primeros sistemas expertos y, más recientemente, a los modelos de aprendizaje automático para ranking.
La optimización iterativa de prompts y la generación de feedback estructurado recuerdan a los principios de la optimización basada en gradientes, donde un modelo ajusta sus parámetros en función de un error medido. Aunque DSPy no ajusta los pesos internos del LLM, sí optimiza su "interfaz" (el prompt) de manera sistemática. El concepto de "reflexión" y "auto-corrección" en sistemas de IA tiene raíces en trabajos sobre meta-aprendizaje y sistemas cognitivos, donde un agente no solo realiza una tarea sino que también evalúa su propio rendimiento y ajusta su estrategia. La necesidad de guardrails para evitar el overfitting y mantener la estabilidad de la tarea es un eco de los desafíos en el entrenamiento de modelos de Machine Learning, donde la regularización es clave para la generalización.