ガイド付きデコーディング
各ステップで文法に反するトークンをすべて除外し、言語モデルの出力をスキーマに従わせる手法。不正なJSONは文字どおり生成不可能になる。
JSON Schema、正規表現、形式文法といったスキーマを状態機械にコンパイルする。各位置で、状態機械は許される文字を把握しており、該当するトークンは確率を保ち、それ以外はサンプリング前に負の無限大に設定される。モデルは自由に選ぶが、選択肢は有効なものに限られる。プロンプトでJSONを頼むのとは本質的に違う。後者はときどき失敗するが、前者は失敗しえない。
実装にはOutlinesやXGrammarといったライブラリのほか、llama.cpp、vLLM、多くのAPIの組み込み機能がある。コストはスキーマのコンパイルと、モデルが選ばなかったであろう言い回しに押し込まれることがある点だ。