17 / 21
Что такое constrained decoding (outlines, jsonformer, llama.cpp grammar) и чем оно отличается от basic structured output / JSON mode?
Constrained decoding модифицирует сам процесс sampling: на каждом step следующий токен фильтруется через FSA / grammar / regex так, чтобы итоговая последовательность ВСЕГДА соответствовала schema. В отличие от basic structured output (OpenAI response_format, Anthropic tool use), который полагается на serverside валидацию + retry — constrained decoding даёт 100% валидность без retry latency, но требует доступа к logits (self-hosted llama.cpp / vLLM / HF transformers, outlines, jsonformer).