Ultralytics YOLO27: Trag dich in die Warteliste ein.
YOLO lizenzieren
Zurück zum Ultralytics-Glossar

Constrained Decoding

Beim eingeschränkten Decoding werden bei jedem Generierungsschritt ungültige Tokens maskiert. Dadurch kann ein LLM nur zulässige Bezeichnungen, Treffer für reguläre Ausdrücke oder JSON ausgeben, das einem Schema entspricht.

Constrained Decoding ist eine Technik zur Textgenerierung, die einschränkt, welche Tokens ein Sprachmodell in jedem Schritt erzeugen darf. Dadurch entspricht die fertige Ausgabe garantiert einem vorgegebenen Format: einer festen Auswahl an Bezeichnungen, einem regulären Ausdruck, einer Grammatik oder einem JSON-Schema. Das Modell bewertet weiterhin jedes Token in seinem Wortschatz. Bevor ein Token ausgewählt wird, entfernt der Decoder alle Optionen, die das Format verletzen würden. Anwendungen, die Modellausgaben verarbeiten, etwa API-Backends, KI-Agenten und Datenextraktions-Pipelines, nutzen dieses Verfahren, damit jede Antwort gleich beim ersten Versuch geparst werden kann.

Ungültige Tokens maskieren#

Ein großes Sprachmodell erzeugt Text Token für Token. In jedem Schritt berechnet es für jedes Token in seinem Wortschatz einen Wert, den sogenannten Logit, und eine Softmax-Funktion wandelt diese Werte in Wahrscheinlichkeiten um. Constrained Decoding fügt vor dem Sampling einen Schritt hinzu: Tokens, die nicht zu einer gültigen Ausgabe führen können, erhalten einen Logit von minus unendlich und damit eine Wahrscheinlichkeit von null. Die verbleibenden Wahrscheinlichkeiten werden anschließend über die gültigen Tokens neu normiert.

import torch

# Raw next-token scores from a model over a toy vocabulary
vocab = ["approved", "rejected", "review", "maybe", "{", "}"]
logits = torch.tensor([1.2, 0.4, 0.9, 2.5, 0.1, 0.3])

# The schema allows only the three status labels at this position
allowed = torch.tensor([True, True, True, False, False, False])
masked_logits = logits.masked_fill(~allowed, float("-inf"))

# Softmax renormalizes probability over the valid tokens only
for name, raw, masked in zip(vocab, logits.softmax(-1), masked_logits.softmax(-1)):
    print(f"{name:>9}: {raw:.2f} -> {masked:.2f}")

Das Modell ohne Einschränkungen weist „maybe“ 56 % seiner Wahrscheinlichkeit zu. Mit angewendeter Maske sinkt der Wert für „maybe“ auf null, und die drei erlaubten Bezeichnungen teilen die Wahrscheinlichkeit proportional zu ihren ursprünglichen Werten untereinander auf. So steigt „approved“ von 15 % auf 46 %.

Produktionsreife Inferenz-Engines verfolgen während der Generierung den Zustand der Einschränkungen. Eine feste Auswahlliste oder ein regulärer Ausdruck wird in einen endlichen Automaten kompiliert. Für JSON und andere verschachtelte Formate ist eine Grammatik mit einem Stapel erforderlich, denn eine schließende Klammer ist erst nach der passenden öffnenden Klammer gültig. Nach jedem Token aktualisiert der Decoder den Zustand und berechnet die zulässige Menge neu. Die Tokenisierung erzeugt Teilwortstücke unterschiedlicher Länge. Daher kann ein einzelnes Token wie "}, mehrere Grammatikschritte auf einmal abdecken. Bibliotheken berechnen deshalb vorab, welche Einträge im Wortschatz in jedem Zustand zulässig sind. So bleiben die Kosten pro Token auch bei Wortschätzen mit mehr als 100.000 Tokens gering. Brandon Willard und Rémi Louf beschrieben diese Indizierung für reguläre Ausdrücke und kontextfreie Grammatiken 2023 in Efficient Guided Generation for Large Language Models, der Arbeit hinter der Outlines-Bibliothek.

Die passende Einschränkung wählen#

Die passende Einschränkung richtet sich nach der Ausgabe, die die Anwendung tatsächlich verarbeitet. Eine Auswahlliste eignet sich für Klassifizierung und Routing, wenn die Antwort eine von wenigen Zeichenfolgen sein muss. Reguläre Ausdrücke decken kurze strukturierte Werte wie Datumsangaben, IDs und Telefonnummern ab. Kontextfreie Grammatiken beschreiben SQL, Code und domänenspezifische Sprachen. Das GBNF-Grammatikformat von llama.cpp ist ein weit verbreitetes Beispiel. Für Datensätze mit benannten Feldern legt ein JSON-Schema erforderliche Schlüssel, Typen, Aufzählungen und Verschachtelungen fest. Gehostete APIs wie OpenAI Structured Outputs akzeptieren ein Schema und setzen es während der Generierung durch. Üblicherweise unterstützen sie dabei eine dokumentierte Teilmenge der vollständigen JSON-Schema-Spezifikation.

Eingeschränkte Dekodierung wird oft mit verwandten Verfahren verwechselt:

  • Strukturierte Ausgaben: Das übergeordnete Ziel sind maschinenlesbare Antworten. Es lässt sich entweder durch Constrained Decoding während der Generierung erreichen oder indem die Ausgabe anschließend validiert und bei einem Fehler erneut angefordert wird.
  • JSON-Modus: Beschränkt die Ausgabe auf syntaktisch gültiges JSON beliebiger Form. Schlüssel, Typen und Werte müssen daher weiterhin geprüft werden.
  • Prompt Engineering: Fordert in den Anweisungen ein bestimmtes Format an, das Modelle meistens einhalten. Bei schema-beschränkten Anfragen werden die Felder üblicherweise ebenfalls im Prompt beschrieben, damit das Modell weiß, was die einzelnen Felder bedeuten.
  • Funktionsaufrufe: Werkzeugnamen und Argumente sind häufige Ziele für Schemaeinschränkungen, da der aufrufende Code genaue Feldnamen erwartet.

Abwägungen in der Praxis#

Ein garantiertes Format garantiert nichts über den Inhalt. Ein Schema kann erzwingen, dass {"total": 1290.00} eine Zahl ist, aber die Zahl kann trotzdem falsch sein. Ein eingeschränktes Modell kann außerdem innerhalb gültiger Felder überzeugend halluzinieren. Anwendungen müssen Geschäftsregeln auch nach der Generierung validieren.

Einschränkungen können auch die Antwortqualität mindern, wenn sie ein Modell von dem Text abbringen, den es normalerweise schreiben würde. Ein Schema, das die endgültige Antwort als erstes Feld verlangt, lässt keinen Raum für Zwischenschritte der Schlussfolgerung. Deshalb platzieren Schemata häufig ein Freitextfeld für Schlussfolgerungen oder Notizen vor dem Antwortfeld. Auch die Ausgabelänge muss berücksichtigt werden: Wird das Token-Limit mitten in einem Objekt erreicht, ist das Ergebnis unabhängig von den Einschränkungen ungültig. Deshalb legen strukturierte Anfragen maximale Längen fest, die genügend Spielraum für die vollständige Struktur lassen. Sehr große oder tief rekursive Schemata benötigen mehr Zeit zum Kompilieren. Das ist für Systeme relevant, die für jede Anfrage ein neues Schema erstellen.

Anwendungen der Bildverarbeitung verwenden denselben Mechanismus, wenn ein multimodales Modell Felder zu einem Bild zurückgeben muss. Die LLM-Schnittstelle von Ultralytics leitet Anfrageargumente unverändert an OpenAI-kompatible APIs weiter. Ein JSON-Schema, das zusammen mit einer Bildanfrage übergeben wird, beschränkt die Antwort eines Vision-Language-Modells daher auf Felder wie hazard und severity, die sich mit YOLO26-Erkennungen aus demselben Einzelbild kombinieren lassen.

Explore solutions

Computer Vision im Sport

Computer Vision im Sport

Entdecke, wie Ultralytics YOLO die Sportbildanalyse voranbringt – mit Spieler- und Ballverfolgung, Leistungsanalysen, Erkenntnissen für das Coaching und der Rehabilitation von Athleten.
Mehr erfahren
Computer Vision für Luftbilder

Computer Vision für Luftbilder

Verwandle Drohnen- und Luftbilder mit Ultralytics YOLO in Echtzeit-Erkenntnisse für Landwirtschaft, Aquakultur, Naturschutz und Geodatenanalyse.
Mehr erfahren
Computer Vision in der Luft- und Raumfahrt

Computer Vision in der Luft- und Raumfahrt

Setze Computer Vision in der Luft- und Raumfahrt mit Ultralytics YOLO ein – für Flugzeuginspektionen, die Erkennung von Fremdkörpern auf Start- und Landebahnen, den Bodenbetrieb am Flughafen und die Erkennung von Verbundwerkstofffehlern.
Mehr erfahren
Computer Vision im Sicherheitsbereich

Computer Vision im Sicherheitsbereich

Schütze jeden Standort mit Ultralytics YOLO-Modellen. Vision-KI ermöglicht die Überwachung von Grundstücksgrenzen, die Erkennung von Bedrohungen, die Kennzeichenerkennung und die Sicherheit am Arbeitsplatz.
Mehr erfahren
Computer Vision in der Robotik

Computer Vision in der Robotik

Mach Maschinen mit Ultralytics YOLO-Modellen leistungsfähiger. Vision-KI in der Robotik ermöglicht autonome Navigation, Wahrnehmung, Objektverfolgung und Steuerung in Echtzeit.
Mehr erfahren
Bildverarbeitung in der Logistik

Bildverarbeitung in der Logistik

Optimiere die Logistik mit Ultralytics YOLO-Modellen. Vision AI ermöglicht die Paketprüfung, Sortierung und Fahrzeugverfolgung sowie die Sicherheitsüberwachung von Lagerhäusern in Echtzeit.
Mehr erfahren
Bildverarbeitung im Einzelhandel

Bildverarbeitung im Einzelhandel

Gestalte den Einzelhandel mit Ultralytics YOLO-Modellen neu. Vision AI ermöglicht Bestandsverfolgung, Regalüberwachung und Warteschlangenmanagement und liefert bessere Einblicke in das Kundenverhalten.
Mehr erfahren
Bildverarbeitung im Gesundheitswesen

Bildverarbeitung im Gesundheitswesen

Entwickle Lösungen für das Gesundheitswesen mit Ultralytics YOLO-Modellen. Vision AI ermöglicht im Gesundheitswesen schnellere medizinische Bildgebung, bessere Diagnostik und die Überwachung von Patienten.
Mehr erfahren
Computer Vision in der Fertigung

Computer Vision in der Fertigung

Optimiere die Fertigung mit Ultralytics-YOLO-Modellen. Vision AI ermöglicht Qualitätskontrolle, Fehlererkennung, die Überprüfung der Einhaltung von Vorgaben zu persönlicher Schutzausrüstung und die Automatisierung von Montagelinien.
Mehr erfahren
Computer Vision in der Automobilbranche

Computer Vision in der Automobilbranche

Setze Computer Vision in der Automobilbranche mit Ultralytics-YOLO-Modellen ein. Vision AI verbessert die Verkehrssicherheit, Fahrerassistenz und Fahrzeugautomatisierung – für intelligentere Straßen.
Mehr erfahren
Computer Vision in der Landwirtschaft

Computer Vision in der Landwirtschaft

Setze mit Ultralytics YOLO-Modellen KI für Bildverarbeitung in der intelligenten Landwirtschaft ein. Ermögliche die Überwachung von Nutzpflanzen, die Verfolgung von Nutztieren und Präzisionslandwirtschaft für höhere und nachhaltigere Erträge.
Mehr erfahren

Lass uns gemeinsam die Zukunft der KI gestalten!

Starte deine Reise in die Zukunft des maschinellen Lernens