- Einführung von „Structured Outputs“ in der API
- Neue Funktion, mit der Modellausgaben exakt dem von Entwicklerinnen und Entwicklern bereitgestellten JSON-Schema entsprechen
- Auf der DevDay im letzten Jahr wurde zwar der JSON-Modus vorgestellt, dieser garantierte jedoch keine Antworten passend zu einem bestimmten Schema
- Strukturierte Ausgaben beschränken die Modellausgabe auf das von Entwicklern bereitgestellte Schema und trainieren das Modell darauf, komplexe Schemata besser zu verstehen
- Warum strukturierte Ausgaben nötig sind
- Das Erzeugen strukturierter Daten aus unstrukturierten Eingaben ist einer der zentralen Anwendungsfälle von KI
- Mit der OpenAI API lassen sich vielfältige Aufgaben umsetzen, darunter Data Retrieval, Fragebeantwortung, Datenextraktion und der Aufbau mehrstufiger Workflows
- Bisher waren Open-Source-Tools, Prompts, Retries und ähnliche Maßnahmen nötig, um Modellausgaben in ein mit Systemen interoperables Format zu bringen
- Strukturierte Ausgaben lösen dieses Problem, indem sie die Modellausgabe auf das von Entwicklern bereitgestellte Schema begrenzen
- Leistungsbewertung
- In einer Bewertung zur Einhaltung komplexer JSON-Schemata erreichte das Modell
gpt-4o-2024-08-06 100 %
- Das Modell
gpt-4-0613 erzielte weniger als 40 %
- Verwendung strukturierter Ausgaben
- Strukturierte Ausgaben über Function Calling: In der Funktionsdefinition
strict: true setzen
- Verfügbar für Modelle, die alle Tools unterstützen
- Sichere strukturierte Ausgaben
- Entsprechen den bestehenden Sicherheitsrichtlinien von OpenAI
- Das Modell kann unsichere Anfragen ablehnen
- API-Antworten enthalten einen Ablehnungs-Stringwert, sodass sich programmatisch erkennen lässt, ob das Modell eine Ablehnung erzeugt hat
- Native SDK-Unterstützung
- Die Python- und Node-SDKs unterstützen strukturierte Ausgaben nativ
- Durch Übergabe von Pydantic- oder Zod-Objekten werden diese in JSON-Schemata umgewandelt, und JSON-Antworten werden automatisch serialisiert und geparst
- Einschränkungen
- Es wird nur ein Teil von JSON Schema unterstützt
- Bei der ersten API-Antwort mit einem neuen Schema tritt zusätzliche Latenz auf
- Das Modell kann unsichere Anfragen ablehnen
- Nicht kompatibel mit parallelem Function Calling
- Strukturierte Ausgaben fallen nicht unter Zero Data Retention (ZDR)
- Verfügbarkeit
- Strukturierte Ausgaben sind in der API allgemein verfügbar
- Strukturierte Ausgaben über Function Calling sind für alle Modelle verfügbar, die Function Calling unterstützen
- Die Option für das Antwortformat ist in den neuesten Modellen verfügbar
Zusammenfassung von GN⁺
- Die neue Funktion „Structured Outputs“ von OpenAI sorgt dafür, dass Modellausgaben exakt zu einem JSON-Schema passen
- Entwicklerinnen und Entwickler können damit Aufgaben wie Data Retrieval, Fragebeantwortung und Datenextraktion zuverlässiger umsetzen
- Native Unterstützung in den Python- und Node-SDKs erleichtert die Entwicklung
- Es gibt weitere Anwendungsfälle, etwa das Extrahieren strukturierter Daten aus unstrukturierten Daten
- Mithilfe von Constrained Decoding werden Modellausgaben eingeschränkt, sodass nur gültiges JSON erzeugt wird
2 Kommentare
Eine interessante Funktion.
Hacker-News-Kommentare
Aufbau dynamischer UIs und Code mit GPT-4o
Wichtige Änderungen in gpt-4o-2024-08-06
Erfahrungen mit den Structured Outputs von Outlines in vLLM
Meinungen zur AI-Leistung
Meinungen zum Ansatz von OpenAI
Verwirrung über die Option
strict: trueDie Meinung, dass das Hardcoding von JSON ins Modell der AGI-Zielsetzung entgegenläuft
Bedenken hinsichtlich des Lock-in-Effekts bei der Nutzung von OpenAI-Funktionen
Hinweis auf einen JSON-Formatfehler
Zweifel daran, warum die oberste Ebene ein Objekt sein muss