I’ve been experimenting with Zephyr and pretty surprised by the great performance. One problem I have with Zephyr is the difficulty to build structured outputs. For example if I ask it to return only True or False, it will return a lengthy explanation. This makes it tough to use Zephyr as part of a production system, since incorrectly structured outputs have huge implications.
Has anyone found some tricks to make Zephyr produce outputs in a defined format and do so deterministically?
Fine tune of course
I reverted to mistral-instruct
There are all sorts of approaches
- microsoft guidance
- llama.cpp grammar constraints
- someone recently made their own approach and posted it here, search for CAPPr
The correct answer here is reading logprobs/logits over the true/false tokens after parsing the input.
Using a grammar is overkill and a classification model might not get you the fidelity you want.

