Efficient Guided Generation for Large Language Models