Hvad betyder Constrained decoding?
Constrained decoding styrer tekstgenereringen på et teknisk niveau. I stedet for kun at bede modellen om et bestemt format kan en motor begrænse, hvilke tokens der er lovlige på det aktuelle sted i svaret. Det kan eksempelvis hjælpe med at holde et output inden for en JSON-struktur.
Begrænsningen følger den struktur, som motoren understøtter. En grammatikkontrol ved, om en fortsættelse kan passe til formatet, men den ved ikke automatisk, om indholdet er sandt. Et gyldigt produktnavn som tekst kan stadig henvise til et produkt, der ikke findes.
Metoden er især relevant, når genereret output skal læses af kode. Den kan mindske behovet for at reparere syntaks efterfølgende, men implementeringen skal stadig håndtere begrænsninger, afbrudte svar og uforenelige krav.
Formatregler påvirker hvert genereringstrin
En almindelig modelberegning giver mulige fortsættelser. En begrænsningsmotor kan maskere fortsættelser, som bryder den aktuelle grammatiktilstand, før næste token vælges. Derfor er arbejdet tæt knyttet til modellens tokenizer og genereringsmotor.
XGrammar er et eksempel på en sådan motor. Dets dokumentation og forskningsartikel beskriver behandling af grammatik og tokenmasker. Det er et implementeringseksempel, ikke et løfte om identisk understøttelse eller hastighed i alle modeltjenester.
Begræns ikke det korrekte svar væk
Hvis skemaet kun tillader tre sagstyper, men en indgående sag ikke passer til nogen af dem, kan et formelt gyldigt svar stadig være forkert. Opgaven bør derfor have en passende vej for ukendt, uafklaret eller ikke understøttet.
Test også, hvad der sker, når et svar når sin længdegrænse. En delvis struktur må ikke behandles som et komplet resultat. Komplekse grammatikker kan have forskellige omkostninger og begrænsninger, så beslutningen skal bygge på den konkrete arbejdsgang frem for alene på formatgarantien.
Et eksempel fra praksis
Et lagerteam vil omsætte fritekst om modtagne varer til en liste med varenummer, antal og bemærkning. Outputtet skal kunne indlæses i en kladdevisning. Et fast format hjælper programmet med at placere oplysningerne i de rigtige kolonner.
I et testinput er antallet uklart, fordi både kasser og enkeltvarer nævnes. Begrænset dekodning kan sikre en gyldig struktur, men kan ikke afgøre enheden uden grundlag. Kladdevisningen viser derfor usikkerheden og kræver afklaring, før medarbejderen registrerer lagerbevægelsen.
Typiske faldgruber
- En syntaktisk garanti præsenteres som en garanti for sandhed.
- Skemaet tvinger tvetydige sager ind i en forkert tilladt værdi.
- En afbrudt generering sendes videre som et komplet dataobjekt.
Det skal I afklare
- Kontrollér motorens faktiske understøttelse af jeres struktur.
- Giv ukendte og uafklarede forhold en legitim outputform.
- Validér færdigt output og kritiske værdier før videre behandling.
Spørgsmål og svar
Er det nok at skrive “svar kun med JSON”?
Nej. Det er en instruktion til modellen. Constrained decoding indebærer en mekanisme i genereringen, som begrænser de tilladte fortsættelser.
Kan teknikken stoppe hallucinationer?
Den kan begrænse format og tilladte værdier, men den verificerer ikke i sig selv påstande mod virkeligheden. Kildekontrol og forretningsvalidering er stadig nødvendige.
Kilder og videre læsning
De tekniske begreber bygger på nedenstående kilder. Eksemplerne er illustrative og viser, hvordan I kan arbejde med emnet.
- Dong m.fl.: XGrammar ↗Grammatikbaseret struktureret generering og tekniske omkostninger.
- XGrammar: Constrained decoding ↗Motorens beskrivelse af tokenmaskering under generering.

