Constrained Decoding
Erfahre, wie eingeschränktes Dekodieren gültige JSON-Daten, Schemata, Grammatiken und Tool-Ausgaben erzwingt, um KI-Antworten sicherer, strukturierter und für Software leichter lesbar zu machen.
Eingeschränktes Dekodieren ist eine Inferenztechnik, die ein generatives Modell bei der Generierung jedes Tokens auf gültige Ausgaben beschränkt. Anstatt dem Modell zu erlauben, aus seinem gesamten Vokabular zu wählen, entfernt der Decoder Optionen, die eine Regel verletzen würden, wie etwa eine Liste erlaubter Labels, einen regulären Ausdruck, eine Grammatik oder ein JSON-Schema. Dies macht Modellantworten für Software einfacher und sicherer zu parsen, insbesondere wenn ein KI-System strukturierte Daten zurückgeben oder eine erlaubte Aktion auswählen muss.
Wie eingeschränktes Dekodieren funktioniert#
Ein autoregressives Sprachmodell generiert eine Sequenz Token für Token. Bei jedem Schritt weist das Modell möglichen nächsten Token Bewertungen zu, sogenannte Logits, und konvertiert sie normalerweise mithilfe von Softmax in Wahrscheinlichkeiten. Das eingeschränkte Dekodieren fügt einen zusätzlichen Filterschritt ein:
- Verfolge den bereits generierten Teil der Ausgabe.
- Bestimme, welche nächsten Token unter der Einschränkung gültig bleiben.
- Maskiere ungültige Token, sodass ihre Wahrscheinlichkeit Null wird.
- Wähle aus den verbleibenden gültigen Token aus oder sample daraus.
- Aktualisiere den Einschränkungsstatus und wiederhole den Vorgang.
Die Menge der gültigen Elemente ändert sich dynamisch. Nach der Generierung von {"status": " kann ein Schema beispielsweise nur Token zulassen, die "approved", "rejected" oder "review" vervollständigen können. Engines, die vLLM strukturierte Ausgaben anbieten, können Auswahlmöglichkeiten, reguläre Ausdrücke, Grammatiken und JSON-Schemata erzwingen, während Outlines JSON-Generierung Einschränkungen aus Schemata oder typisierten Python-Modellen ableiten kann.
Graphen-Einschränkungsdekodierung beschreibt Implementierungen, die gültige Sequenzen als Pfade durch einen Graphen oder Zustandsautomaten darstellen. Jedes generierte Token versetzt den Decoder in einen anderen Zustand, dessen ausgehende Kanten die nächsten gültigen Optionen definieren. Dieser Ansatz ist nützlich für Grammatiken, Entitätsbeziehungen und andere zustandsabhängige Regeln.
Verwandte Konzepte und wichtige Unterschiede#
Eingeschränktes Dekodieren ist eng mit mehreren KI-Konzepten verbunden, diese sind jedoch nicht austauschbar:
- Strukturierte Ausgaben: Das gewünschte Ergebnis, wie etwa ein Objekt mit erforderlichen Feldern und Datentypen. Eingeschränktes Dekodieren ist ein Mechanismus, der verwendet wird, um dieses Ergebnis zu erzielen. Dienste wie OpenAI strukturierte Ausgaben, Claude strukturierte Ausgaben und Gemini strukturierte Ausgaben stellen schemabasierte Steuerelemente bereit.
- JSON-Modus: Garantiert normalerweise eine gültige JSON-Syntax, erzwingt jedoch möglicherweise keine bestimmten Schlüssel, Typen oder erlaubten Werte. Schemagesteuertes Dekodieren zielt auf eine spezifische Struktur ab.
- Funktionsaufruf und Tool-Nutzung: Definiert, wie ein Modell eine externe Operation anfordert. Eingeschränktes Dekodieren kann gültige Funktionsnamen und Argumentstrukturen erzwingen, aber die Anwendung führt das Tool dennoch aus und autorisiert es.
- Prompt Engineering: Bittet das Modell, ein Format durch Anweisungen einzuhalten. Es beeinflusst das Verhalten, eliminiert ungültige Token jedoch nicht mechanisch.
- Spekulatives Dekodieren: Beschleunigt die Generierung durch das Vorschlagen und Verifizieren von Token. Sein Hauptziel ist Geschwindigkeit, während eingeschränktes Dekodieren die Gültigkeit steuert.
Typisierte Systeme können Schemata über Tools wie Pydantic JSON-Schema definieren, anstatt jede Regel manuell zu schreiben.
Anwendungen in der Praxis#
Dokumentenverarbeitung: Ein System zur Rechnungsverarbeitung kann vendor, invoice_number, total und currency aus eingescannten Dokumenten extrahieren. Eingeschränktes Dekodieren stellt sicher, dass die Antwort die erwarteten Schlüssel und Datentypen aufweist, bevor sie in die Buchhaltungssoftware gelangt. Es verhindert fehlerhafte Nutzdaten, kann jedoch nicht garantieren, dass die extrahierte Summe sachlich korrekt ist.
Visionsgesteuerte Sicherheitsautomatisierung: Ein System kann Ultralytics YOLO26 verwenden, um Arbeiter und Schutzausrüstung zu erkennen, und dann relevante Beobachtungen an ein Sprachmodell senden. Der Decoder kann die Entscheidung des Modells auf no_action, manual_review oder send_alert beschränken. In einem Ultralytics Plattform-Agenten-Workflow können Visionsmodelle, Bedingungen, Sprachmodelle und Aktionen so verknüpft werden, dass nur qualifizierende Bilder zu späteren Schritten weitergeleitet werden.
Beispiel für einen praktischen Workflow#
Computer-Vision-Vorhersagen sind bereits strukturiert und werden nicht Token für Token generiert. Der folgende YOLO Vorhersagemodus-Workflow erzeugt JSON, das als Eingabe für eine nachgeschaltete Entscheidung eines eingeschränkten Sprachmodells dienen kann:
from ultralytics import YOLO
# Load the recommended object detection model
model = YOLO("yolo26n.pt")
# Run inference and select the first result
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
# Serialize detections for a downstream constrained decoder
json_output = result.to_json()
print(json_output)Hier führt to_json() eine deterministische Serialisierung durch, kein eingeschränktes Dekodieren. Der eingeschränkte Schritt würde später erfolgen, wenn ein generatives Modell diese Erkennungen in einen schemabegrenzten Bericht oder eine Aktion umwandeln würde.
Vorteile, Grenzen und Best Practices#
Eingeschränktes Dekodieren reduziert Parsing-Fehler, Wiederholungsversuche, unerwartete Felder und ungültige Tool-Argumente. Strukturelle Gültigkeit eliminiert jedoch keine LLM-Halluzinationen: Eine perfekt geformte Antwort kann dennoch falsche Fakten oder eine unangemessene Aktion enthalten.
Verwende enge Schemata, aussagekräftige Feldbeschreibungen, Enums für geschlossene Auswahlmöglichkeiten und nullable Felder, wenn Informationen möglicherweise nicht verfügbar sind. Validiere Geschäftsregeln nach der Generierung, behandle Verweigerungen und abgeschnittene Antworten und teste den von jedem Anbieter unterstützten Schema-Teilsatz. Messe in der Produktion zudem den Overhead der Schema-Kompilierung, die Dekodierungslatenz und die semantische Genauigkeit, anstatt nur die Formatkonformität zu bewerten.









