Flexible and Efficient Grammar-Constrained Decoding
Kanghee Park, Timothy Zhou, Loris D'Antoni
TL;DR
To ensure LLM outputs adhere to CFG constraints, this paper introduces GreatGramma, a grammar-constrained decoding framework that splits work into offline preprocessing and online masking. The core idea is a token-to-terminal transducer built from a lexer automaton and the LLM vocabulary, enabling precomputation of realizable terminal sequences and an inverse token-spanner mapping to quickly mask invalid tokens during decoding. Experiments show GreatGramma achieves 17.71x faster offline preprocessing than SynCode and the best online masking latency among baselines, while remaining robust. The work also highlights soundness bugs in prior GCD implementations and emphasizes a simple, modular implementation around 900 lines of Python. This approach enables flexible, scalable GCD for dynamic grammars in domains like program synthesis and grammar prompting.
Abstract
Large Language Models (LLMs) are often asked to generate structured outputs that obey precise syntactic rules, such as code snippets or formatted data. Grammar-constrained decoding (GCD) can guarantee that LLM outputs matches such rules by masking out tokens that will provably lead to outputs that do not belong to a specified context-free grammar (CFG). To guarantee soundness, GCD algorithms have to compute how a given LLM subword tokenizer can align with the tokens used by a given context-free grammar and compute token masks based on this information. Doing so efficiently is challenging and existing GCD algorithms require tens of minutes to preprocess common grammars. We present a new GCD algorithm together with an implementation that offers 17.71x faster offline preprocessing than existing approaches while preserving state-of-the-art efficiency in online mask computation.
