El recorrido de Shopify hacia la estructuración de datos: de One-Shot LLM a una arquitectura agéntica basada en DSPy
(youtube.com)Shopify cambió de un enfoque One-Shot LLM a una arquitectura multiagente especializada basada en DSPy para convertir millones de datos de comercio no estructurados (páginas de tiendas, políticas, etc.) en datos estructurados. En este proceso, en lugar de usar modelos grandes del nivel de GPT-4/5, logró reducir los costos 75 veces y al mismo tiempo duplicar la calidad de extracción de datos al aprovechar modelos Qwen autoalojados (clase 32B/72B) y el optimizador Japa de DSPy. En particular, muestra que una estructura de subagentes especializada en propósitos concretos (detección de fraude, perfilado de tiendas, etc.) fue decisiva para mejorar el rendimiento, más que un agente único.
Análisis profundo (Deep Dive)
1. Contexto del problema: una avalancha de datos no estructurados
Shopify ofrece una flexibilidad extrema a los merchants. Eso significa que la estructura HTML, el idioma y la forma de presentar las políticas varían completamente de una tienda a otra. Incluso para preguntas simples como “¿Esta tienda vende teléfonos?” o “¿Cuál es la política de devoluciones?”, era muy difícil obtener respuestas estandarizadas a nivel de toda la empresa.
2. Evolución de la solución
- Etapa 1: One-Shot LLM (enfoque inicial)
- Se extraía el texto de las páginas principales de la tienda, se enviaba a GPT-4 (después 5) y se solicitaba la extracción del esquema.
- Límites: por las restricciones de la ventana de contexto, no se podían enviar todas las páginas (si faltaba la página de política de devoluciones, no era posible responder). A medida que se agregaban campos, el prompt se volvía frágil y el costo aumentaba de forma exponencial.
- Etapa 2: enfoque agéntico (Agentic) y adopción de DSPy
- En vez de darle todos los datos al LLM, se cambió a una estructura de agente ReAct con “herramientas” (Browsing, Investigation) que le permitían explorar la tienda y encontrar por sí mismo la información necesaria.
- En este proceso se introdujo DSPy para intentar una optimización programática en lugar del ajuste manual de prompts.
- Etapa 3: subagentes especializados (Specialized Sub-Agents)
- En vez de que un solo agente realizara todos los objetivos (fraude, impuestos, perfilado), se separó en tres agentes especializados.
- Fraud Agent: usa una herramienta de búsqueda en sitios externos de reseñas.
- Profile Agent: se enfoca en el parsing interno de políticas.
- Cada agente se optimiza de manera independiente mediante DSPy, lo que permite mejorar el rendimiento sin interferencia mutua.
3. Solución técnica: Eval Reliability & Snapshotting
Si el agente rastrea sitios web en tiempo real, cuando cambia el contenido del sitio se rompe la confiabilidad del dataset de evaluación (Golden Dataset). Para resolver esto, Shopify construyó un servicio de snapshots llamado “ShopNap”.
- Congela de forma estática el estado de la tienda en el momento del etiquetado (Frozen context).
- El optimizador de DSPy se ejecuta sobre este snapshot fijo, garantizando evaluaciones y entrenamiento reproducibles.
4. Arquitectura de infraestructura
Para un procesamiento eficiente, lo operan dividido en 3 capas.
- Batch Layer (Flink): gestiona más de 150 mil solicitudes diarias de procesamiento de tiendas.
- Agent Layer (Kubernetes): ejecuta la lógica de agentes, parsing de HTML y llamadas a herramientas sobre un clúster basado en CPU.
- LLM Layer (GPU Cluster): ofrece modelos Qwen autoalojados mediante vLLM y similares.
Datos clave y benchmarks
Estas son las cifras de comparación de rendimiento y costo antes y después del cambio de arquitectura, según Shopify.
| Ítem | One-Shot (estimado con GPT-5) | Agentic + DSPy + Qwen |
|---|---|---|
| Costo | Punto de referencia (alto) | reducido a 1/75 |
| Calidad | Punto de referencia | aprox. 2x (mejora del 100%) |
| Cobertura de tiendas | Parcial (limitada por costos) | todas las tiendas (Full Coverage) |
| Escalabilidad | Requiere revalidación completa al agregar nuevos campos | Se amplía fácilmente agregando subagentes |
Lecciones clave
- Monolithic vs specialized: cuanto más compleja es la tarea, más ventajosos son los subagentes con separación de responsabilidades (Separation of Concerns) frente a un agente único [21:59].
- Architecture over Tuning: más que corregir la redacción de prompts individuales, definir la arquitectura correcta del sistema y aplicar optimización automatizada (DSPy) garantiza un rendimiento sostenible [23:24].
- Small Models Win: en tareas de dominio específico, los modelos pequeños y medianos optimizados (autoalojados) pueden superar a los modelos grandes de propósito general tanto en costo-beneficio como en rendimiento [23:54].
1 comentarios
Siento que de vez en cuando escucho sobre DSPy, pero ¿hay más gente que lo haya usado? Me da curiosidad conocer sus experiencias.