- Se introduce "Structured Outputs" en la API
- Una nueva función que hace que la salida del modelo coincida exactamente con el esquema JSON proporcionado por el desarrollador
- El año pasado, en DevDay, se presentó el modo JSON, pero no garantizaba respuestas ajustadas a un esquema específico
- Las salidas estructuradas restringen la salida del modelo para que se ajuste al esquema proporcionado por el desarrollador y entrenan al modelo para comprender mejor esquemas complejos
- Necesidad de las salidas estructuradas
- Generar datos estructurados a partir de entradas no estructuradas es uno de los casos de uso clave de la IA
- Con la API de OpenAI se pueden realizar diversas tareas, como recuperación de datos, respuesta a preguntas, extracción de datos y construcción de flujos de trabajo de varios pasos
- Antes era necesario recurrir a herramientas de código abierto, prompts, reintentos, etc., para intentar ajustar la salida del modelo a un formato interoperable con los sistemas
- Las salidas estructuradas resuelven este problema al limitar la salida del modelo según el esquema proporcionado por el desarrollador
- Evaluación de rendimiento
- En una evaluación de seguimiento de esquemas JSON complejos, el modelo gpt-4o-2024-08-06 obtuvo una puntuación de 100%
- El modelo gpt-4-0613 obtuvo una puntuación inferior al 40%
- Cómo usar las salidas estructuradas
- Salidas estructuradas mediante function calling: configurar
strict: true dentro de la definición de la función
- Disponible en modelos que admiten herramientas
- Salidas estructuradas seguras
- Cumplen con las políticas de seguridad existentes de OpenAI
- El modelo puede rechazar solicitudes inseguras
- La respuesta de la API incluye un valor de cadena de rechazo, lo que permite detectar de forma programática si el modelo generó un rechazo
- Soporte nativo en SDK
- Los SDK de Python y Node admiten salidas estructuradas de forma nativa
- Es posible proporcionar objetos de Pydantic o Zod para convertirlos a esquemas JSON y serializar y analizar automáticamente las respuestas JSON
- Limitaciones
- Solo se admite una parte de JSON Schema
- Puede haber latencia adicional en la primera respuesta de la API con un esquema nuevo
- El modelo puede rechazar solicitudes inseguras
- No es compatible con llamadas de función en paralelo
- Las salidas estructuradas no están cubiertas por Zero Data Retention (ZDR)
- Disponibilidad
- Las salidas estructuradas están disponibles de forma general en la API
- Las salidas estructuradas mediante function calling están disponibles en todos los modelos que admiten function calling
- La opción de formato de respuesta está disponible en los modelos más recientes
Resumen de GN⁺
- La nueva función de OpenAI, salidas estructuradas, permite que la salida del modelo coincida exactamente con un esquema JSON
- Con esto, los desarrolladores pueden realizar con mayor confiabilidad tareas como recuperación de datos, respuesta a preguntas y extracción de datos
- Tiene soporte nativo en los SDK de Python y Node, lo que facilita el desarrollo
- También existen varios casos de uso adicionales, como extraer datos estructurados de datos no estructurados
- Usa técnicas de decodificación restringida para limitar la salida del modelo y generar únicamente JSON válido
2 comentarios
Qué función tan interesante.
Comentarios en Hacker News
Se usa GPT-4o para construir UI dinámicas y código
Cambios principales de gpt-4o-2024-08-06
Experiencia usando Outlines Structured Output de vLLM
Opiniones sobre el rendimiento de la IA
Opiniones sobre el enfoque de OpenAI
Confusión sobre la opción
strict: trueOpinión de que hardcodear JSON en el modelo va en dirección opuesta al objetivo de AGI
Preocupación por el efecto de bloqueo al usar funciones de OpenAI
Observación sobre errores de formato JSON
Duda sobre por qué el nivel superior debe ser un objeto