Strukturierte Ausgabe
Strukturierte Ausgabe ist die Ausgabe eines Sprachmodells, die einem bestimmten, vordefinierten Format folgt (meist JSON, das einem definierten Schema entspricht) anstelle von Freitext. Durch das Einschränken der Antwortform macht die strukturierte Ausgabe die Modellausgabe für Software leichter analysierbar und verwertbar, ohne fehleranfällige Bereinigungslogik.
Kurz gesagt: Die strukturierte Ausgabe formt eine LLM-Antwort in ein festes Format (in der Regel JSON), sodass Anwendungen sie zuverlässiger verarbeiten können als reinen Text.
Wie strukturierte Ausgabe funktioniert
Das Ziel besteht darin, die Antwort des Modells an eine Struktur anzupassen, die das empfangende Programm bereits erwartet:
- Ein Schema definieren: Der Entwickler legt die Antwortform fest (häufig ein JSON-Schema, einschließlich Feldnamen, Typen und Pflichtfeldern.
- Es mit der Anfrage übergeben: Das Schema wird zusammen mit dem Prompt einbezogen.
- Generierung einschränken: In Systemen, die schemabewusstes Decoding unterstützen, werden ungültige Token-Pfade während der Generierung reduziert, sodass die Ausgaben zum Schema hingeführt werden.
- Strukturierte Daten zurückgeben: Die Antwort wird in einer maschinenlesbaren Form zurückgegeben, die die Anwendung direkt analysieren kann, wodurch die Abhängigkeit von fehleranfälligem Text-Parsing (zum Beispiel Regex-Extraktion) verringert wird.
Im Vergleich zu einem grundlegenden “JSON-Modus”, der nur syntaktisch gültiges JSON sicherstellt, ist die schema-erzwungene strukturierte Ausgabe darauf ausgelegt, die Konformität mit einer angeforderten Struktur zu erhöhen. In der Produktion sollten Anwendungen Antworten dennoch validieren und Edge-Cases wie Ablehnungen, Trunkierungen oder Transport-/Laufzeitfehler behandeln.
Strukturierte Ausgabe im Vergleich zu Funktionsaufruf und JSON-Modus
- JSON-Modus stellt sicher, dass die Ausgabe gültiges JSON ist, jedoch nicht unbedingt an einem bestimmten Schema ausgerichtet; die strukturierte Ausgabe zielt auf eine bestimmte Feld-/Typstruktur ab.
- Funktionsaufruf lässt das Modell einen strukturierten Tool-/Funktionsaufruf ausgeben; die strukturierte Ausgabe formt die direkte Antwort des Modells. Beide sind eng miteinander verbunden, da sowohl Funktionsaufruf als auch strukturierte Ausgabe häufig schema-eingeschränktes JSON verwenden.
- Freie Generierung gibt Fließtext zurück, der für Menschen gedacht ist; die strukturierte Ausgabe gibt Daten zurück, die für Programme gedacht sind.
Wo strukturierte Ausgabe verwendet wird
- Datenextraktion: Umwandeln von unstrukturiertem Text in typisierte Felder wie Namen, Daten und Beträge. Dies ist eng mit der Entitätsextraktion verbunden.
- Zuverlässige Integrationen: Übergeben der Antwort eines LLM an einen Datenbankschreibvorgang, einen API-Aufruf oder einen nachgelagerten Schritt mit weniger Parsing-Mehrdeutigkeit.
- Agentische Workflows: Erzeugen strukturierter Entscheidungen und Parameter, die ein Agent bei jedem Schritt benötigt.
- Such- und Retrieval-Pipelines: Generieren strukturierter Retrieval-Eingaben oder Umformen abgerufener Daten in einen nachgelagerten API-Vertrag.
Viele führende Modellanbieter bieten inzwischen Funktionen für strukturierte Ausgabe an, wobei Fähigkeiten und Garantien je nach Anbieter und Endpunkt variieren.
Strukturierte Ausgabe ist am nützlichsten, wenn die Modellausgabe von Software verarbeitet und nicht direkt von einer Person gelesen wird.
Verwandte Begriffe
Funktionsaufruf, JSON-Schema, JSON-Modus, großes Sprachmodell (LLM), Entitätsextraktion, Tool-Nutzung, Retrieval-Augmented Generation (RAG), API, agentische Suche.