Generierung, Sampling und Ausgabeformate
Constrained Decoding
Heißt auch Grammar-Constrained Decoding.
Einschränkung zulässiger nächster Tokens anhand von Regeln oder Grammatik.
Constrained Decoding schränkt während der Erzeugung ein, welche Tokens überhaupt gewählt werden dürfen. Formal lässt sich die Texterzeugung dafür als Übergang zwischen Zuständen eines endlichen Automaten beschreiben, sodass sich reguläre Ausdrücke und Grammatiken durchsetzen lassen. Willard, Louf
Ungültiges wird unmöglich, nicht unwahrscheinlich
Der Unterschied zur Bitte im Prompt ist grundsätzlich. Hier wird nicht gehofft, dass die Form eingehalten wird; die Tokens, die sie verletzen würden, stehen nicht zur Auswahl. Eine schließende Klammer, die fehlen würde, kann nicht fehlen.
Umgesetzt wird das über einen Index über den Wortschatz, was den Zusatzaufwand gering hält. Serving-Systeme nutzen dafür verdichtete Automaten, um strukturierte Ausgaben schneller zu erzeugen. Zheng et al.: SGLang
So kannst du dir das vorstellen
Ein Formular, bei dem in das Datumsfeld nur Ziffern eingegeben werden können. Nicht weil jemand aufpasst, sondern weil die Tastatur dort nichts anderes annimmt. Das Bild erklärt den Unterschied zwischen Regel und Erzwingung.
Was es in der Praxis bedeutet
Wo Ausgaben maschinell weiterverarbeitet werden, spart dieses Verfahren die Behandlung kaputter Formate. Beim Selbstbetrieb ist es über die üblichen Bibliotheken verfügbar, bei Anbieterschnittstellen steckt es hinter den schemagebundenen Ausgabemodi.
Zwei Dinge sind zu beachten. Zu enge Vorgaben können die Antwortqualität beeinträchtigen, wenn das Modell in eine Form gezwungen wird, die zum Inhalt nicht passt. Und die Form sagt weiterhin nichts über die Richtigkeit der Werte.
Wo es verwechselt wird
Erzwungene Form ist keine erzwungene Wahrheit. Und das Verfahren ist kein Nachbearbeiten der Ausgabe, sondern greift währenddessen ein.
Verwandte Begriffe
Structured Output, JSON Schema, Logits Processor, JSON Mode, Decoding.